Hello. My map Rise of Empires got a weird selection bug.
I don't know when it happens, but what happens is that you can't order your units to do stuffs after it had happen. Then it takes a while, like a minute or two and then u can order them again.:banghead:
I suspect these triggers:
It might have something to do with if u have a building selected when it's replaced
Please Help me, I will give u reputation if you do.!
I don't know when it happens, but what happens is that you can't order your units to do stuffs after it had happen. Then it takes a while, like a minute or two and then u can order them again.:banghead:
I suspect these triggers:
JASS:
scope HouseEvolve initializer Init
globals
private integer array HOUSES
endglobals
private function Callback takes nothing returns nothing
local unit u = GetEnumUnit()
local integer id = GetUnitTypeId(u)
local integer i = 0
loop
exitwhen HOUSES<i> == 0
if id == HOUSES<i>then
if GetUnitState(u,UNIT_STATE_MANA) == GetUnitState(u, UNIT_STATE_MAX_MANA) and GetUnitTypeId(u) != HOUSES[2] then // h00G = Max upgrade
call ReplaceUnitBJ(u,HOUSES[i+1], bj_UNIT_STATE_METHOD_DEFAULTS)
elseif GetUnitState(u,UNIT_STATE_MANA) < 1 and GetUnitTypeId(u) != HOUSES[0] then // The poorest upgrade
call ReplaceUnitBJ(u,HOUSES[i-1], bj_UNIT_STATE_METHOD_DEFAULTS)
endif
exitwhen true
endif
set i = i+1
endloop
endfunction
private function GroupFilter takes nothing returns boolean
local integer i = 0
local integer id = GetUnitTypeId(GetFilterUnit())
loop
exitwhen HOUSES<i> == 0 or id == HOUSES<i>
set i = i+1
endloop
return id == HOUSES<i>
endfunction
private function Actions takes nothing returns nothing
local group houses = CreateGroup()
call GroupEnumUnitsInRect(houses,GetWorldBounds(),Condition(function GroupFilter))
call ForGroup(houses,function Callback)
call DestroyGroup(houses)
endfunction
private function Init takes nothing returns nothing
set gg_trg_House_Evolving = CreateTrigger( )
set HOUSES[0] = 039;h00B039;
set HOUSES[1] = 039;h00Y039;
set HOUSES[2] = 039;h00L039;
set HOUSES[3] = 3 //This tells loops when to end.
call TriggerRegisterTimerEvent(gg_trg_House_Evolving, 3, true)
call TriggerAddAction( gg_trg_House_Evolving, function Actions )
endfunction
endscope</i></i></i></i></i>
It might have something to do with if u have a building selected when it's replaced
Trigger:
- Gate Animation For Open Gate
- Events
- Unit - A unit Begins casting an ability
- Conditions
- (Unit-type of (Casting unit)) Equal to Gate (Horizontal) closed
- (Ability being cast) Equal to Open/Close
- Actions
- Wait 0.10 seconds
- Animation - Play (Casting unit)'s death alternate animation
- Set Temp_Group = (Units currently selected by (Owner of (Casting unit)))
- Unit Group - Pick every unit in Temp_Group and do (Actions)
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Unit-type of (Picked unit)) Equal to Gate (Horizontal) open
- Then - Actions
- Animation - Play (Picked unit)'s death alternate animation
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Loop - Actions
- Custom script: call DestroyGroup(udg_Temp_Group)
- Events
Please Help me, I will give u reputation if you do.!