Need some help with trigger

JsK

New Member
Reaction score
0
Im trying to make a dummy unit that orbits around the caster. The orbiting seems fine but there are 2 problems:

1. How do I make the orbiting dummy unit face where it is going?
2. When the spell is spammed and the spell buff expires , only 1 orbiting dummy is removed. How do I remove all of them?

Here are the triggers I have so far:
Trigger:
  • Sight Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sight
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • MUI_1 Equal to 0
        • Then - Actions
          • Trigger - Turn on Sight Loop <gen>
        • Else - Actions
      • Set MUI_1 = (MUI_1 + 1)
      • Set MUI_2 = (MUI_2 + 1)
      • Set Sight_Caster[MUI_2] = (Triggering unit)
      • Set Sight_Caster_Point[MUI_2] = (Position of Sight_Caster[MUI_2])
      • Set Sight_Level[MUI_2] = (Level of Sight for Sight_Caster[MUI_2])
      • Set Sight_Buff[MUI_2] = Sight
      • Unit - Create 1 Orb of Sight (Dummy) for (Owner of Sight_Caster[MUI_2]) at Sight_Caster_Point[MUI_2] facing Default building facing degrees
      • Set Sight_Dummy[MUI_2] = (Last created unit)
      • Set Sight_Distance[MUI_2] = 0.00
      • Set Sight_Final_Distance[MUI_2] = 375.00
      • Custom script: call RemoveLocation ( udg_Sight_Caster_Point[udg_MUI_2] )

Trigger:
  • Sight Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer MUI_3) from 1 to MUI_2, do (Actions)
        • Loop - Actions
          • Set Sight_Temp_Point[MUI_3] = (Position of Sight_Caster[MUI_3])
          • Set Sight_Angle[MUI_3] = (Sight_Angle[MUI_3] + 8.00)
          • Set Sight_Point[MUI_3] = (Sight_Temp_Point[MUI_3] offset by Sight_Distance[MUI_3] towards Sight_Angle[MUI_3] degrees)
          • Set Sight_Distance[MUI_3] = (Sight_Distance[MUI_3] + 2.00)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Sight_Distance[MUI_3] Greater than or equal to Sight_Final_Distance[MUI_3]
            • Then - Actions
              • Set Sight_Distance[MUI_3] = Sight_Final_Distance[MUI_3]
            • Else - Actions
          • Unit - Move Sight_Dummy[MUI_3] instantly to Sight_Point[MUI_3], facing ((Distance between Sight_Point[MUI_3] and Sight_Temp_Point[MUI_3]) - 90.00) degrees
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Sight_Caster[MUI_3] has buff Sight_Buff[MUI_3]) Equal to False
            • Then - Actions
              • Unit - Kill Sight_Dummy[MUI_3]
              • Set MUI_1 = (MUI_1 - 1)
            • Else - Actions
          • Custom script: call RemoveLocation ( udg_Sight_Temp_Point[udg_MUI_3] )
          • Custom script: call RemoveLocation ( udg_Sight_Point[udg_MUI_3] )
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • MUI_1 Equal to 0
        • Then - Actions
          • Set MUI_2 = 0
          • Trigger - Turn off (This trigger)
        • Else - Actions
 

krainert

Member
Reaction score
10
1.
Depending on how the trigger works (didn't read the entire thing), use the same angle as used to move the unit.
If this poses difficult with the concrete implementation, try using trigonometric methods to calculate the angle between satellite and center and either add or subtract 90 degrees depending on the direction of orbit.

2.
As far as I can see, the satellites are removed when certain conditions are met for the center. Try using Hashtables to create a unit group for each center (if one does not exist already) and adding satellites to the proper one of those. Then when the satellites should be removed, simply run through all elements in the group and remove them - both from the group and from the world. Also remember to destroy the entry in the Hashtable for a center when nothing remains orbiting it.
The way I read it you have a spell that adds satellite dummies to a center target - one for each instance of a certain debuff. When no more instances are present, all satellites for the target are removed. Seems a bit odd to me so correct me if I misunderstood the intention :)
 
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