• 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.

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.
 
Level 6
Joined
Mar 2, 2013
Messages
127
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?
 
Level 6
Joined
Mar 2, 2013
Messages
127
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.
Top