BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

vip system

vip system

#1 vip system el Vie Mar 28, 2014 8:40 am

JhonaHex


Estudiante
quien me puede dar un vip system y que me ayude a ponerlo en mi server :3 si no fuera mucha la molestia

#2 Re: vip system el Vie Mar 28, 2014 11:45 am

mrenrique


Novato
[Tienes que estar registrado y conectado para ver este vínculo]

Aqui esta un vip system por sql para que ande a la perfeccion, el foro se encarga de ayudar si quieres que te lo pongan consulta zona donator. Si tienes problemas colocando el vip system consultame face: [Tienes que estar registrado y conectado para ver este vínculo]

#3 Re: vip system el Vie Mar 28, 2014 1:24 pm

JhonaHex


Estudiante
Oye ósea que si qiero que me pongan el vip en mi server me cobran ?

#4 Re: vip system el Vie Mar 28, 2014 3:07 pm

Sunnade Audio


Miembro
LOL! Descarga un server que tenga vip system y pasale los lua al otro &ya-.-!

#5 Re: vip system el Vie Mar 28, 2014 3:42 pm

mrenrique


Novato
Agreguenme y conversamos al respecto face: [Tienes que estar registrado y conectado para ver este vínculo] / Sunnade se que es facil hacer eso pero muchos quieren un vip system diferente, y hasta colocar una zona aparte me entiendes.

#6 Re: vip system el Vie Mar 28, 2014 5:03 pm

ricker


Moderador Global
aqui les dejare 1 que use con mi ot server cuando lo tenia 8.6

Bien, les explicare el sistema.. La mayoria de los sistemas vip usan un [b]globalevent para remover 1 dia vip cada 2 horas, pero, que pasa si el servidor lleva abierto 23 horas y se cae? El dia no seria removido, tendrias que esperar otras 24 hroas para que pueda ser removido, en este sistema vip ese error esta arreglado.. ahora el dia vip sera removido a una hora del dia especifica, si lo pones a las 2pm, entonces a esa hora sera removido el dia vip, asi si el servidor se cae por 3 minutos, no tendras que esperar otras 24horas, igual se seguira removiendo el dia vip a las 2pm..

Este sistema funciona para todos los characters que esten en la misma cuenta, asi como una premium account.
Testeado en TheForgottenServer 0.3.6 / 0.4
Este sistema contiene:

Funciones LUA
Removedor automatico de dias vip.
Piso vip.
onLogin script para ver si el player es vip.
Medalla vip.
Comando para remover dias vip.
Comando para agregar dias vip.


Bien, aqui vamos..
Ve a tu phpmyadmin y ejecuta y la pestaña SQL:
Código:

ALTER TABLE `accounts` ADD
`vipdays` int(11) NOT NULL DEFAULT 0;

