Postado Janeiro 22, 2017 8 anos Olá pessoal, eu sou novo na programação com lua e gostaria de pedir ajuda numa spell. A ideia seria dar damage num monstro e curar com a mesma quantidade, como se estivesse "drenando" a vida do monstro. Tentei dar uma pesquisada e pensei em juntar o exori frigo com o exura vita porque daria certo na ideia que eu gostaria. No entanto, na hora em que utilizo a magia, a animacao do exori frigo aparece no corpo do player, gostaria de saber se eu posso utilizar o jeito que eu fiz (retornar dois valores) e onde que eu encontro o que cada parâmetro faz (se existir algo do tipo em algum site). Utilizo TFS 1.2 para tibia 10.98 [Ice_Strike (exori frigo)] Citar local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 1.4) + 8 local max = (level / 5) + (maglevel * 2.2) + 14 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) return combat:execute(creature, variant) end [Ultimate_healing (exura vita)] Citar local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 6.8) + 42 local max = (level / 5) + (maglevel * 12.9) + 90 return min, max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) return combat:execute(creature, variant) end [Meu codigo] Citar local combat_heal = Combat() local combat_damage = Combat() combat_heal:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING) combat_heal:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) combat_heal:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) combat_damage:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) combat_damage:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) combat_damage:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 6.8) + 42 local max = (level / 5) + (maglevel * 12.9) + 90 return min, max end combat_heal:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") combat_damage:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) return combat_heal:execute(creature, variant), combat_damage:execute(creature, variant) end Obrigado pela atenção e se alguém puder me ajudar eu agradeço.
Postado Janeiro 22, 2017 8 anos Solução testa esse function onCastSpell(cid) local formula = getPlayerLevel(cid) * getPlayerMagLevel(cid) local target = getCreatureTarget(cid) if target < 1 then doPlayerSendCancel(cid, "You need a target.") return false end if isPlayer(target) then formula = formula / getPlayerLevel(target) else formula = formula / 15 end local stealPercent = formula / 100 * 20 doCreatureAddHealth(cid, stealPercent) doSendAnimatedText(getThingPos(cid), "+" .. stealPercent, 25) doSendDistanceShoot(getThingPos(cid), getThingPos(target), 15) doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getThingPos(target), 0, - formula, - formula * 0.5, CONST_ME_MAGIC_RED) return true end
Postado Janeiro 23, 2017 8 anos Autor Deu certo sim, valeuuuu +REP. Editado Janeiro 23, 2017 8 anos por Mat123282 (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.