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.
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.