Rainther
I guess I should write something of value here...
- Reaction score
- 61
Solved for the moment, why is unknown
Can someone explain for me why this trigger is run twice?
It runs twice if cast stand beside when it starts and when it enters withing range.
Can someone explain for me why this trigger is run twice?
JASS:
private function InterAct takes nothing returns nothing
local trigger t = GetTriggeringTrigger()
local Int d = GetTriggerStructA(t)
local integer ID = GetIssuedOrderId()
if d.first == true then
set d.first = false
call DisplayTextToForce( GetPlayersAll(), "Start" )
if DisXY(GetUnitX(d.cast),GetUnitY(d.cast),GetUnitX(d.tar),GetUnitY(d.tar)) <= 250 then
call Interact(d.cast,d.tar)
call ClearTriggerStructA(t)
call DisableTrigger(t)
call DestroyTrigger(t)
endif
elseif ID != null or GetTriggerEventId() == EVENT_UNIT_DEATH or GetEnteringUnit() == d.cast then
if GetEnteringUnit() == d.cast then
call Interact(d.cast,d.tar)
endif
call ClearTriggerStructA(t)
call DisableTrigger(t)
call DestroyTrigger(t)
call DisplayTextToForce( GetPlayersAll(), "Enter" )
endif
set ID = 0
set t = null
endfunction
function Interacting takes unit cast, unit tar returns nothing
local trigger t = CreateTrigger()
local Int d = Trigg.create()
set d.cast = cast
set d.tar = tar
set d.first = true
set d.stop = false
call SetTriggerStructA(t, d)
call TriggerRegisterUnitEvent(t, cast, EVENT_UNIT_ISSUED_TARGET_ORDER)
call TriggerRegisterUnitEvent(t, cast, EVENT_UNIT_ISSUED_POINT_ORDER)
call TriggerRegisterUnitEvent(t, cast, EVENT_UNIT_ISSUED_ORDER)
call TriggerRegisterUnitEvent(t, cast, EVENT_UNIT_DEATH)
call TriggerRegisterUnitInRange(t, tar, 225, Filter(function True))
call TriggerRegisterTimerEvent(t, 0, false)
call TriggerAddAction(t, function InterAct)
set t = null
endfunction
It runs twice if cast stand beside when it starts and when it enters withing range.