Postado Janeiro 15, 2015 10 anos Este é um post popular. Bom, galerinha, este é um creature event com callback onLogin no qual chama uma função em loop/laço infinito.checkHunger(cid)O que faz essa função? Ela checa os ticks de uma condição de regeneração, na qual o creatureid player adquire ao se alimentar com um food no game. Se o valor desses ticks indicar que o player não se alimentou, será feita uma contagem de segundos via storage. Se essa contagem passar do tempo máximo que se pode ficar sem se alimentar (alterável), o player começa a perder determinada porcentagem (alterável) de sua saúde (Health/Life/Vida), de certo em certo tempo (também alterável), até que o mesmo se alimente novamente ou simplesmente morra. Caso o player morra, quando entrar, ele vai continuar perdendo a porcentagem de HP, até que enfim se alimente. Acredito que seja bom para servidores sérios. Sem mais delongas..checkhunger.lua (data\creaturescripts\scripts): -- Developed by Wise ~ TibiaKing.com local t = { hp = 2, -- % maxTime = 25 * 60, -- minutes * 60 lossInterval = 5, -- seconds hstor = 98765 -- hunger storage } function checkHunger(cid) local h = getPlayerStorageValue(cid, t.hstor) local loss = t.lossInterval > 1 and t.lossInterval or 2 if getPlayerFlagValue(cid, PLAYERFLAG_CANNOTBEATTACKED) then return true elseif getPlayerFood(cid) < 1 then if h <= t.maxTime then if h < 0 then setPlayerStorageValue(cid, t.hstor, 0) end setPlayerStorageValue(cid, t.hstor, getPlayerStorageValue(cid, t.hstor) + 1) else addEvent(function() if isPlayer(cid) then doCreatureAddHealth(cid, -(t.hp * (getCreatureMaxHealth(cid) / 100))) end end, (loss - 1) * 1000) end else if h > 0 then setPlayerStorageValue(cid, t.hstor, 0) end end addEvent(function() if isPlayer(cid) then checkHunger(cid) end end, 1000) return true end function onLogin(cid) return checkHunger(cid) and true end Tag - creaturescripts.xml (data\creaturescripts): <event type="login" name="checkHunger" event="script" value="checkhunger.lua"/> Configuração simples: local t = { hp = 2, -- porcentagem de HP que o player perderá maxTime = 25 * 60, -- tempo máximo para ficar sem se alimentar em minutos * 60 (no caso, seriam 25 minutos, ou seja, 1500 segundos) lossInterval = 5, -- tempo do intervalo de perda da porcentagem do HP, em segundos (no caso, perderia a porcentagem estipulada a cada 5 segundos) hstor = 98765 -- storage que faz a contagem do tempo máximo } PS: com esse callback, não se registra creature event. The corrupt fear us. The honest support us. The heroic join us.
Postado Janeiro 15, 2015 10 anos Muito bom, Parabéns pela contribuição . Rep+ Dúvida: foi testado em qual versão? Editado Janeiro 15, 2015 10 anos por Bruno Minervino (veja o histórico de edições) Atenciosamente, Bruno Minervino
Postado Janeiro 15, 2015 10 anos Interessante, não se ve muito hunger system por ae! E tinha que ser você pra trazer isso pro forum né hahaha! Reputado brother! "A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento." Ajudei? Reputar não vai te matar E Ainda me incentiva muito a continuar ajudando a todos! Meus trabalhos: [TUTORIAL] Quando preocupar-se com as cores? - Spriting [TUTORIAL] Pedras e Rochas - Spriting [APOSTILAS] Cores e sua parte Teórica - Spriting [TUTORIAL] Entendendo o Básico sobre cores - Spriting [TUTORIAL] Spriting, por onde começar? [TUTORIAL] Coisas para evitar - Spriting [TUTORIAL] Usando e Escolhendo Cores - Spriting [TUTORIAL] Pensando em Cores - Spriting [TUTORIAL] Adicionando novos Pokémons em seu PDA com e sem Icon System [TUTORIAL] [OLD/OTC] Criando link de Download Direto para seu cliente! Meu Show-off Thayam's Show Off
Postado Janeiro 15, 2015 10 anos Gostei do sistema. Seria bacana ver isso em um otserver de sobrevivência. Será que tem algum sendo feito por aí?
Postado Janeiro 15, 2015 10 anos Autor Dúvida: foi testado em qual versão? Obrigado. Testei com o TFS 0.3.6, mas pelas funções, acredito que execute de boa também com TFS 1.0 e com o TFS 0.4 (com exceção de uma função na última versão citada, tendo que alterar somente setPlayerStorageValue por doCreatureSetStorage). Interessante, não se ve muito hunger system por ae! E tinha que ser você pra trazer isso pro forum né hahaha! Ah, eu já tinha pensado em fazer isso antes, daí deu vontade e aqui está heheh Valeu, brother! Gostei do sistema. Seria bacana ver isso em um otserver de sobrevivência. Será que tem algum sendo feito por aí? Que bom que gostou. Então, se encontrar algum que use ele, me avise. Seria uma honra ver pessoas desfrutando dele por aí ;] The corrupt fear us. The honest support us. The heroic join us.
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.