Postado Janeiro 12, 2015 10 anos Autor Solução Em 12/01/2015 em 02:03, xWhiteWolf disse: eu tava tentando forçar isso daqui: function onThink(cid, interval) if getPlayerStorageValue(cid, config.register) == 1 then if getPlayerStorageValue(cid, config.storage) <= os.time() then doCreatureSay(cid, "Your extra experience rate has finished! It is now normaly experience rate.", TALKTYPE_ORANGE_1, true, cid) setPlayerStorageValue(cid, config.storage, 0) setPlayerStorageValue(cid, config.register, 0) local oldexp = getPlayerStorageValue(cid, config.expstorage) doPlayerSetExperienceRate(cid, oldexp) unregisterCreatureEvent(cid, "ExpStage") end end return true end o config.register tem que estar com valor 1 e o config.storage tem que estar menor que o tempo atual (por isso o 0) e aí ele vai voltar a exp pra antiga que tava salva no storage config.expstorage: local oldexp = getPlayerStorageValue(cid, config.expstorage) doPlayerSetExperienceRate(cid, oldexp) Esse foi show, realmente apareceu a msg que nao queria aparecer "Your extra experience rate has finished! It is now normaly experience rate." Porém, a exp continuou dobrada! Parece que ele mudou, mas mudou pra 2x ainda Wolf e Snow, muito obrigado pela ajuda! Nao consegui resolver! Vou refazer todos os chars. Realmente nao da pra saber o que está acontecendo! Eu tenho certeza que não fiz nada errado, o problema deve ser outro. +REP
Postado Janeiro 12, 2015 10 anos então vc vai ter que pegar o valor normal da exp pela db usando esse storage config.expstorage, procura os valores e pega o menor que tiver que seja maior que 0 e executa um doPlayerSetExperienceRate(cid, VALOR AQUI) pra todos os players online.. isso dá pra fazer pelo creaturescripts\scripts\login.luga só adicionando essa linha doPlayerSetExperienceRate(cid, VALOR AQUI) antes do ultimo return true. Depois que todos os players logarem e estiverem com a exp normalizada vc fecha o servidor, remove a linha do login.lua e adiciona o sistema novamente.
Postado Janeiro 13, 2015 10 anos Autor Em 12/01/2015 em 02:32, xWhiteWolf disse: então vc vai ter que pegar o valor normal da exp pela db usando esse storage config.expstorage, procura os valores e pega o menor que tiver que seja maior que 0 e executa um doPlayerSetExperienceRate(cid, VALOR AQUI) pra todos os players online.. isso dá pra fazer pelo creaturescripts\scripts\login.luga só adicionando essa linha doPlayerSetExperienceRate(cid, VALOR AQUI) antes do ultimo return true. Depois que todos os players logarem e estiverem com a exp normalizada vc fecha o servidor, remove a linha do login.lua e adiciona o sistema novamente. A parte do Login.lua entendi, a parte do config.exptorage me perdi. Eu conheço muito pouco de Prog, pode me ajudar mais detalhadamente? Escuta white, o problema não é esse. Acabei de achar um player sem esses storages e que ta com o BUG de XP. Quanto eu subistituo o arquivo .s3db o problema acaba, só que as contas resetam. :/ Editado Janeiro 13, 2015 10 anos por Hugoo222222 (veja o histórico de edições)
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.