Leap Skill

Magazette2

New Member
Reaction score
3
Leap Start
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Leap Strike
Actions
Unit - Pause (Triggering unit)
Unit - Add classification of A flying unit to (Triggering unit)
Set LeapStrikePoint = ((Position of (Triggering unit)) offset by ((1.00 + (0.25 x (Real((Level of Leap Strike for (Triggering unit)))))) x (Current movement speed of (Triggering unit))) towards (Facing of (Triggering unit)) degrees)
Unit - Turn collision for (Triggering unit) Off
Set LeapStrikeCast = (Position of (Triggering unit))
Trigger - Turn on LeapMotion <gen>
Wait 1.25 seconds
Trigger - Turn off LeapMotion <gen>
Unit - Create 1 Dummy Leap Strike for (Owner of (Triggering unit)) at LeapStrikePoint facing Default building facing degrees
Unit - Set level of LeapStrikeSlowDamage for (Last created unit) to (Level of Leap Strike for (Triggering unit))
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Unpause (Triggering unit)
Unit - Remove classification of A flying unit from (Triggering unit)
Unit - Turn collision for (Triggering
unit) On

LeapMotion
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
Unit - Move (Triggering unit) instantly to ((Position of (Triggering unit)) offset by (((1.00 + (0.25 x (Real((Level of Leap Strike for (Triggering unit)))))) x (Current movement speed of (Triggering unit))) / 125.00) towards (Facing of (Triggering unit)) degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Triggering unit) is alive) Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Integer((Distance between (Position of (Triggering unit)) and LeapStrikePoint))) Greater than or equal to (((1 + ((Integer(0.25)) x (Level of Leap Strike for (Triggering unit)))) x (Integer((Current movement speed of (Triggering unit))))) / 2)
Then - Actions
Animation - Change (Triggering unit) flying height to (Distance between (Position of (Triggering unit)) and LeapStrikePoint) at 0.00
Else - Actions
Animation - Change (Triggering unit) flying height to (Distance between (Position of (Triggering unit)) and LeapStrikeCast) at 0.00
Else - Actions

When the spell is casted, the unit plays its attack animation over and over but nothing else happens, probably a n00b mistake as I have not used WE in about a year, sorry.
 

Azylaminaz

Vox Populi
Reaction score
91
1) Use the CODE tag, not the QUOTE tag.
2) I don't bleive adding classification will work, try using Crow Form.
3) For your second trigger, there is no "Triggering Unit"
 

shinami

Redirect your complaints to the nearest wall
Reaction score
47
I don't think the add clasification will work.. I think it will only make other units target it as a flying unit.. What you have to do is :

Unit - Add crow form to Yourunit
Remove crow form from yourunit
Animation - Change units flying height to YourHeight at Heightspeed ( example 300 200 )

Then when the unit is landing Change units flying heigth to 0 at HeightSpeed.

EDIT: Damn i got beaten to it!
 

Magazette2

New Member
Reaction score
3
Code:
Leap Start
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Leap Strike 
    Actions
        Set LeapStrikeUnit = (Triggering unit)
        Unit - Pause LeapStrikeUnit
        Unit - Add Crow Form to LeapStrikeUnit
        Set LeapStrikePoint = ((Position of LeapStrikeUnit) offset by ((1.00 + (0.25 x (Real((Level of Leap Strike  for LeapStrikeUnit))))) x (Current movement speed of LeapStrikeUnit)) towards (Facing of (Triggering unit)) degrees)
        Unit - Turn collision for LeapStrikeUnit Off
        Set LeapStrikeCast = (Position of LeapStrikeUnit)
        Trigger - Turn on LeapMotion <gen>
        Wait 0.50 seconds
        Trigger - Turn off LeapMotion <gen>
        Unit - Create 1 Dummy Leap Strike for (Owner of LeapStrikeUnit) at LeapStrikePoint facing Default building facing degrees
        Unit - Set level of LeapStrikeSlowDamage  for (Last created unit) to (Level of Leap Strike  for LeapStrikeUnit)
        Unit - Order (Last created unit) to Human Mountain King - Thunder Clap
        Special Effect - Create a special effect at LeapStrikePoint using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        Unit - Unpause LeapStrikeUnit
        Unit - Remove Crow Form from LeapStrikeUnit
        Unit - Turn collision for LeapStrikeUnit O
n

Code:
LeapMotion
    Events
        Time - Every 0.01 seconds of game time
    Conditions
    Actions
        Unit - Move LeapStrikeUnit instantly to ((Position of LeapStrikeUnit) offset by (((1.00 + (0.25 x (Real((Level of Leap Strike  for LeapStrikeUnit))))) x (Current movement speed of LeapStrikeUnit)) / 50.00) towards (Facing of LeapStrikeUnit) degrees)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) is alive) Equal to True
            Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Integer((Distance between (Position of LeapStrikeUnit) and LeapStrikePoint))) Greater than or equal to (((1 + ((Integer(0.25)) x (Level of Leap Strike  for LeapStrikeUnit))) x (Integer((Current movement speed of LeapStrikeUnit)))) / 2)
                    Then - Actions
                        Animation - Change (Triggering unit) flying height to (Distance between (Position of LeapStrikeUnit) and LeapStrikePoint) at 0.00
                    Else - Actions
                        Animation - Change (Triggering unit) flying height to (Distance between (Position of LeapStrikeUnit) and LeapStrikeCast) at 0.00
            Else - Actions

this is the updated code,

1: When the unit casts thunderclap, it is slightly behind where the Casting unit ends up, how come?

2: The unit is still not flying
 

shinami

Redirect your complaints to the nearest wall
Reaction score
47
You still didn't read my post <_<

Add crow form and then remove it instantly

Unit- add crow form
Unit-remove crow form

Then when you want so it would start "raising up" do

animation - change units flying height to 300 at 200

And when you want it to start landing do

Animation - change units flying height to 0 at 100

I had this spell created before for someone else

Code:
Leap Attack
    Events
        Unit - A unit Begins casting an ability
    Conditions
        (Ability being cast) Equal to (==) Leap Attack 
    Actions
        Set point[0] = (Target point of ability being cast)
        Set Caster1[0] = (Casting unit)
        Set Player[0] = (Owner of Caster1[0])
        Set UnitGroup[0] = (Units within 500.00 of point[0])
        Unit - Add Crow Form to Caster1[0]
        Unit - Remove Crow Form from Caster1[0]
        Animation - Change Caster1[0] flying height to 300.00 at 150.00
        Unit - Order Caster1[0] to Move To point[0]
        Wait 1.40 seconds
        Animation - Change Caster1[0] flying height to 0.00 at 200.00
        Unit - Pause Caster1[0]
        Unit - Unpause Caster1[0]
        Wait 0.50 seconds
        Special Effect - Create a special effect at point[0] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
        Special Effect - Destroy (Last created special effect)
        Unit Group - Pick every unit in UnitGroup[0] 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 Player[0]) Equal to (==) True
                    Then - Actions
                        Unit - Cause Caster1[0] to damage (Picked unit), dealing ((Real((Level of Leap Attack  for Caster1[0]))) x 100.00) damage of attack type Spells and damage type Normal
                    Else - Actions
                        Do nothing
        Custom script:   call RemoveLocation(udg_point[0])
        Custom script:   call DestroyGroup(udg_UnitGroup[0])

This is how it has to look <_< But it won't be a very smooth flight.. If you want to do a very smooth real like flying than search for a JASS Jump System.
 
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