Postado Abril 16, 2019 6 anos .Qual servidor ou website você utiliza como base? 8.60 Global Qual o motivo deste tópico? Ajuda para criar uma Spell Citar Olá todos, estou com uma ideia mas não consigo concretizar, quero uma spell para knight que funcione basicamente como um exori mas que ao mesmo tempo drene a life do mob e cure o player um número proporcional, fiz alguns códigos e coletei alguns na internet mas ou o codigo nao funcionava, ou não operava de maneira similar a que pretendo, para deixar claro o que pretendo é o seguinte: o player que utiliza essa spell vai dar um dano igual ao exori, ou seja vai ser baseado em skill e dano físico, e ao mesmo tempo ele vai se curar um valor relativo ao dano, mas não o numero igual, por exemplo se ele hitar 100 ele vai se curar 50, mas se ele jogar novamente a spell ele hitar 110 ele se cura 55, não quero uma spell baseada em magic level, quero baseada em skill, vou postar alguns códigos que tentei e alguns que coletei: Você tem o código disponível? Se tiver publique-o aqui: --Esse codigo foi obtido em http://tibiaotmods.blogspot.com/2012/02/magia-life-drain.html e possui uma ideia interessante, porem queria um dano em área e que o dano fosse relativo a skill, level e etc do player igual a um dano causado por exori. 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) end end end --Essa spell abaixo foi uma que tentei me baseando no pouco conhecimento que tenho mas deu erro no distro e não funcionou: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) local combatExura = createCombatObject() setCombatParam(combatExura, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combatExura, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combatExura, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combatExura, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onGetFormulaValues(cid, level, maglevel) min = ((level / 5) + (maglevel * 1.4) + ? max = ((level / 5) + (maglevel * 1.8) + 11) return min, max end setCombatCallback(combatExura, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.1 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var) doCombat(cid, combat, var) return doCombat(cid, combatExura, var) end -- E essa ultima foi também uma tentativa falha: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) local combat2 = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4.5, 9) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.1 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell1(param) doCombat(param.cid, combat, param.var) end function onCastSpell2(param) doCombat(param.cid, combat2, param.var) end function onCastSpell(cid, var) local param = {cid = cid, var = var} addEvent(onCastSpell2, 100, param) return addEvent(onCastSpell1, 100, param) end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Postado Abril 16, 2019 6 anos @greeneyzer olha na minha assinatura a baixo eu publiquei uma formula para fazer dar dano por level e por alguma skill ou ate mais de uma [SPELL] Dano Por Skill 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
Postado Abril 16, 2019 6 anos Autor 5 minutos atrás, Brunds disse: @greeneyzer olha na minha assinatura a baixo eu publiquei uma formula para fazer dar dano por level e por alguma skill ou ate mais de uma [SPELL] Dano Por Skill agradeço a ajuda mas eu ja criei spells com danos por spells e etc, o que eu não consigo é fazer a spell fazer o dano das skills igual um exori e ao mesmo tempo healar a vida do player, uma espécie de life drain / life steal.
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.