I've been looking at trying to learn how to remove leaks. I decided to start with unit groups, I don't think that's gone too bad. But then I saw things like location leaks and player group leaks. And there are loads of different variables needed? I'm confused. The main trigger I want shown to me is posted below (it's an AI system I made for my map).
-
AI Train
-

Events
-


Time - Every 15.00 seconds of game time
-
-

Conditions
-

Actions
-


Player Group - Pick every player in (All players controlled by a Computer player) and do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






Or - Any (Conditions) are true
-







Conditions
-








((Number of units in (Units owned by (Picked player) of type Plantation)) x 15) Greater than or equal to ((Picked player) Food used)
-








((Picked player) Current lumber) Greater than or equal to (((Picked player) Food used) - 1)
-
-
-
-





Then - Actions
-






-------- Train Monk --------
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








((Picked player) Current gold) Greater than or equal to 300
-








((Picked player) Food used) Less than ((Picked player) Food cap)
-








((Picked player) Food used) Greater than or equal to ((Number of units in (Units owned by (Picked player) of type Monk)) x 10)
-
-







Then - Actions
-








Unit - Order (Random unit from (Units owned by (Picked player) of type Church)) to train/upgrade to a Monk
-
-







Else - Actions
-
-






-------- Train Balista, Catapult or Cannon --------
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








(Number of units in (Units owned by (Picked player) matching (((Unit-type of (Matching unit)) Equal to Ballista) or (((Unit-type of (Matching unit)) Equal to Catapult) or ((Unit-type of (Matching unit)) Equal to Cannon))))) Less than or equal to (Integer(((Real(((Picked player) Food cap))) x 0.05)))
-
-







Then - Actions
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










((Picked player) Current gold) Greater than or equal to 800
-










(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 3
-










(Current research level of Chemistry for (Picked player)) Equal to 0
-










(Current research level of Age 2 for (Picked player)) Greater than or equal to 2
-










(Random integer number between 1 and 2) Equal to 1
-










((Picked player) Food used) Less than ((Picked player) Food cap)
-
-









Then - Actions
-










Unit - Order (Random unit from (Units owned by (Picked player) of type Workshop)) to train/upgrade to a Ballista
-
-









Else - Actions
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












((Picked player) Current gold) Greater than or equal to 760
-












(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 3
-












(Current research level of Chemistry for (Picked player)) Equal to 0
-












(Current research level of Age 2 for (Picked player)) Greater than or equal to 2
-












((Picked player) Food used) Less than ((Picked player) Food cap)
-
-











Then - Actions
-












Unit - Order (Random unit from (Units owned by (Picked player) of type Workshop)) to train/upgrade to a Catapult
-
-











Else - Actions
-












If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-













If - Conditions
-














((Picked player) Current gold) Greater than or equal to 1160
-














(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 5
-














(Current research level of Chemistry for (Picked player)) Equal to 1
-














(Current research level of Age 2 for (Picked player)) Equal to 3
-














((Picked player) Food used) Less than ((Picked player) Food cap)
-
-













Then - Actions
-














Unit - Order (Random unit from (Units owned by (Picked player) of type Workshop)) to train/upgrade to a Cannon
-
-













Else - Actions
-
-
-
-
-
-
-







Else - Actions
-
-






-------- Train Light Cavalry, Mounted Skirmisher, Heavy Cavalry or Paladin. --------
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








(Number of units in (Units owned by (Picked player) matching (((Unit-type of (Matching unit)) Equal to Light Cavalry) or (((Unit-type of (Matching unit)) Equal to Mounted Skirmisher) or (((Unit-type of (Matching unit)) Equal to Heavy Cavalry) or ((Unit-type o Less than or equal to (Integer(((Real(((Picked player) Food cap))) x 0.10)))
-
-







Then - Actions
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










((Picked player) Current gold) Greater than or equal to 275
-










(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 2
-










(Current research level of Age 2 for (Picked player)) Less than or equal to 1
-










(Random integer number between 1 and 2) Equal to 1
-










((Picked player) Food used) Less than ((Picked player) Food cap)
-
-









Then - Actions
-










Unit - Order (Random unit from (Units owned by (Picked player) of type Stables)) to train/upgrade to a Light Cavalry
-
-









Else - Actions
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












((Picked player) Current gold) Greater than or equal to 280
-












(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 2
-












(Current research level of Age 2 for (Picked player)) Less than or equal to 1
-












((Picked player) Food used) Less than ((Picked player) Food cap)
-
-











Then - Actions
-












Unit - Order (Random unit from (Units owned by (Picked player) of type Stables)) to train/upgrade to a Mounted Skirmisher
-
-











Else - Actions
-












If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-













If - Conditions
-














((Picked player) Current gold) Greater than or equal to 340
-














(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 3
-














(Current research level of Age 2 for (Picked player)) Greater than or equal to 3
-














(Current research level of Squires for (Picked player)) Not equal to 1
-














((Picked player) Food used) Less than ((Picked player) Food cap)
-
-













Then - Actions
-














Unit - Order (Random unit from (Units owned by (Picked player) of type Stables)) to train/upgrade to a Heavy Cavalry
-
-













Else - Actions
-














If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-















If - Conditions
-
















((Picked player) Current gold) Greater than or equal to 450
-
















(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 4
-
















(Current research level of Age 2 for (Picked player)) Greater than or equal to 3
-
















(Current research level of Squires for (Picked player)) Equal to 1
-
















((Picked player) Food used) Less than ((Picked player) Food cap)
-
-















Then - Actions
-
















Unit - Order (Random unit from (Units owned by (Picked player) of type Stables)) to train/upgrade to a Paladin
-
-















Else - Actions
-
-
-
-
-
-
-
-
-







Else - Actions
-
-






-------- Train Archer, Skirmisher or Crossbowman --------
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








(Number of units in (Units owned by (Picked player) matching (((Unit-type of (Matching unit)) Equal to Archer) or (((Unit-type of (Matching unit)) Equal to Skirmisher) or ((Unit-type of (Matching unit)) Equal to Crossbowman))))) Less than or equal to (Integer(((Real(((Picked player) Food cap))) x 0.15)))
-
-







Then - Actions
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










((Picked player) Current gold) Greater than or equal to 270
-










(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 2
-










(Current research level of Age 2 for (Picked player)) Equal to 1
-










((Picked player) Food used) Less than ((Picked player) Food cap)
-
-









Then - Actions
-










Unit - Order (Random unit from (Units owned by (Picked player) of type Archery)) to train/upgrade to a Archer
-
-









Else - Actions
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












((Picked player) Current gold) Greater than or equal to 270
-












(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 2
-












(Current research level of Age 2 for (Picked player)) Equal to 1
-












((Picked player) Food used) Less than ((Picked player) Food cap)
-
-











Then - Actions
-












Unit - Order (Random unit from (Units owned by (Picked player) of type Archery)) to train/upgrade to a Skirmisher
-
-











Else - Actions
-












If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-













If - Conditions
-














((Picked player) Current gold) Greater than or equal to 255
-














(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 4
-














(Current research level of Age 2 for (Picked player)) Equal to 2
-














((Picked player) Food used) Less than ((Picked player) Food cap)
-
-













Then - Actions
-














Unit - Order (Random unit from (Units owned by (Picked player) of type Archery)) to train/upgrade to a Crossbowman
-
-













Else - Actions
-














If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-















If - Conditions
-
















((Picked player) Current gold) Greater than or equal to 320
-
















(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 4
-
















(Current research level of Age 2 for (Picked player)) Greater than or equal to 3
-
















(Current research level of Fire Arrows for (Picked player)) Equal to 0
-
















((Picked player) Food used) Less than ((Picked player) Food cap)
-
-















Then - Actions
-
















Unit - Order (Random unit from (Units owned by (Picked player) of type Archery)) to train/upgrade to a Crossbowman
-
-















Else - Actions
-
















If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-

















If - Conditions
-


















((Picked player) Current gold) Greater than or equal to 320
-


















(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 4
-


















(Current research level of Age 2 for (Picked player)) Greater than or equal to 3
-


















(Current research level of Fire Arrows for (Picked player)) Equal to 1
-


















(Random integer number between 1 and 2) Equal to 1
-


















((Picked player) Food used) Less than ((Picked player) Food cap)
-
-

















Then - Actions
-


















Unit - Order (Random unit from (Units owned by (Picked player) of type Archery)) to train/upgrade to a Crossbowman
-
-

















Else - Actions
-


















If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



















If - Conditions
-




















((Picked player) Current gold) Greater than or equal to 270
-




















(Current research level of Age 2 for (Picked player)) Greater than or equal to 3
-




















(Current research level of Fire Arrows for (Picked player)) Equal to 1
-




















((Picked player) Food used) Less than ((Picked player) Food cap)
-
-



















Then - Actions
-




















Unit - Order (Random unit from (Units owned by (Picked player) of type Archery)) to train/upgrade to a Archer
-
-



















Else - Actions
-
-
-
-
-
-
-
-
-
-
-
-
-







Else - Actions
-
-






-------- Train Man-at-Arms, Footman, Spearman, Swordsman or Templar --------
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








(Number of units in (Units owned by (Picked player) matching (((Unit-type of (Matching unit)) Equal to Man-at-Arms) or (((Unit-type of (Matching unit)) Equal to Footman) or (((Unit-type of (Matching unit)) Equal to Pikeman) or (((Unit-type of (Matching unit)) Less than or equal to (Integer(((Real(((Picked player) Food cap))) x 0.60)))
-
-







Then - Actions
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










((Picked player) Current gold) Greater than or equal to 120
-










(Current research level of Age 2 for (Picked player)) Equal to 0
-










((Picked player) Food used) Less than or equal to ((Picked player) Food cap)
-
-









Then - Actions
-










Unit - Order (Random unit from (Units owned by (Picked player) of type Barracks)) to train/upgrade to a Man-at-Arms
-
-









Else - Actions
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












((Picked player) Current gold) Greater than or equal to 230
-












((Picked player) Current gold) Less than 280
-












(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 2
-












(Current research level of Age 2 for (Picked player)) Equal to 1
-












((Picked player) Food used) Less than ((Picked player) Food cap)
-
-











Then - Actions
-












Unit - Order (Random unit from (Units owned by (Picked player) of type Barracks)) to train/upgrade to a Footman
-
-











Else - Actions
-












If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-













If - Conditions
-














((Picked player) Current gold) Greater than or equal to 280
-














(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 2
-














(Current research level of Age 2 for (Picked player)) Equal to 1
-














((Picked player) Food used) Less than ((Picked player) Food cap)
-
-













Then - Actions
-














Unit - Order (Random unit from (Units owned by (Picked player) of type Barracks)) to train/upgrade to a Footman
-
-













Else - Actions
-














If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-















If - Conditions
-
















((Picked player) Current gold) Greater than or equal to 300
-
















(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 3
-
















(Current research level of Age 2 for (Picked player)) Greater than or equal to 2
-
















(Current research level of Arenas for (Picked player)) Equal to 0
-
















((Picked player) Food used) Less than ((Picked player) Food cap)
-
-















Then - Actions
-
















Unit - Order (Random unit from (Units owned by (Picked player) of type Barracks)) to train/upgrade to a Swordsman
-
-















Else - Actions
-
















If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-

















If - Conditions
-


















((Picked player) Current gold) Greater than or equal to 420
-


















(Number of units in (Units owned by (Picked player) of type Mine)) Greater than or equal to 4
-


















(Current research level of Age 2 for (Picked player)) Equal to 3
-


















(Current research level of Arenas for (Picked player)) Equal to 1
-


















((Picked player) Food used) Less than ((Picked player) Food cap)
-
-

















Then - Actions
-


















Unit - Order (Random unit from (Units owned by (Picked player) of type Barracks)) to train/upgrade to a Templar
-
-

















Else - Actions
-
-
-
-
-
-
-
-
-
-
-







Else - Actions
-
-
-





Else - Actions
-
-




-------- Train Villager or Peasant --------
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






((Picked player) Current gold) Greater than or equal to 40
-






((Picked player) Food cap) Greater than or equal to ((Number of units in (Units owned by (Picked player) of type Villager)) x 50)
-
-





Then - Actions
-






Unit - Order (Random unit from (Units owned by (Picked player) of type Town Center)) to train/upgrade to a Villager
-
-





Else - Actions
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








((Picked player) Current gold) Greater than or equal to 65
-








((Picked player) Food cap) Greater than or equal to ((Number of units in (Units owned by (Picked player) of type Peasant)) x 50)
-
-







Then - Actions
-








Unit - Order (Random unit from (Units owned by (Picked player) of type Town Center)) to train/upgrade to a Peasant
-
-







Else - Actions
-
-
-
-
-
-
-
