Naga'sShadow
Ultra Cool Member
- Reaction score
- 49
I've got a trigger designed to add damage to an arrow ability. I can't see a problem with it and the phraser has no issues with it, but in testing the move does nothing and I'm not sure whats wrong. Could someone please let me know if they see anything that doesn't work?
*Edit I removed the wait in that section to see if it made any difference in the trigger's execution. It didn't and removing the disable and destroy function had no effect either.*
*Edit 2 nevermind, I flubed up and used the wrong buff. If you spot a leak let me know please.*
JASS:
function OoD_Detect takes nothing returns boolean
if GetTriggerEventId()==EVENT_PLAYER_UNIT_ATTACKED and GetUnitAbilityLevel(GetAttacker(),039;A0AR039;)>0 then
return true
elseif GetTriggerEventId()==EVENT_PLAYER_UNIT_SPELL_EFFECT and GetSpellAbilityId()==039;A0AR039; then
return true
endif
return false
endfunction
function OoD_Effects takes nothing returns nothing
local unit targ = GetTriggerUnit()
local unit cast = GetEventDamageSource()
local texttag t
local real dam
if GetUnitAbilityLevel(targ,039;B00D039;)>0 and GetUnitAbilityLevel(cast,039;A0AR039;)>0 then
if IsUnitType(targ,UNIT_TYPE_HERO) then
set dam = (GetUnitAbilityLevel(cast, 039;A0AR039;)*GetHeroInt(cast,true) - GetHeroInt(targ,true))
if dam <= 0 then
set dam = (GetUnitAbilityLevel(cast, 039;A0AR039;)* 25)
endif
else
set dam = (GetUnitAbilityLevel(cast, 039;A0AR039;)* 25)
endif
call DisableTrigger(GetTriggeringTrigger())
set t = CreateTextTag()
call SetTextTagText(t,"+"+I2S(R2I(dam)),.023)
call SetTextTagPosUnit(t,targ,15)
call SetTextTagColor(t,255,105,180,50)
call SetTextTagVelocity(t,.0355 * Cos(90 * bj_DEGTORAD),.0355 * Sin(90 * bj_DEGTORAD))
call SetTextTagLifespan(t,1.)
call UnitDamageTarget(cast,targ,dam,false,false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MIND,null)
call PolledWait(1.)
call DestroyTextTag(t)
set t = null
endif
set targ = null
set cast = null
endfunction
function OoD_Detect_Actions takes nothing returns nothing
local trigger trig = CreateTrigger()
local triggeraction ta
local unit u
if GetTriggerEventId()==EVENT_PLAYER_UNIT_SPELL_EFFECT then
set u = GetSpellTargetUnit()
else
set u = GetTriggerUnit()
endif
call TriggerRegisterUnitEvent(trig,u, EVENT_UNIT_DAMAGED)
set ta = TriggerAddAction(trig, function OoD_Effects)
call PolledWait(2)
call DisableTrigger(trig)
call TriggerRemoveAction(trig,ta)
call DestroyTrigger(trig)
set ta = null
set u = null
set trig = null
endfunction
function InitTrig_Orb_of_Dreams takes nothing returns nothing
local trigger gg_trg_OoD
set gg_trg_OoD = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ(gg_trg_OoD, EVENT_PLAYER_UNIT_ATTACKED)
call TriggerRegisterAnyUnitEventBJ(gg_trg_OoD, EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg_OoD, Condition(function OoD_Detect))
call TriggerAddAction(gg_trg_OoD, function OoD_Detect_Actions)
set gg_trg_OoD = null
endfunction
*Edit I removed the wait in that section to see if it made any difference in the trigger's execution. It didn't and removing the disable and destroy function had no effect either.*
*Edit 2 nevermind, I flubed up and used the wrong buff. If you spot a leak let me know please.*