14 years
edited 8 years
I'm attempting to start up some activity over here by posting/spamming resources
.
This system was made to replace that cumbersome GTrigger by Jesus4Lyf.
Special thanks to Bribe, azlier and BBQ. (The most awesome people I know /o/)
Here's a vanilla Jass version:
Feel free to comment.
.This system was made to replace that cumbersome GTrigger by Jesus4Lyf.
Special thanks to Bribe, azlier and BBQ. (The most awesome people I know /o/)
1 /**************************************************************2 *3 * RegisterPlayerUnitEvent4 * v5.1.0.15 * By Magtheridon966 *7 * I would like to give a special thanks to Bribe, azlier8 * and BBQ for improving this library. For modularity, it only 9 * supports player unit events.10 *11 * Functions passed to RegisterPlayerUnitEvent must either12 * return a boolean (false) or nothing. (Which is a Pro)13 *14 * Warning:15 * --------16 *17 * - Don't use TriggerSleepAction inside registered code.18 * - Don't destroy a trigger unless you really know what you're doing.19 *20 * API:21 * ----22 *23 * - function RegisterPlayerUnitEvent takes playerunitevent whichEvent, code whichFunction returns nothing24 * - Registers code that will execute when an event fires.25 * - function RegisterPlayerUnitEventForPlayer takes playerunitevent whichEvent, code whichFunction, player whichPlayer returns nothing26 * - Registers code that will execute when an event fires for a certain player.27 * - function GetPlayerUnitEventTrigger takes playerunitevent whichEvent returns trigger28 * - Returns the trigger corresponding to ALL functions of a playerunitevent.29 *30 **************************************************************/31 library RegisterPlayerUnitEvent // Special Thanks to Bribe and azlier
32 globals33 private trigger array t
34 endglobals35
36 function RegisterPlayerUnitEvent takes playerunitevent p, code c returns nothing
37 local integer i = GetHandleId(p)
38 local integer k = 15
39 if t[i] == null then
40 set t[i] = CreateTrigger()
41 loop42 call TriggerRegisterPlayerUnitEvent(t[i], Player(k), p, null)
43 exitwhen k == 0
44 set k = k - 1
45 endloop46 endif47 call TriggerAddCondition(t[i], Filter(c))
48 endfunction49
50 function RegisterPlayerUnitEventForPlayer takes playerunitevent p, code c, player pl returns nothing
51 local integer i = 16 * GetHandleId(p) + GetPlayerId(pl)
52 if t[i] == null then
53 set t[i] = CreateTrigger()
54 call TriggerRegisterPlayerUnitEvent(t[i], pl, p, null)
55 endif56 call TriggerAddCondition(t[i], Filter(c))
57 endfunction58
59 function GetPlayerUnitEventTrigger takes playerunitevent p returns trigger
60 return t[GetHandleId(p)]
61 endfunction62 endlibrary
Here's a vanilla Jass version:
1 //**************************************************************2 //*3 //* RegisterPlayerUnitEvent (Vanilla Jass)4 //* v5.1.0.15 //* By Magtheridon966 //*7 //* I would like to give a special thanks to Bribe, azlier8 //* and BBQ for improving this library. For modularity, it only 9 //* supports player unit events.10 //*11 //* Functions passed to RegisterPlayerUnitEvent must either12 //* return a boolean (false) or nothing. (Which is a Pro)13 //*14 //* Implementation:15 //* ---------------16 //*17 //* - Copy all this script into a new trigger called "RegisterPlayerUnitEvent Jass"18 //* - Create a trigger array variable called RPUE.19 //* - Done.20 //*21 //* Warning:22 //* --------23 //*24 //* - Don't use TriggerSleepAction inside registered code.25 //* - Don't destroy a trigger unless you really know what you're doing.26 //*27 //* API:28 //* ----29 //*30 //* - function RegisterPlayerUnitEvent takes playerunitevent whichEvent, code whichFunction returns nothing31 //* - Registers code that will execute when an event fires.32 //* - function RegisterPlayerUnitEventForPlayer takes playerunitevent whichEvent, code whichFunction, player whichPlayer returns nothing33 //* - Registers code that will execute when an event fires for a certain player.34 //* - function GetPlayerUnitEventTrigger takes playerunitevent whichEvent returns trigger35 //* - Returns the trigger corresponding to ALL functions of a playerunitevent.36 //*37 //**************************************************************38 function RegisterPlayerUnitEvent takes playerunitevent p, code c returns nothing
39 local integer i = GetHandleId(p)
40 local integer k = 15
41 if udg_RPUE[i] == null then
42 set udg_RPUE[i] = CreateTrigger()
43 loop44 call TriggerRegisterPlayerUnitEvent(udg_RPUE[i], Player(k), p, null)
45 exitwhen k == 0
46 set k = k - 1
47 endloop48 endif49 call TriggerAddCondition(udg_RPUE[i], Filter(c))
50 endfunction51 52 function RegisterPlayerUnitEventForPlayer takes playerunitevent p, code c, player pl returns nothing
53 local integer i = 16 * GetHandleId(p) + GetPlayerId(pl)
54 if udg_RPUE[i] == null then
55 set udg_RPUE[i] = CreateTrigger()
56 call TriggerRegisterPlayerUnitEvent(udg_RPUE[i], pl, p, null)
57 endif58 call TriggerAddCondition(udg_RPUE[i], Filter(c))
59 endfunction60 61 function GetPlayerUnitEventTrigger takes playerunitevent p returns trigger
62 return udg_RPUE[GetHandleId(p)]
63 endfunction64
65 function InitTrig_RegisterPlayerUnitEvent_Jass takes nothing returns nothing
66 endfunction
Feel free to comment.
