• 🏆 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!

Bouncing Energy v1.05

  • Like
Reactions: Empirean
Throws a sphere of combusted energy at a target enemy or allly. If the target is an enemy, damages it and decreases his armor. If the target is an ally, heals it and increases his armor. Once the sphere completes its destination, it will select a new target and seek it. Repeated for the number of bounces.
Damage or Heal - 30/45/60
Bounce search AoE - 400/500/600
Number of bounces - 8/11/14
Armor increment/reduction - 5/7/9
Buff/debuff duration - 8 seconds
Cooldown - 10/5/0 seconds



  • Bouncing Energy configuration
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Your ability --------
      • Set BE_Ability = Bouncing Energy
      • -------- Dummy type --------
      • Set BE_DummyType = BE Dummy (Vexorian, infrane, anitarf)
      • -------- Projectile model --------
      • Set BE_Model = Abilities\Weapons\FaerieDragonMissile\FaerieDragonMissile.mdl
      • -------- Bounce count --------
      • Set BE_Bounces[1] = 8
      • Set BE_Bounces[2] = 11
      • Set BE_Bounces[3] = 14
      • -------- Bounce search AoE --------
      • Set BE_SearchAoE[1] = 400.00
      • Set BE_SearchAoE[2] = 500.00
      • Set BE_SearchAoE[3] = 600.00
      • -------- Damage/heal per bounce --------
      • Set BE_CDamage[1] = 30.00
      • Set BE_CDamage[2] = 45.00
      • Set BE_CDamage[3] = 60.00
      • Set BE_CHeal[1] = 30.00
      • Set BE_CHeal[2] = 45.00
      • Set BE_CHeal[3] = 60.00
      • -------- Damage/heal addition per bounce --------
      • Set BE_DamageAddition[1] = 5.00
      • Set BE_DamageAddition[2] = 10.00
      • Set BE_DamageAddition[3] = 15.00
      • Set BE_HealAddition[1] = 5.00
      • Set BE_HealAddition[2] = 10.00
      • Set BE_HealAddition[3] = 15.00
      • -------- Projectile speed (described in the first part of the arithmetic function) --------
      • Set BE_Speed[1] = (400.00 x 0.03)
      • Set BE_Speed[2] = (550.00 x 0.03)
      • Set BE_Speed[3] = (700.00 x 0.03)
      • -------- Max height --------
      • Set BE_Height[1] = 300.00
      • Set BE_Height[2] = 400.00
      • Set BE_Height[3] = 500.00
      • -------- Increased size per bounce (percentage) --------
      • Set BE_CSizeIncrement = 33.00
      • -------- Positive buff --------
      • Set BE_PosAbility = Bouncing Energy (Armor increment)
      • -------- Negative buff --------
      • Set BE_NegAbility = Bouncing Energy (Armor reduction)
      • -------- Positive special effect --------
      • Set BE_PosSpecialEffect = Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
      • -------- Negative special effect --------
      • Set BE_NegSpecialEffect = Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
      • -------- Damage type --------
      • Set BE_DamageType = Normal
      • -------- Attack type --------
      • Set BE_AttackType = Spells
      • -------- Preloading --------
      • Set BE_TempPoint = (Center of (Playable map area))
      • Unit - Create 1 BE Dummy (Vexorian, infrane, anitarf) for Neutral Passive at BE_TempPoint facing Default building facing degrees
      • Set BE_PreloadUnit = (Last created unit)
      • Unit - Add BE_PosAbility to BE_PreloadUnit
      • Unit - Remove BE_PosAbility from BE_PreloadUnit
      • Unit - Add BE_NegAbility to BE_PreloadUnit
      • Unit - Remove BE_NegAbility from BE_PreloadUnit
      • Unit - Remove (Last created unit) from the game
      • Custom script: call RemoveLocation (udg_BE_TempPoint)
  • Bouncing Energy initialization
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to BE_Ability
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BE_MaxIndex Equal to 0
        • Then - Actions
          • Trigger - Turn on Bouncing Energy loop <gen>
        • Else - Actions
      • -------- Setting the primary variables --------
      • Set BE_MaxIndex = (BE_MaxIndex + 1)
      • Set BE_Caster[BE_MaxIndex] = (Triggering unit)
      • Set BE_Target[BE_MaxIndex] = (Target unit of ability being cast)
      • Set BE_AbilityIndex[BE_MaxIndex] = (Level of BE_Ability for BE_Caster[BE_MaxIndex])
      • Set BE_DistanceTravelled[BE_MaxIndex] = 0.00
      • Set BE_Damage[BE_MaxIndex] = BE_CDamage[BE_AbilityIndex[BE_MaxIndex]]
      • Set BE_Heal[BE_MaxIndex] = BE_CHeal[BE_AbilityIndex[BE_MaxIndex]]
      • Set BE_SizeIncrement[BE_MaxIndex] = BE_CSizeIncrement
      • Set BE_CurrentBounces[BE_MaxIndex] = 0
      • Set BE_Player[BE_MaxIndex] = (Triggering player)
      • Set BE_TempPoint2 = (Position of BE_Caster[BE_MaxIndex])
      • Set BE_TempPoint3 = (Position of BE_Target[BE_MaxIndex])
      • Set BE_Angle[BE_MaxIndex] = (Angle from BE_TempPoint2 to BE_TempPoint3)
      • -------- Creating the projectile --------
      • Unit - Create 1 BE_DummyType for BE_Player[BE_MaxIndex] at BE_TempPoint2 facing BE_Angle[BE_MaxIndex] degrees
      • Set BE_Dummy[BE_MaxIndex] = (Last created unit)
      • Special Effect - Create a special effect attached to the origin of BE_Dummy[BE_MaxIndex] using BE_Model
      • Set BE_FX[BE_MaxIndex] = (Last created special effect)
      • Unit - Add BE_PosAbility to BE_Dummy[BE_MaxIndex]
      • Unit - Set level of BE_PosAbility for BE_Dummy[BE_MaxIndex] to BE_AbilityIndex[BE_MaxIndex]
      • Unit - Add BE_NegAbility to BE_Dummy[BE_MaxIndex]
      • Unit - Set level of BE_NegAbility for BE_Dummy[BE_MaxIndex] to BE_AbilityIndex[BE_MaxIndex]
      • Custom script: call RemoveLocation(udg_BE_TempPoint2)
      • Custom script: call RemoveLocation(udg_BE_TempPoint3)
  • Bouncing Energy loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer BE_TempIndex) from 1 to BE_MaxIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • BE_CurrentBounces[BE_TempIndex] Less than or equal to BE_Bounces[BE_AbilityIndex[BE_TempIndex]]
            • Then - Actions
              • -------- Moving the projectile --------
              • Set BE_TempPoint3 = (Position of BE_Target[BE_TempIndex])
              • Set BE_TempPoint2 = (Position of BE_Dummy[BE_TempIndex])
              • Set BE_Distance[BE_TempIndex] = (Distance between BE_TempPoint3 and BE_TempPoint2)
              • Set BE_DistanceTravelled[BE_TempIndex] = (BE_DistanceTravelled[BE_TempIndex] + BE_Speed[BE_AbilityIndex[BE_TempIndex]])
              • Set BE_TotalDistance = (BE_DistanceTravelled[BE_TempIndex] + BE_Distance[BE_TempIndex])
              • Set BE_Angle[BE_TempIndex] = (Angle from BE_TempPoint2 to BE_TempPoint3)
              • Set BE_TempPoint = (BE_TempPoint2 offset by BE_Speed[BE_AbilityIndex[BE_TempIndex]] towards BE_Angle[BE_TempIndex] degrees)
              • -------- PARABOLA FUNCTION --------
              • Animation - Change BE_Dummy[BE_TempIndex] flying height to ((4.00 x BE_Height[BE_AbilityIndex[BE_TempIndex]]) x (BE_DistanceTravelled[BE_TempIndex] x ((BE_TotalDistance - BE_DistanceTravelled[BE_TempIndex]) / (BE_TotalDistance x BE_TotalDistance)))) at 0.00
              • -------- PARABOLA FUNCTION --------
              • Unit - Move BE_Dummy[BE_TempIndex] instantly to BE_TempPoint, facing BE_Angle[BE_TempIndex] degrees
              • -------- Checking if the projectile has reached the target --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BE_Distance[BE_TempIndex] Less than or equal to 50.00
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (BE_Target[BE_TempIndex] belongs to an ally of BE_Player[BE_TempIndex]) Equal to True
                    • Then - Actions
                      • Unit - Set life of BE_Target[BE_TempIndex] to ((Life of BE_Target[BE_TempIndex]) + BE_Heal[BE_TempIndex])
                      • Special Effect - Create a special effect at BE_TempPoint3 using BE_PosSpecialEffect
                      • Special Effect - Destroy (Last created special effect)
                      • -------- NOTE: This has to be changed if you're adding a different ability to the projectile --------
                      • Unit - Order BE_Dummy[BE_TempIndex] to Human Priest - Inner Fire BE_Target[BE_TempIndex]
                    • Else - Actions
                      • Unit - Cause BE_Caster[BE_TempIndex] to damage BE_Target[BE_TempIndex], dealing BE_Damage[BE_TempIndex] damage of attack type BE_AttackType and damage type BE_DamageType
                      • Special Effect - Create a special effect at BE_TempPoint3 using BE_NegSpecialEffect
                      • Special Effect - Destroy (Last created special effect)
                      • -------- NOTE: This has to be changed if you're adding a different ability to the projectile --------
                      • Unit - Order BE_Dummy[BE_TempIndex] to Night Elf Druid Of The Talon - Faerie Fire BE_Target[BE_TempIndex]
                  • Set BE_Group = (Units within BE_SearchAoE[BE_AbilityIndex[BE_TempIndex]] of BE_TempPoint2)
                  • -------- Getting a new target --------
                  • Unit Group - Pick every unit in BE_Group and do (Actions)
                    • Loop - Actions
                      • Set BE_PickedUnits = (Picked unit)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (BE_PickedUnits is A structure) Equal to False
                          • (BE_PickedUnits is alive) Equal to True
                          • BE_PickedUnits Not equal to BE_Target[BE_TempIndex]
                        • Then - Actions
                        • Else - Actions
                          • Unit Group - Remove BE_PickedUnits from BE_Group
                  • -------- Checking if there are not units around, if there aren't, ends the ability. --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in BE_Group) Equal to 0
                    • Then - Actions
                      • Set BE_CurrentBounces[BE_TempIndex] = BE_Bounces[BE_AbilityIndex[BE_TempIndex]]
                    • Else - Actions
                  • Set BE_Target[BE_TempIndex] = (Random unit from BE_Group)
                  • -------- Preparing for the next bounce. --------
                  • Animation - Change BE_Dummy[BE_TempIndex]'s size to ((100.00 + BE_SizeIncrement[BE_TempIndex])%, (100.00 + BE_SizeIncrement[BE_TempIndex])%, (100.00 + BE_SizeIncrement[BE_TempIndex])%) of its original size
                  • Set BE_Damage[BE_TempIndex] = (BE_Damage[BE_TempIndex] + BE_DamageAddition[BE_AbilityIndex[BE_TempIndex]])
                  • Set BE_Heal[BE_TempIndex] = (BE_Heal[BE_TempIndex] + BE_HealAddition[BE_AbilityIndex[BE_TempIndex]])
                  • Set BE_CurrentBounces[BE_TempIndex] = (BE_CurrentBounces[BE_TempIndex] + 1)
                  • Set BE_SizeIncrement[BE_TempIndex] = (BE_SizeIncrement[BE_TempIndex] + BE_CSizeIncrement)
                  • Set BE_DistanceTravelled[BE_TempIndex] = 0.00
                  • Custom script: call DestroyGroup(udg_BE_Group)
                • Else - Actions
              • -------- Cleaning all 3 location variables --------
              • Custom script: call RemoveLocation(udg_BE_TempPoint)
              • Custom script: call RemoveLocation(udg_BE_TempPoint2)
              • Custom script: call RemoveLocation(udg_BE_TempPoint3)
            • Else - Actions
              • -------- Deindexing --------
              • Special Effect - Destroy BE_FX[BE_TempIndex]
              • Set BE_FX[BE_TempIndex] = BE_FX[BE_MaxIndex]
              • Unit - Kill BE_Dummy[BE_TempIndex]
              • Set BE_Dummy[BE_TempIndex] = BE_Dummy[BE_MaxIndex]
              • Set BE_Target[BE_TempIndex] = BE_Target[BE_MaxIndex]
              • Set BE_Caster[BE_TempIndex] = BE_Caster[BE_MaxIndex]
              • Set BE_Player[BE_TempIndex] = BE_Player[BE_MaxIndex]
              • Set BE_CurrentBounces[BE_TempIndex] = BE_CurrentBounces[BE_MaxIndex]
              • Set BE_Angle[BE_TempIndex] = BE_Angle[BE_MaxIndex]
              • Set BE_Distance[BE_TempIndex] = BE_Distance[BE_MaxIndex]
              • Set BE_DistanceTravelled[BE_TempIndex] = BE_DistanceTravelled[BE_MaxIndex]
              • Set BE_SizeIncrement[BE_TempIndex] = BE_SizeIncrement[BE_MaxIndex]
              • Set BE_TempIndex = (BE_TempIndex - 1)
              • Set BE_MaxIndex = (BE_MaxIndex - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BE_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off Bouncing Energy loop <gen>
                • Else - Actions

v1.00 - Initial release
v1.01 - Fixed missiles bouncing between themselves (thanks Empirean)
v1.02 - Radically increased the projectile's size (1.50 -> 5.00)
Added a preload
Made the projectile bounce like a parabola
Fixed a small leak
Replaced negative damage with life addition when healing allies
v1.03 - Added a size increase on each bounce (configurable)
Improved preloading
v1.04 - Reworked how the projectile bounces (Now instead of being incredibly weird it uses an actual parabola function)
Imported Vexorian's/Anitarf's/Infrane's dummy and used it.
Removed a condition that checks for if the next target is a dummy or not.
v1.05 - Improved the spell by importing the stuff IcemanBo pointed out.


Looking forward to receiving feedback.

Keywords:
4th spell in hive, LITHUFFIN, bouncing, bounce, energy, armor, heal, damage, lulz
Contents

Bouncing Energy v1.05 (Map)

Reviews
21:35, 8th Jan 2016 IcemanBo: The code looks good now. It looks quite cool, and is nice. Recommended.

Moderator

M

Moderator

21:35, 8th Jan 2016
IcemanBo: The code looks good now. It looks quite cool, and is nice. Recommended.
 
Level 13
Joined
Jun 20, 2014
Messages
479
Bouncing Energy v1.0 - i didnt check the triggers. the effects and the mechanics of the spell is really good. i have a question, i noticed that the missile can heal themselves not sure if this is intended.
 
Last edited:
Level 37
Joined
Jul 22, 2015
Messages
3,485
The name was a little misleading xP I was expecting a bounce like a parabola, but still a pretty cool spell with awesome effects.

Here are some things with a quick look:
  • Why are you dealing negative damage to heal units...? Why not just use Unit - Set life to heal friendly targets
  • There is no need to index Damage[] and Heal; just use BE_CDamage[AbilityLevel] & BE_CHeal[AbilityLevel]. Similar reason to why you don't index BE_SearchAoE[]
    • Not that it matters since you shouldn't be indexing Damage and Heal, but on index the array element for BE_Heal[] is TempIndex. It should be MaxIndex.
  • Preload dummy units and their abilities

My only suggestion is to let the user decide how long it will take for an effect to reach a target instead of just a default speed.
 
  • Like
Reactions: ILH
Level 11
Joined
Jul 25, 2014
Messages
490
I did try to make it bounce like a parabola, i almost made it work, but it just added a buttload of extra functions xD
Edit: Nevermind, completed it, next version of the spell will have actual bouncing.

1. Hmm, seems pretty reasonable, will do.
2. Imo I should index them since I change their values inside the loop, I can't increase a configuration variable.
2.1. Oops, will fix.
3. What do you mean by preloading?
Edit: Nevermind, got it, will preload.

4. Eh, the target is moving, so "time until it reaches target" seems a little misleading ;P
 
Last edited:
Level 37
Joined
Jul 22, 2015
Messages
3,485
Imo I should index them since I change their values inside the loop, I can't increase a configuration variable
My mistake x)

