Postado Março 6, 2019 6 anos Olá, hoje estou trazendo um script de uma spell que uso no meu servidor. Quando o jogador utiliza, recupera mana a cada segundo, porém não pode se mover e caso leve algum dano a spell é cancelada. Adicionei também para que o jogador só possa utilizar a magia caso esteja com a condição "SOUL", então ele precisa ter matado algum monstro recentemente. Em spells crie um arquivo chamado rest.lua e coloque o seguinte: local config = { storage = 3482142, -- storage para verificar se a spell ta ativa antes de healar cooldownStorage = 3910229, --- storage do cooldown cooldown = 23, --- tempo entre um uso e outro duration = 6, --- duração effect = 12 -- efeito que sai ao falar a spell } function onCastSpell(cid, var) if getCreatureCondition(cid, CONDITION_SOUL) then if os.time() - getPlayerStorageValue(cid, config.cooldownStorage) >= 0 then setPlayerStorageValue(cid, config.storage, os.time() + config.duration) setPlayerStorageValue(cid, config.cooldownStorage, os.time() + config.cooldown) doSendMagicEffect(getCreaturePosition(cid), config.effect) doCreatureSay(cid,"Rest!!!", 19) for i=1,5 do addEvent(healMana, i * 1000, cid) end doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 5000, cid, false) return true else doPlayerSendCancel(cid, "Rest in cooldown, you must wait "..(-1 * (os.time() - getPlayerStorageValue(cid, config.cooldownStorage))).." seconds.") return false end else doPlayerSendCancel(cid, "You are not in fight") return false end end function healMana(cid) if getPlayerStorageValue(cid, config.storage) > 0 then local level = getPlayerLevel(cid) local extraMana = math.ceil(level/2) local manaToAdd = 50 + extraMana local maxMana = getCreatureMaxMana(cid) if (manaToAdd > math.ceil(maxMana / 10)) then manaToAdd = math.ceil(maxMana/10) end doCreatureAddMana(cid, manaToAdd) end end Em spells.xml coloque: <instant name="Rest" words="exura kor" lvl="35" manapercent="5" prem="1" range="4" exhaustion="2000" needlearn="0" event="script" value="rest.lua"> <vocation id="9"/> </instant> Em creaturescripts crie um arquivo chamado rest.lua e coloque: function onStatsChange(cid, attacker, type, combat, value) if value >= 1 and (type == STATSCHANGE_HEALTHLOSS) or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == (STATSCHANGE_MANALOSS)) then if (getPlayerStorageValue(cid,3482142) - os.time() > 0) and isCreature(attacker) then setPlayerStorageValue(cid, 3482142, -1) doCreatureSetNoMove(cid, false) return true end end return true end Adicione no creaturescript.xml <event type="statschange" name="sleepcancel" event="script" value="rest.lua"/> Agora para garantir que funcione é necessário adicionar no login.lua o creatureevent: registerCreatureEvent(cid, "rest") if getPlayerStorageValue(cid, 3482142) ~= 0 then setPlayerStorageValue(cid, 3482142, 0) end Se eu não esqueci de nada, é para funcionar, agora vou mostrar um gif da spell: https://giphy.com/gifs/5nrWO73TnLj4Bkra24 Sugestão: também é possível mudar o cálculo da cura utilizando um math.random, assim não fica valores estáticos. Editado Março 13, 2019 6 anos por Reds (veja o histórico de edições) Toda terça-feira um tópico novo: Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/ Peça sua spell (Suporte): https://tibiaking.com/forums/topic/84162-peça-sua-spell/ Chuva de flechas (Spell): https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/ Doom (Spell): https://tibiaking.com/forums/topic/51622-doom-spell/ Utilização do VS Code (Infra): https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/ SD com Combo (Spell): https://tibiaking.com/forums/topic/94520-sd-modificada/ Alteração attack speed (C++): https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/ Bônus de Speed (NPC): https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
Postado Março 6, 2019 6 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Spoiler Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 REP. Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas. discord.gg/phJZeHa2k4 Projeto ATS (Naruto) Informações Abaixo Facebook Youtube Discord Tutoriais / Conteúdos Clique Aqui
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.