- Reaction score
- 91
I have this function in my trigger:
As long as it is there, I cannot start the map in any way - as if it was treated as a return bug or false positive of some sort. I was thinking if it's something Blizzard screwed up because I can't see what could be wrong with it.
The full code (it's heavily commented because I was testing which parts aren't working - you know, disable, save, test - and in the end that function seemed to be the problem):
EDIT: Ok, I found the error. It is in this line:
Using only "call CreateUnit()" WORKS and makes the map playable again. But when it comes to "set temp = CreateUnit()" it is treated as some sort of error... Why?
JASS:
private function SpawnCreeps takes nothing returns nothing
local integer a = 0
loop
exitwhen a > 3
set temp = CreateUnit(Player(11), SPAWN_TYPE[GetRandomInt(0, 2)], GetRandomReal(GetRectMinX(SPAWN_RECTS[a]), GetRectMaxX(SPAWN_RECTS[a])), GetRandomReal(GetRectMinY(SPAWN_RECTS[a]), GetRectMaxY(SPAWN_RECTS[a])), GetRandomReal(1., 359.))
call IssuePointOrder(temp, "attack", 0., 0.)
set temp = CreateUnit(Player(11), SPAWN_TYPE[GetRandomInt(0, 2)], GetRandomReal(GetRectMinX(SPAWN_RECTS[a]), GetRectMaxX(SPAWN_RECTS[a])), GetRandomReal(GetRectMinY(SPAWN_RECTS[a]), GetRectMaxY(SPAWN_RECTS[a])), GetRandomReal(1., 359.))
call IssuePointOrder(temp, "attack", 0., 0.)
set a = a + 1
endloop
endfunction
As long as it is there, I cannot start the map in any way - as if it was treated as a return bug or false positive of some sort. I was thinking if it's something Blizzard screwed up because I can't see what could be wrong with it.
The full code (it's heavily commented because I was testing which parts aren't working - you know, disable, save, test - and in the end that function seemed to be the problem):
JASS:
library SpawningLib initializer Init uses EnumUtils
globals
private constant real WAIT_BEFORE_SPAWN = 30.
private constant real SPAWN_PERIOD = 15.
private constant string MSG_BEFORE_SPAWN = "Creeps will spawn in |cffffcc0030|r seconds."
endglobals
globals
timer SPAWNING_TIMER = null
rect array SPAWN_RECTS
integer array SPAWN_TYPE
endglobals
/*
private function SpawnCreeps takes nothing returns nothing
local integer a = 0
loop
exitwhen a > 3
set temp = CreateUnit(Player(11), SPAWN_TYPE[GetRandomInt(0, 2)], GetRandomReal(GetRectMinX(SPAWN_RECTS[a]), GetRectMaxX(SPAWN_RECTS[a])), GetRandomReal(GetRectMinY(SPAWN_RECTS[a]), GetRectMaxY(SPAWN_RECTS[a])), GetRandomReal(1., 359.))
call IssuePointOrder(temp, "attack", 0., 0.)
set temp = CreateUnit(Player(11), SPAWN_TYPE[GetRandomInt(0, 2)], GetRandomReal(GetRectMinX(SPAWN_RECTS[a]), GetRectMaxX(SPAWN_RECTS[a])), GetRandomReal(GetRectMinY(SPAWN_RECTS[a]), GetRectMaxY(SPAWN_RECTS[a])), GetRandomReal(1., 359.))
call IssuePointOrder(temp, "attack", 0., 0.)
set a = a + 1
endloop
endfunction
*/
private function WaitBeforeSpawn takes nothing returns nothing
//call SpawnCreeps()
//call TimerStart(SPAWNING_TIMER, SPAWN_PERIOD, true, function SpawnCreeps)
endfunction
private function Init takes nothing returns nothing
//set SPAWNING_TIMER = CreateTimer()
//if IsPlayerInForce(GetLocalPlayer(), bj_FORCE_ALL_PLAYERS) then
// call DisplayTextToPlayer(GetLocalPlayer(), 0., 0., MSG_BEFORE_SPAWN)
//endif
call TimerStart(SPAWNING_TIMER, WAIT_BEFORE_SPAWN, false, function WaitBeforeSpawn)
/*
set SPAWN_RECTS[0] = gg_rct_SPAWN_RECT1
set SPAWN_RECTS[1] = gg_rct_SPAWN_RECT2
set SPAWN_RECTS[2] = gg_rct_SPAWN_RECT3
set SPAWN_RECTS[3] = gg_rct_SPAWN_RECT4
set SPAWN_TYPE[0] = 'h009'
set SPAWN_TYPE[1] = 'h00A'
set SPAWN_TYPE[2] = 'o004'
*/
endfunction
endlibrary
EDIT: Ok, I found the error. It is in this line:
JASS:
set temp = CreateUnit(Player(11), SPAWN_TYPE[GetRandomInt(0, 2)], GetRandomReal(GetRectMinX(SPAWN_RECTS[a]), GetRectMaxX(SPAWN_RECTS[a])), GetRandomReal(GetRectMinY(SPAWN_RECTS[a]), GetRectMaxY(SPAWN_RECTS[a])), GetRandomReal(1., 359.))
Using only "call CreateUnit()" WORKS and makes the map playable again. But when it comes to "set temp = CreateUnit()" it is treated as some sort of error... Why?