What do you mean by preloading?
You almost got it right. Add the abilities to them and then remove the unit.

Personally, I think the bounce looks a little awkward xP but the concept of applying parabolas are a bit confusing. I still don't quite get them myself. However, the new bounce effect does add a bit of spice to the spell. One more SFX suggestion would be to start off the missle as a really small effect that gradually gets bigger since the damage + heal values increase by every bounce. Overall, a really cool spell! I love all the config options you give users to play with. 4/5 from me.

Also, may I ask why you prefer having the effects appear on a point vs as an attachment on units?
 
Level 11
Joined
Jul 25, 2014
Messages
490
KILLCIDE said:
You almost got it right. Add the abilities to them and then remove the unit.

Err, the dummy doesn't have any abilities that I use manually, just locust and invulnerability, so hmm, idk about this.

I know that it looks a little awkward, but applying this method to make leaps, bounces and parabolas overall is how i make them (Comparing current distance with the distance where the spell was cast or where it bounced off divided by half). Hmm, increasing the scaling value seems interesting, will do probably. Thanks for the suggestion.

KILLCIDE said:
Also, may I ask why you prefer having the effects appear on a point vs as an attachment on units?

It's the complete opposite of your view actually, to me it just looks better, I'm just adding a little common sense and logic to it (in real life the effects wouldn't follow you, they would just happen at one place, unless you're burning or something, but that's a buff when compared to w3 world XDD)
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
Err, the dummy doesn't have any abilities that I use manually, just locust and invulnerability, so hmm, idk about this.
You sure about that? This is found on cast.

  • Unit - Add BE_PosAbility to BE_Dummy[BE_MaxIndex]
  • Unit - Set level of BE_PosAbility for BE_Dummy[BE_MaxIndex] to BE_AbilityIndex[BE_MaxIndex]
  • Unit - Add BE_NegAbility to BE_Dummy[BE_MaxIndex]
  • Unit - Set level of BE_NegAbility for BE_Dummy[BE_MaxIndex] to BE_AbilityIndex[BE_MaxIndex]

The reason you preload is because the first time you add an ability, there is a slight but, noticable, lag. If you do this on init, you completely avoid the lag. You only have to preload when you're adding abilities to something.
 

Wrda

Spell Reviewer
Level 25
Joined
Nov 18, 2012
Messages
1,864
I find preloading abilities and dummies pointless here since the user can do it very easily, since he didn't ask someone else to do it. (Or half the users don't know that)
Also when you're preloading abilities, you're preloading all its data not just model and icon. Besides that you should preload the effects of the spell in game, on cast. Only after that you've completly preloaded the ability.
About this spell, I find it very good, fun and original one.
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
Neat idea. There are some issues with this resource which can be resolved:


