//*************************************************************************************
//*
//* Event by Almia
//* JASS-alt of Nes Event
//*
//*************************************************************************************
//*
//* Allows you to create your own events, but needs to be manually fired to trigger
//* registered triggers and codes.
//*
//* Event size is 2147483647( just a guess)
//*
//*************************************************************************************
//*
//* API
//*
//* function CreateEvent takes nothing returns integer
//* function FireEvent takes integer ev returns nothing
//* function TriggerRegisterEvent takes trigger t, integer ev returns nothing
//* function RegisterEvent takes code c, integer ev returns nothing
//*
//*************************************************************************************
//*
//* Credits
//*
//* Nestharus
//*
//*************************************************************************************
function CreateEvent takes nothing returns integer
set udg_Event_Count = udg_Event_Count + 1
set udg_Events[udg_Event_Count] = CreateTrigger()
return udg_Event_Count
endfunction
function FireEvent takes integer ev returns nothing
set udg_Event_Events = I2R(ev)
set udg_Event_Events = 0.0
call TriggerEvaluate(udg_Events[ev])
endfunction
function TriggerRegisterEvent takes trigger t, integer ev returns nothing
call TriggerRegisterVariableEvent(t, "udg_Event_Events", EQUAL, I2R(ev))
endfunction
function RegisterEvent takes code c, integer ev returns nothing
call TriggerAddCondition(udg_Events[ev], Condition(c))
endfunction
Name | Type | is_array | initial_value |
Event_Count | integer | No | |
Event_Events | real | No | |
Events | trigger | Yes |
function Hello takes nothing returns nothing
call BJDebugMsg("Hello")
endfunction
function Hi takes nothing returns nothing
call BJDebugMsg("Hi")
call Hello()
endfunction
function InitTrig_Hello takes nothing returns nothing
local integer ev = CreateEvent()
local integer ev2 = CreateEvent()
call RegisterEvent(function Hello, ev)
call FireEvent(ev)
call RegisterEvent(function Hi, ev2)
call FireEvent(ev2)
endfunction