waaaks!
Zinctified
- Reaction score
- 255
ok I have this not-so-complicated-but-not-so-simple-spawn-system trigger.
What it does is:
heres the code
notice that mayorSpawnReady is a global variable created from another trigger
thanks
What it does is:
- check if a global boolean is true
- randoms out an integer and picks a route depending on the randomn integer
- creates 2 the same melee unit type
- creates 1 range unit
- creates 1 siege unit
- orders the unit to use "smart" order to a specified route
- ...another set of the same codes for the other team
heres the code
JASS:
scope SpawnMob initializer init
globals
private constant integer meleeCount = 2
private constant integer meleeUnit = 039;n000039;
private constant integer rangeUnit = 039;n001039;
private constant integer mayorUnit = 039;o000039;
boolean array mayorSpawnReady //at init
endglobals
private function act takes nothing returns nothing
local integer n = 0
local unit u = null
if ( mayorSpawnReady[0] ) then
set mayorSpawnReady[0] = false
if ( GetRandomInt(0,1) == 0 ) then
loop
exitwhen n > meleeCount
set u = CreateUnit(playerGwapo,meleeUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),90.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerTop),GetRectCenterY(gg_rct_centerTop))
set n = n + 1
endloop
set n = 0
set u = CreateUnit(playerGwapo,rangeUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),90.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerTop),GetRectCenterY(gg_rct_centerTop))
set u = CreateUnit(playerGwapo,mayorUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),90.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerTop),GetRectCenterY(gg_rct_centerTop))
else
loop
exitwhen n > meleeCount
set u = CreateUnit(playerGwapo,meleeUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),270.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerBottom),GetRectCenterY(gg_rct_centerBottom))
set n = n + 1
endloop
set n = 0
set u = CreateUnit(playerGwapo,rangeUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),270.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerBottom),GetRectCenterY(gg_rct_centerBottom))
set u = CreateUnit(playerGwapo,mayorUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),270.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerBottom),GetRectCenterY(gg_rct_centerBottom))
endif
endif
//============For Enemy==============
if ( mayorSpawnReady[1] ) then
set mayorSpawnReady[1] = false
if ( GetRandomInt(0,1) == 0 ) then
loop
exitwhen n > meleeCount
set u = CreateUnit(playerPangit,meleeUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),90.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerTop),GetRectCenterY(gg_rct_centerTop))
set n = n + 1
endloop
set n = 0
set u = CreateUnit(playerPangit,rangeUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),90.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerTop),GetRectCenterY(gg_rct_centerTop))
set u = CreateUnit(playerPangit,mayorUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),90.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerTop),GetRectCenterY(gg_rct_centerTop))
else
loop
exitwhen n > meleeCount
set u = CreateUnit(playerPangit,meleeUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),270.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerBottom),GetRectCenterY(gg_rct_centerBottom))
set n = n + 1
endloop
set n = 0
set u = CreateUnit(playerPangit,rangeUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),270.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerBottom),GetRectCenterY(gg_rct_centerBottom))
set u = CreateUnit(playerPangit,mayorUnit,GetRectCenterX(gg_rct_gSpawn),GetRectCenterY(gg_rct_gSpawn),270.0)
call IssuePointOrder(u,"smart",GetRectCenterX(gg_rct_centerBottom),GetRectCenterY(gg_rct_centerBottom))
endif
endif
set u = null
endfunction
private function init takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterTimerEventPeriodic(t,30)
call TriggerAddAction(t, function act)
set mayorSpawnReady[0] = true
set mayorSpawnReady[1] = true
endfunction
endscope
notice that mayorSpawnReady is a global variable created from another trigger
thanks