Postado Setembro 19, 2023 1 ano local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onCastSpell(cid, var) local pos = getCreaturePosition(cid) local creatures = getSpectators(pos, 3, 3, false) if creatures then local validTargets = {} for _, target in ipairs(creatures) do if isCreature(target) and (isPlayer(target) or isMonster(target)) then table.insert(validTargets, target) end end if #validTargets > 0 then doCreatureSay(cid, "Prepare to be drained!", TALKTYPE_MONSTER) for _, target in ipairs(validTargets) do local first = getCreatureHealth(target) doCreatureSay(target, "Uh-oh, I'm getting drained!", TALKTYPE_MONSTER) if doCombat(cid, combat, var) == LUA_NO_ERROR then local second = getCreatureHealth(target) local damage = first - second if damage > 0 then local addhealth = damage * 0.5 doCreatureAddHealth(cid, addhealth) doSendAnimatedText(getCreaturePosition(target), "+" .. addhealth, TEXTCOLOR_GREEN) doSendMagicEffect(getCreaturePosition(target), CONST_ME_MAGIC_GREEN) doSendDistanceShoot(getCreaturePosition(target), pos, 40) end end end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Nenhum alvo válido encontrado.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Nenhum alvo válido encontrado.") end return true end Editado Setembro 20, 2023 1 ano por GM Vortex (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.