- 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])
-
Loop - Actions
-
For each (Integer A) from 1 to 1, do (Actions)
-
Events
-
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
-
If - Conditions
- Custom script: call RemoveLocation(udg_Temp_Loc[1])
-
Loop - Actions
- 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
-
If - Conditions
- -------- ------------------------------------------------------------------------------ --------
- -------- 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])
-
Loop - Actions
-
Unit Group - Pick every unit in MISSILES_ArrowGroup and do (Actions)
-
Events