brendoonh 15 Postado Fevereiro 16 Share Postado Fevereiro 16 (editado) Boa noite, Alguém com conhecimento poderia me ajudar neste script?O script tem uma pequena "falha" quando o jogador morre ou desloga o tempo é resetado. Nesse sistema a cada 1h online o jogador recebe 1ppoint. Unico problema vem sendo esse citado acima. Não tenho conhecimento , mas acredito que possa ser o arquivo do globalevents, irei deixa-lo abaixo para caso alguem consiga me ajudar. points/globalevents Spoiler --[[ P Points System by LsM. ###### © 2011 Version : v1.0 ]]-- local config = { p_time = 3600, -- Tempo em segundos para receber os pontos( 3600 = 1hora ) p_points = 1 -- Quantidade de pontos recebida a cada "p_time" } local function givePoints(cid, quant) if os.time() - getCreatureStorage(cid, 1219) >= config.p_time then doPlayerSendTextMessage(cid, 19, "Parabéns, você recebeu ".. config.p_points .." p-point. Agora você tem ".. config.p_points + getPoints(cid) .." p-points na sua conta. Seu tempo foi zerado, proximo p-points daqui 2 horas.") doPlayerAddPoints(cid, quant) doCreatureSetStorage(cid, 1219, 0) doCreatureSetStorage(cid, 1219, os.time()) end return true end function onThink(interval) for i, v in pairs(getPlayersOnline()) do givePoints(v, config.p_points) end return true end Caso alguém consiga me da uma força.. Editado Fevereiro 16 por brendoonh ortografia Link para o comentário https://xtibia.com/forum/topic/259953-resolvido-resetando-timer-quando-morre-ou-desloga/ Compartilhar em outros sites More sharing options...
0 Caronte 446 Postado Fevereiro 20 Share Postado Fevereiro 20 Em 18/02/2025 em 19:56, brendoonh disse: points/creatureevents --[[ P Points System by LsM. ###### © 2011 Version : v1.0 ]]-- function onLogin(cid) doCreatureSetStorage(cid, 1219, os.time()) return true end function onLogout(cid) doCreatureSetStorage(cid, 1219, 0) return true end Aqui tem a parte que voce citou @Caronte Como ficaria o codigo? pq tentei de uma forma aqui e deu problema rsrsrs Você pode comentar esses dois --doCreatureSetStorage (para caso você mude de ideia e queira reverter) ou remover esse código todo de login e logout e remover o script do xml que vai funcionar do jeito que você quer, aí zerar você ou cria um talkaction ou zera na mão no banco de dados. brendoonh reagiu a isso 1 Link para o comentário https://xtibia.com/forum/topic/259953-resolvido-resetando-timer-quando-morre-ou-desloga/#findComment-1776099 Compartilhar em outros sites More sharing options...
0 Yan Oliveira 214 Postado Fevereiro 17 Share Postado Fevereiro 17 Isso ocorre porque após os pontos serem atribuídos ao player, a maneira para controlar o tempo de atribuir novamente, é através de uma storage, que é uma "armazenamento temporário e virtual". E como todas as criaturas do jogo como Player, Monster e NPC são endereços de memória, toda vez que um player desloga ou morre, o cid (creature ID) é alterado, porque aquele endereço de memória foi perdido, e foi criado um novo quando ele logou novamente. E a storage é atribuída à um CID. Há algumas maneiras de contornar isso. Acredito que uma maneira simples é criar uma tabela no banco de dados. Tem alguma tabela de points no seu servidor? brendoonh reagiu a isso 1 Link para o comentário https://xtibia.com/forum/topic/259953-resolvido-resetando-timer-quando-morre-ou-desloga/#findComment-1776081 Compartilhar em outros sites More sharing options...
0 Caronte 446 Postado Fevereiro 17 Share Postado Fevereiro 17 Pesquisei o sistema, e ele é pra funcionar assim mesmo, porque existe uma função de zerar os pontos ao deslogar: function onLogout(cid) doCreatureSetStorage(cid, 1219, 0) return true poste o código inteiro ou remova um código parecido com esse. brendoonh reagiu a isso 1 Link para o comentário https://xtibia.com/forum/topic/259953-resolvido-resetando-timer-quando-morre-ou-desloga/#findComment-1776085 Compartilhar em outros sites More sharing options...
0 brendoonh 15 Postado Fevereiro 18 Autor Share Postado Fevereiro 18 (editado) Em 17/02/2025 em 14:54, Caronte disse: Pesquisei o sistema, e ele é pra funcionar assim mesmo, porque existe uma função de zerar os pontos ao deslogar: function onLogout(cid) doCreatureSetStorage(cid, 1219, 0) return true poste o código inteiro ou remova um código parecido com esse. points/creatureevents --[[ P Points System by LsM. ###### © 2011 Version : v1.0 ]]-- function onLogin(cid) doCreatureSetStorage(cid, 1219, os.time()) return true end function onLogout(cid) doCreatureSetStorage(cid, 1219, 0) return true end Aqui tem a parte que voce citou @Caronte Como ficaria o codigo? pq tentei de uma forma aqui e deu problema rsrsrs Editado Fevereiro 18 por brendoonh Link para o comentário https://xtibia.com/forum/topic/259953-resolvido-resetando-timer-quando-morre-ou-desloga/#findComment-1776092 Compartilhar em outros sites More sharing options...
0 brendoonh 15 Postado Fevereiro 21 Autor Share Postado Fevereiro 21 23 horas atrás, Caronte disse: Você pode comentar esses dois --doCreatureSetStorage (para caso você mude de ideia e queira reverter) ou remover esse código todo de login e logout e remover o script do xml que vai funcionar do jeito que você quer, aí zerar você ou cria um talkaction ou zera na mão no banco de dados. Funcionou! BRIGADÃOOOOOOOO @Caronte. consegue ajudar neste? Link para o comentário https://xtibia.com/forum/topic/259953-resolvido-resetando-timer-quando-morre-ou-desloga/#findComment-1776107 Compartilhar em outros sites More sharing options...
0 Yan Oliveira 214 Postado Fevereiro 24 Share Postado Fevereiro 24 A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico. Link para o comentário https://xtibia.com/forum/topic/259953-resolvido-resetando-timer-quando-morre-ou-desloga/#findComment-1776132 Compartilhar em outros sites More sharing options...
Pergunta
brendoonh 15
Boa noite,
Alguém com conhecimento poderia me ajudar neste script?
O script tem uma pequena "falha" quando o jogador morre ou desloga o tempo é resetado.
Nesse sistema a cada 1h online o jogador recebe 1ppoint. Unico problema vem sendo esse citado acima.
Não tenho conhecimento , mas acredito que possa ser o arquivo do globalevents, irei deixa-lo abaixo para caso alguem consiga me ajudar.
points/globalevents
--[[ P Points System by LsM. ###### © 2011 Version : v1.0 ]]-- local config = { p_time = 3600, -- Tempo em segundos para receber os pontos( 3600 = 1hora ) p_points = 1 -- Quantidade de pontos recebida a cada "p_time" } local function givePoints(cid, quant) if os.time() - getCreatureStorage(cid, 1219) >= config.p_time then doPlayerSendTextMessage(cid, 19, "Parabéns, você recebeu ".. config.p_points .." p-point. Agora você tem ".. config.p_points + getPoints(cid) .." p-points na sua conta. Seu tempo foi zerado, proximo p-points daqui 2 horas.") doPlayerAddPoints(cid, quant) doCreatureSetStorage(cid, 1219, 0) doCreatureSetStorage(cid, 1219, os.time()) end return true end function onThink(interval) for i, v in pairs(getPlayersOnline()) do givePoints(v, config.p_points) end return true end
Caso alguém consiga me da uma força..
ortografia
Link para o comentário
https://xtibia.com/forum/topic/259953-resolvido-resetando-timer-quando-morre-ou-desloga/Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados