1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  5. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. The poll for Hive's 12th Concept Art Contest is up! Go cast your vote for your favourite genie!
    Dismiss Notice
  8. The raddest synthwave tracks were chosen - Check out our Music Contest #12 - Results and congratulate the winners!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

GUI Bullet/Arc Missile System v1.02

Submitted by NFWar
This bundle is marked as approved. It works and satisfies the submission rules.
Well, this is Missile system WITH Arc that check Z axis changes and height between start and end points, that fix bug with hiting units from height or hiting units on height. Missiles dont repeat ground scales. It have traectory of triangle combined with arc. Distance is hypotinuse length. Some people may not understand how it calculates, because here need some knowlage of SINE COSINE HYPOTINUSE calculation.

SystemLogic
[​IMG]


Story: long time ago I played Elimination Tournament. When I saw bullet traectory... shock... "how this guys do this?". About mounth ago I made something like this. This system meaby is a parody. But it is GUI and not JASS (I think creators of ET did it with JASS). If people have played ET or ET2 and they saw water that used theare, they know what it is model of platform with moving water texture. Why model and not warcraft water? Well, missile do some wierd things, it dont fly under water and suport water horizontaly. That is why they used model of water simulation.

Correct me if I am wrong. Have fun with system and dont be lazy to give credits.
Setings
  • BS Setings
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Shot!
    • Actions
      • Custom script: local real Hyp
      • Custom script: local real SINE
      • Custom script: local real COSINE
      • Custom script: local real End_Z
      • Custom script: local real Distance
      • Custom script: local real Height
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BS_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on BS Loop <gen>
        • Else - Actions
      • Set BS_Point[0] = (Position of (Triggering unit))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Target unit of ability being cast) Equal to No unit
        • Then - Actions
          • Set BS_Point[1] = (Target point of ability being cast)
        • Else - Actions
          • Set BS_Point[1] = (Position of (Target unit of ability being cast))
      • Set BS_Point[2] = (BS_Point[0] offset by 70.00 towards (Angle from BS_Point[0] to BS_Point[1]) degrees)
      • Set BS_MissileCount = 1
      • For each (Integer BS_MC) from 1 to BS_MissileCount, do (Actions)
        • Loop - Actions
          • Set BS_Skip = (BS_Skip + 1)
          • Set BS_Times = (BS_Times + 1)
          • Set BS_On[BS_Times] = True
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Set BS_Hero[BS_Times] = (Triggering unit)
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Set BS_Angle[BS_Times] = (Angle from BS_Point[0] to BS_Point[1])
          • Set BS_MaxDistance[BS_Times] = (Distance between BS_Point[2] and BS_Point[1])
          • Set BS_Distance[BS_Times] = BS_MaxDistance[BS_Times]
          • Set BS_Height[BS_Times] = 200.00
          • Set BS_Level[BS_Times] = (Level of Shot! for (Triggering unit))
          • Set BS_Damage[BS_Times] = (50.00 + (50.00 x (Real(BS_Level[BS_Times]))))
          • Set BS_Range[BS_Times] = 1500.00
          • Set BS_Colision[BS_Times] = 75.00
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Change 60 to unit "height" (not flying) to make caster aim in head. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Custom script: set udg_BS_StartZ[udg_BS_Times] = GetLocationZ(udg_BS_Point[0]) + 55
          • Custom script: set End_Z = GetLocationZ(udg_BS_Point[1]) + GetUnitFlyHeight(GetSpellTargetUnit())
          • Custom script: set Distance = DistanceBetweenPoints(udg_BS_Point[2],udg_BS_Point[1])
          • Custom script: if udg_BS_StartZ[udg_BS_Times] >= End_Z then
          • Custom script: set udg_BS_Up[udg_BS_Times] = false
          • Custom script: set End_Z = ( End_Z + GetRandomReal(40.00, 85.00) )
          • Custom script: set Height = ( udg_BS_StartZ[udg_BS_Times] - End_Z )
          • Custom script: else
          • Custom script: set udg_BS_Up[udg_BS_Times] = true
          • Custom script: set End_Z = ( End_Z + GetRandomReal(60.00, 85.00) )
          • Custom script: set Height = ( End_Z - udg_BS_StartZ[udg_BS_Times] )
          • Custom script: endif
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Lets check if missile fly up or down. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Custom script: set Hyp = SquareRoot(( ( Distance * Distance ) + ( Height * Height ) ))
          • Custom script: set SINE = ( Distance / Hyp )
          • Custom script: set COSINE = ( Height / Hyp )
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- HYPSpeed is hypotinuse movement per time interval. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Custom script: set udg_BS_HYPSpeed[udg_BS_Times] = Hyp * 0.03
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Because we know hypotinuse speed, SINE, COSINE, calculation of Height Speed and distance speed will calculate now. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Custom script: set udg_BS_Speed[udg_BS_Times] = ( udg_BS_HYPSpeed[udg_BS_Times] * SINE )
          • Custom script: set udg_BS_SpeedZ[udg_BS_Times] = ( udg_BS_HYPSpeed[udg_BS_Times] * COSINE )
          • Unit - Create 1 Bullet for (Owner of BS_Hero[BS_Times]) at BS_Point[2] facing BS_Angle[BS_Times] degrees
          • Set BS_Missile[BS_Times] = (Last created unit)
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- In Object Data dummy unit have no movement type. Like that it will not change height when get close to trees and nautrial buildings. --------
          • -------- But it must to change height. Adding and Removing Storm Crown ability will help. --------
          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • Unit - Add Storm Crow Form to (Last created unit)
          • Unit - Remove Storm Crow Form from (Last created unit)
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Cleaning leaks --------
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation ( udg_BS_Point[0] )
      • Custom script: call RemoveLocation ( udg_BS_Point[1] )
      • Custom script: call RemoveLocation ( udg_BS_Point[2] )