- The tooltip for learning the ability doesn't show the hotkey

- You create a dummy unit just to check distance. That's a very convoluted way to do this and you should consider rethinking your method to something more practical.

- The missile height arcs very rigidly and you may want to consider using a proper GetParabolaZ function.

- It may be a good idea to use the dummy.mdx model file as that way the user doesn't need to copy over a new dummy unit for your spell.

- You don't have to check in your group filter if the unit is not one of your dummies as your dummies have locust.
 
Level 11
Joined
Jul 25, 2014
Messages
490
- The tooltip for learning the ability doesn't show the hotkey
Will fix.

- You create a dummy unit just to check distance. That's a very convoluted way to do this and you should consider rethinking your method to something more practical.
Do you have any suggestions? I haven't figured out a separate way how to check distances in MUI without having to create dummies.

- The missile height arcs very rigidly and you may want to consider using a proper GetParabolaZ function.
Searched for it, if you mean
JASS:
4 * h * x * (d - x) / (d * d)
this formula, then I'll research it, seems pretty interesting :>

- It may be a good idea to use the dummy.mdx model file as that way the user doesn't need to copy over a new dummy unit for your spell.
Alrighty!

- You don't have to check in your group filter if the unit is not one of your dummies as your dummies have locust.
Afaik the group picks units even those who are untargetable, since Empirean pointed out in the first version that the dummies can bounce between themselves. Other than that, I've had my experience with this and I'm pretty sure that it picks untargetable units.

--

Thanks for the review, appreciated!
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
Locust units cannot be enumerated unless you are picking units owned by player. Locust is designed to remove a unit from normal play while keeping it visible. It's what keeps locusts from being hit by things like Rain of Fire. They are not invulnerable; but they are unclickable and ignore AoE.

Next, you're checking distance between dummy and target. Why a third unit? I see you set the DistanceKeeper's position to the dummy's location before moving, so why not factor in how much the dummy moved into the distance comparison if that's its goal?
 
Level 11
Joined
Jul 25, 2014
Messages
490
Locust units cannot be enumerated unless you are picking units owned by player. Locust is designed to remove a unit from normal play while keeping it visible. It's what keeps locusts from being hit by things like Rain of Fire. They are not invulnerable; but they are unclickable and ignore AoE.
Noted!
Next, you're checking distance between dummy and target. Why a third unit? I see you set the DistanceKeeper's position to the dummy's location before moving, so why not factor in how much the dummy moved into the distance comparison if that's its goal?
Yeah and I need the third unit as a location variable (Position of (DistanceKeeper)). How else am I going to compare the total distance and the current distance? Enlighten me :D
 
Level 11
Joined
Jul 25, 2014
Messages
490
That actually makes perfect sense, amazing.. Thanks!

By the way, Bribe, when I'm using the distance travelled plus the distance between the dummy and the target, will I need a third real variable array to sum those two, or will I just use an arithmetic function within each move?
 
Last edited by a moderator:
Level 11
Joined
Jul 25, 2014
Messages
490
Downloading warcraft, will start updating once I have it. One more question though, Bribe,
- It may be a good idea to use the dummy.mdx model file as that way the user doesn't need to copy over a new dummy unit for your spell.
So I just enter dummy.mdx into the filepath? Or is that some sort of an imported file? Cause I have never used it.
EDIT: Which dummy are you referring to, the one who is completely invisible and is used plainly for keeping the distance or the one that bounces between units?
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
Dummy.mdx is an inported model file concieved and/or composed by Vexorian, Anitarf and InFRaNe on wc3c.net (I don't know exactly who did what on the project). I use it in some of the spells in my signature, like Spell System. You can find it in many spells on The Hive, in fact.

How it works is that it has attachment points for special effects, so you attach the model file of a missile to its origin and the entire model then looks like that missile.

However, there is a lit more depth to that resource in that you can give it a Z orientation so arrow-based projectiles can curve along the projectile arc.

Such complexity is why we have missile systems in the first place, and everybody is so interested in making their own ones is why we have so many.

For GUI, I think Knockback 3D is the current best.
 
Very nice, and it looks cool.

However. When it hits a target the DistanceTravaled[index] needs to be set to "0" again.
The parobla function looks good, but make "Change FlyingHeight at "0". With the 0, the flight be smoother - it can be seen.

The "EmptyGroupChecker" variable seems redundant, because directly the function
can be used to count UnitsInUnitGroup, and check it is larger than "0".
 
Level 6
Joined
Jul 21, 2019
Messages
168
Hey hello, i don't know if you are still active, but i am noob and i got a problem importing the spell into my map:
everything works as intended minus the special effect of the actual bouncing energy, the death coil and holy light effects work but the missile is invisible, plus there is an hydralisk missile effect on target units (arrow sound and small blood effect), even though said effect isn't anywhere on the trigger.

Has anyone got this problem? how can i solve it?
i checked the Set BE_Model action and it has the desired model path, but for some reason it's not working


NEVERMIND, just an advice for my fellow noob world editors, when importing spells, sometimes the dummy unit's abilities get messed up, sometimes the imported ability's (object editor ability) buff get messed up, and sometimes unit and special effect actions (triggers) get fucked up during copy, so remember to check all of the things above IF you happen to have a problem similar to mine.

REGARDING THE SPELL: Very original, reminds me of Brand's ultimate (league of legends), 5/5.
 
Last edited:
Top