How do i make regular units to be purchased like mercenaries.

jonas

You can change this now in User CP.
Reaction score
67
By the way, you should try to make your code table driven.
 

sunshinex3

You can change this now in User CP.
Reaction score
7
this is the condition that is wrong any one know whats wrong?
Trigger:
  • (Number of units in (Units owned by (Owner of (Dying unit)) of type Spawning Pool (zerg))) Equal to 0
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
It is wrong in which way? (I also recommended not using Dying unit and switching to Triggering unit instead)
 

sunshinex3

You can change this now in User CP.
Reaction score
7
( I tried changing it to owner of triggering unit, it had no effect)
sry the condition is the only thing preventing the trigger from working.

Trigger:
  • (Number of units in (Units owned by (Owner of (Dying unit)) of type Spawning Pool (zerg))) Equal to 0


i know their are leaks and i will get to those but first i need this to work.(and i feel as if i were really close)

the event of the trigger is a unit dies
and essentially it is supposed to remove the units sold(units sold are placed in buildings by add triggers, which works good)

the two conditions say:
Trigger:
  • Conditions
    • (Unit-type of (Dying unit)) Equal to Spawning Pool (zerg)
    • (Number of units in (Units owned by (Owner of (Dying unit)) of type Spawning Pool (zerg))) Equal to 0


can't imagine why the second condition is preventing the actions

actions:
Trigger:
  • Then - Actions
    • Player - Make Zerg Egg (zergling) Available for training/construction by (Owner of (Dying unit))
    • Player - Make Zerg Egg (zergling colony) Available for training/construction by (Owner of (Dying unit))
    • Player - Make Zerg Egg (zergling Hive) Available for training/construction by (Owner of (Dying unit))
    • Unit Group - Pick every unit in (Units owned by (Owner of (Dying unit)) of type Hatchery (zerg)) and do (Actions)
    • Loop - Actions
    • Neutral Building - Remove Zerg Egg (zergling) from (Picked unit)
    • Unit Group - Pick every unit in (Units owned by (Owner of (Dying unit)) of type Colony (zerg)) and do (Actions)
    • Loop - Actions
    • Neutral Building - Remove Zerg Egg (zergling) from (Picked unit)
    • Unit Group - Pick every unit in (Units owned by (Owner of (Dying unit)) of type Hive (zerg)) and do (Actions)
    • Loop - Actions
    • Neutral Building - Remove Zerg Egg (zergling) from (Picked unit)
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
Because a dead unit still exists. Its still on the field. If you count all units of type then the dying unit is counted too because it still exists. If it didnt exist you wouldnt be able to get its type and whatnot.
What you really want to do is count the living units of that type.
 

sunshinex3

You can change this now in User CP.
Reaction score
7
awsome, yep works as intended, now i need to look into these memory leaks caused by unit groups...


accname ty so much for you help in this on going endeavor
 

sunshinex3

You can change this now in User CP.
Reaction score
7
okie dokie i followed instruction on:
Triggers - Memory Leaks and Custom Scripts
Tutorial By emjlr3

came up with this for both the add trigger and then the sold trigger to get rid of the leaks

Trigger:
  • Then - Actions
    • Player - Make Zerg Egg (zergling) Unavailable for training/construction by (Owner of (Constructed structure))
    • Player - Make Zerg Egg (zergling colony) Unavailable for training/construction by (Owner of (Constructed structure))
    • Player - Make Zerg Egg (zergling Hive) Unavailable for training/construction by (Owner of (Constructed structure))
    • Set temphatcherygroup = (Units owned by (Owner of (Constructed structure)) of type Hatchery (zerg))
    • Unit Group - Pick every unit in temphatcherygroup and do (Actions)
    • Loop - Actions
    • Neutral Building - Add Zerg Egg (zergling) to (Picked unit) with 4 in stock and a max stock of 4
    • Custom script: call DestroyGroup (udg_temphatcherygroup)
    • Set tempcolonygroup = (Units owned by (Owner of (Constructed structure)) of type Colony (zerg))
    • Unit Group - Pick every unit in tempcolonygroup and do (Actions)
    • Loop - Actions
    • Neutral Building - Add Zerg Egg (zergling) to (Picked unit) with 5 in stock and a max stock of 5
    • Custom script: call DestroyGroup (udg_tempcolonygroup)
    • Set temphivegroup = (Units owned by (Owner of (Constructed structure)) of type Hive (zerg))
    • Unit Group - Pick every unit in temphivegroup and do (Actions)
    • Loop - Actions
    • Neutral Building - Add Zerg Egg (zergling) to (Picked unit) with 6 in stock and a max stock of 6
    • Custom script: call DestroyGroup (udg_temphivegroup)


