• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Arrow Missile System v1.0.1

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: deepstrasz
AMS is a missile system purposed for arrow missile, but you can change the missile to anything you want.


  • Temp Ability 1
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Temp Ability 1
    • Actions
      • -------- caster of your ability --------
      • Set Ability_Caster = (Triggering unit)
      • -------- position of caster --------
      • Set Ability_CasterPoint = (Position of Ability_Caster)
      • -------- your ability damage --------
      • Set Ability_Damage = 50.00
      • -------- the Area of Effect of your damage --------
      • Set Ability_DamageAoE = 0.00
      • -------- effect of your ability: "poison" "burn" or "bleed" well, they are configurable --------
      • Set Ability_Effect = poison
      • -------- sfx attached at target on impact --------
      • Set Ability_ImpactSfx = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
      • -------- attachment point of your target for the impact sfx --------
      • Set Ability_ImpactSfxPoint = chest
      • -------- maximum height of your missile to hit a target. Footman unit has 60 impact Z --------
      • Set Ability_ImpactZ = 60.00
      • -------- x increment of point where your missile will be created --------
      • Set Ability_LaunchX = 0.00
      • -------- y increment of point where your missile will be created --------
      • Set Ability_LaunchY = 0.00
      • -------- initial flying height of your missile when created --------
      • Set Ability_LaunchZ = 60.00
      • -------- arc level of your missile --------
      • Set Ability_MissileArc = 0.15
      • -------- your missile speed --------
      • Set Ability_MissileSpeed = 15.00
      • -------- your missile model path --------
      • Set Ability_MissileType = Abilities\Weapons\HarpyMissile\HarpyMissile.mdl
      • -------- target of your ability --------
      • Set Ability_Target = (Target unit of ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Ability_Target Equal to No unit
        • Then - Actions
          • Set Ability_TargetPoint = (Target point of ability being cast)
        • Else - Actions
          • Set Ability_TargetPoint = (Position of Ability_Target)
      • -------- run cast event --------
      • Set PS_Event = 1.00
      • Set PS_Event = 0.00
  • Configurable
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- damage dealt per period --------
      • Set DPS_ConfEffectDamage[1] = 3.00
      • Set DPS_ConfEffectDamage[2] = 7.00
      • Set DPS_ConfEffectDamage[3] = 11.00
      • -------- delay of each period --------
      • Set DPS_ConfEffectDelay[1] = 0.35
      • Set DPS_ConfEffectDelay[2] = 0.35
      • Set DPS_ConfEffectDelay[3] = 1.00
      • -------- duration of the effect --------
      • Set DPS_ConfEffectDuration[1] = 5.00
      • Set DPS_ConfEffectDuration[2] = 4.00
      • Set DPS_ConfEffectDuration[3] = 8.00
      • -------- string to call the effect --------
      • Set DPS_ConfEffectString[1] = poison
      • Set DPS_ConfEffectString[2] = burn
      • Set DPS_ConfEffectString[3] = bleed
      • Set DPS_ConfNoEffectString = none
      • -------- sfx for the effect --------
      • Set DPS_ConfEffectSfx[1] = Abilities\Spells\Other\Cleave\CleaveDamageTarget.mdl
      • Set DPS_ConfEffectSfx[2] = Abilities\Spells\Items\AIfb\AIfbSpecialArt.mdl
      • Set DPS_ConfEffectSfx[3] = Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
      • -------- attachment point at target for the sfx --------
      • Set DPS_ConfEffectSfxPt[1] = chest
      • Set DPS_ConfEffectSfxPt[2] = origin
      • Set DPS_ConfEffectSfxPt[3] = chest
      • -------- total effect at library --------
      • Set DPS_ConfEffectTotal = 3
      • -------- timer period for DPS trigger --------
      • Set DPS_ConfTimer = 0.05
      • -------- model that will be created at cast event --------
      • Set PS_ConfMissile = Missile
      • -------- maximum range for missiles to detect a target --------
      • Set PS_ConfDetectRange = 75.00
      • -------- you dont need to touch this --------
      • Trigger - Add to DPS <gen> the event (Time - Every DPS_ConfTimer seconds of game time)
  • Cast Event
    • Events
      • Game - PS_Event becomes Equal to 1.00
    • Conditions
    • Actions
      • Set PS_IndexMax = (PS_IndexMax + 1)
      • Set PS_Angle[PS_IndexMax] = (Angle from Ability_CasterPoint to Ability_TargetPoint)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Ability_MissileArc Less than 0.00
        • Then - Actions
          • Set Ability_MissileArc = 0.00
        • Else - Actions
      • Set PS_Arc[PS_IndexMax] = Ability_MissileArc
      • Set PS_Caster[PS_IndexMax] = Ability_Caster
      • Set PS_Damage[PS_IndexMax] = Ability_Damage
      • Set PS_DamageAoE[PS_IndexMax] = Ability_DamageAoE
      • Set PS_Distance[PS_IndexMax] = 0.00
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PS_Arc[PS_IndexMax] Greater than 0.00
        • Then - Actions
          • Custom script: set udg_PS_LocZ = GetLocationZ(udg_Ability_CasterPoint)
          • Custom script: set udg_PS_LocZ2 = GetLocationZ(udg_Ability_TargetPoint)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PS_LocZ Greater than or equal to PS_LocZ2
            • Then - Actions
              • Set PS_DistanceMax[PS_IndexMax] = ((Distance between Ability_CasterPoint and Ability_TargetPoint) - (((PS_LocZ + Ability_LaunchZ) - PS_LocZ2) + ((PS_LocZ - PS_LocZ2) x 0.25)))
            • Else - Actions
              • Set PS_DistanceMax[PS_IndexMax] = ((Distance between Ability_CasterPoint and Ability_TargetPoint) + (((PS_LocZ2 + Ability_LaunchZ) - PS_LocZ) + (PS_LocZ2 - PS_LocZ)))
        • Else - Actions
          • Set PS_DistanceMax[PS_IndexMax] = (Distance between Ability_CasterPoint and Ability_TargetPoint)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PS_DistanceMax[PS_IndexMax] Less than or equal to 100.00
        • Then - Actions
          • Set PS_DistanceMax[PS_IndexMax] = 100.00
        • Else - Actions
      • Set PS_ImpactSfx[PS_IndexMax] = Ability_ImpactSfx
      • Set PS_ImpactSfxPoint[PS_IndexMax] = Ability_ImpactSfxPoint
      • Set PS_ImpactZ[PS_IndexMax] = Ability_ImpactZ
      • Set PS_LaunchZ[PS_IndexMax] = Ability_LaunchZ
      • Set PS_MaxHeight[PS_IndexMax] = (PS_DistanceMax[PS_IndexMax] x Ability_MissileArc)
      • Set PS_MissileEffect[PS_IndexMax] = Ability_Effect
      • Set PS_MissileSpeed[PS_IndexMax] = Ability_MissileSpeed
      • Set PS_Target[PS_IndexMax] = Ability_Target
      • Set PS_Point[1] = (Point(((X of Ability_CasterPoint) + Ability_LaunchX), ((Y of Ability_CasterPoint) + Ability_LaunchY)))
      • Unit - Create 1 PS_ConfMissile for (Owner of Ability_Caster) at PS_Point[1] facing Ability_TargetPoint
      • Set PS_Missile[PS_IndexMax] = (Last created unit)
      • Unit - Add Crow Form to PS_Missile[PS_IndexMax]
      • Unit - Remove Crow Form from PS_Missile[PS_IndexMax]
      • Animation - Change PS_Missile[PS_IndexMax] flying height to PS_LaunchZ[PS_IndexMax] at 0.00
      • Special Effect - Create a special effect attached to the origin of PS_Missile[PS_IndexMax] using Ability_MissileType
      • Set PS_MissileSfx[PS_IndexMax] = (Last created special effect)
      • Custom script: set udg_PS_MissileInitialZ[udg_PS_IndexMax] = GetLocationZ(udg_Ability_CasterPoint)
      • Custom script: set udg_PS_Angle[udg_PS_IndexMax] = udg_PS_Angle[udg_PS_IndexMax] * bj_DEGTORAD
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PS_IndexMax Equal to 1
        • Then - Actions
          • Trigger - Turn on Projectile Loop <gen>
        • Else - Actions
      • Custom script: call RemoveLocation(udg_Ability_CasterPoint)
      • Custom script: call RemoveLocation(udg_Ability_TargetPoint)
      • Custom script: call RemoveLocation(udg_PS_Point[1])
  • Projectile Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer PS_Loop) from 1 to PS_IndexMax, do (Actions)
        • Loop - Actions
          • Custom script: set udg_PS_X = GetUnitX(udg_PS_Missile[udg_PS_Loop]) + udg_PS_MissileSpeed[udg_PS_Loop] * Cos(udg_PS_Angle[udg_PS_Loop])
          • Custom script: set udg_PS_Y = GetUnitY(udg_PS_Missile[udg_PS_Loop]) + udg_PS_MissileSpeed[udg_PS_Loop] * Sin(udg_PS_Angle[udg_PS_Loop])
          • Set PS_Distance[PS_Loop] = (PS_Distance[PS_Loop] + PS_MissileSpeed[PS_Loop])
          • Set PS_Point[2] = (Point(PS_X, PS_Y))
          • Custom script: set udg_PS_LocZ = GetLocationZ(udg_PS_Point[2])
          • Set PS_FlyingHeight = ((((4.00 x PS_MaxHeight[PS_Loop]) / PS_DistanceMax[PS_Loop]) x ((PS_DistanceMax[PS_Loop] - PS_Distance[PS_Loop]) x (PS_Distance[PS_Loop] / PS_DistanceMax[PS_Loop]))) + (PS_LaunchZ[PS_Loop] - (PS_LocZ - PS_MissileInitialZ[PS_Loop])))
          • Animation - Change PS_Missile[PS_Loop] flying height to PS_FlyingHeight at 0.00
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PS_FlyingHeight Less than or equal to PS_ImpactZ[PS_Loop]
            • Then - Actions
              • Set PS_Group = (Units within PS_ConfDetectRange of PS_Point[2] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of PS_Caster[PS_Loop])) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in PS_Group) Greater than 0
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • PS_DamageAoE[PS_Loop] Greater than 0.00
                    • Then - Actions
                      • Set PS_DamageGroup = (Units within PS_DamageAoE[PS_Loop] of PS_Point[2] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of PS_Caster[PS_Loop])) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False)
                      • Unit Group - Pick every unit in PS_DamageGroup and do (Actions)
                        • Loop - Actions
                          • Set PS_DamageTarget = (Picked unit)
                          • Unit - Cause PS_Caster[PS_Loop] to damage PS_DamageTarget, dealing PS_Damage[PS_Loop] damage of attack type Pierce and damage type Normal
                          • Special Effect - Create a special effect attached to the PS_ImpactSfxPoint[PS_Loop] of PS_DamageTarget using PS_ImpactSfx[PS_Loop]
                          • Special Effect - Destroy (Last created special effect)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • PS_MissileEffect[PS_Loop] Not equal to DPS_ConfNoEffectString
                            • Then - Actions
                              • Set DPS_IndexMax = (DPS_IndexMax + 1)
                              • Set DPS_Caster[DPS_IndexMax] = PS_Caster[PS_Loop]
                              • Set DPS_Target[DPS_IndexMax] = PS_DamageTarget
                              • For each (Integer DPS_Loop) from 1 to DPS_ConfEffectTotal, do (Actions)
                                • Loop - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • PS_MissileEffect[PS_Loop] Equal to DPS_ConfEffectString[DPS_Loop]
                                    • Then - Actions
                                      • Set DPS_Damage[DPS_IndexMax] = DPS_ConfEffectDamage[DPS_Loop]
                                      • Set DPS_Delay[DPS_IndexMax] = DPS_ConfEffectDelay[DPS_Loop]
                                      • Set DPS_DelayTimer[DPS_IndexMax] = DPS_Delay[DPS_IndexMax]
                                      • Set DPS_DurationTimer[DPS_IndexMax] = DPS_ConfEffectDuration[DPS_Loop]
                                      • Set DPS_Sfx[DPS_IndexMax] = DPS_ConfEffectSfx[DPS_Loop]
                                      • Set DPS_SfxPoint[DPS_IndexMax] = DPS_ConfEffectSfxPt[DPS_Loop]
                                    • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • DPS_IndexMax Equal to 1
                                • Then - Actions
                                  • Trigger - Turn on DPS <gen>
                                • Else - Actions
                            • Else - Actions
                      • Custom script: call DestroyGroup(udg_PS_DamageGroup)
                    • Else - Actions
                      • Set PS_DamageTarget = (Random unit from PS_Group)
                      • Unit - Cause PS_Caster[PS_Loop] to damage PS_DamageTarget, dealing PS_Damage[PS_Loop] damage of attack type Pierce and damage type Normal
                      • Special Effect - Create a special effect attached to the PS_ImpactSfxPoint[PS_Loop] of PS_DamageTarget using PS_ImpactSfx[PS_Loop]
                      • Special Effect - Destroy (Last created special effect)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • PS_MissileEffect[PS_Loop] Not equal to DPS_ConfNoEffectString
                        • Then - Actions
                          • Set DPS_IndexMax = (DPS_IndexMax + 1)
                          • Set DPS_Caster[DPS_IndexMax] = PS_Caster[PS_Loop]
                          • Set DPS_Target[DPS_IndexMax] = PS_DamageTarget
                          • For each (Integer DPS_Loop) from 1 to DPS_ConfEffectTotal, do (Actions)
                            • Loop - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • PS_MissileEffect[PS_Loop] Equal to DPS_ConfEffectString[DPS_Loop]
                                • Then - Actions
                                  • Set DPS_Damage[DPS_IndexMax] = DPS_ConfEffectDamage[DPS_Loop]
                                  • Set DPS_Delay[DPS_IndexMax] = DPS_ConfEffectDelay[DPS_Loop]
                                  • Set DPS_DelayTimer[DPS_IndexMax] = DPS_Delay[DPS_IndexMax]
                                  • Set DPS_DurationTimer[DPS_IndexMax] = DPS_ConfEffectDuration[DPS_Loop]
                                  • Set DPS_Sfx[DPS_IndexMax] = DPS_ConfEffectSfx[DPS_Loop]
                                  • Set DPS_SfxPoint[DPS_IndexMax] = DPS_ConfEffectSfxPt[DPS_Loop]
                                • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • DPS_IndexMax Equal to 1
                            • Then - Actions
                              • Trigger - Turn on DPS <gen>
                            • Else - Actions
                        • Else - Actions
                  • Special Effect - Destroy PS_MissileSfx[PS_Loop]
                  • Unit - Kill PS_Missile[PS_Loop]
                • Else - Actions
              • Custom script: call DestroyGroup(udg_PS_Group)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PS_FlyingHeight Less than or equal to 0.00
            • Then - Actions
              • Special Effect - Destroy PS_MissileSfx[PS_Loop]
              • Unit - Kill PS_Missile[PS_Loop]
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PS_Arc[PS_Loop] Equal to 0.00
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • PS_Distance[PS_Loop] Greater than or equal to PS_DistanceMax[PS_Loop]
                • Then - Actions
                  • Special Effect - Destroy PS_MissileSfx[PS_Loop]
                  • Unit - Kill PS_Missile[PS_Loop]
                • Else - Actions
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (PS_Missile[PS_Loop] is alive) Equal to False
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • PS_Loop Not equal to PS_IndexMax
                • Then - Actions
                  • Set PS_Angle[PS_Loop] = PS_Angle[PS_IndexMax]
                  • Set PS_Arc[PS_Loop] = PS_Arc[PS_IndexMax]
                  • Set PS_Caster[PS_Loop] = PS_Caster[PS_IndexMax]
                  • Set PS_Damage[PS_Loop] = PS_Damage[PS_IndexMax]
                  • Set PS_DamageAoE[PS_Loop] = PS_DamageAoE[PS_IndexMax]
                  • Set PS_Distance[PS_Loop] = PS_Distance[PS_IndexMax]
                  • Set PS_DistanceMax[PS_Loop] = PS_DistanceMax[PS_IndexMax]
                  • Set PS_ImpactSfx[PS_Loop] = PS_ImpactSfx[PS_IndexMax]
                  • Set PS_ImpactSfxPoint[PS_Loop] = PS_ImpactSfxPoint[PS_IndexMax]
                  • Set PS_ImpactZ[PS_Loop] = PS_ImpactZ[PS_IndexMax]
                  • Set PS_LaunchZ[PS_Loop] = PS_LaunchZ[PS_IndexMax]
                  • Set PS_MaxHeight[PS_Loop] = PS_MaxHeight[PS_IndexMax]
                  • Set PS_Missile[PS_Loop] = PS_Missile[PS_IndexMax]
                  • Set PS_MissileEffect[PS_Loop] = PS_MissileEffect[PS_IndexMax]
                  • Set PS_MissileInitialZ[PS_Loop] = PS_MissileInitialZ[PS_IndexMax]
                  • Set PS_MissileSfx[PS_Loop] = PS_MissileSfx[PS_IndexMax]
                  • Set PS_MissileSpeed[PS_Loop] = PS_MissileSpeed[PS_IndexMax]
                  • Set PS_Target[PS_Loop] = PS_Target[PS_IndexMax]
                • Else - Actions
              • Set PS_IndexMax = (PS_IndexMax - 1)
            • Else - Actions
              • Custom script: call SetUnitX(udg_PS_Missile[udg_PS_Loop], udg_PS_X)
              • Custom script: call SetUnitY(udg_PS_Missile[udg_PS_Loop], udg_PS_Y)
              • Custom script: set udg_PS_Facing = ( ZFacing ( udg_PS_FlyingHeight, udg_PS_DistanceMax[udg_PS_Loop], udg_PS_Distance[udg_PS_Loop]) + 90)
              • Custom script: call SetUnitAnimationByIndex(udg_PS_Missile[udg_PS_Loop], R2I( udg_PS_Facing ))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • PS_IndexMax Equal to 0
            • Then - Actions
              • Trigger - Turn off (This trigger)
            • Else - Actions
          • Custom script: call RemoveLocation(udg_PS_Point[2])
  • DPS
    • Events
    • Conditions
    • Actions
      • For each (Integer DPS_Loop) from 1 to DPS_IndexMax, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DPS_DurationTimer[DPS_Loop] Greater than 0.00
            • Then - Actions
              • Set DPS_DurationTimer[DPS_Loop] = (DPS_DurationTimer[DPS_Loop] - DPS_ConfTimer)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DPS_DelayTimer[DPS_Loop] Greater than 0.00
                • Then - Actions
                  • Set DPS_DelayTimer[DPS_Loop] = (DPS_DelayTimer[DPS_Loop] - DPS_ConfTimer)
                • Else - Actions
                  • Special Effect - Create a special effect attached to the DPS_SfxPoint[DPS_Loop] of DPS_Target[DPS_Loop] using DPS_Sfx[DPS_Loop]
                  • Special Effect - Destroy (Last created special effect)
                  • Set DPS_DelayTimer[DPS_Loop] = DPS_Delay[DPS_Loop]
                  • Unit - Cause DPS_Caster[DPS_Loop] to damage DPS_Target[DPS_Loop], dealing DPS_Damage[DPS_Loop] damage of attack type Normal and damage type Normal
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (DPS_Target[DPS_Loop] is alive) Equal to False
                  • DPS_DurationTimer[DPS_Loop] Less than or equal to 0.00
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DPS_Loop Not equal to DPS_IndexMax
                • Then - Actions
                  • Set DPS_Damage[DPS_Loop] = DPS_Damage[DPS_IndexMax]
                  • Set DPS_Caster[DPS_Loop] = DPS_Caster[DPS_IndexMax]
                  • Set DPS_Target[DPS_Loop] = DPS_Target[DPS_IndexMax]
                  • Set DPS_Delay[DPS_Loop] = DPS_Delay[DPS_IndexMax]
                  • Set DPS_DelayTimer[DPS_Loop] = DPS_DelayTimer[DPS_IndexMax]
                  • Set DPS_DurationTimer[DPS_Loop] = DPS_DurationTimer[DPS_IndexMax]
                • Else - Actions
              • Set DPS_IndexMax = (DPS_IndexMax - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DPS_IndexMax Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions

Not much to say about this system

There is readme inside the map, you should check it.. Enjoy :)

Keywords:
arrow, missile, projectile, system
Contents

Arrow Missile System (Map)

Reviews
20:18, 11th Nov 2013 Maker: The projectiles have issues with terrain modified with Apply Cliff tool. Also, the animation index setting for the dummy is not working as well as it could
Status
Not open for further replies.

Moderator

M

Moderator

20:18, 11th Nov 2013
Maker: The projectiles have issues with terrain modified with
Apply Cliff tool. Also, the animation index setting for the dummy
is not working as well as it could
 

Kazeon

Hosted Project: EC
Level 33
Joined
Oct 12, 2011
Messages
3,449
I used PnF's indexing, so I hope I didn't do it wrong :p

oh yea, I get the function from a random missile system ( i forget the author), but he wrote "//CREDITS TO MOYACK FOR:" there so the credit is going for Moyack

updated v1.0.1
- Fixed bug in DPS
- I can't find bug that Maker mean since he wont tell me. this system has used a correct arc calculating,
so i think there is no problem there. At least this system has worked just like what I have expected
 
Last edited by a moderator:

Kazeon

Hosted Project: EC
Level 33
Joined
Oct 12, 2011
Messages
3,449
Do you test your systems? The arcs are bugged, again. You could also work on setting the animation index of the dummy.

It also bugs if the launch and target points are the same, you should calculate the position over time, not over distance.

of course I tested it
I have just realized that the dummy has animations
I just dont get what kind of bug do you mean? you always said the arcs are bugged but when I asked what kind of bug you didn't answer it :/

truly, there is no bug in the arcing and you know what? i started to hate you, this system only needs no more than 1 minute to get status llike "needs fix" and my other okay systems feels like more than 2 weeks without any moderation. It's really heartbreaking, no appreciation for the hardwork
 
Last edited by a moderator:

Kazeon

Hosted Project: EC
Level 33
Joined
Oct 12, 2011
Messages
3,449
that caused by different height z of cast point and target point. Maybe I should give some math on max range calculation

updated.
- The bug is not really fixed but the current math will help you a lot, but it's still a little inaccurate. You need to change Ability_AuotAim to "true"
- Impact sfx is now shown
- fixed unused action in cast event
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
The system looks better, yet there is that range problem, projectiles sometimes stop before the purposed location, this is mainly noticeable when the 'range' is a little around the 2000, 1000 still makes it noticeable, but it's a good system for now
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
This problem is related to a height difference from the original source point, and the point the unit was in this picute, when i go back to the same height of the source, the arrows hit the archer again, but lol it doesn't revive, arrows still orbit and the game lags
 
Status
Not open for further replies.
Top