my old jump spell works good.. the jump start at and finishes at the correct point.. the arc the unit moves is also good..
the only problem with this version is that its not usable by more then 1 unit at a time...
so I tried to convert it to MUI using a hahstable.
the only problem now is that if i cast my jump far away.. my unit ends up jumping half the distance, amd if i cast it closeby it jumps almost twice the distance...
and i cant figure out why. hopefully someone can see what i can see not..
Old jump spell
Jump init
the jump itself
hopefully my new mui jump spell
map init
init jump
Jump
--
edit: i know this is not leakles, I still need to remove them but first i want to have the triggers work properly
the only problem with this version is that its not usable by more then 1 unit at a time...
so I tried to convert it to MUI using a hahstable.
the only problem now is that if i cast my jump far away.. my unit ends up jumping half the distance, amd if i cast it closeby it jumps almost twice the distance...
and i cant figure out why. hopefully someone can see what i can see not..
Old jump spell
Jump init
Trigger:
- init jump
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- Actions
- Set Total_Distance = (Distance between (Position of (Casting unit)) and (Target point of ability being cast))
- Set Max_Height = (Total_Distance / 2.00)
- Set Current_distance = Total_Distance
- Set Jump_Speed = 10.00
- Unit Group - Add (Casting unit) to Jump_group
- Unit - Add Crow Form to (Casting unit)
- Unit - Remove Crow Form from (Casting unit)
- Events
the jump itself
Trigger:
- jump
- Events
- Time - Every 0.01 seconds of game time
- Conditions
- Actions
- Unit Group - Pick every unit in Jump_group and do (Actions)
- Loop - Actions
- Set Height = (((4.00 x (500.00 / Total_Distance)) x (Total_Distance - Current_distance)) x (Current_distance / Total_Distance))
- Set Current_distance = (Current_distance - Jump_Speed)
- Animation - Change (Picked unit) flying height to Height at 0.00
- Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by Jump_Speed towards (Facing of (Picked unit)) degrees)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- Current_distance Less than or equal to 0.00
- Then - Actions
- Animation - Change (Picked unit) flying height to (Default flying height of (Picked unit)) at 0.00
- Unit Group - Remove (Picked unit) from Jump_group
- Else - Actions
- If - Conditions
- Loop - Actions
- Unit Group - Pick every unit in Jump_group and do (Actions)
- Events
hopefully my new mui jump spell
map init
Trigger:
- map int
- Events
- Map initialization
- Conditions
- Actions
- Set Jump_Speed = 10.00
- Hashtable - Create a hashtable
- Set JumpHastable = (Last created hashtable)
- Events
init jump
Trigger:
- init jump
- Events
- Unit - A unit Finishes casting an ability
- Conditions
- Actions
- Set Jump_Total_Distance = (Distance between (Position of (Casting unit)) and (Target point of ability being cast))
- Set Jump_Max_Height = 500.00
- Set Jump_Current_distance = Jump_Total_Distance
- Unit Group - Add (Casting unit) to Jump_group
- Hashtable - Save Handle Of(Casting unit) as 0 of (Player number of (Owner of (Casting unit))) in JumpHastable
- Hashtable - Save Jump_Max_Height as 1 of (Player number of (Owner of (Casting unit))) in JumpHastable
- Hashtable - Save Jump_Total_Distance as 2 of (Player number of (Owner of (Casting unit))) in JumpHastable
- Hashtable - Save Jump_Current_distance as 3 of (Player number of (Owner of (Casting unit))) in JumpHastable
- Events
Jump
Trigger:
- jump
- Events
- Time - Every 0.01 seconds of game time
- Conditions
- Actions
- For each (Integer A) from 1 to (Number of players), do (Actions)
- Loop - Actions
- Set Jump_Caster = (Load 0 of (Player number of (Player((Integer A)))) in JumpHastable)
- Set Jump_Max_Height = (Load 1 of (Player number of (Player((Integer A)))) from (Last created hashtable))
- Set Jump_Total_Distance = (Load 2 of (Player number of (Player((Integer A)))) from (Last created hashtable))
- Set Jump_Current_distance = (Load 3 of (Player number of (Player((Integer A)))) from (Last created hashtable))
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- Jump_Current_distance Less than or equal to 0.00
- Then - Actions
- Animation - Change (Picked unit) flying height to (Default flying height of (Picked unit)) at 0.00
- Hashtable - Save Handle OfNo unit as 0 of (Player number of (Owner of (Casting unit))) in JumpHastable
- Else - Actions
- Unit - Add Crow Form to Jump_Caster
- Unit - Remove Crow Form from Jump_Caster
- Set Jump_Height = (((4.00 x (Jump_Max_Height / Jump_Total_Distance)) x (Jump_Total_Distance - Jump_Current_distance)) x (Jump_Current_distance / Jump_Total_Distance))
- Animation - Change Jump_Caster flying height to Jump_Height at 0.00
- Set Jump_Current_distance = (Jump_Current_distance - Jump_Speed)
- Set Jump_Next_point = ((Position of Jump_Caster) offset by Jump_Speed towards (Facing of Jump_Caster) degrees)
- Unit - Move Jump_Caster instantly to Jump_Next_point
- Custom script: call RemoveLocation (udg_Jump_Next_point)
- Hashtable - Save Jump_Current_distance as 3 of (Player number of (Owner of (Casting unit))) in JumpHastable
- If - Conditions
- Loop - Actions
- For each (Integer A) from 1 to (Number of players), do (Actions)
- Events
--
edit: i know this is not leakles, I still need to remove them but first i want to have the triggers work properly