Ahora ve a data/lib/function.lua y agrega estas lineas arriba de todo:
Código:
function getPlayerVipDays(cid)
    local Info = db.getResult("SELECT `vipdays` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
        if Info:getID() ~= LUA_ERROR then
        local days= Info:getDataInt("vipdays")
        Info:free()
        return days
    end
    return LUA_ERROR
end

function doAddVipDays(cid, days)
    db.executeQuery("UPDATE `accounts` SET `vipdays` = `vipdays` + " .. days .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end

function doRemoveVipDays(cid, days)
    db.executeQuery("UPDATE `accounts` SET `vipdays` = `vipdays` - " .. days .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end
Una vez hecho, agrega esta linea en data/creaturescript/login.lua
Código:
registerCreatureEvent(cid, "VipCheck")
Ahora en data/creaturescript/scripts crea un nuevo archivo y llamalo vipcheck.lua
Código:
function onLogin(cid)
        if getPlayerVipDays(cid) >= 1 then
            doPlayerSendTextMessage(cid, 19, "You have ".. getPlayerVipDays(cid) .." vip days left.")
        end
        return true
end
data/creaturescript/creaturescript.xml
Código:
<event type="login" name="VipCheck" event="script" value="vipcheck.lua"/>
Ahora, ve a data/globalevents/scripts/, crea un nuevo archivo y llamalo daysremover.lua
Código:
function onTimer()
                db.executeQuery("UPDATE accounts SET vipdays = vipdays - 1 WHERE vipdays > 0;")
        return true
end
data/globalevents/globalevents.xml
Código:
<globalevent name="VipDaysRemover" time="00:01" event="script" value="daysremover.lua"/>
[Tienes que estar registrado y conectado para ver esa imagen]
data/movements/scripts/viptile.lua
Código:
function onStepIn(cid, item, position, fromPosition)
if getPlayerVipDays(cid) == 0 then
doTeleportThing(cid, fromPosition, FALSE)
end
return true
end
data/movements/movements.xml
Código:
<movevent type="StepIn" actionid="11223" event="script" value="viptile.lua"/>
En tu map editor, ponle actionid 11223 al piso que quieres que sea solo para vips.
data/actions/scripts/vipmedal.lua
Código:
unction onUse(cid, item, fromPosition, itemEx, toPosition)
        if getPlayerVipDays(cid) > 365 then
            doPlayerSendCancel(cid, "You can only have 1 year of vip account or less.")
        else
            doAddVipDays(cid, 30)
            doCreatureSay(cid, "VIP")
            doPlayerPopupFYI(cid, "We have added 30 vip days to your account!\nEnjoy it!.")
            doRemoveItem(item.uid)
        end
        return true
end        
data/actions/actions.xml
Código:
 <action itemid="2112" event="script" value="vipmedal.lua"/>
Que no se te olvide cambiar el ID del item en esa linea..
data/talkactions/scripts/adddays.lua
Código:
function onSay(cid, words, param, channel)
        if(param == '') then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
                return true
        end

        local t = string.explode(param, ",")
        t[1] = tonumber(t[1])
        if(not t[1]) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")
                return true
        end

        local pid = cid
        if(t[2]) then
                pid = getPlayerByNameWildcard(t[2])
                if(not pid) then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.")
                        return true
                end
        end

        if(t[1] > 365) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can only add max 365 vip days.")
                return true
        end

        sender = getPlayerByNameWildcard(cid)
      
    doAddVipDays(pid, t[1])
    doPlayerSendTextMessage(cid, "You have added ".. t[1] .." vip days to ".. t[2])
    doPlayerSendTextMessage(pid, sender .." just added you ".. t[1] .." vip days.")    
        return true
end
data/talkactions/scripts/talkactions.xml/
Código:
<talkaction log="yes" words="/adddays" access="5" event="script" value="adddays.lua"/>
data/talkactions/scripts/removedays.lua
Código:
function onSay(cid, words, param, channel)
        if(param == '') then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
                return true
        end

        local t = string.explode(param, ",")
        t[1] = tonumber(t[1])
        if(not t[1]) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")
                return true
        end

        local pid = cid
        if(t[2]) then
                pid = getPlayerByNameWildcard(t[2])
                if(not pid) then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.")
                        return true
                end
        end

        if(t[1] > 365) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can only add max 365 vip days.")
                return true
        end

        sender = getPlayerByNameWildcard(cid)
      
    doRemoveVipDays(pid, t[1])
    doPlayerSendTextMessage(cid, "You have removed ".. t[1] .." vip days to ".. t[2])
    doPlayerSendTextMessage(pid, sender .." just removed you ".. t[1] .." vip days.")    
        return true
end
data/talkactions/scripts/talkactions.xml/
Código:
<talkaction log="yes" words="/removedays" access="5" event="script" value="removedays.lua"/>

data/actions/scripts/vipdoor.lua
Código:
function onUse(cid, item, frompos, item2, topos)
        if getPlayerVipDays(cid) >= 1 then
            pos = getPlayerPosition(cid)
            if pos.x == topos.x then
              if pos.y < topos.y then
                  pos.y = topos.y + 1
              else
                  pos.y = topos.y - 1
              end
            elseif pos.y == topos.y then
                  if pos.x < topos.x then
                      pos.x = topos.x + 1
                  else
                      pos.x = topos.x - 1
                  end
            else
                doPlayerSendTextMessage(cid,22,"Stand in front of the door.")
            return true
            end
            doTeleportThing(cid,pos)
            doSendMagicEffect(topos,12)
        else
            doPlayerSendTextMessage(cid,22,'Only VIP Account can go there.')
        end
        return true
end
data/actions/actions.xml
Código:
<action actionid="2112" event="script" value="vipdoor.lua"/>
globalevents/scripts/vipEffect.lua
Código:
function onThink(interval, lastExecution)
        for _, name in ipairs(getOnlinePlayers()) do
        local cid = getPlayerByName(name)
              if getPlayerVipDays(cid) >= 1 then
                  doSendMagicEffect(getPlayerPosition(cid), 27)
              end
        end
        return true
end
data/globalevents/globalevents.xml
Código:
<globalevent name="vipEffect" interval="2" script="vipEffect.lua"/>
Código:
Funciones:

getPlayerVipDays(cid) --- Retorna la cantidad de dias vip que tiene el player.
doAddVipDays(cid, days) --- Agrega la cantidad de dias vip que especifiques al player.
doRemoveVipDays(cid, days) --- Remueve la cantidad de dias vip que especifiques al player.

Creditos Kekox y para mi por pasarcelos xD
sigue cada paso



[Tienes que estar registrado y conectado para ver esa imagen]
http://facebook.com/kruger.sytes.net/

#7 Re: vip system el Sáb Mar 29, 2014 1:40 am

Kroxos


Estudiante
Esta Bueno Ese Vip System Y Muy Bien Explicado

http://tibiadarkblue.activo.mx/

#8 Re: vip system Hoy a las 11:26 am

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.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .