Locust problem - "Pick every unit withing X of Y"

Sajberhippie

New Member
Reaction score
30
Units with the Locust ability can't be selected, is ignored by the AI, does not affect pathing, and isn't detected by certain things when triggering, including "Every unit in Region/Range". This is how I've understood locusts, but please correct me if I'm wrong in any way.

This last effect is causing real problems for me. I want to create locust creatures "attached" to a buildning, that are created when the building is erected and removed when the buildning dies. The units in question are attack-units, so the building has several attacks, each with a long cooldown and each from a different position.

Now, I've been using this trigger to remove them:
Trigger:
  • Building Destroyed
    • Events
      • Unit - A unit Dies
    • Conditions
      • Unit-Type Comparision - Unit type is equal to My Unit
    • Actions
      • Set TempPoint = (Position of (Triggering unit))
      • Set TempGroup = (Units within 200.00 of TempPoint)
      • Unit Group - Pick every unit in TempGroup 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 Crossbowman
            • Then - Actions
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
          • Custom script: call DestroyGroup (udg_TempGroup)
      • Custom script: call RemoveLocation (udg_TempPoint)



(Note: There's actually several more cases where this is a problem, so the building-with-archers problem is just an example).

Now, I have a problem. If the crossbowmen has Locust, this trigger won't work, since it can't pick the crossbowmen. If they don't, then the player can select them, and enemies will auto-attack them. The second problem can be solved through making them invulnerable, but how to solve the selection problem?

Thankful for any help, and of course +rep!
 

MasterOfRa

New Member
Reaction score
10
I have had a similer problem, when makeing a line of sight building that couldn't see over walls, and i made the line of sight dummys invuln, allowing "pick every Los dummy in 64 range" to work, So you should be able to get it to work by makeing them invuln, not locusts. to make players no be able to issue orders, i think you need to make them wards, but im not sure about that.
 

Sajberhippie

New Member
Reaction score
30
I have had a similer problem, when makeing a line of sight building that couldn't see over walls, and i made the line of sight dummys invuln, allowing "pick every Los dummy in 64 range" to work, So you should be able to get it to work by makeing them invuln, not locusts. to make players no be able to issue orders, i think you need to make them wards, but im not sure about that.

I don't want them to even be selectable, that's the problem.
 

Karst

Member
Reaction score
4
As far as I know the only ways of doing this are either

-Making the unit a locust
-Making a trigger that immediately deselects the unit once it is selected
-Using "Game - Enable/Disable Selection" , which however apply to all units and players.
 

Sajberhippie

New Member
Reaction score
30
As far as I know the only ways of doing this are either

-Making the unit a locust
-Making a trigger that immediately deselects the unit once it is selected
-Using "Game - Enable/Disable Selection" , which however apply to all units and players.

Damn, that's some hard shit to hear. I've thought about deselection, but it has severe problems in it anyways; when selecting several units at a time only some may be selected.

How does Hide/Show unit work and what does it do?
 

Karst

Member
Reaction score
4
A hidden unit is invisible, both visually and gameplay-wise. It remembers its orders, will auto-attack enemies and cast autocast abilites (probably). It cannot be selected, its health bar is not displayed, and it doesn't show up in "Units in Region" queries.

Edit: a hidden unit apparently cannot receive orders. Tested this with a hidden unit that was supposed to cast frost armor on itself.
 

Darthfett

Aerospace/Cybersecurity Software Engineer
Reaction score
615
An easy way to get locusts that are in range or in a region, is simply to pick units by type, and use the boolean or real comparison (is unit in region, distance between points)

Trigger:
  • Building Destroyed
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to My Unit
    • Actions
      • Set tempPoint[1] = (Position of (Triggering unit))
      • Unit Group - Pick every unit in (Units of type Crossbowman) and do (Actions)
        • Loop - Actions
          • Set tempPoint[2] = (Position of (Picked unit))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between tempPoint[1] and tempPoint[2]) Less than or equal to 200.00
            • Then - Actions
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
          • Custom script: call RemoveLocation(udg_tempPoint[2])
      • Custom script: call RemoveLocation(udg_tempPoint[1])
 

Sajberhippie

New Member
Reaction score
30
An easy way to get locusts that are in range or in a region, is simply to pick units by type, and use the boolean or real comparison (is unit in region, distance between points)

Trigger:
  • Building Destroyed
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to My Unit
    • Actions
      • Set tempPoint[1] = (Position of (Triggering unit))
      • Unit Group - Pick every unit in (Units of type Crossbowman) and do (Actions)
        • Loop - Actions
          • Set tempPoint[2] = (Position of (Picked unit))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between tempPoint[1] and tempPoint[2]) Less than or equal to 200.00
            • Then - Actions
              • Unit - Remove (Picked unit) from the game
            • Else - Actions
          • Custom script: call RemoveLocation(udg_tempPoint[2])
      • Custom script: call RemoveLocation(udg_tempPoint[1])

Darthfett Delivers! Thanxalot! :thup:
 

SerraAvenger

Cuz I can
Reaction score
234
Ever tried using the gobbo factory's spawning skill instead? Doesn't even need any triggering at all.
EDIT: The units will die, though - so using a modelled unit won't work here.
 
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