Need help - Open Gate when a unit enter in range

Klein~

TH.net Regular
Reaction score
0
I spent a bit of time thinking and trying on how would I do that, but it's been kinda trouble. So I came here to ask the community.

PLEASE, READ THE TOPIC!!!

Ok, first, I'll try to explain what I wanna do and what I expect:

Place multiple Gates of like 4 types, let's say 'Diagonal 1', 'Diagonal 2', 'Horizontal', 'Vertical'.
If a unit enter in 300.00 range of any type of those gates then -> open the gate that the unit is near of for howlong there are units within this range and interval of 5 seconds after the game check that there aren't units within this range.


What I expect and tried to do:

Make dummies to be used to catch 'Within range' option.
Place dummies on every gate I wanna open, not meaning to care about types, just those I want.

In initialization trigger, pick every unit matching condition that unit-type is equal to dummy type and set picked units equal to GateOpenDummy.

Trigger:
  • Gates
    • Events
    • Conditions
    • Actions
      • Destructible - Pick every destructible within 300.00 of (Position of (Triggering unit)) and do (Actions)
        • Loop - Actions
          • Destructible - Open (Picked destructible)

Idk if I should use 'Triggering unit' to refer the unit(dummy) and not the entering unit.
Then add on map initialization trigger this line:
Trigger:
  • Trigger - Add to Gates <gen> the event (Unit - A unit comes within 300.00 of GateOpenDummy)

GateOpenDummy = picked units
Now I know that if a unit enter in the trigger range, the 'nearest' gate, near the dummy that this unit has entered in range of, will open as i wished.
It hasn't worked and I didn't think of a way to make the gate opened for a while as I wanna do.
Thanks. :)
 

Tharius

Occasionally Around
Reaction score
39
Trigger:
  • Gates
    • Events
    • Unit - A unit comes within 300.00 of Dummy 0001
    • Conditions
    • Actions
    • Destructible - Pick every destructible within 300.00 of (Position of (Triggering unit)) and do (Actions)
    • Loop - Actions
    • Destructible - Open (Picked destructible)

In this trigger, "Triggering Unit" is the unit coming within range of the dummy, not the dummy. "Entering Unit", by the way, refers specifically to a unit entering a region, and doesn't work with a "unit within range" event.

The map initialization trigger should look closer to:
Trigger:
  • Pick every unit in (Units of type Dummy) and do (Actions)
    • Trigger - Add to Gates <gen> the event (Unit - A unit comes within 300.00 of Picked Unit)


It would probably be easier, when the Gates event is triggered, to just pick every destructible in range of the triggering unit that's of the proper type, and open them all. You could also scrap the work you've done and use regions instead of dummy units, depending on whether there's anything else that depends on them. One benefit to using dummy units rather than regions, though, is that you can use the dummy unit to remember the health of the gate prior to opening, without having to use variables. When a gate is set to "Open", it's actually killed and set to its "Death Alternate" animation. When a gate is set to "Closed" it's resurrected at full health and its animation is reset. This can cause a partially damaged gate to repair itself if (as you're describing) a unit comes towards it to open it, then moves away to close it.
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
612
It would be much simpler to create regions around each gate, then check for remaining units whenever a unit enters/leaves those regions.
 

Juno**

Member
Reaction score
6
It would be much simpler to create regions around each gate, then check for remaining units whenever a unit enters/leaves those regions.

I agree with KaerfNomekop, using regions is much more simpler...
 

Attachments

  • OpenOrCloseGate.PNG
    OpenOrCloseGate.PNG
    16.8 KB · Views: 191

Klein~

TH.net Regular
Reaction score
0
Good.

Tharius

I set the following for map initialization trigger:

Trigger:
  • Unit Group - Pick every unit in (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to DUMMY-Gate)) and do (Actions)
    • Loop - Actions
      • Set GateOpenDummy = (Picked unit)
      • Trigger - Add to Gates <gen> the event (Unit - A unit comes within 300.00 of GateOpenDummy)

So, I'm sure to give a shot to your idea of destroy/resurrect gate;
KaerfNomekop and Juno**
I didn't use region cause I want circular area check instead of square format.
 
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