Tasks
Code
Changes
Create a (JASS) trigger that runs (only) when Hero makes a point order.
Create a (JASS) trigger that runs (only) when Hero makes a target order.
Create a (JASS) trigger that runs (only) when Hero makes an order without target.
Create a (JASS) trigger that runs when you select the Hero.
The trigger's goal is to print following values on screen:
- PointOrders: X
- TargetOrders: Y
- NontargetOrders: Z
Tip: You must use the first three triggers to count the different orders, and use hashtable to bind the values to the unit.
Create a (JASS) trigger that runs when a player presses the 'Esc' button.
The trigger's goal is to clean the hashtable of all it's entries.
JASS:
scope Part1n2 initializer init
globals
private key point
private key target
private key nontarget
private unit Hero
private hashtable Hash = InitHashtable()
endglobals
private function updateRec takes nothing returns nothing
call ClearTextMessages()
call BJDebugMsg("PointOrders: " + I2S(LoadInteger(Hash, point, 0)) + "\nTargetOrders: " + I2S(LoadInteger(Hash, target, 0)) + "\nNonTargetOrders: " + I2S(LoadInteger(Hash, nontarget, 0)))
endfunction
private function issuePoint takes nothing returns nothing
call SaveInteger(Hash, point, 0, LoadInteger(Hash, point, 0) + 1)
endfunction
private function issueTarget takes nothing returns nothing
call SaveInteger(Hash, target, 0, LoadInteger(Hash, target, 0) + 1)
endfunction
private function issueNonTarget takes nothing returns nothing
call SaveInteger(Hash, nontarget, 0, LoadInteger(Hash, nontarget, 0) + 1)
endfunction
private function select takes nothing returns nothing
call updateRec()
endfunction
private function esc takes nothing returns nothing
call FlushChildHashtable(Hash, point)
call FlushChildHashtable(Hash, target)
call FlushChildHashtable(Hash, nontarget)
endfunction
private function isHero takes nothing returns boolean
return GetFilterUnit() == Hero
endfunction
private function init takes nothing returns nothing
local trigger pointTrigger = CreateTrigger()
local trigger targetTrigger = CreateTrigger()
local trigger instantTrigger = CreateTrigger()
local trigger selectTrigger = CreateTrigger()
local trigger escTrigger = CreateTrigger()
local integer i = 0
set Hero = CreateUnit(Player(0), 'Hpal', .0, .0, .0)
loop
exitwhen i >= bj_MAX_PLAYERS
call TriggerRegisterPlayerUnitEvent(pointTrigger, Player(i), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, Condition(function isHero))
call TriggerRegisterPlayerUnitEvent(targetTrigger, Player(i), EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, Condition(function isHero))
call TriggerRegisterPlayerUnitEvent(instantTrigger, Player(i), EVENT_PLAYER_UNIT_ISSUED_ORDER, Condition(function isHero))
call TriggerRegisterPlayerUnitEvent(selectTrigger, Player(i), EVENT_PLAYER_UNIT_SELECTED, Condition(function isHero))
call TriggerRegisterPlayerEvent(escTrigger, Player(i), EVENT_PLAYER_END_CINEMATIC)
set i = i + 1
endloop
call TriggerAddAction(pointTrigger, function issuePoint)
call TriggerAddAction(targetTrigger, function issueTarget)
call TriggerAddAction(instantTrigger, function issueNonTarget)
call TriggerAddAction(selectTrigger, function select)
call TriggerAddAction(escTrigger, function esc)
call updateRec()
endfunction
endscope
-submission
-instead
integer
, now uses key
-replaced
FlushParentHashtable
with FlushChildHashtable
Attachments
Last edited: