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

SacredSpells (Flame spell) v1.2

  • Like
Reactions: Deuterium
This is one of my spells based on the game "Sacred".

1.2 ==> changed some things in the FL loop trigger. now the flame will return if the distance between the flame and the caster is bigger than the range.

Flame:
Creates a magic fire at the casting point. The flame follows the caster, but if a enemy unit comes in range of the flame, the flame will chase the unit and deal all units in range damage every 0.5 sec.

Duration: 15/20/25
Damage: 10/15/20
Range (to chase a unit): 350/400/450

Update 31.8.14: Updated Hive description

Keywords:
fire; MUI; homing; burn; sacred; firemage
Contents

Map template (Map)

Reviews
23:51, 30th Dec 2009 TriggerHappy: Leakless, MUI, decent spell. Approved. Although I dislike how you used spells in the title when there is one spell in here. That may be the reason why this hasn't been reviewed in forever, because spellpacks...

Moderator

M

Moderator

23:51, 30th Dec 2009
TriggerHappy:

Leakless, MUI, decent spell. Approved.
Although I dislike how you used spells in the title when there is one spell in here.

That may be the reason why this hasn't been reviewed in forever, because spellpacks take more time to review, don't decrease the pending spells as much.
 
Level 17
Joined
Mar 17, 2009
Messages
1,349

Deuterium's Brief Review:


1. Avoid the usage of Do nothing:
  • If ((Distance between FL_LeakPoint[0] and FL_LeakPoint[3]) Greater than or equal to FL_Range[FL_LoopIndex[3]]) then do (Set FL_TargetUnit[FL_LoopIndex[3]] = No unit) else do (Do nothing)

2. This is totally useless since the only time FL_DamageGroup is null the group would have been already created at map initialization:
  • Custom script: if udg_FL_DamageGroup == null then
  • Custom script: set udg_FL_DamageGroup = CreateGroup()
  • Custom script: endif

3. You leak a group:
  • Set FL_TargetUnit[FL_LoopIndex[3]] = (Random unit from (Units within FL_Range[FL_LoopIndex[3]] of FL_LeakPoint[3] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is A flying unit) Equal to False)) and ((((Matching unit) is Magic Immune) Equal to False) and ((((...

4. Why use "And" for only one condition:
  • And - All (Conditions) are true
    • Conditions
      • FL_LoopIndex[1] Equal to 0

5. You index two integer variables, yet you don't use this one:
  • Set FL_Index[1] = (FL_Index[1] + 1)
  • Set FL_Index[2] = (FL_Index[2] + 1)
And it's actually senseless using two indexes.


6. You aren't decreasing the LoopIndex[1] at the end of each cast, and this the indexing method you're using doesn't recycle at all. My advice would be replacing this indexing method with a dynamic one. Check Hanky's:[GUI] Dynamic Indexing Template


7. Some better special effects would be nice.


8. Attach the effect to the "origin" instead of to the "chest" in order to lower the height of the effect:
  • Special Effect - Create a special effect attached to the chest of (Last created unit) using FL_FlameSFX_String

9. Lacks documentation on how to import.



The spell idea is definitely nice and original; however, you've got to fix the just mentioned problems. And try to do come up with some creative special effects. Fix those and I'd be definitely advising people to use this spell if that's what they're searching for.
 
Top