zbizu
Legendary OT User
What features does it have onChangeHealth can't provide?
example reflect:
example reflect:
Code:
local shoottypes = {
[COMBAT_NONE] = {CONST_ANI_SNOWBALL, CONST_ME_DRAWBLOOD},
[COMBAT_PHYSICALDAMAGE] = {CONST_ANI_LARGEROCK, CONST_ME_DRAWBLOOD},
[COMBAT_ENERGYDAMAGE] = {CONST_ANI_ENERGY, CONST_ME_ENERGYHIT},
[COMBAT_EARTHDAMAGE] = {CONST_ANI_EARTH, CONST_ME_POISONAREA},
[COMBAT_FIREDAMAGE] = {CONST_ANI_FIRE, CONST_ME_TELEPORT},
[COMBAT_UNDEFINEDDAMAGE] = {CONST_ANI_LARGEROCK, CONST_ME_DRAWBLOOD},
[COMBAT_LIFEDRAIN] = {CONST_ANI_INFERNALBOLT, CONST_ME_MAGIC_RED},
[COMBAT_MANADRAIN] = {CONST_ANI_POWERBOLT, CONST_ME_TELEPORT},
[COMBAT_HEALING] = {CONST_ANI_LARGEROCK, CONST_ME_DRAWBLOOD},
[COMBAT_DROWNDAMAGE] = {CONST_ANI_ENERGYBALL, CONST_ME_LOSEENERGY},
[COMBAT_ICEDAMAGE] = {CONST_ANI_ICE, CONST_ME_ICEATTACK},
[COMBAT_HOLYDAMAGE] = {CONST_ANI_HOLY, CONST_ME_HOLYDAMAGE},
[COMBAT_DEATHDAMAGE] = {CONST_ANI_DEATH, CONST_ME_MORTAREA}
}
function onChangeHealth(cid, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType)
if attacker ~= cid then
if math.random(1, 100) <= 7 then
reflect_dmg = -primaryDamage
reflect_type = primaryType
if primaryType == COMBAT_HEALING then
reflect_dmg = primaryDamage
reflect_type = COMBAT_PHYSICALDAMAGE
end
local t = Monster(cid):getTargetList()
if #t > 0 then
doSendDistanceShoot(getThingPos(cid), t[math.random(1, #t)]:getPosition(), shoottypes[reflect_type][1])
doTargetCombatHealth(cid, t[math.random(1, #t)], reflect_type, reflect_dmg * 0.5, reflect_dmg * 1.5, shoottypes[reflect_type][2])
end
end
end
return true
end