- 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])
-
-
-
-



