Ordering Problems

Pigger

New Member
Reaction score
13
Me again. I saw back a while ago a thread about a commander having locust'd unit following him around and doing exactly what he did, so I decided to try it out on my own (I never knew what became of the thread and I can't find it :S). Basically what happens, a Hero learns an ability, a few units with the "locust" ability are spawned near him, (This is to keep it like a passive army near him at all times), and whenever the Hero is ordered something, let's say 'attack' for example, all the other little locust'd units will attack his target. But they will not attack unless he is ordered first.

I've tried triggers such as:
Code:
Kobold Army1
    Events
        Unit - A unit Learns a skill
    Conditions
        (Learned Hero Skill) Equal to Kobold Army 
    Actions
        Unit - Create ((Level of Kobold Army  for (Triggering unit)) x 3) Kobold Soldier for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
        Set KoboldComm = (Learning Hero)
        Set KoboldArmy = (Last created unit group)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Issued order) Equal to (Order(smart))
                (Issued order) Equal to (Order(attack))
            Then - Actions
                Unit Group - Order KoboldArmy to Right-Click (Target unit of issued order)
            Else - Actions
                Unit Group - Order KoboldArmy to Follow KoboldComm

And

Code:
KoboldAttackTest
    Events
        Unit - A unit Is issued an order targeting an object
    Conditions
        (Issued order) Equal to (Order(smart))
        (Issued order) Equal to (Order(attack))
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Issued order) Equal to (Order(smart))
            Then - Actions
                Unit Group - Order KoboldArmy to Right-Click (Target unit of issued order)
            Else - Actions
                Unit Group - Order KoboldArmy to Follow KoboldComm

...but neither seem to work. The spawning is fine, and the following works perfectly, but they just wont do what the Hero does.
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
It looks like your second trigger would create an infinite loop. It waits for an order, then gives orders to a unit, which would trigger it again. In the first trigger, that If/Then/Else doesn't work since there is no (Issued Order).
 

Pigger

New Member
Reaction score
13
:S

I tried adding
Code:
(Ordered unit) Equal to KoboldComm
To the second trigger, just so it would make sure that the ordered unit is the Hero (KoboldComm is set in the first trig), but that isn't working. And I also changed in the first one the Orders Issued into
Code:
(Current order of KoboldComm) Equal to (Order(smart))

But that isn't working either.
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
Well, actually, I've done something almost exactly like you want to do. And it works perfectly. Here's one of the triggers:

Code:
Hearlds 3
    Events
        Unit - A unit Is attacked
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Attacking unit) is A Hero) Equal to True
                (Owner of (Attacked unit)) Not equal to Player 1 (Red)
            Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Attacking unit) Equal to Heros[1]
                    Then - Actions
                        Unit Group - Pick every unit in Hearlds_1 and do (Actions)
                            Loop - Actions
                                Unit - Order (Picked unit) to Attack (Attacked unit)
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Attacking unit) Equal to Heros[2]
                    Then - Actions
                        Unit Group - Pick every unit in Hearlds_2 and do (Actions)
                            Loop - Actions
                                Unit - Order (Picked unit) to Attack (Attacked unit)
                    Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Attacking unit) Equal to Heros[3]
                    Then - Actions
                        Unit Group - Pick every unit in Hearlds_3 and do (Actions)
                            Loop - Actions
                                Unit - Order (Picked unit) to Attack (Attacked unit)
                    Else - Actions
            Else - Actions

Hearlds_1 is the unit group where I put the units with locust. Heros[] is the variable where I stored the heroes. You would not have to have the If/Then/Else three times since you only have one hero.
 

Pigger

New Member
Reaction score
13
Aha! That trigger you posted is working for me also. Now it brings up another problem I am to address, and that is to make them stop attacking once the Hero stops attacking. I suppose I will have to do that with a separate trigger.
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
Well, of course, they will stop attacking when the unit dies. But, here's my trigger that tells them to follow the hero when it moves out of range:

Code:
Hearlds 4
    Events
        Time - Every 1.00 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in Hearlds_1 and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Distance between (Position of (Picked unit)) and (Position of Heros[1])) Greater than or equal to 600.00
                    Then - Actions
                        Unit - Order (Picked unit) to Follow Heros[1]
                    Else - Actions
        Unit Group - Pick every unit in Hearlds_2 and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Distance between (Position of (Picked unit)) and (Position of Heros[2])) Greater than or equal to 600.00
                    Then - Actions
                        Unit - Order (Picked unit) to Follow Heros[2]
                    Else - Actions
        Unit Group - Pick every unit in Hearlds_3 and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Distance between (Position of (Picked unit)) and (Position of Heros[3])) Greater than or equal to 600.00
                    Then - Actions
                        Unit - Order (Picked unit) to Follow Heros[3]
                    Else - Actions

It compares the distance between each unit and the hero. Again, you don't need three instances of the actions.

Warning: Both triggers have leaks.
 

Pigger

New Member
Reaction score
13
Lovely, thank you very much for the help. I'll fix the leaks (I know how!...) and finish all the nit picking things. Then I shall be on my way!

Off-Topic: Is there a way to make units with locust spread out when they are all created at one point. Like when you have an army of footmen and order them to a point, they will all spread into their formation.
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
> Is there a way to make units with locust spread out when they are all created at one point.

Probably. You could select one unit as the 'center', then order the others to move to that unit's position offset by 300 range toward the unit's facing angle + 90 and -90. That would get the units to move to either side of the center unit.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top