• Check out the results of the Techtree Contest #19!
  • Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Item teleport + push

Status
Not open for further replies.
Level 6
Joined
Mar 2, 2013
Messages
127
So I don't really want an "here is how you do everything" but like the format to make this kind of item. This is pretty much the whole idea of the item.

+60 ms
+25 damage
+Ability (Thrust in a direction 600, (ground target,) if caster hits a target, push them back 400, deals 100 damage and amplifies spell damage on target by 25% for 4 seconds. Can also be used on ally to push them out of harms way or save yourself. Disabled if under attack)

Cool Down : 40 Seconds.

So this is what I pretty much have, Make 2 items, one regular and one disabled.Make a trigger to swap items if attacked.

I'm not so sure how to make the thrust ability and knock back.
 
set the needed variables like point, caster, target, target2, etc. And set the distance that the target will knockback

So I set variables :
  • Events
  • Unit - A Unit Uses an Item
  • Conditions
  • (Item-type of (Item being manipulated)) Equal to Knockout Boots
  • Actions
  • Set Caster = (Triggering unit)
  • Set CasterPoint = (Position of Caster)
  • Set Target = (Target point of ability being cast)
So there should be the Caster, and where he is located.
The target, should there be an angle?
 
This is what I have so far, The Dash works, just not the pushback.


  • Dash
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to (==) Dash Push
    • Actions
      • Set DashCaster = (Triggering unit)
      • Set DashCasterPoint = (Position of DashCaster)
      • Set DashTarget = (Target point of ability being cast)
      • Set DashAngle = (Angle from DashCasterPoint to DashTarget)
      • Unit - Make DashCaster Invulnerable
      • Trigger - Turn on Dash Movement <gen>
      • Custom script: call RemoveLocation(udg_DashCasterPoint)
  • -----------------------------------------------------------------
  • Dash Movement
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Set DashCasterPoint = (Position of DashCaster)
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Distance between DashCasterPoint and DashTarget) Less than or equal to (<=) 40.00
          • Then - Actions
            • Trigger - Turn on Push <gen>
            • Unit - Make DashCaster Vulnerable
            • Unit - Turn collision for DashCaster On
            • Trigger - Turn off (This trigger)
          • Else - Actions
            • Set DashLength = (DashCasterPoint offset by 30.00 towards DashAngle degrees)
            • Set DashGroup = (Units within 100.00 of DashLength matching ((((Matching unit) is A structure) Equal to (==) False) and ((((Matching unit) belongs to an enemy of (Owner of DashCaster)) Equal to (==) True) and ((((Matching unit) is alive) Equal to (==) True) and ((((Matching
            • Unit - Turn collision for DashCaster Off
            • Unit - Move DashCaster instantly to DashLength
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Distance between DashCasterPoint and DashTarget) Less than or equal to (<=) 40.04
          • Then - Actions
            • Unit Group - Pick every unit in DashGroup and do (Actions)
              • Loop - Actions
                • Unit - Cause DashCaster to damage (Picked unit), dealing 100.00 damage of attack type Hero and damage type Normal
                • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Orc\MirrorImage\MirrorImageCaster.mdl
                • Special Effect - Destroy (Last created special effect)
          • Else - Actions
            • Do nothing
      • Custom script: call RemoveLocation(udg_DashCasterPoint)
  • ------------------------------------------------------
  • Push
    • Events
    • Conditions
    • Actions
      • Set DashCasterB = (Position of DashCaster)
      • Unit Group - Pick every unit in DashGroup and do (Actions)
        • Loop - Actions
          • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to (==) True
              • ((Triggering unit) is A structure) Equal to (==) False
            • Then - Actions
              • Set DashPointB = (Position of (Picked unit))
              • Set KnockAngleB[(Custom value of (Picked unit))] = (Angle from DashCasterB to DashPointB)
              • Set KnockSpeedB[(Custom value of (Picked unit))] = 50.00
              • Trigger - Turn on PushBack <gen>
              • Custom script: call RemoveLocation(udg_DashPointB)
            • Else - Actions
  • ------------------------------------------------------------------------
  • PushBack
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in DashGroup) Greater than (>) 0
        • Then - Actions
          • Unit Group - Pick every unit in DashGroup and do (Actions)
            • Loop - Actions
              • Set DashCasterB = (Position of (Picked unit))
              • Set DashPointB = (DashCasterB offset by KnockSpeedB[(Custom value of (Picked unit))] towards KnockAngleB[(Custom value of (Picked unit))] degrees)
                • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Terrain pathing at DashPointB of type Walkability is off) Equal to (==) False
                    • KnockSpeedB[(Custom value of (Picked unit))] Greater than (>) 0.00
                  • Then - Actions
                    • Set KnockSpeedB[(Custom value of (Picked unit))] = ((KnockSpeedB[(Custom value of (Picked unit))] x 0.90) - 0.50)
                  • Else - Actions
                    • Unit Group - Remove (Picked unit) from DashGroup
              • Custom script: call RemoveLocation(udg_DashCasterB)
              • Custom script: call RemoveLocation(udg_DashPointB)
              • Custom script: call DestroyGroup(udg_DashGroup)
              • Custom script: call RemoveLocation(udg_DashLength)
              • Custom script: call RemoveLocation(udg_DashTarget)
        • Else - Actions
          • Trigger - Turn off (This trigger)
 
Status
Not open for further replies.
Back
Top