and for sold

Trigger:
  • Then - Actions
    • Player - Make Zerg Egg (zergling) Available for training/construction by (Owner of (Dying unit))
    • Player - Make Zerg Egg (zergling colony) Available for training/construction by (Owner of (Dying unit))
    • Player - Make Zerg Egg (zergling Hive) Available for training/construction by (Owner of (Dying unit))
    • Set temphatcherygroup = (Units owned by (Owner of (Dying unit)) of type Hatchery (zerg))
    • Unit Group - Pick every unit in temphatcherygroup and do (Actions)
    • Loop - Actions
    • Neutral Building - Remove Zerg Egg (zergling) from (Picked unit)
    • Custom script: call DestroyGroup (udg_temphatcherygroup)
    • Set tempcolonygroup = (Units owned by (Owner of (Dying unit)) of type Colony (zerg))
    • Unit Group - Pick every unit in tempcolonygroup and do (Actions)
    • Loop - Actions
    • Neutral Building - Remove Zerg Egg (zergling) from (Picked unit)
    • Custom script: call DestroyGroup (udg_tempcolonygroup)
    • Set temphivegroup = (Units owned by (Owner of (Dying unit)) of type Hive (zerg))
    • Unit Group - Pick every unit in temphivegroup and do (Actions)
    • Loop - Actions
    • Neutral Building - Remove Zerg Egg (zergling) from (Picked unit)
    • Custom script: call DestroyGroup (udg_temphivegroup)


every thing seems to be working perfectly i just wanted to make sure i have gotten rid of all the leaks.
btw
the two triggers above are repeated 3 more times (each) to make 8 triggers in all 2 for adding and removing zergling egges, hydrolisk eggs, scanthid, and ultralisk eggs.

if you think this may cause a problem plz let me know.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
Your conditions can leak too. You have only shown us the actions. In your previous trigger you also had leaks in your conditions.
By the way: you can use the same variable for each of the groups, you dont need to have 3 different temporary group variables for cleaning up leaks unless you are actually going to use all 3 of them simultaneously as in 3 nested loops.
 

sunshinex3

You can change this now in User CP.
Reaction score
7
oh... Jeeez, i didn't even know conditions could leak how am i even supposed to fix those? with variables as well?

Trigger:
  • Conditions
    • And - All (Conditions) are true
    • Conditions
    • ((Unit-type of (Dying unit)) Equal to Spawning Pool (zerg)) or (((Unit-type of (Dying unit)) Equal to Den (Zerg)) or (((Unit-type of (Dying unit)) Equal to Nest (Zerg)) or ((Unit-type of (Dying unit)) Equal to Lair (Zerg))))


and one of these for each; if all conditions are true (action).(4 in all)
Trigger:
  • And - All (Conditions) are true
    • Conditions
    • (Unit-type of (Dying unit)) Equal to Spawning Pool (zerg)
    • (Number of living Spawning Pool (zerg) units owned by (Owner of (Dying unit))) Equal to 0
 
Last edited:

Accname

2D-Graphics enthusiast
Reaction score
1,462
Your condition will only leak if unit groups or locations are created inside.
If they do you move them inside of your trigger actions and leave the triggers condition block empty.

If you dont use any unit groups or locations inside your condition then you can leave it as it is.
(player groups, special effects, regions and some other data types leak too, but unit groups and locations are the most common)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top