Procurei em varios lugares do XTibia mas os unicos "vip system" que achei foi pelo comando "!addvip" e tals.
Entao resolvi posta esse sistema que achei.
Achei ele na otland entao os créditos nao sao meus, aki o link da onde tirei o tutorial.
Clique aqui
Vamos lá.
Novas funções em lua:
setPlayerVipDays(cid, days)
getPlayerVipDays(cid)
isPlayerVip(cid)
doPlayerAddVipDays(cid, days)
doPlayerRemoveVip(cid)
Script:
Vá na pasta do seu ot, abra data/lib/function e bote isso no final do script:
vip_storage = 95883
function setPlayerVipDays(cid, days)
return setPlayerStorageValue(cid, vip_storage, (os.time() + 86400 * days)) and days
end
function getPlayerVipDays(cid)
local left, d = (getPlayerStorageValue(cid, vip_storage) - os.time()), 0
while left >= 86400 do
left = left - 86400
d = d+1
end
return d
end
function isPlayerVip(cid)
return getPlayerStorageValue(cid, vip_storage) >= os.time() and TRUE or FALSE
end
function doPlayerAddVipDays(cid, days)
return setPlayerStorageValue(cid, vip_storage, (os.time() + (86400 * getPlayerVipDays(cid)) + (86400 * days))) and days
end
function doPlayerRemoveVip(cid)
return setPlayerStorageValue(cid, vip_storage, 0) and TRUE
end
Feito isso vá na pasta data/actions/actions.xml e coloque isso no final do action.xml
<action actionid="5786" script="vipdoor.lua"/>
<action itemid="5785" script="vip.lua"/>
O item que estamos usando e esta medalha:(itemid:5785)
Agora va em data/actions/scripts copie qualquer script, apague o que tem dentro e cole isto:
function onUse(cid, item, fromPosition, itemEx, toPosition)
if isPlayerVip(cid) == TRUE then
if getCreaturePosition(cid).y < toPosition.y then
doTeleportThing(cid, {x=toPosition.x,y=toPosition.y+1,z=toPosition.z}, TRUE)
else
doTeleportThing(cid, {x=toPosition.x,y=toPosition.y-1,z=toPosition.z}, TRUE)
end
doCreatureSay(cid, "Welcome VIP Player!", TALKTYPE_ORANGE_1)
doSendMagicEffect(getCreaturePosition(cid), 10)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sorry, but only VIP Players can pass here! Buy VIP on the WEB.")
end
return TRUE
end
Salve como vipdoor.lua, este é o script da porta vip, caso o player nao seja vip ira aparecer aquela msg disendo para compra a vip na web.
Para a porta funcionar você tenque ir no seu editor de mapas clicar com o botão direito na porta clicar em propriedades e colocar actionid:5786
Agora na mesma pasta data/actions/scripts copie outro arquivo apague tudo e cole isso:
local days = 30
local levelToBeVIP = 1
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) >= levelToBeVIP then
if isPlayerVip(cid) == FALSE then
doCreatureSay(cid, "CONGRATULATIONS! You are now a VIP for "..days.." days! You can now enter the VIP-area and use unique features!. ", TALKTYPE_ORANGE_1)
end
doSendAnimatedText(getPlayerPosition(cid), "Welcome!", TEXTCOLOR_RED)
doPlayerAddVipDays(cid, days)
doRemoveItem(item.uid, 1)
doSendAnimatedText(getCreaturePosition(cid), "+"..days.." days", 30)
else
doPlayerSendCancel(cid, "You need level "..levelToBeVIP.." to be a VIP player.")
end
return TRUE
end
Salve como vip.lua
Onde tem o número 30 é o numero de dias que irá adicionar
Onde tem o numero 1 é o lvl que presisa pra usar a medalha.
É isso ae sua VIP Medal tá pronta, é so clicar nela que você ganhara 30 dias de VIP
Observação: quando a vip acabar o player não é teleportado para o templo.O player vai ficar sim na area vip mas para resolver este problema, coloque portas vips em todos os lugares, para o player nao vip nao conseguir entrar nas areas vips.
Qualquer bug só avisa.