Need Help making units attack enemy properly.

niceone

New Member
Reaction score
3
Hello people I am making a new map and I want to have units attack each other.

The first team (team teal) spawns at the top of the map and the second team (team orange) spawns at the bottom of the map.

They then attack a random unit controlled by the opposing team. And if they killed all they have to move to the opposite its area and get warped somewhere outside midarea.

My first try was spawning 50 units in each spawn area. Without the attackMiddleActive trigger which just nice gave me a cpu usage of 70% and a crash of the system :mad:

So I had to make that trigger.

But here the trouble begins because the trigger is deactivated for 0.5s sometimes my attackers go back to their spawn and wait there till the trigger is called again.

Triggers.

Code:
AttackMiddle
    Events
        Unit - A unit enters MidArea <gen>
        Unit - A unit owned by Player 12 (Brown) Dies
        Unit - A unit owned by Player 11 (Dark Green) Dies
    Conditions
    Actions
        Trigger - Turn off (This trigger)
        Unit Group - Pick every unit in (Units in MidArea <gen> owned by Player 11 (Dark Green)) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (All units of (Units owned by Player 12 (Brown)) are in MidArea <gen>) Equal to False
                    Then - Actions
                        Unit - Order (Picked unit) to Move To (Random point in Team Orange Spawn <gen>)
                    Else - Actions
                        Unit - Order (Picked unit) to Attack (Random unit from (Units in MidArea <gen> owned by Player 12 (Brown)))
        Unit Group - Pick every unit in (Units in MidArea <gen> owned by Player 12 (Brown)) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (All units of (Units owned by Player 11 (Dark Green)) are in MidArea <gen>) Equal to False
                    Then - Actions
                        Unit - Order (Picked unit) to Move To (Random point in Team Teal Spawn <gen>)
                    Else - Actions
                        Unit - Order (Picked unit) to Attack (Random unit from (Units in MidArea <gen> owned by Player 11 (Dark Green)))

Code:
AttackMiddleActivate
    Events
        Time - Every 0.50 seconds of game time
    Conditions
    Actions
        Trigger - Turn on AttackMiddle <gen>

Then I tried with a periodic event of 0.5 s without deactivating. And it ended up with a cpu usage of 50% and lagg...

So can anyone help me with a solution? Thanks in advance!
 

sentrywiz

New Member
Reaction score
25
Memories when I had exact same problems like you do now. No sweat :)

First, make a dummy unit that will act as a controller for both parties to ensure they continue to attack wherever they are meant to.

Just make a unit locust > giving it model of bugger found in spawned effects. Also, change the Art - Shadow Image (Unit) to NONE so that his shadow won't give it away. Now that your dummy can't be seen, put one near the point both forces have to be fighting.

Then you can use the following trigger to make units do whatever you want them to do:

Trigger:
  • Dummy Controller
    • Events
      • Unit - A unit comes within 500.00 of Dummy Controller 1 &lt;gen&gt;
    • Conditions
      • ((Owner of (Triggering unit)) controller) Not equal to User
    • Actions
      • If (((Triggering unit) belongs to an ally of (Your Player Number) Equal to True) then do (Unit - Order (Triggering unit) to Attack-Move To (Position of Wherever you want them)) else do (Unit - Order (Triggering unit) to Attack-Move To (Position of Wherever you want the other team&#039;s units to go and do))


You can always increase the range in the Events thus this will pick units of any kind from a far.

You can add conditions as you please so that the dummy controller will pick only units to your flavor.

Modify more or less conditions in actions if you have a wide range of where are units to go and do.



You can place as many dummy unit controllers as you wish, one at each base, one at the battle point maybe a few more to ensure units won't go back to the bases if they don't like the fight :p

And instead in that big ass code trigger of yours, you can just put some more options onto the controller to do instead of making your computer lag. Let me know if this helps
 

niceone

New Member
Reaction score
3
That will not solve my problem :/ because they don't fight at 1 spot they fight at allot of spots down the whole lane :)

But is there a way to create a dummy at the location where you spawn a unit and then let it walk with the unit?

AND that I can use the event you gave?
 

niceone

New Member
Reaction score
3
The Solution was fairly simple... I deleted those triggers and just added in the 2 move triggers that they have to Patrol to the other side...
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top