Postado Dezembro 25, 2016 8 anos Boa tarde pessoal! Galera, estou aqui para poder tirar uma dúvida em relação a um script de premium days. Bom, este script eu consegui aqui no fórum, e ele faz com que quando vc cria uma conta pela primeira vez, ele faz com que vc ganhe 7 dias de premium grátis, o mesmo só se aplica na criação da conta, ou seja, se vc criar 10 chars, a conta continuará com apenas 7 dias. O script funciona perfeitamente, ele adiciona os 7 dias tranquilamente, entretanto, quando vc fecha o servidor e abre novamente, ele adiciona novamente mais 7 dias de premium na conta, este procedimento realmente só acontece quando reinicia o otserv. Gostaria de uma ajuda para poder resolver isso, ja tentei procurar aqui no fórum como poder resolver mas não obtive respostas. Script: 1. Crie um arquivo com o nome de "gainpremium.lua" (sem aspas) em: data/creaturescripts/scripts Ponha: -- [( Created by Matheus for TibiaKing.com )] -- function onLogin(cid) local days = 3 -- Dias de premium que o player irá ganhar. if getGlobalStorageValue(getPlayerAccountId(cid)) <= 0 then doPlayerAddPremiumDays(cid, days) setGlobalStorageValue(getPlayerAccountId(cid), 1) end return TRUE end 2. Em, data/creaturescripts abra o arquivo creaturescripts.xml. Adicione a tag: <event type="login" name="gainpremium" event="script" value="gainpremium.lua"/> 3. Em, data/creaturescripts/scripts abra o arquivo login.lua. Adicione esta linha antes do ultimo return true: registerCreatureEvent(cid, "gainpremium") Agradeço desde já!
Postado Dezembro 25, 2016 8 anos Bom a questão é que ao você fecha o servidor, ele está fechando sem da um save antes, nem mesmo você deve ter deslogado o char para salvar, o servidor fecha, e quando abre, ele volta com as alterações do ultimo save, então se o server não salvou nesse meio tempo, ele vai voltar como estava antes! Abre o server, use o script, relogue seu char para salvar ele, ou dê um save, e então fecha e abre o servidor novamente!
Postado Dezembro 25, 2016 8 anos Autor Vou dar uma verificada e então postarei aqui o resultado, obrigado pela resposta amigo! EDIT: Doutor, desculpa a demorar para responder, porém, fiz oq vc pediu mas continua a persistir o erro. Como se pode ver a conta estava com 14 dias e agora está com 21 depois quer reiniciei o OT, agregou mais 7 dias. PACC.bmp Editado Dezembro 26, 2016 8 anos por Murioku Responder ao comentário acima. (veja o histórico de edições)
Postado Dezembro 26, 2016 8 anos tenta usar esse: function onLogin(cid) local storage = getPlayerAccountId(cid)+550 local days = 7 if getGlobalStorageValue(storage) < 1 then setGlobalStorageValue(storage, 1) doPlayerAddPremiumDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu "..days.." dias de VIP, bom jogo!") end return true end
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.