Ir para conteúdo

Featured Replies

Postado

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo