• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

How to get movement over 522?

Status
Not open for further replies.
Level 11
Joined
Jul 7, 2010
Messages
709
You need to write up a full missile system for it,
EDIT: Something like this,
  • SE Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Int_SE_Group and do (Actions)
        • Loop - Actions
          • -------- ---------------------------- --------
          • Set Int_SE_Handle = (Picked unit)
          • Set Int_SE_Cast = (Load (Key Int_SE_Handle) of (Key Cast) in Int_SE_Hashtable)
          • Set Int_SE_Target = (Load (Key Int_SE_Handle) of (Key Target) in Int_SE_Hashtable)
          • Set Int_SE_Angle = (Load (Key Int_SE_Handle) of (Key Angle) from Int_SE_Hashtable)
          • Set Int_SE_Speed = (Load (Key Int_SE_Handle) of (Key Speed) from Int_SE_Hashtable)
          • Set Int_SE_Picked = (Picked unit)
          • -------- ---------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Int_SE_Speed Less than 40.00
            • Then - Actions
              • Hashtable - Save (Int_SE_Speed + 1.00) as (Key Int_SE_Handle) of (Key Speed) in Int_SE_Hashtable
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Int_SE_Region contains (Picked unit)) Equal to False
            • Then - Actions
              • -------- ---------------------------- --------
              • Set Int_SE_Loc = (Position of Int_SE_Picked)
              • Set Int_SE_Move = (Int_SE_Loc offset by Int_SE_Speed towards Int_SE_Angle degrees)
              • -------- ---------------------------- --------
              • Unit - Move Int_SE_Picked instantly to Int_SE_Move
              • -------- ---------------------------- --------
              • Special Effect - Create a special effect at Int_SE_Move using Abilities\Spells\Undead\CarrionSwarm\CarrionSwarmDamage.mdl
              • Special Effect - Destroy (Last created special effect)
              • -------- ---------------------------- --------
              • Custom script: set bj_wantDestroyGroup = true
              • -------- ---------------------------- --------
              • Unit Group - Pick every unit in (Units within 200.00 of (Position of Int_SE_Picked) matching ((((Matching unit) belongs to an enemy of (Owner of Int_SE_Picked)) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
                • Loop - Actions
                  • Set Int_SE_Loc2 = (Position of (Picked unit))
                  • Special Effect - Create a special effect at Int_SE_Loc2 using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Cause Int_SE_Picked to damage (Picked unit), dealing Int_SE_Damage damage of attack type Spells and damage type Normal
                  • Custom script: call RemoveLocation(udg_Int_SE_Loc2)
              • -------- ---------------------------- --------
              • Destructible - Pick every destructible within 200.00 of (Position of Int_SE_Picked) and do (Actions)
                • Loop - Actions
                  • Destructible - Kill (Picked destructible)
              • Custom script: call RemoveLocation(udg_Int_SE_Loc)
              • Custom script: call RemoveLocation(udg_Int_SE_Move)
            • Else - Actions
              • -------- ---------------------------- --------
              • Custom script: set bj_wantDestroyGroup = true
              • Unit Group - Pick every unit in (Units within 200.00 of (Position of Int_SE_Picked) matching ((((Matching unit) belongs to an enemy of (Owner of Int_SE_Picked)) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
                • Loop - Actions
                  • Set Int_SE_Loc2 = (Position of (Picked unit))
                  • Special Effect - Create a special effect at Int_SE_Loc2 using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Cause Int_SE_Picked to damage (Picked unit), dealing (Int_SE_Damage + (Distance between Int_SE_Cast and Int_SE_Target)) damage of attack type Spells and damage type Normal
                  • Custom script: call RemoveLocation(udg_Int_SE_Loc2)
              • Unit - Turn collision for Int_SE_Picked On
              • Unit - Order Int_SE_Picked to Stop
              • -------- ---------------------------- --------
              • -------- Touching this will cause trigger to not work. --------
              • Unit Group - Remove Int_SE_Picked from Int_SE_Group
              • Hashtable - Clear all child hashtables of child (Key Int_SE_Handle) in Int_SE_Hashtable
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Int_SE_Group is empty) Equal to True
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • -------- ---------------------------- --------
 
Level 26
Joined
Mar 19, 2008
Messages
3,140
Heh, just use moving via coordinates:
  • Custom script: call SetUnitX(udg_yourUnit, udg_RealXvalue)
  • Custom script: call SetUnitY(udg_yourUnit, udg_RealYvalue)
To get those values, after setting point to where unit should be moved write:
  • Set RealXvalue = X of your_point
  • Set RealYvalue = Y of your_point
Changing unit coordinates do not interrupt orders, and is smoother.
 
Last edited:
Level 33
Joined
Mar 27, 2008
Messages
8,035
There are 2 main factors that affect the speed of the object.

1. Time-interval (Event - Periodic Event)
This will determine the rate of how many times per X second the object gonna move.
Take 2 situations (regardless of its speed:

Situation A
A time-interval of 0.50s per move

Situation B
A time-interval of 0.05s per move

Notice that, in Situation A, the object will move slower for up to 10 times slower than Situation B which has an interval for only 0.05s per move.
Therefore, Situation A will move more faster and will be the highest frequency per second interval.

2. Offset Value (Point offset by 600.00 towards 0.00 degrees)
This will determine its range move per interval or in other word, its speed.

Situation A
It has the offset value of 5.00

Situation B
It has the offset value of 7.50

Judging by the values, you can conclude that Situation B's Speed > Situation A


This is a little question for you...

Situation A
An object with a time-interval of 0.30s, moves with a speed of 70.00.

Situation B
An object with a time-interval of 0.02s, moves with a speed of 10.00.

Which Situation will reach to the end point first of a range of 1000? Explain why.
 
Status
Not open for further replies.
Top