Help me fix my triggers

feelthless

New Member
Reaction score
1
Hi! I am making a Hook spell but it is a little buggy

Here are the triggers:

Trigger:
  • Hook 1
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Hook
    • Actions
      • Set hook_caster = (Casting unit)
      • Set hook_angle = (Angle from (Position of hook_caster) to (Target point of ability being cast))
      • Set hook_maxdistance = (200 + (200 x (Level of Hook for hook_caster)))
      • Set hook_level = (Level of Hook for hook_caster)
      • Unit - Create 1 MainHook for (Owner of hook_caster) at ((Position of hook_caster) offset by 100.00 towards hook_angle degrees) facing hook_angle degrees
      • Set hook_main = (Last created unit)
      • Unit - Move hook_main instantly to ((Position of hook_caster) offset by 100.00 towards hook_angle degrees)
      • Unit - Turn collision for hook_main Off
      • Trigger - Turn on Hook 2 <gen>
      • Trigger - Turn on Hook 3 <gen>
      • Trigger - Turn on Hook 4 <gen>
      • Wait ((200.00 + (200.00 x (Real(hook_level)))) / 875.00) seconds
      • Trigger - Turn off Hook 2 <gen>
      • Trigger - Turn off Hook 3 <gen>
      • Trigger - Turn off Hook 4 <gen>
      • Trigger - Turn on Hook 3 reverse <gen>


Trigger:
  • Hook 2
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Set hook_hooksnumber = (hook_hooksnumber + 1)
      • Unit - Create 1 Hooks for (Owner of hook_caster) at ((Position of hook_caster) offset by 35.00 towards hook_angle degrees) facing hook_angle degrees
      • Unit - Move (Last created unit) instantly to ((Position of hook_main) offset by (-15.00 + (-35.00 x (Real(hook_hooksnumber)))) towards hook_angle degrees)
      • Set hook_hooks[hook_hooksnumber] = (Last created unit)
      • Unit - Turn collision for hook_hooks[hook_hooksnumber] Off
      • Unit Group - Add (Last created unit) to hook_group


Trigger:
  • Hook 3
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Unit - Move hook_main instantly to ((Position of hook_main) offset by 35.00 towards hook_angle degrees)
      • Unit Group - Pick every unit in hook_group and do (Actions)
        • Loop - Actions
          • Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by 35.00 towards hook_angle degrees)


Trigger:
  • Hook 4
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • Set hook_checker = (Units within 75.00 of (Position of hook_main) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) Not equal to hook_caster) and ((Matching unit) Not equal to hook_main)) and (((Ma
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in hook_checker) Greater than 0
        • Then - Actions
          • Trigger - Turn off Hook 2 <gen>
          • Trigger - Turn off Hook 3 <gen>
          • Trigger - Turn on Hook 3 reverse <gen>
          • Unit - Remove hook_hooks[hook_hooksnumber] from the game
          • Unit Group - Pick every unit in hook_checker and do (Actions)
            • Loop - Actions
              • Set hook_edunit = (Picked unit)
              • Unit - Turn collision for hook_edunit Off
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (hook_edunit belongs to an enemy of (Owner of hook_caster)) Equal to True
                • Then - Actions
                  • Unit - Cause hook_caster to damage hook_edunit, dealing (100.00 x (Real(hook_level))) damage of attack type Spells and damage type Normal
                • Else - Actions
        • Else - Actions


Trigger:
  • Hook 3 reverse
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Unit - Remove hook_hooks[0] from the game
      • Unit - Remove hook_hooks[1] from the game
      • Unit - Remove hook_hooks[hook_hooksnumber] from the game
      • Set hook_hooksnumber = (hook_hooksnumber - 1)
      • Unit - Remove hook_hooks[hook_hooksnumber] from the game
      • Unit Group - Pick every unit in hook_group and do (Actions)
        • Loop - Actions
          • Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by -35.00 towards hook_angle degrees)
      • Unit - Move hook_main instantly to ((Position of hook_main) offset by -35.00 towards hook_angle degrees)
      • Unit - Move hook_edunit instantly to ((Position of hook_edunit) offset by -35.00 towards hook_angle degrees)
      • Special Effect - Create a special effect attached to the chest of hook_edunit using Abilities\Spells\Other\Incinerate\IncinerateBuff.mdl
      • Special Effect - Destroy (Last created special effect)
      • Wait until (hook_hooksnumber Equal to 0), checking every 1.00 seconds
      • Unit - Remove hook_main from the game
      • Unit - Turn collision for hook_edunit On
      • Unit - Remove hook_main from the game
      • Unit Group - Pick every unit in hook_group and do (Actions)
        • Loop - Actions
          • Unit - Remove (Picked unit) from the game
      • Unit Group - Remove all units from hook_checker
      • Unit Group - Remove all units from hook_group
      • Trigger - Turn off Hook 3 reverse <gen>


The problems are:
The "hooks" sometimes changes their angle (while pulling back)
The main hook sometimes doesnt stop when it reach the position of the caster, instead of this it continues moving backwards till the end of the map..

Pls help ;[ thanks in advance
 
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