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

[GUI] Mana Flare v1.04

Mana Flare v1.04
by Amigurumi

Description
The hero saves his mana.
After his mana reached zero, or he stop channeling the ability,
he will damage the target equal to the saved mana.

Level

Level 1 - Each half second, the caster saves 10 mana.
Level 2 - Each half second, the caster saves 20 mana.
Level 3 - Each half second, the caster saves 30 mana.

The saved mana can be changed.
The spell came into my mind, after I gave vercas some spell ideas.
I really wanted to make this spell, because in my opinion, it's nice.

This spell is leakless, and can be cast by all players.

If you use this spell, please give credits to Amigurumi.

Have fun!

v1.00
uploaded

v1.01
changed the floating text positions
removed the MF_Index[4]
removed 'Unit - A unit Finishes casting an ability' from the MF Cancel trigger
changed the lightning to a more mana-looking one
changed the spellbook name

v1.02
removed the global resets

v1.03
removed the floating text, which shows the saved mana

v1.04
fixed a bug, which doesnt reset the mana, if the caster's mana reaches 0
changed floating text, removed unnecessary points
added variables, to change special effects easier
added variable, to change the attack type
added variable, to change the damage type


Keywords:
Amigurumi, mana, flare, spell, magic, GUI, high, damage
Contents

Mana Flare (Map)

Reviews
21:13, 22nd Sep 2009 Deuterium: 1. It's useless to: Set MF_Index[3] = 1 Since the looping command does that automatically: For each (Integer MF_Index[3]) from 1 to MF_Index[2], do (Actions) 2. Use Floating Text Above Unit instead of...

Moderator

M

Moderator

21:13, 22nd Sep 2009
Deuterium:

1. It's useless to:
  • Set MF_Index[3] = 1
Since the looping command does that automatically:
  • For each (Integer MF_Index[3]) from 1 to MF_Index[2], do (Actions)

2. Use Floating Text Above Unit instead of Floating Text At Point. That way you won't have to use the points anymore for the floating text and it'll actually show above the unit rather than in front of it.


3. Add more user adjustable globals (for special effects, attack type, damage type...).



These problems are very minor, but worth mentioning. Work on fixing them if you can. Yet, this spell works just fine and I advice anyone searching for such a spell to use this one.
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
Deu's Spell Review:

[-]

1. This is totally unnecessary:
  • Set MF_Index[4] = 1
(MF Cast)


2. This is very novice:
  • For each (Integer MF_Index[4]) from 1 to 3, do (Actions)
    • Loop - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Mana Flare for MF_Caster[MF_Index[2]]) Equal to MF_Index[4]
        • Then - Actions
          • -------- This sets the +damage, and the mana drained from the hero. --------
          • -------- It depends on the hero level. --------
          • Set MF_Level[MF_Index[2]] = ((Real(MF_Index[4])) x 10.00)
        • Else - Actions
(MF Cast)

Use this instead:
  • Set MF_Level[MF_Index[2]] = ((Real((Level of Mana Flare for (Triggering unit)))) x 10.00)

3. Using regions when unnecessary, and leaking those regions:
  • Set MF_Point[2] = (Random point in (Region centered at MF_Point[1] with size (45.00, 45.00)))
(MF Drain)

  • Set MF_Point[2] = (Random point in (Region centered at MF_Point[1] with size (45.00, 45.00)))
(MF Cancel)

You can use a Point with Polar Offset instead...


4. Don't null global variables:
  • Set MF_Level[MF_Index[3]] = 0.00
  • Set MF_Damage[MF_Index[3]] = 0.00
  • Set MF_Caster[MF_Index[3]] = No unit
  • Set MF_Target[MF_Index[3]] = No unit
(MF Drain)

  • Set MF_Level[MF_Index[5]] = 0.00
  • Set MF_Damage[MF_Index[5]] = 0.00
  • Set MF_Caster[MF_Index[5]] = No unit
  • Set MF_Target[MF_Index[5]] = No unit
(MF Cancel)


5. Don't use both of these:
  • Unit - A unit Stops casting an ability
  • Unit - A unit Finishes casting an ability
(MF Cancel)

Only use:
  • Unit - A unit Stops casting an ability


[+]

6. MUI


7. Function properly.


8. Might come in handy to some people.



[..]

9. You could have picked the Mana Drain Lightning instead of the one you use, that one is nicer and more adequate for this idea.



[*]

This GUI spell does what it's supposed to and functions properly. What's more, it's MUI. It might have very minor trigger flaws, but all isn't much of a problem except for the region leaks.

Well, I must say it's a good job. I might not find anything wow about the spell, but it function properly. Good job!
 
hey, thx for the review =D

2. This is very novice
oh, forgot to remove it. at first I did it manually: level 1=10, level 2=20, level 3=30...
3. Using regions when unnecessary, and leaking those regions
okay, I'll do this
4. Don't null global variables
but then the caster would damage the unit the whole time...
5. Don't use both of these
okay, I'll do this.

+rep
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
Amigurumi said:
but then the caster would damage the unit the whole time...

Oh well that could be fixed... you set a boolean in the main actions:
Boolean[Index[2]] = True

then, directly after announcing the loop For each Index[3] from 1 to Index[2] do Actions, you put a condition inside which are ALL the actions:
If Boolean[Index[3]] = True then Actions

and whenever the spell is supposed to end, you just set it to false... if you didn't understand, you can take a look at the spell in my signature...
 
yes, good idea. include that in the next version. but I wait for other suggestions, before I upload the newest version (v1.02).
thx

edit
well, I updated it, but there is a small bug. It's not major, but I had to reset the damage, because it stacked after two uses.
if someone know the solution to this problem, please tell it.
and why didn't changed the preview image?

edit2
ah, now the preview image has changed
 
Last edited:
Level 9
Joined
Nov 25, 2008
Messages
194
Well instead of the weird timer thing you could easily use a periodic event
The floating text and its random offset is annoying :/
I think you leak a point (MF Drain) :
  • Set MF_Point[1] = (Position of MF_Target[MF_Index[3]])
  • ......
  • Set MF_Point[1] = (Position of MF_Target[MF_Index[3]])
Well you kinda got messed up with the cancel trigger:
  • Trigger - Turn off MF Cancel <gen>
  • Unit - Order MF_Caster[MF_Index[3]] to Stop
  • Trigger - Turn on MF Cancel <gen>
I mean really, what is the purpose of this?
 
The floating text and its random offset is annoying :/
it's there to show you, how much mana you lose. and if I would make it at the same position, it would look weird, because the texts would be stacked together.
and if you don't like it, you can delete it...
I think you leak a point (MF Drain) :
  • Set MF_Point[1] = (Position of MF_Target[MF_Index[3]])
  • ......
  • Set MF_Point[1] = (Position of MF_Target[MF_Index[3]])
ehh, no?

Well you kinda got messed up with the cancel trigger:
  • Trigger - Turn off MF Cancel <gen>
  • Unit - Order MF_Caster[MF_Index[3]] to Stop
  • Trigger - Turn on MF Cancel <gen>
I mean really, what is the purpose of this?
if I would cancel the channeling, he would stop, and then the MF Cancel trigger would run, and the enemy gets 2x damage. So I turn it off, and later on, -> no 2x damage.
 
Level 9
Joined
Nov 25, 2008
Messages
194
Well, I overlooked, that you remove the look before setting it again due to all the floating text stuff. Still, why do you first set this variable, then remove it and then set it again? This is kinda senseless.

About the cancel trigger: If the mana is under 0, just d the following:
  • Set MF_Damage[MF_Index[3]] = (MF_Damage[MF_Index[3]] + (Mana of MF_Caster[MF_Index[3]]))
  • Unit - Order MF_Caster[MF_Index[3]] to Stop
Now it runs the cancel trigger with exactly the same effects....

About the floating text: Have you ever seen a manaburn, drain mana, drain life having a floating text? Guess not, and this has its purpose. The owner of the caster should know, how much mana he loses every 0.5 second. Either you could change so it reads the current damage, so the player knows when he has reached a certain damage, or just leave with the end floating text reading the damage.

Last but not least, an interval of 0.5 will have some delay if two or more units cast it at the same time.... I suggest setting it to 0.02 or 0.03 and then adding a little check, so it only runs every 0.5 sec.
 
Level 17
Joined
Mar 17, 2009
Messages
1,349

Deuterium's Brief Review:


1. It's useless to:
  • Set MF_Index[3] = 1
Since the looping command does that automatically:
  • For each (Integer MF_Index[3]) from 1 to MF_Index[2], do (Actions)

2. Use Floating Text Above Unit instead of Floating Text At Point. That way you won't have to use the points anymore for the floating text and it'll actually show above the unit rather than in front of it.


3. Add more user adjustable globals (for special effects, attack type, damage type...).



These problems are very minor, but worth mentioning. Work on fixing them if you can. Yet, this spell works just fine and I advice anyone searching for such a spell to use this one.
 
Top