• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Actions] VIP System mediante Premium Points

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Actions] VIP System mediante Premium Points el Dom Jun 22, 2014 1:13 am

    Conan

    avatar
    Miembro
    Miembro
    Hola, hoy vengo buscando un script para vip system que lo puedas comprar mediante premium points, sin que tengas que usar un item y así, bueno lo que busco es que mediante un comando digas ejemplo: /buyvip 10, ese 10 serian los días que va a comprar y que le quiten premium points si es que tiene, si alguien me podría ayudar les agradecería mucho...

    Ver perfil de usuario http://krozot.sytes.net

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    tienes que dejar mas datos d tu sistema vip si por storange o es por tablas mysq



    Ver perfil de usuario http://www.tibiaface.com

    Conan

    avatar
    Miembro
    Miembro
    Es por storage, aqui esta el script, este script es al usar un item te da vip, pero yo quiero que lo compren con points, y les de los dias.
    Código:
    function onUse(cid, item, fromPosition, itemEx, toPosition)

    if getPlayerStorageValue(cid,13540) < 1 then
    if getPlayerLevel(cid) > 1 then
    getPlayerStorageValue(cid, 13540)
    doSendAnimatedText(getPlayerPosition(cid), "Ya Eres V.I.P!", TEXTCOLOR_RED)
    doCreatureSay(cid, "Wolcome To Zona Vip!. ", TALKTYPE_ORANGE_1)
    setPlayerStorageValue(cid, 13540, (getPlayerStorageValue(cid,13540) + 300))
    doRemoveItem(item.uid, 1)
    else
    doPlayerSendCancel(cid,"You need to be at least level 2 to use this.")
    doRemoveItem(item.uid, 1)
    end
    else
    doPlayerSendCancel(cid,"You are already a Done.")
    end
    return TRUE
    end
    espero tu respuesta...

    Ver perfil de usuario http://krozot.sytes.net

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    intenta con este talkactions

    Código:
    <talkaction words="!buyvip;" event="script" value="buyvip.lua"/>

    Código:

    function onSay(cid, words, param)
    if(words == "!buyvip") then
    if (getAccountPoints(cid) < 2) == TRUE then
    local days = 30
    local daysvalue = days * 24 * 60 * 60
    local storageplayer = getPlayerStorageValue(cid, 13540)
    local timenow = os.time()


    if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then

    time = timenow + daysvalue
    else

    time = storageplayer + daysvalue
    end


    if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then

    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "fueron adicionados ".. days .." dias de VIP en su character.")

    setPlayerStorageValue(cid, 13540, time)
    doPlayerRemovePoints(cid, 2)
    local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))

    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "usted tiene ".. quantity .." dias de VIP restantes.")
    else

    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Fueron adicionados ".. days .." dias de VIP en su  character.")

    setPlayerStorageValue(cid, 13540, time)
    local name = getCreatureName(cid)

    db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")

    doRemoveCreature(cid)
    end
    else

    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "usted necesita premium point para comprar vip.")
    end

    return TRUE
    end


    y esto añade en data/lib

    copia cualquier archivo y renombra por 048-ppoints y pega esto dentro

    Código:
    function getAccountPoints(cid)
            local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'')
            if(res:getID() == -1) then
               return false
            end
            local ret = res:getDataInt("premium_points")
            res:free()
            return tonumber(ret)
    end


    function doRemovePoints(cid, count)
            return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'")
    end


    cualquier error me mandas una imagen del de tu consola para poder solucionar el problema

    configuracion

    (getAccountPoints(cid) < 2) -----> el 2 verifica que el player tenga suficiente premium point deve ir ahi la cantidad de premium point

    doPlayerRemovePoints(cid, 2) ----> en esa linea tambien deve de ir la cantidad de premium point y deben de ser iguales a la otra linea y listo

    este comando solo compra 30 dias vip

    /buyvip



    Ver perfil de usuario http://www.tibiaface.com

    Conan

    avatar
    Miembro
    Miembro
    En la consola me sale este error:

    Ver perfil de usuario http://krozot.sytes.net

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    intenta con este.

    Código:

                function onSay(cid, words, param)
                if(words == "!buyvip") then
                if (getAccountPoints(cid) < 2) == TRUE then
                local days = 30
                local daysvalue = days * 24 * 60 * 60
                local storageplayer = getPlayerStorageValue(cid, 13540)
                local timenow = os.time()


                if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then

                time = timenow + daysvalue
                else

                time = storageplayer + daysvalue
                end


                if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then

                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "fueron adicionados ".. days .." dias de VIP en su character.")

                setPlayerStorageValue(cid, 13540, time)
                doPlayerRemovePoints(cid, 2)
                local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))

                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "usted tiene ".. quantity .." dias de VIP restantes.")
                else

                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Fueron adicionados ".. days .." dias de VIP en su  character.")

                setPlayerStorageValue(cid, 13540, time)
                local name = getCreatureName(cid)

                db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")

                doRemoveCreature(cid)
                else

                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "usted necesita premium point para comprar vip.")
                end

                return TRUE
                end



    Ver perfil de usuario http://www.tibiaface.com

    Conan

    avatar
    Miembro
    Miembro
    en la consola me aparece este error:
    Código:
    [23/6/2014 10:50:58] [Error - LuaInterface::loadFile] data/talkactions/scripts/buyvip.lua:38: 'end' expected (to close 'if' at line 19) near 'else'
    [23/6/2014 10:50:58] [Error - Event::checkScript] Cannot load script (data/talkactions/scripts/buyvip.lua)
    [23/6/2014 10:50:58] data/talkactions/scripts/buyvip.lua:38: 'end' expected (to close 'if' at line 19) near 'else'
    [23/6/2014 10:50:58] (done).

    Ver perfil de usuario http://krozot.sytes.net

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Lamentablemente no se pudo agregar remove point pero de consuelo te damos aquel script de talkactions donde usted puede comprar el ítem de scroll premiun ( item que usted utiliza para su vip account) mediante Premium point

    Código:
    function getPlayerPremiumPoints(cid)
        local info = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid).." LIMIT 1")
        if info:getID() ~= LUA_ERROR then
        local points= info:getDataInt("premium_points")
        info:free()
        return points
    end
        return LUA_ERROR
    end

    local costo = 10 -- este es el costo en puntos
    local item = 12646 -- item que sera agregado si pagas los puntos

    function onSay(cid, words, param, channel)
    local playerpoints = getPlayerPremiumPoints(cid)
    --------------------------------
        if playerpoints >= costo then
            db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` - " .. costo .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
            local playerpoints = getPlayerPremiumPoints(cid)
                    doPlayerAddItem(cid, item, 1)
            doPlayerPopupFYI(cid, "Tu item ha sido agregado a tu backpack! Te restan "..playerpoints.." premium points.")
        else
            doPlayerPopupFYI(cid, "No tienes suficientes premium points para comprar donate boots!")
        end
        return false
    end



    Ver perfil de usuario http://www.tibiaface.com

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Sin respuesta del usuario Tema cerrado



    Ver perfil de usuario http://www.tibiaface.com

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.