Postado Janeiro 8, 2018 7 anos Isto mesmo pessoal, estou precisando de um script onde tal item, exemplo eu crio um item novo que vai servir como uma especie de "runa" que ao clicar em use neste item ele solta a magia que eu colocar nele para que ele solte, exemplo "Livro da Vida" ai ele solta a magia "exura". alguém poderia me ajudar?
Postado Janeiro 8, 2018 7 anos Você pode fazer assim no caso da exura, cria o arquivo item_skill.lua em data/actions/scripts: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onGetFormulaValues(cid, level, maglevel) min = (level * 2 + maglevel * 3) * 0.5 - 30 max = (level * 2 + maglevel * 3) * 0.6 if min < 25 then min = 25 end return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onUse(cid, item, frompos, item2, topos) return doCombat(cid, combat, numberToVariant(cid)) end E adicionar em actions.xml a tag: <action itemid="2195" script="item_skill.lua" /> Isso no OTServ SVN Version 0.6.0. Basicamente, qual a diferença? Um action você teria que ter a função "onUse". Dentro dela você chama o "doCombat" e como não temos o parâmetro "var" vamos usar o "numberToVariant(cid)".
Postado Janeiro 8, 2018 7 anos Autor 12 minutos atrás, marcot disse: Você pode fazer assim no caso da exura, cria o arquivo item_skill.lua em data/actions/scripts: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onGetFormulaValues(cid, level, maglevel) min = (level * 2 + maglevel * 3) * 0.5 - 30 max = (level * 2 + maglevel * 3) * 0.6 if min < 25 then min = 25 end return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onUse(cid, item, frompos, item2, topos) return doCombat(cid, combat, numberToVariant(cid)) end E adicionar em actions.xml a tag: <action itemid="2195" script="item_skill.lua" /> Isso no OTServ SVN Version 0.6.0. Basicamente, qual a diferença? Um action você teria que ter a função "onUse". Dentro dela você chama o "doCombat" e como não temos o parâmetro "var" vamos usar o "numberToVariant(cid)". onde mudo a magia que ira soltar?, e teria como fazer para quando usar ele perder mana, pois deu tudo certo mas nao usa mana Editado Janeiro 8, 2018 7 anos por apollo333 (veja o histórico de edições)
Postado Janeiro 8, 2018 7 anos Você vai fazer o seguinte: copia tudo que está na magia e cola no action, depois procura essa parte: function onCastSpell(cid, var) return doCombat(cid, combat, var) end e substitua por: function onUse(cid, item, frompos, item2, topos) return doCombat(cid, combat, numberToVariant(cid)) end
Postado Janeiro 8, 2018 7 anos Autor 22 minutos atrás, marcot disse: Você vai fazer o seguinte: copia tudo que está na magia e cola no action, depois procura essa parte: function onCastSpell(cid, var) return doCombat(cid, combat, var) end e substitua por: function onUse(cid, item, frompos, item2, topos) return doCombat(cid, combat, numberToVariant(cid)) end fiz o que disse só que ainda nao esta gastando mana Editado Janeiro 8, 2018 7 anos por apollo333 (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.