thevoden
New Member
- Reaction score
- 5
- At the start of each game, the Control Tower, an Edifice and a Hero is created for a player.
- Whenever a player builds an edifice in an "empty" zone, it creates a Control Tower for him.
- The problem comes when a player at his starting zone builds an edifice (in his starting zone) it creates a Control Tower. (the Control Tower is already pre-placed in the beginning, so it doesn't need to create another one).
- Only one control tower should be allowed in each zone.
- Everything else works perfectly fine in other zones ( i can create only 1 control tower in other zones).
Here are my two triggers:
- Whenever a player builds an edifice in an "empty" zone, it creates a Control Tower for him.
- The problem comes when a player at his starting zone builds an edifice (in his starting zone) it creates a Control Tower. (the Control Tower is already pre-placed in the beginning, so it doesn't need to create another one).
- Only one control tower should be allowed in each zone.
- Everything else works perfectly fine in other zones ( i can create only 1 control tower in other zones).
Here are my two triggers:
Code:
Player Locations
Events
Conditions
Actions
Set start_TEMP_REGION_randomnumber = (Random integer number between 1 and start_REGION_max)
Set start_REGION_Tspawn = start_REGION_set[start_TEMP_REGION_randomnumber]
For each (Integer A) from 1 to 16, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
start_REGION_Boolean[start_TEMP_REGION_randomnumber] Equal to False
Then - Actions
Set System_Temp_Point = (Center of start_REGION_set[(Integer A)])
Unit - Create 1 Start_Variable_Heroes[start_MAIN_Hero_Element[(Player number of (Triggering player))]] for (Triggering player) at System_Temp_Point facing Default building facing degrees
Player - Add -5 to (Triggering player) Food used
For each (Integer A) from 1 to 2, do (Actions)
Loop - Actions
Item - Create MENU_Items_towers[start_MAIN_Hero_Element[(Player number of (Triggering player))]] at (Center of start_REGION_Tspawn)
Hero - Give (Last created item) to (Last created unit)
Unit - Create 1 MENU_Units_Ediface[start_MAIN_Hero_Element[(Player number of (Triggering player))]] for (Triggering player) at System_Temp_Point facing Default building facing degrees
Unit - Add Dummy Ability Check (+1) to (Last created unit)
Camera - Pan camera for (Owner of (Last created unit)) to (Position of (Last created unit)) over 0.00 seconds
Set Integer_Variable = (Integer_Variable + 1)
Unit - Set the custom value of (Last created unit) to Integer_Variable
-------- Control Assigned --------
Unit - Create 1 Control Tower for (Owner of (Last created unit)) at System_Temp_Point facing Default building facing degrees
Unit - Make (Last created unit) Invulnerable
Set System_Control_Tower[(Integer A)] = (Last created unit)
Set System_ControlTower_Invincible[(Integer A)] = 2
Set start_REGION_Boolean[(Integer A)] = True
Set start_alreadycontroltower[(Integer A)] = True
Set System_ControlTower_Invincible[(Integer A)] = 2
Set START_ControlledTowers[(Integer A)] = 1
Set System_ZoneTowers[(Integer A)] = (System_ZoneTowers[(Integer A)] + 1)
Custom script: call RemoveLocation (udg_System_Temp_Point)
Else - Actions
Trigger - Run (This trigger) (checking conditions)
-------- Backup --------
For each (Integer A) from 1 to 16, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
start_REGION_Boolean[start_TEMP_REGION_randomnumber] Equal to False
Then - Actions
Set System_Temp_Point = (Center of start_REGION_set[(Integer A)])
Unit - Create 1 Start_Variable_Heroes[start_MAIN_Hero_Element[(Player number of (Triggering player))]] for (Triggering player) at System_Temp_Point facing Default building facing degrees
Player - Add -5 to (Triggering player) Food used
For each (Integer A) from 1 to 2, do (Actions)
Loop - Actions
Item - Create MENU_Items_towers[start_MAIN_Hero_Element[(Player number of (Triggering player))]] at (Center of start_REGION_Tspawn)
Hero - Give (Last created item) to (Last created unit)
Unit - Create 1 MENU_Units_Ediface[start_MAIN_Hero_Element[(Player number of (Triggering player))]] for (Triggering player) at System_Temp_Point facing Default building facing degrees
Unit - Add Dummy Ability Check (+1) to (Last created unit)
Camera - Pan camera for (Owner of (Last created unit)) to (Position of (Last created unit)) over 0.00 seconds
Set Integer_Variable = (Integer_Variable + 1)
Unit - Set the custom value of (Last created unit) to Integer_Variable
Set start_REGION_Boolean[(Integer A)] = True
Set start_alreadycontroltower[(Integer A)] = True
-------- Control Assigned --------
Set System_ControlTower_Invincible[(Integer A)] = 2
Unit - Create 1 Control Tower for (Owner of (Last created unit)) at System_Temp_Point facing Default building facing degrees
Unit - Make (Last created unit) Invulnerable
Set System_Control_Tower[(Integer A)] = (Last created unit)
Set System_ControlTower_Invincible[(Integer A)] = 2
Set System_ZoneTowers[(Integer A)] = (System_ZoneTowers[(Integer A)] + 1)
Custom script: call RemoveLocation (udg_System_Temp_Point)
Else - Actions
Trigger - Run (This trigger) (checking conditions)
Code:
Gain Zone Control
Events
Unit - A unit Finishes construction
Conditions
Or - Any (Conditions) are true
Conditions
(Unit-type of (Constructed structure)) Equal to Fire Edifice
(Unit-type of (Constructed structure)) Equal to Grass Edifice
(Unit-type of (Constructed structure)) Equal to Rock Edifice
Actions
Set temp_player = (Owner of (Last created unit))
-------- Re-Invulnerable Zone --------
For each (Integer A) from 1 to 16, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
System_ControlTower_Invincible[(Integer A)] Equal to 1
start_REGION_Boolean[(Integer A)] Equal to True
(start_REGION_set[(Integer A)] contains (Triggering unit)) Equal to True
(start_REGION_set[(Integer A)] contains System_Control_Tower[(Integer A)]) Equal to True
System_ZoneTowers[(Integer A)] Less than 1
(Level of Dummy Ability Check (+1) for (Triggering unit)) Equal to 0
Then - Actions
-------- Notification --------
Custom script: if GetLocalPlayer() == udg_temp_player then
Sound - Play QuestCompleted <gen>
Custom script: endif
-------- Notification --------
Set System_ControlTower_Invincible[(Integer A)] = 2
Unit - Make System_Control_Tower[(Integer A)] Invulnerable
Unit - Add Dummy Ability Check (+1) to (Triggering unit)
Else - Actions
-------- Zone Control --------
For each (Integer A) from 1 to 16, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(start_REGION_set[(Integer A)] contains (Constructed structure)) Equal to True
start_REGION_Boolean[(Integer A)] Equal to False
start_alreadycontroltower[(Integer A)] Equal to False
(start_REGION_set[(Integer A)] contains System_Control_Tower[(Integer A)]) Equal to False
START_ControlledTowers[(Integer A)] Not equal to 1
(Level of Dummy Ability Check (+1) for (Triggering unit)) Equal to 0
Then - Actions
-------- New Zone Control --------
Set Integer_Variable = (Integer_Variable + 1)
Unit - Set the custom value of (Constructed structure) to Integer_Variable
Set start_REGION_Boolean[(Integer A)] = True
Set System_Temp_Point = (Center of start_REGION_set[(Integer A)])
Unit - Create 1 Control Tower for (Owner of (Constructed structure)) at System_Temp_Point facing Default building facing degrees
Custom script: call RemoveLocation (udg_System_Temp_Point)
Unit - Make (Last created unit) Invulnerable
Set System_ControlTower_Invincible[(Integer A)] = 2
Set System_Control_Tower[(Integer A)] = (Last created unit)
Set System_ZoneTowers[(Integer A)] = (System_ZoneTowers[(Integer A)] + 1)
Unit - Add Dummy Ability Check (+1) to (Triggering unit)
-------- Notification --------
Custom script: if GetLocalPlayer() == udg_temp_player then
Sound - Play Rescue <gen>
Custom script: endif
-------- Notification --------
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(start_REGION_set[(Integer A)] contains (Constructed structure)) Equal to True
start_REGION_Boolean[(Integer A)] Equal to True
(Level of Dummy Ability Check (+1) for (Triggering unit)) Equal to 0
Then - Actions
Set Integer_Variable = (Integer_Variable + 1)
Unit - Set the custom value of (Constructed structure) to Integer_Variable
Set System_ZoneTowers[(Integer A)] = (System_ZoneTowers[(Integer A)] + 1)
Unit - Add Dummy Ability Check (+1) to (Triggering unit)
-------- Notification --------
Custom script: if GetLocalPlayer() == udg_temp_player then
Sound - Play GoodJob <gen>
Custom script: endif
-------- Notification --------
Else - Actions