Postado Agosto 10, 2016 8 anos Primeiramente eu queria uma talkaction que adicionasse premmy por apenas alguns minutos, como acho que nao existe isso, fiz o seguinte: Spoiler function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Exemplo de como usar o comando:\nAdicionar 3 minutos para o player 'Jogador'\n/addvipm Jogador, 3") return true end local t = string.explode(param, ",") local player = getPlayerByNameWildcard(tostring(t[1])) if(not isPlayer(player)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player nao existe.") return true end local pos = getCreaturePosition(player) local effect = 506 local minuto = tonumber(t[2]) local minutos = minuto*60 doPlayerAddPremiumDays(player, 1) setPlayerStorageValue(player, 8445601, 1) setPlayerStorageValue(player, 8445604, 1) setPlayerStorageValue(player, 8445603, os.time() + minutos) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "".. getPlayerName(cid) .." te deu ".. minuto .." minuto(s) de VIP!") doSendMagicEffect(pos, effect) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "".. t[1] .." recebeu ".. minuto .." minuto(s) de VIP!") return true end Explicando algumas coisas: Storage 8445601 estou usando no login para teleportar o player para o templo quando acaba o premmy. Storage 8445604 é para verificar juntamente com a os.time 8445603 quando acaba a premmy de minutos. Então, coloquei no login.lua esta função para teleportar o player pro temple quando a premmy de minutos acabar: Citar if (getPlayerStorageValue(cid, 8445603) <= os.time()) and (getPlayerStorageValue(cid, 8445604) >= 1) then setPlayerStorageValue(cid, 8445601, -1) setPlayerStorageValue(cid, 8445604, -1) local atual = getPlayerPremiumDays(cid) doPlayerRemovePremiumDays(cid, atual) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) sendMsgToPlayer(cid, 20, "Sua VIP acabou!") end Até aí tudo bem, tudo funcionando, o problema é que como esse sistema adiciona alguns minutos apenas de VIP, queria que, em tempo real quando acabar o VIP o player fosse pro templo, para isto a melhor solução que consegui encontrar era criar uma creaturescript do tipo advance, porém nao esta funcionando. Ela esta assim: creaturescripts.xml <event type="advance" name="CheckVip" event="script" value="checkvip.lua"/> checkvip.lua Citar function onAdvance(cid, skill, oldLevel, newLevel) if (getPlayerStorageValue(cid, 8445603) <= os.time()) and (getPlayerStorageValue(cid, 8445604) >= 1) then setPlayerStorageValue(cid, 8445601, -1) setPlayerStorageValue(cid, 8445604, -1) local atual = getPlayerPremiumDays(cid) doPlayerRemovePremiumDays(cid, atual) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) sendMsgToPlayer(cid, 20, "Sua VIP acabou!") end return true end Mas, por algum motivo, este checkvip não está funcionando, alguém viu algum erro no script? Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.