killingdyl
Active Member
- Reaction score
- 6
the damage is stacking over each attack, even though the actions arent activated. so after 4 attacks it does 4 times the damage when its not supposed to.
Spell info: Passive spell that does damage in a line when activated. dealing half to all units behind the main unit.
Spell info: Passive spell that does damage in a line when activated. dealing half to all units behind the main unit.
JASS:
function Conditions takes nothing returns boolean
return (GetUnitAbilityLevel(GetEventDamageSource(), 039;A00B039;) > 0) and (GetRandomInt(1, 100) < 50)
endfunction
function Trig_Test2_Actions takes nothing returns nothing
local unit caster = GetEventDamageSource()
local unit target = GetTriggerUnit()
local unit dummy
local unit fog
local player p = GetOwningPlayer(caster)
local real x = GetUnitX(caster)
local real y = GetUnitY(caster)
local real xx
local real yy
local real angle = GetUnitFacing(caster)
local real damage = 200
local integer i = 200
local integer lvl = GetUnitAbilityLevel(caster, 039;A00B039;)
local group g = CreateGroup()
local texttag text = CreateTextTag()
set xx = x + 150 * Cos(angle * bj_DEGTORAD)
set yy = y + 150 * Sin(angle * bj_DEGTORAD)
set dummy = CreateUnit(p, 039;h00K039;, xx, yy, angle)
call KillUnit(dummy)
call SetUnitAnimationByIndex(caster, 8)
call UnitDamageTarget(caster, target, damage, true, true, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_DEATH, WEAPON_TYPE_WHOKNOWS)
loop
exitwhen i > 400
set xx = x + i * Cos(angle * bj_DEGTORAD)
set yy = y + i * Sin(angle * bj_DEGTORAD)
call GroupEnumUnitsInRange(g, xx, yy, 50, null)
loop
set fog = FirstOfGroup(g)
exitwhen fog == null
if fog == target then
else
call UnitDamageTarget(caster, fog, (damage/2), true, true, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_DEATH, WEAPON_TYPE_WHOKNOWS)
endif
call GroupRemoveUnit(g, fog)
endloop
set i = i + 100
endloop
call SetTextTagText(text, I2S(R2I(damage)) + "!", 0.025)
call SetTextTagPosUnit(text, caster, 10)
call SetTextTagColor(text, 255, 0, 0, 255)
call SetTextTagVelocity (text, 0.0355 * Cos(90. * bj_DEGTORAD), 0.0355 * Sin(90. * bj_DEGTORAD))
call SetTextTagVisibility (text, true)
call SetTextTagFadepoint (text, 2.00)
call SetTextTagLifespan (text, 2.00)
call SetTextTagPermanent (text, false)
set caster = null
set target = null
set dummy = null
set fog = null
set g = null
set p = null
set text = null
endfunction
//===========================================================================
function InitTrig_Test2 takes nothing returns nothing
local trigger Test2 = CreateTrigger( )
call Damage_RegisterEvent(Test2)
call TriggerAddCondition( Test2, function Conditions )
call TriggerAddAction( Test2, function Trig_Test2_Actions )
endfunction