Selecting Unit in a Spiral

NaPzt3R

You can change this now in User CP.
Reaction score
38
How would you via. trigger select units like this?

untitled-1.jpg
 

Accname

2D-Graphics enthusiast
Reaction score
1,464
i hope this will help you

Code:
Untitled Trigger 001
    Events
        Player - Player 1 (Red) types a chat message containing -Set as An exact match
    Conditions
    Actions
        Set P1 = (Position of Paladin 0000 <gen>)
        Set G1 = (Units within 3000.00 of P1 matching ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) Equal to (Triggering player)) and ((Matching unit) Not equal to Paladin 0000 <gen>))))
        For each (Integer A) from 1 to 12, do (Actions)
            Loop - Actions
                Unit Group - Remove U2[(Integer A)] from G1
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                U1 Not equal to No unit
            Then - Actions
                Set U1 = (Random unit from G2)
            Else - Actions
                Set U1 = (Random unit from G1)
        Set P2 = (Position of U1)
        Set G2 = (Units within 3000.00 of P1 matching ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) Equal to (Triggering player)) and (((Matching unit) Not equal to Paladin 0000 <gen>) and ((Distance between P1 and (Position of (Matching unit)))
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Number of units in G2) Not equal to 0
            Then - Actions
                Trigger - Run (This trigger) (ignoring conditions)
            Else - Actions
                For each (Integer A) from 1 to 12, do (Actions)
                    Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                U2[(Integer A)] Equal to No unit
                            Then - Actions
                                Set U2[(Integer A)] = U1
                            Else - Actions
                Set U1 = No unit
        Custom script: call RemoveLocation (udg_P1)
        Custom script: call RemoveLocation (udg_P2)

it ll set the 12 nearest units around my paladin in order of their distance towards him.

Edit: Heres the map i did this script in maybe it ll help you more if you can test it.
 

Expelliarmus

Where to change the sig?
Reaction score
48
EDIT! Beaten! T.T

For Integer is required, which will be used in conjunction with angles and distances.

First determine the angle distances between 2 points you want. Say 20. Divide it from 360. 360 / 20 = 18

This number will be used for the integer

Code:
For each (Integer A) from 1 to 18, do (Actions)
    Loop - Actions

Then determine the increments for every movement. e.g + 30.0 every change of angle. (30 * 18 = 540.0 distances away as the head of the spiral)
Input:

Code:
For each (Integer A) from 1 to 18, do (Actions)
    Loop - Actions
Set Temp_Point = ((Position of (Triggering unit)) offset by 30.00 towards 0.00 degrees)

Make use of For Integer A, which will help to manage the increments.
Code:
For each (Integer A) from 1 to 18, do (Actions)
    Loop - Actions
Set Temp_Point = ((Position of (Triggering unit)) offset by (30.00 x (Real((Integer A)))) towards (20.00 x (Real((Integer A)))) degrees)

Utilize the new reference point and pick every units around that point matching conditions.
Code:
Actions
        For each (Integer A) from 1 to 18, do (Actions)
            Loop - Actions
                Set Temp_Point = ((Position of (Triggering unit)) offset by (30.00 x (Real((Integer A)))) towards (20.00 x (Real((Integer A)))) degrees)
                Unit Group - Pick every unit in (Units within 200.00 of Temp_Point matching (((Matching unit) is A structure) Equal to False)) and do (Actions)
                    Loop - Actions
Add your actions ...

Code:
Actions
        For each (Integer A) from 1 to 18, do (Actions)
            Loop - Actions
                Set Temp_Point = ((Position of (Triggering unit)) offset by (30.00 x (Real((Integer A)))) towards (20.00 x (Real((Integer A)))) degrees)
                Unit Group - Pick every unit in (Units within 200.00 of Temp_Point matching (((Matching unit) is A structure) Equal to False)) and do (Actions)
                    Loop - Actions
                        Unit - Create 1 Footman for (Triggering player) at (Position of (Picked unit)) facing (Position of (Triggering unit))
                        Unit - Add Acid Bomb to (Last created unit)
                        Unit - Set level of Acid Bomb for (Last created unit) to (Level of Acid Bomb for (Triggering unit))
                        Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Picked unit)
                        Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
Remove leak

Code:
    Actions
        For each (Integer A) from 1 to 18, do (Actions)
            Loop - Actions
                Set Temp_Point = ((Position of (Triggering unit)) offset by (30.00 x (Real((Integer A)))) towards (20.00 x (Real((Integer A)))) degrees)
                Unit Group - Pick every unit in (Units within 200.00 of Temp_Point matching (((Matching unit) is A structure) Equal to False)) and do (Actions)
                    Loop - Actions
                        Unit - Create 1 Dummy for (Triggering player) at (Position of (Picked unit)) facing (Position of (Triggering unit))
                        Unit - Add Acid Bomb to (Last created unit)
                        Unit - Set level of Acid Bomb for (Last created unit) to (Level of Acid Bomb for (Triggering unit))
                        Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Picked unit)
                        Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Custom script:   call RemoveLocation(udg_Temp_Point)
Quick Check List:
- determine the angle distances between 2 points
- determine the increments for every movement
- draft trigger
- utilize Integer A
 
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