Postado Dezembro 5, 2014 10 anos Olá, estou criando uma spell cuja função será executar o target caso esteja com a vida <= a 20% de sua vida total Para isso, criei o seguinte script: function onCastSpell(cid, var) local CreatureMaxHealth = getCreatureMaxHealth(getCreatureTarget(cid)) if getCreatureTarget(cid) then local CreatureHealth = getCreatureHealth(getCreatureTarget(cid)) local critLife = CreatureMaxHealth/5 if CreatureHealth <= critLife then local Target = getCreatureTarget(cid) setCombatParam(Target, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(Target, COMBAT_PARAM_EFFECT, CONST_ME_GIANTICE) setCombatParam(Target, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE) setCombatParam(Target, COMBAT_PARAM_BLOCKARMOR, true) setCombatParam(Target, COMBAT_PARAM_BLOCKSHIELD, true) setCombatParam(Target, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(Target, COMBAT_PARAM_EFFECT, CONST_ME_STUN) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill * 1000 + attack * 1000, level * 1000 return -(skillTotal * 1000 + levelTotal), -(skillTotal * 1000 + levelTotal) end setCombatCallback(Target, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") end end end Entretanto, a spell não funciona Esse script foi baseado na spell criada por SailorMoonLive, uma spell que suga em até 60% da vida do target: --[[ -- You can use this spell and copy and modify it. -- -- Created By SailorMoonLive -- -- But pls don't remove this comment -- ]] function onCastSpell(cid, var) local CreatureMaxHealth = getCreatureMaxHealth(getCreatureTarget(cid)) if getCreatureTarget(cid) then local CreatureHealth = getCreatureHealth(getCreatureTarget(cid)) local critLife = CreatureMaxHealth/2 local lifedraw = ( CreatureHealth / 10) if CreatureHealth >= critLife then local Target = getCreatureTarget(cid) local targetPos = getPlayerPosition(Target) doCreatureAddHealth(Target, -lifedraw, COMBAT_LIFEDRAIN) doSendAnimatedText(targetPos, lifedraw , TEXTCOLOR_GOLD) doSendMagicEffect(targetPos, 0) local pos = getPlayerPosition(cid) doCreatureAddHealth(cid, lifedraw, 1) doSendAnimatedText(playerPos, lifedraw , TEXTCOLOR_GOLD) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) else doCreatureSay(getCreatureTarget(cid), "No Kill Me PLS", 1) doCreatureSay(cid, "Vasa Daqui antes que eu mude de ideia", 1) end end
Postado Dezembro 5, 2014 10 anos ele só vai dar dano se a vida for menor que 20%? Explica melhor ai porque oque vc quer não tem nada a ver com nenhum dos scripts que vc postou Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Dezembro 5, 2014 10 anos Autor Sim, ela so vai dar dano se a porcentagem da vida do target for menor ou igual a 20%, como ainda nao sei fazer scripts peguei um que mexia com porcentagem de vida e tentei editar T-T
Postado Dezembro 5, 2014 10 anos Solução function onCastSpell(cid, var) if getCreatureHealth(variantToNumber(var)) <= (0.2 * getCreatureMaxHealth(variantToNumber(var)) ) then doTargetCombatHealth(cid, variantToNumber(var), 1, -getCreatureMaxHealth(variantToNumber(var)), -getCreatureMaxHealth(variantToNumber(var)), CONST_ME_STUN) doCreatureSay(cid, "EXECUTIONER", 20, false) doSendMagicEffect(getCreaturePosition(variantToNumber(var)), CONST_ME_GIANTICE) doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(variantToNumber(var)), CONST_ANI_SMALLICE) else doPlayerSendCancel(cid, "You can only cast this spell in creatures with less than 20% of life.") return false end return true end só lembre de colocar needtarget="1" qnd for declarar a spell no spells.xml Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
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.