Skewer Help!!!

n1mr0d

Member
Reaction score
1
Ok so the spell, is 1 sliding , the caster hero will slide to the targeted point , and if in his collision are enemies he will pick up them , and will slide to the targeted point.
Here is my trigger :
Trigger:
  • Skewer
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Channel
    • Actions
      • Set speed = 950.00
      • Set point = (Target point of ability being cast)
      • Set caster = (Triggering unit)
      • Set difference = (Distance between (Position of caster) and point)
      • Set real = (Angle from (Position of caster) to point)
      • Set unitgroups_unitcount = 0

Trigger:
  • Skewer Effect
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
      • difference Greater than or equal to 0.00
    • Actions
      • Set caster_point = (Position of caster)
      • Set temp_point = (caster_point offset by (speed x 0.03) towards real degrees)
      • Unit - Turn collision for caster Off
      • Unit - Move caster instantly to temp_point
      • Set temp_unitgroup = (Units within 95.00 of temp_point)
      • Unit Group - Pick every unit in temp_unitgroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in temp_unitgroup) Greater than 0
              • ((Picked unit) is alive) Equal to True
              • ((Picked unit) belongs to an enemy of (Owner of caster)) Equal to True
              • unitgroups_unitcount Less than or equal to 2
            • Then - Actions
              • Set picked = (Random unit from temp_unitgroup)
              • Unit - Turn collision for picked Off
              • Unit - Move picked instantly to temp_point
              • Unit - Turn collision for picked On
              • Set unitgroups_unitcount = (unitgroups_unitcount + 1)
            • Else - Actions
      • Unit - Turn collision for caster On
      • Set difference = (difference - (speed x 0.03))
      • Custom script: call RemoveLocation(udg_caster_point)
      • Custom script: call RemoveLocation(udg_temp_point)
      • Custom script: call DestroyGroup(udg_temp_unitgroup)


My problem is: When the caster picks up the enemy unit , they will go back, i mean , they will slide in the wrong way. Can someone explain me why? And correct the problem :)?

PLS : DO NOT REWORK IT.(cuz i will be more confused)
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
there must be another trigger that is changing the variable: real
post anything that uses it
 

n1mr0d

Member
Reaction score
1
this triggers are on the map , just this triggers , nothing else if you mean this
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
were you wanting it to only take 1 unit with him or multiple units?
 

n1mr0d

Member
Reaction score
1
if there is only 1 unit then take 1 unit , and if there are more units , take 2 unit

Ok so i tried to rework with but the same problem appeared.
Trigger:
  • Skewer
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Channel
    • Actions
      • Set speed = 950.00
      • Set point = (Target point of ability being cast)
      • Set caster = (Triggering unit)
      • Set difference = (Distance between (Position of caster) and point)
      • Set real = (Angle from (Position of caster) to point)
      • Set unitgroups_unitcount = 0
      • Unit Group - Add caster to skewer_unitgroup

Trigger:
  • Skewer Effect
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • difference Greater than or equal to 0.00
        • Then - Actions
          • Set caster_point = (Position of caster)
          • Set temp_point = (caster_point offset by (speed x 0.03) towards real degrees)
          • Set temp_unitgroup = (Units within 95.00 of temp_point)
          • Unit Group - Pick every unit in temp_unitgroup and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in temp_unitgroup) Greater than 0
                  • ((Picked unit) is alive) Equal to True
                  • ((Picked unit) belongs to an enemy of (Owner of caster)) Equal to True
                  • unitgroups_unitcount Less than or equal to 2
                • Then - Actions
                  • Unit Group - Add (Picked unit) to skewer_unitgroup
                  • Set unitgroups_unitcount = (unitgroups_unitcount + 1)
                • Else - Actions
          • Unit Group - Pick every unit in skewer_unitgroup and do (Actions)
            • Loop - Actions
              • Unit - Turn collision for (Picked unit) Off
              • Unit - Move (Picked unit) instantly to temp_point
              • Unit - Turn collision for (Picked unit) On
          • Set difference = (difference - (speed x 0.03))
          • Custom script: call RemoveLocation(udg_caster_point)
          • Custom script: call RemoveLocation(udg_temp_point)
          • Custom script: call DestroyGroup(udg_temp_unitgroup)
        • Else - Actions
          • Unit Group - Remove all units from skewer_unitgroup


Some help :D ?

PS:the variable : unitgroups_unitcount , i'm using this for counting the picked units , and the max number of picked units is 2 unit , this is why i put less then or equal to 2.

PS2: Fixed , and works good :D , thx for help.
 

merlinds

Member
Reaction score
15
Try not turning on the collition of the units every time the second trigger runs, turn it on only when the slide ends (i mind when you stop moving the units.)
Also dont set the temp_point to the position of the caster, instead set a fixed Starting_Position and set the temp point to that position offset by your an X amount towards your angle, in this way you make sure they go in a straight line
 
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