- Joined
- Aug 15, 2008
- Messages
- 720
Right, I need formula which would set height of my dummy missile depending on cliff level, to create straight shot. Like now it does like this...
It doesn't go straight. I need formula for height changing so it would go straightly (like a bullet), like this example.
TRIGGERS

It doesn't go straight. I need formula for height changing so it would go straightly (like a bullet), like this example.

TRIGGERS
-
MISSILES Arrow Launch
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Shoot!
-
-
Actions
-
For each (Integer A) from 1 to 1, do (Actions)
-
Loop - Actions
-
Set Temp_Unit[0] = (Triggering unit)
-
Set Temp_Loc[0] = (Position of Temp_Unit[0])
-
Set Temp_Loc[1] = (Target point of ability being cast)
-
-------- ------------------------------------------------------------------------------ --------
-
Unit - Create 1 Dummy - Arrow for (Owner of Temp_Unit[0]) at Temp_Loc[0] facing ((Angle from Temp_Loc[0] to Temp_Loc[1]) + (Random real number between -3.00 and 3.00)) degrees
-
-------- ------------------------------------------------------------------------------ --------
-
-------- Setting Variables for Dummy --------
-
-------- ------------------------------------------------------------------------------ --------
-
Set MISSILES_ArrowSource = (Triggering unit)
-
Set MISSILES_ArrowStartLoc = (Position of MISSILES_ArrowSource)
-
Set MISSILES_ArrowEndLoc = (Target point of ability being cast)
-
Set MISSILES_ArrowRange = (Distance between MISSILES_ArrowStartLoc and MISSILES_ArrowEndLoc)
-
Set MISSILES_ArrowHeight = 70.00
-
Set MISSILES_ArrowMiddleReach = (MISSILES_ArrowRange / 2.00)
-
Set MISSILES_ArrowSpeed = (MISSILES_ArrowRange / (25.00 + (Random real number between -5.00 and 5.00)))
-
-------- ------------------------------------------------------------------------------ --------
-
-------- Saving them --------
-
-------- ------------------------------------------------------------------------------ --------
-
Hashtable - Save Handle OfMISSILES_ArrowSource as (Key arrow_source) of (Key (Last created unit)) in Table_MissileMove
-
Hashtable - Save Handle OfMISSILES_ArrowStartLoc as (Key arrow_startloc) of (Key (Last created unit)) in Table_MissileMove
-
Hashtable - Save Handle OfMISSILES_ArrowEndLoc as (Key arrow_endloc) of (Key (Last created unit)) in Table_MissileMove
-
Hashtable - Save MISSILES_ArrowRange as (Key arrow_range) of (Key (Last created unit)) in Table_MissileMove
-
Hashtable - Save MISSILES_ArrowMiddleReach as (Key arrow_midreach) of (Key (Last created unit)) in Table_MissileMove
-
Hashtable - Save MISSILES_ArrowHeight as (Key arrow_height) of (Key (Last created unit)) in Table_MissileMove
-
Hashtable - Save MISSILES_ArrowSpeed as (Key arrow_speed) of (Key (Last created unit)) in Table_MissileMove
-
-------- ------------------------------------------------------------------------------ --------
-
-------- Adding to Missile Movement Group (Arrow Type Group) --------
-
Unit Group - Add (Last created unit) to MISSILES_ArrowGroup
-
-------- ------------------------------------------------------------------------------ --------
-
Custom script: call RemoveLocation(udg_Temp_Loc[0])
-
Custom script: call RemoveLocation(udg_Temp_Loc[1])
-
-
-
-
-
MISSILES Missile Movement 0x05
-
Events
-
Time - Every 0.05 seconds of game time
-
-
Conditions
-
Actions
-
Unit Group - Pick every unit in MISSILES_ArrowGroup and do (Actions)
-
Loop - Actions
-
-------- ----------------------------------- Loading Variables------------------------------------------- --------
-
Set MISSILES_ArrowSource = (Load (Key arrow_source) of (Key (Picked unit)) in Table_MissileMove)
-
Set MISSILES_ArrowStartLoc = (Load (Key arrow_startloc) of (Key (Picked unit)) in Table_MissileMove)
-
Set MISSILES_ArrowEndLoc = (Load (Key arrow_endloc) of (Key (Picked unit)) in Table_MissileMove)
-
Set MISSILES_ArrowHeight = (Load (Key arrow_height) of (Key (Picked unit)) from Table_MissileMove)
-
Set MISSILES_ArrowMiddleReach = (Load (Key arrow_midreach) of (Key (Picked unit)) from Table_MissileMove)
-
Set MISSILES_ArrowRange = (Load (Key arrow_range) of (Key (Picked unit)) from Table_MissileMove)
-
Set MISSILES_ArrowSpeed = (Load (Key arrow_speed) of (Key (Picked unit)) from Table_MissileMove)
-
-------- ------------------------------------------------------------------------------ --------
-
Set Temp_Unit[0] = (Picked unit)
-
Set Temp_Loc[0] = (Position of Temp_Unit[0])
-
Set Temp_Loc[1] = (Temp_Loc[0] offset by MISSILES_ArrowSpeed towards (Facing of (Picked unit)) degrees)
-
-------- ------------------------------------------------------------------------------ --------
-
-------- Height Changing and Moving --------
-
-------- ------------------------------------------------------------------------------ --------
-
Animation - Change (Picked unit) flying height to MISSILES_ArrowHeight at 1000.00
-
Unit - Move (Picked unit) instantly to Temp_Loc[1]
-
-------- ------------------------------------------------------------------------------ --------
-
Custom script: call RemoveLocation(udg_Temp_Loc[1])
-
-------- ------------------------------------------------------------------------------ --------
-
-------- Hitting --------
-
-------- ------------------------------------------------------------------------------ --------
-
Set Temp_UGroup[0] = (Units within 500.00 of Temp_Loc[0])
-
Set MISSILE_ArrowDummyHandle = (Picked unit)
-
Unit Group - Pick every unit in Temp_UGroup[0] and do (Actions)
-
Loop - Actions
-
Set Temp_Loc[1] = (Position of (Picked unit))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Current flying height of Temp_Unit[0]) Less than or equal to (Real((Point-value of (Picked unit))))
-
((Region centered at Temp_Loc[1] with size ((Mana of (Picked unit)), (Mana of (Picked unit)))) contains Temp_Unit[0]) Equal to True
-
((Owner of (Picked unit)) is an enemy of (Owner of Temp_Unit[0])) Equal to True
-
((Picked unit) is dead) Equal to False
-
-
Then - Actions
-
Set Temp_Loc[1] = (Temp_Loc[0] offset by MISSILES_ArrowSpeed towards (Facing of (Picked unit)) degrees)
-
Unit - Cause Temp_Unit[0] to damage (Picked unit), dealing 50.00 damage of attack type Pierce and damage type Normal
-
Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Orc\Orcblood\BattrollBlood.mdl
-
Unit - Kill Temp_Unit[0]
-
-------- Removing/Cleaning --------
-
Hashtable - Clear all child hashtables of child (Key MISSILE_ArrowDummyHandle) in Table_MissileMove
-
Unit Group - Remove Temp_Unit[0] from MISSILES_ArrowGroup
-
Custom script: call RemoveLocation(udg_Temp_Loc[1])
-
-
Else - Actions
-
-
Custom script: call RemoveLocation(udg_Temp_Loc[1])
-
-
-
Custom script: call DestroyGroup(udg_Temp_UGroup[0])
-
-------- ------------------------------------------------------------------------------ --------
-
-------- If hit in ground. --------
-
-------- ------------------------------------------------------------------------------ --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
MISSILES_ArrowHeight Less than or equal to 10.00
-
-
Then - Actions
-
Unit - Kill (Picked unit)
-
Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Table_MissileMove
-
Unit Group - Remove (Picked unit) from MISSILES_ArrowGroup
-
-
Else - Actions
-
-
-------- ------------------------------------------------------------------------------ --------
-
-------- Saving Everything for next loop. --------
-
-------- ------------------------------------------------------------------------------ --------
-
Hashtable - Save Handle OfMISSILES_ArrowSource as (Key arrow_source) of (Key (Picked unit)) in Table_MissileMove
-
Hashtable - Save Handle OfMISSILES_ArrowStartLoc as (Key arrow_startloc) of (Key (Picked unit)) in Table_MissileMove
-
Hashtable - Save Handle OfMISSILES_ArrowEndLoc as (Key arrow_endloc) of (Key (Picked unit)) in Table_MissileMove
-
Hashtable - Save (MISSILES_ArrowRange - MISSILES_ArrowSpeed) as (Key arrow_range) of (Key (Picked unit)) in Table_MissileMove
-
Hashtable - Save MISSILES_ArrowMiddleReach as (Key arrow_midreach) of (Key (Picked unit)) in Table_MissileMove
-
Hashtable - Save (MISSILES_ArrowHeight - 2.00) as (Key arrow_height) of (Key (Picked unit)) in Table_MissileMove
-
Hashtable - Save MISSILES_ArrowMidPart as (Key arrow_midpart) of (Key (Picked unit)) in Table_MissileMove
-
-------- ------------------------------------------------------------------------------ --------
-
Custom script: call RemoveLocation(udg_Temp_Loc[0])
-
-
-
-