Loop
  • BS Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer BS) from 1 to BS_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • BS_On[BS] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BS_Range[BS] Less than or equal to 0.00
                • Then - Actions
                  • Unit - Kill BS_Missile[BS]
                  • Set BS_On[BS] = False
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- Starting Recycling Indexes --------
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BS Less than BS_Times
                    • Then - Actions
                      • Set BS_On[BS] = BS_On[BS_Times]
                      • Set BS_Missile[BS] = BS_Missile[BS_Times]
                      • Set BS_Hero[BS] = BS_Hero[BS_Times]
                      • Set BS_Range[BS] = BS_Range[BS_Times]
                      • Set BS_Speed[BS] = BS_Speed[BS_Times]
                      • Set BS_HYPSpeed[BS] = BS_HYPSpeed[BS_Times]
                      • Set BS_SpeedZ[BS] = BS_SpeedZ[BS_Times]
                      • Set BS_StartZ[BS] = BS_StartZ[BS_Times]
                      • Set BS_Parabola[BS] = BS_Parabola[BS_Times]
                      • Set BS_Height[BS] = BS_Height[BS_Times]
                      • Set BS_Distance[BS] = BS_Distance[BS_Times]
                      • Set BS_MaxDistance[BS] = BS_MaxDistance[BS_Times]
                      • Set BS_Damage[BS] = BS_Damage[BS_Times]
                      • Set BS_Angle[BS] = BS_Angle[BS_Times]
                      • Set BS_Colision[BS] = BS_Colision[BS_Times]
                      • Set BS_Level[BS] = BS_Level[BS_Times]
                      • Set BS_Up[BS] = BS_Up[BS_Times]
                    • Else - Actions
                  • Set BS = (BS - 1)
                  • Set BS_Times = (BS_Times - 1)
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- End of Recycling Indexes --------
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • Set BS_Skip = (BS_Skip - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • BS_Skip Equal to 0
                    • Then - Actions
                      • Set BS_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set BS_Point[3] = (Position of BS_Missile[BS])
                  • Set BS_Point[4] = (BS_Point[3] offset by BS_Speed[BS] towards BS_Angle[BS] degrees)
                  • Unit - Move BS_Missile[BS] instantly to BS_Point[4]
                  • Set BS_Distance[BS] = (BS_Distance[BS] - BS_Speed[BS])
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- If missile comes to black areas around map, than range seted to zero. --------
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Playable map area) contains BS_Point[4]) Equal to False
                    • Then - Actions
                      • Set BS_Range[BS] = 0.00
                    • Else - Actions
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Missile traveled some range. Lets set remaining range. --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • Set BS_Range[BS] = (BS_Range[BS] - BS_HYPSpeed[BS])
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Need to check height of point where missile traveled to calculate debug height and make missile movement "real" --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • Custom script: set udg_BS_DebugZ[udg_BS] = GetLocationZ(udg_BS_Point[4])
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Height of missile will change at diferent way when it fly up/down. --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • BS_Up[BS] Equal to False
                        • Then - Actions
                          • Set BS_StartZ[BS] = (BS_StartZ[BS] - BS_SpeedZ[BS])
                        • Else - Actions
                          • Set BS_StartZ[BS] = (BS_StartZ[BS] + BS_SpeedZ[BS])
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Calculation of height that missile must have. --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • Set BS_Parabola[BS] = (((4.00 x BS_Height[BS]) / BS_MaxDistance[BS]) x ((BS_MaxDistance[BS] - BS_Distance[BS]) x (BS_Distance[BS] / BS_MaxDistance[BS])))
                      • Set BS_Debug[BS] = ((BS_StartZ[BS] - BS_DebugZ[BS]) + BS_Parabola[BS])
                      • Custom script: call SetUnitFlyHeight( udg_BS_Missile[udg_BS], udg_BS_Debug[udg_BS], 0.00 )
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- Missile flying height is zero and it hit the ground. --------
                      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • BS_Debug[BS] Less than or equal to 0.00
                        • Then - Actions
                          • Set BS_Range[BS] = 0.00
                        • Else - Actions
                          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • -------- Not zero yet? Pick units to damage someone. --------
                          • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • Set BS_Group[BS] = (Units within BS_Colision[BS] of BS_Point[4] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is Mechanical) Equal to False)) and (((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) is dead) Equal to Fa
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Number of units in BS_Group[BS]) Greater than 0
                            • Then - Actions
                              • Unit Group - Pick every unit in (Random 1 units from BS_Group[BS]) and do (Actions)
                                • Loop - Actions
                                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                                  • -------- I have seted height of unit to 85. It Must be diferent for units of diferent type. --------
                                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • ((Picked unit) is A flying unit) Equal to True
                                    • Then - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • BS_Debug[BS] Less than or equal to ((Current flying height of (Picked unit)) + 50.00)
                                          • BS_Debug[BS] Greater than or equal to (Current flying height of (Picked unit))
                                        • Then - Actions
                                          • Set BS_Range[BS] = 0.00
                                          • Unit - Cause BS_Hero[BS] to damage (Picked unit), dealing BS_Damage[BS] damage of attack type Spells and damage type Normal
                                        • Else - Actions
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • And - All (Conditions) are true
                                            • Conditions
                                              • BS_Debug[BS] Less than or equal to 85.00
                                        • Then - Actions
                                          • Set BS_Range[BS] = 0.00
                                          • Unit - Cause BS_Hero[BS] to damage (Picked unit), dealing BS_Damage[BS] damage of attack type Spells and damage type Normal
                                        • Else - Actions
                            • Else - Actions
                          • Custom script: call DestroyGroup ( udg_BS_Group[udg_BS] )
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- Kill leaks. --------
                  • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • Custom script: call RemoveLocation ( udg_BS_Point[3] )
                  • Custom script: call RemoveLocation ( udg_BS_Point[4] )
            • Else - Actions


