Player Help
Posted: Sat May 21, 2011 8:13 pm
i have a maze, and i decided to make brown a player too, and when i make the enemy units any of these (neutral hostile/passive/extra or victim), my square patrols act up. (if you need to see how they fuck up i can show you.) it works when i change it back to any player 0-11, but none of the neutral players work. everything else on the map works except for the square patrols. this is one of my square patrol functions...
function CheckUnit1 takes nothing returns boolean
if ( GetUnitTypeId(GetTriggerUnit()) == udg_UnitType[1]) then
return true
else
return false
endif
endfunction
function Move1 takes nothing returns nothing
call IssuePointOrder( GetTriggerUnit(), "move", GetRectCenterX( udg_NextRegion[1] ), GetRectCenterY( udg_NextRegion[1] ))
endfunction
function Move2 takes nothing returns nothing
call IssuePointOrder( GetTriggerUnit(), "move", GetRectCenterX( udg_NextRegion[2] ), GetRectCenterY( udg_NextRegion[2] ))
endfunction
function Move3 takes nothing returns nothing
call IssuePointOrder( GetTriggerUnit(), "move", GetRectCenterX( udg_NextRegion[3] ), GetRectCenterY( udg_NextRegion[3] ))
endfunction
function Move4 takes nothing returns nothing
call IssuePointOrder( GetTriggerUnit(), "move", GetRectCenterX( udg_NextRegion[4] ), GetRectCenterY( udg_NextRegion[4] ))
endfunction
function Square1 takes integer i, rect a, rect b, rect c, rect d returns nothing
local integer y = 1
local integer z = 4
set udg_UnitType[1] = i
loop
exitwhen y > z
set udg_Trigger[y] = CreateTrigger()
call TriggerAddCondition( udg_Trigger[y], Condition( function CheckUnit1 ) )
set y = y + 1
endloop
call TriggerRegisterEnterRectSimple( udg_Trigger[1], a)
call TriggerRegisterEnterRectSimple( udg_Trigger[2], b)
call TriggerRegisterEnterRectSimple( udg_Trigger[3], c)
call TriggerRegisterEnterRectSimple( udg_Trigger[4], d)
set udg_NextRegion[1] = b
set udg_NextRegion[2] = c
set udg_NextRegion[3] = d
set udg_NextRegion[4] = a
call TriggerAddAction( udg_Trigger[1], function Move1 )
call TriggerAddAction( udg_Trigger[2], function Move2 )
call TriggerAddAction( udg_Trigger[3], function Move3 )
call TriggerAddAction( udg_Trigger[4], function Move4 )
endfunction
not sure why changing the player to a neutral player would fuck anything up but i guess it does...
function CheckUnit1 takes nothing returns boolean
if ( GetUnitTypeId(GetTriggerUnit()) == udg_UnitType[1]) then
return true
else
return false
endif
endfunction
function Move1 takes nothing returns nothing
call IssuePointOrder( GetTriggerUnit(), "move", GetRectCenterX( udg_NextRegion[1] ), GetRectCenterY( udg_NextRegion[1] ))
endfunction
function Move2 takes nothing returns nothing
call IssuePointOrder( GetTriggerUnit(), "move", GetRectCenterX( udg_NextRegion[2] ), GetRectCenterY( udg_NextRegion[2] ))
endfunction
function Move3 takes nothing returns nothing
call IssuePointOrder( GetTriggerUnit(), "move", GetRectCenterX( udg_NextRegion[3] ), GetRectCenterY( udg_NextRegion[3] ))
endfunction
function Move4 takes nothing returns nothing
call IssuePointOrder( GetTriggerUnit(), "move", GetRectCenterX( udg_NextRegion[4] ), GetRectCenterY( udg_NextRegion[4] ))
endfunction
function Square1 takes integer i, rect a, rect b, rect c, rect d returns nothing
local integer y = 1
local integer z = 4
set udg_UnitType[1] = i
loop
exitwhen y > z
set udg_Trigger[y] = CreateTrigger()
call TriggerAddCondition( udg_Trigger[y], Condition( function CheckUnit1 ) )
set y = y + 1
endloop
call TriggerRegisterEnterRectSimple( udg_Trigger[1], a)
call TriggerRegisterEnterRectSimple( udg_Trigger[2], b)
call TriggerRegisterEnterRectSimple( udg_Trigger[3], c)
call TriggerRegisterEnterRectSimple( udg_Trigger[4], d)
set udg_NextRegion[1] = b
set udg_NextRegion[2] = c
set udg_NextRegion[3] = d
set udg_NextRegion[4] = a
call TriggerAddAction( udg_Trigger[1], function Move1 )
call TriggerAddAction( udg_Trigger[2], function Move2 )
call TriggerAddAction( udg_Trigger[3], function Move3 )
call TriggerAddAction( udg_Trigger[4], function Move4 )
endfunction
not sure why changing the player to a neutral player would fuck anything up but i guess it does...