Changes
-Recycling added to better system performance
-Added arc traectory as well.


NOTE: System works now as bullet spell and Impact grenade spell.
To make it bullet like, change BS_Height to 0 in Setings and set HYPSpeed to number instead of Hypotinuse * 0.03 (it is calculation of speed to make flow of arc nicer. Change 0.03 to other number to make it faster of slower. Care with it.).

Keywords:
Missile, System, Bullet, Arc, Real, Smart, Hypotinuse, Sine, Cosine, Grenade, Impact
Contents

NFWar's Missile system v1.02 (Map)

Reviews
Moderator
14:59, 6th Feb 2010 The_Reborn_Devil: Seems fair enough, but maybe add support for collision with trees and buildings? The triggers look ok too. Status: Approved Rating: Useful
  1. 14:59, 6th Feb 2010
    The_Reborn_Devil:

    Seems fair enough, but maybe add support for collision with trees and buildings? The triggers look ok too.

    Status: Approved
    Rating: Useful
     
  2. X-OMG-X

    X-OMG-X

    Joined:
    Nov 10, 2008
    Messages:
    1,942
    Resources:
    16
    Icons:
    1
    Skins:
    3
    Maps:
    2
    Spells:
    8
    Template:
    1
    Tutorials:
    1
    Resources:
    16
    Looks cool. Could you post the triggers here, if there arent too many of them?
     
  3. YourNameHere

    YourNameHere

    Joined:
    Apr 29, 2007
    Messages:
    745
    Resources:
    4
    Maps:
    1
    Spells:
    2
    JASS:
    1
    Resources:
    4
    The third one is called tangent btw.
     
  4. DarkAngelAzazel

    DarkAngelAzazel

    Joined:
    Sep 14, 2008
    Messages:
    1,309
    Resources:
    0
    Resources:
    0
    WAHAHAHA XD XD XD

    [​IMG]

    but the hypotinuse has somethign to do with the whole thing so he is not completly wrong ;)
     
  5. NFWar

    NFWar

    Joined:
    Jul 27, 2008
    Messages:
    1,314
    Resources:
    227
    Models:
    1
    Icons:
    215
    Packs:
    1
    Skins:
    2
    Spells:
    6
    Tutorials:
    2
    Resources:
    227
    TANGENT IS: X/Y. Hypotinuse IS: X2+Y2=A2

    EDIT: Here is bullet system with JASS scripts. It is optimized (deleted 6 global variables, so it takes less memory space and work a bit faster).

    Upgrade
    • BS Setings
      • Events
        • Unit - A unit Starts the effect of an ability
      • Conditions
        • (Ability being cast) Equal to Shot!
      • Actions
        • Custom script: local real Hyp
        • Custom script: local real SINE
        • Custom script: local real COSINE
        • Custom script: local real End_Z
        • Custom script: local real Distance
        • Custom script: local real Height
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • BS_Skip Equal to 0
          • Then - Actions
            • Trigger - Turn on BS Loop <gen>
          • Else - Actions
        • Set BS_Point[0] = (Position of (Triggering unit))
        • Set BS_Point[1] = (Target point of ability being cast)
        • Set BS_Point[2] = (BS_Point[0] offset by 70.00 towards (Angle from BS_Point[0] to BS_Point[1]) degrees)
        • Set BS_MissileCount = 1
        • For each (Integer BS_MC) from 1 to BS_MissileCount, do (Actions)
          • Loop - Actions
            • Set BS_Skip = (BS_Skip + 1)
            • Set BS_Times = (BS_Times + 1)
            • Set BS_On[BS_Times] = True
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • Set BS_Hero[BS_Times] = (Triggering unit)
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • Set BS_Angle[BS_Times] = (Angle from BS_Point[0] to BS_Point[1])
            • Set BS_Level[BS_Times] = (Level of Shot! for (Triggering unit))
            • Set BS_Damage[BS_Times] = ((Random real number between 150.00 and 200.00) + (50.00 x (Real(BS_Level[BS_Times]))))
            • Set BS_Range[BS_Times] = 1500.00
            • Set BS_Colision[BS_Times] = 75.00
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • -------- Change 60 to unit "height" (not flying) to make caster aim in head. --------
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • Custom script: set udg_BS_StartZ[udg_BS_Times] = GetLocationZ(udg_BS_Point[0]) + 55
            • Custom script: set End_Z = GetLocationZ(udg_BS_Point[1])
            • Custom script: set Distance = DistanceBetweenPoints(udg_BS_Point[2],udg_BS_Point[1])
            • Custom script: if udg_BS_StartZ[udg_BS_Times] >= End_Z then
            • Custom script: set udg_BS_Up[udg_BS_Times] = false
            • Custom script: set End_Z = ( End_Z + GetRandomReal(40.00, 85.00) )
            • Custom script: set Height = ( udg_BS_StartZ[udg_BS_Times] - End_Z )
            • Custom script: else
            • Custom script: set udg_BS_Up[udg_BS_Times] = true
            • Custom script: set End_Z = ( End_Z + GetRandomReal(60.00, 85.00) )
            • Custom script: set Height = ( End_Z - udg_BS_StartZ[udg_BS_Times] )
            • Custom script: endif
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • -------- Lets check if missile fly up or down. --------
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • Custom script: set Hyp = SquareRoot(( ( Distance * Distance ) + ( Height * Height ) ))
            • Custom script: set SINE = ( Distance / Hyp )
            • Custom script: set COSINE = ( Height / Hyp )
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • -------- HYPSpeed is hypotinuse movement per time interval. --------
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • Set BS_HYPSpeed[BS_Times] = 40.00
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • -------- Because we know hypotinuse speed, SINE, COSINE, calculation of Height Speed and distance speed will calculate now. --------
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • Custom script: set udg_BS_Speed[udg_BS_Times] = ( udg_BS_HYPSpeed[udg_BS_Times] * SINE )
            • Custom script: set udg_BS_SpeedZ[udg_BS_Times] = ( udg_BS_HYPSpeed[udg_BS_Times] * COSINE )
            • Unit - Create 1 Bullet for (Owner of BS_Hero[BS_Times]) at BS_Point[2] facing BS_Angle[BS_Times] degrees
            • Set BS_Missile[BS_Times] = (Last created unit)
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • -------- In Object Data dummy unit have no movement type. Like that it will not change height when get close to trees and nautrial buildings. --------
            • -------- But it must to change height. Adding and Removing Storm Crown ability will help. --------
            • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
            • Unit - Add Storm Crow Form to (Last created unit)
            • Unit - Remove Storm Crow Form from (Last created unit)
        • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
        • -------- Cleaning leaks --------
        • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------- --------
        • Custom script: call RemoveLocation ( udg_BS_Point[0] )
        • Custom script: call RemoveLocation ( udg_BS_Point[1] )
        • Custom script: call RemoveLocation ( udg_BS_Point[2] )
     

    Attached Files:

    Last edited: Feb 4, 2010
  6. Kingz

    Kingz

    Joined:
    Jun 5, 2008
    Messages:
    2,470
    Resources:
    6
    Spells:
    5
    Tutorials:
    1
    Resources:
    6
    Really simple, nothing more to add.
     
  7. NFWar

    NFWar

    Joined:
    Jul 27, 2008
    Messages:
    1,314
    Resources:
    227
    Models:
    1
    Icons:
    215
    Packs:
    1
    Skins:
    2
    Spells:
    6
    Tutorials:
    2
    Resources:
    227
    Please Tell Me What This Is Creative...
     
  8. Kingz

    Kingz

    Joined:
    Jun 5, 2008
    Messages:
    2,470
    Resources:
    6
    Spells:
    5
    Tutorials:
    1
    Resources:
    6
    First of all if this isn't using Recycling indexing then no one should use it, looping is slow already, without recycling systems are extremely unefficent and shouldn't be generally used.

    Also the whole system is just 1 big Trigonometry calculation :p
     
  9. NFWar

    NFWar

    Joined:
    Jul 27, 2008
    Messages:
    1,314
    Resources:
    227
    Models:
    1
    Icons:
    215
    Packs:
    1
    Skins:
    2
    Spells:
    6
    Tutorials:
    2
    Resources:
    227
    Ow, recycling coming soon. Also you are right I love geometry, so this system is fun for me.
    Meaby I shuld Use some basic Jass knowlage to make locan variables in set trigger. like that I will reduce Global Variables count and spell will be "lighter" for PC.
     
  10. 88WaRCraFT3

    88WaRCraFT3

    Joined:
    Jun 9, 2009
    Messages:
    1,139
    Resources:
    1
    Spells:
    1
    Resources:
    1
    can you make spliting for bullets? - Greater range from bullet to bullet. Best system for me.
     
  11. cedi

    cedi

    Joined:
    May 19, 2008
    Messages:
    165
    Resources:
    7
    Icons:
    2
    Spells:
    5
    Resources:
    7
    ... I don't know why people create such things with _GUI_ when you can do it better with jass / vjass.

    cedi
     
  12. Paladon

    Paladon

    Joined:
    Dec 6, 2007
    Messages:
    2,083
    Resources:
    42
    Icons:
    28
    Packs:
    2
    Spells:
    12
    Resources:
    42
    Mainly because a couple of GUI-using people are afraid of using Jass/vJass or simply try to avoid it, i guess. It's not wrong to have such stuff in GUI, but Jass is more recommendable for all kinds frequently used systems ;)
     
  13. NFWar

    NFWar

    Joined:
    Jul 27, 2008
    Messages:
    1,314
    Resources:
    227
    Models:
    1
    Icons:
    215
    Packs:
    1
    Skins:
    2
    Spells:
    6
    Tutorials:
    2
    Resources:
    227
    1) I dont know Jass
    2) GUI know every coder. Jass know only JASSers.
    3) GUI still alive and using. Coders here are 2 groups: GUIers, JASSers.
    I am GUIer. I dont have time to learn JASS.
    4) Because I LOVE Geometry, This system is example of what GUI can do hard things like JASS. Dark Gandalf made insane hook spell and it is perfect example.

    I made recycling. Working on optimizing it with locan variables.
     
  14. 88WaRCraFT3

    88WaRCraFT3

    Joined:
    Jun 9, 2009
    Messages:
    1,139
    Resources:
    1
    Spells:
    1
    Resources:
    1
    Why not add function where will bullet explode(remove,die) if come to close desctrutibles. This is idea, if you want to use that.
     
  15. NFWar

    NFWar

    Joined:
    Jul 27, 2008
    Messages:
    1,314
    Resources:
    227
    Models:
    1
    Icons:
    215
    Packs:
    1
    Skins:
    2
    Spells:
    6
    Tutorials:
    2
    Resources:
    227
    I am using this in map I am working on. Well, GUI dont know how much hight is tree. So you need to have ALL trees with same variation and same scale. Just like units: worker is small and short, Stone Giant is huge. So head for those 2 units is not on same heights. It means what this system is a bit complicated and some settings user must to do.
     
  16. JeffreyQ

    JeffreyQ

    Joined:
    Sep 28, 2004
    Messages:
    363
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    To people who don't know why others create GUI system:
    1. GUI is user friendly and known to more people.
    2. JASS/vJASS is not. People who know JASS can use JASS system, leave GUI system to GUI users.
    3. You also need to have most of the external lib which is pain in the ... to import.
    4. Why import so many things when i only want to use a simple system?
    5. GUI is also better because i don't need 3rd party software to help me do my things correctly.

    On topic, this is a pretty cool system [: I like it! +Rep!
     
  17. YourNameHere

    YourNameHere

    Joined:
    Apr 29, 2007
    Messages:
    745
    Resources:
    4
    Maps:
    1
    Spells:
    2
    JASS:
    1
    Resources:
    4
    You know that's Pythagoras?
     
  18. NFWar

    NFWar

    Joined:
    Jul 27, 2008
    Messages:
    1,314
    Resources:
    227
    Models:
    1
    Icons:
    215
    Packs:
    1
    Skins:
    2
    Spells:
    6
    Tutorials:
    2
    Resources:
    227
    I already know who is he and how useful is his Hypotinuse pheory.

    IMPORTANT: I have ADDED some Jass to Seting Trigger and 6 Global variables gone.
    Check Post #5.
     
  19. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,167
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    I really like it but I hate that you make that in GUI.
    GUI is really bad for these kind of things.

    You loose all advantages of your system when you use BJ stuff.