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

Holy Bolt V 0.3 New Update!

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
This is the first spell i made Holy Bolt i wish you will like it if i missed something tell me i will fix it :D

[Level 1,2,3]Call a forth of Holy Lightning That damages nearby enemies with an instant kill!.Holy Light also makes your HP to Max.(Universal Cast Like Wrath of nature)

This are The triggers

  • Lightning Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Holy Bolt
    • Actions
      • Set Unit = (Triggering unit)
      • Set Lightning_handle1 = (Key (Picked unit))
      • Set Point = (Position of (Triggering unit))
      • Set point2 = (Target point of ability being cast)
      • Hashtable - Save Handle Of(Last created lightning effect) as 1 of Lightning_handle1 in (Last created hashtable)
      • Hashtable - Save 41.00 as 3 of Lightning_handle1 in (Last created hashtable)
      • Unit Group - Add Unit to Spell_group
      • Trigger - Turn off Lightning Spell Loop <gen>
      • Set Lightning_spellOff = (Lightning_spellOff + 1.00)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 300.00 of point2 matching ((Owner of (Matching unit)) Not equal to Player 1 (Red))) and do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect at point2 using Abilities\Spells\Other\Doom\DoomDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Ability being cast) Equal to Holy Bolt
            • Then - Actions
              • Unit - Set life of (Triggering unit) to 100.00%
            • Else - Actions
      • Special Effect - Create a special effect at point2 using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
      • Special Effect - Destroy (Last created special effect)
      • Custom script: call RemoveLocation(udg_Point)
  • Lightning Spell Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Spell_group and do (Actions)
        • Loop - Actions
          • Set Unit = (Picked unit)
          • Set Lightning_handle1 = (Key (Picked unit))
          • Set Point = (Position of Unit)
          • Set Lightning_hashtable = (Load 1 of Lightning_handle1 in (Last created hashtable))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Life of (Triggering unit)) Greater than Lightning_spellOff
            • Then - Actions
              • Lightning - Destroy (Last created lightning effect)
              • Unit Group - Remove (Triggering unit) from Spell_group
              • Set Lightning_spellOff = (Lightning_spellOff - 1.00)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Lightning_spellOff Equal to 0.00
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
                  • Hashtable - Clear all child hashtables of child Lightning_handle1 in (Last created hashtable)
                  • Custom script: call RemoveLocation(udg_point2)
            • Else - Actions
      • Hashtable - Save Lightning_spellOff as 5 of Lightning_handle1 in (Last created hashtable)
      • Custom script: call RemoveLocation(udg_Point)
Screenshots
Before using the ability
14256247_916199328507316_816923909_n.png

After Using the ability the HP will be restore to max
14218489_1138468492907965_377428221_n.png





i will be updating this spell up to 0.5
Previews
Contents

Holy Bolt (Map)

Level 20
Joined
Aug 13, 2013
Messages
1,696
There are so many things need to fix in your triggers ^^. ( cant explain them one by one right now on mobile )

So you've choose the hashtable, thats also my first method to learn before.

Use the stored unit variable into parameters.
Add a configuration trigger

Ill just gonna send you a fully documented hashtable spell through PM ( maybe later or tomorrow ) to guide and help you ^^. Im impressed you learned quickly about triggering.
 
Level 13
Joined
Mar 29, 2012
Messages
530
Bolt of Holy. Holy Bolt seems better. :ag:

Quick review:
Inside loop trigger, udg_point2 should be put below:
  • Custom script: call RemoveLocation(udg_Point)
Four location leak:
  • Lightning - Create a Spirit Link lightning effect from source (Position of (Triggering unit)) to target (Center of (Playable map area))
  • Lightning - Move (Last created lightning effect) to source (Position of (Triggering unit)) and target (Center of (Playable map area))
Looks like you have a great coach. :p
 
Last edited:
Level 20
Joined
Aug 13, 2013
Messages
1,696
Well tested on PC:

There are so many things you need to fix in your spell:

OBJECT EDITOR ( F6 )

* Dummy Attack ( Unit )
- Art - Animations must be 0.
- Art - Death time can be 0 also.
- Art - Water Shadow can be set to false.
- Art - Pitch and Roll angle can be 0.
- Art - Model File must be dummy.mdx ( Vexorian ) to attach any effects.
- Art - Shadow Image can be set to none.
- Movement type can be set to none.
- Pathing - Collision size must be 0.
- Stats - Sight Radius ( Day and Night ) can be set to 400.
- Techtree - Upgrades used must be none.

* Bolt Of Holy ( Ability )
- Text - Tooltip - Learn - Extended: you forgot to change the description.
- Stats - Buffs can be none.
- Remember to avoid some spell data configurable through Object Editor if possible.

* Sun Strike ( Ability )
- Don't know if you must include this ability in this map. You must upload finished abilities.

TRIGGER EDITOR ( F4 )

- Create a configuration trigger. Put the data modification values from there. No values must be hardcoded.

* New Trigger
- is not needed if it is not finished. Remove it.

* Lightnings Effects Trigger
- what is the function of this trigger? Is this related? It has no events at all which makes it useless.

* Lightning Cast

  • Set Lightning_handle1 = (Key (Triggering unit))
^ Use your stored Unit variable. ( Apply this to all (Triggering unit) parameters )
^ Lightning_handle1 can be an integer variable and use:
  • Custom script: set udg_Lightninghandle1 = GetHandleId( udg_Unit )
  • Hashtable - Save Handle OfLightning_2 as 1 of Lightning_handle1 in Lightning_hashtable
^ Where did you create that Lightning_2?
  • Hashtable - Save 42.00 as 3 of Lightning_handle1 in Lightning_hashtable
^ What is this 42? store it in the variable first.

  • Trigger - Turn on Lightning Spell Loop <gen>
^ Your are turning on the loop everytime you cast the spell which makes it useless.
^ Make an integer variable, increase that integer variable everytime you add a unit in the group and decrease it everytime you remove a unit in the group.
^ Then Make an If statement about checking that if integer variable is equal to 1 then turn on the loop trigger.

  • Unit - Cause (Casting unit) to damage circular area after 1.00 seconds of radius 500.00 at Point, dealing 100.00 damage of attack type Spells and damage type Normal
^ This GUI function is not recommended to use.

  • Special Effect - Create a special effect at Point using Abilities\Spells\Other\Awaken\Awaken.mdl
^ Destroy this effect.

  • Set point2 = (Target point of ability being cast)
^ You are leaking this location, remove it like you did in the Point variable.

  • Time - Every 10.00 seconds of game time
^ That is a very long periodic event, you can lower it actually.

  • Set Lightning_handle1 = (Key (Picked unit))
^ Use the stored Unit variable ( Picked Unit ), always use the stored Unit variable into the parameters that needs to reference it.

  • Set point2 = (Load 4 of Lightning_handle1 in Lightning_hashtable)
^ I'm still confused where did you save this location.

  • Set Lightning_2 = (Load 1 of Lightning_handle1 in Lightning_hashtable)
^ Also this, you are loading a destroyed lightning.

  • Set Integer = (Load 5 of Lightning_handle1 in Lightning_hashtable)
^ And this, where did you save these things xD?

  • (Life of (Triggering unit)) Greater than (Load 2 of Lightning_handle1 from Lightning_hashtable)
^ You are loading nothing, it will return to 0.
^ Triggering Unit is the Picked Unit. ( Use the Unit variable )

  • Lightning - Destroy Lightning_2
^ Again, you destroyed the destroyed lightning.

  • Set Lightning_spellOff = (Lightning_spellOff - 1.00)
^ Can be an integer variable.

  • Hashtable - Clear all child hashtables of child Lightning_handle1 in Lightning_hashtable
^ Put this above of where you remove the Unit in the group.

  • Hashtable - Clear (Last created hashtable)
^ this is absolutely not needed. Remove it.

  • Hashtable - Save Lightning_spellOff as 5 of Lightning_handle1 in Lightning_hashtable
^ this is not needed to save also.

* For the proper way of using GUI unit groups filtering, I recommend you to read this:
Convenient Unit Group Filtering in GUI

Applying these changes to spell might come in handy. I highly suggest you to read my tutorial about MUI spells and if you are planning to create a next spell then apply what you have learned from the tutorial.

Goodluck ^^
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
There are still a lot of issues that need to be fixed. Did you even read jakeZinc's suggestions ._.
  • Lol I don't even have enough mana to cast the ability in your test map. The mana cost is 350 and the dragonhawk only has 300 mana
    There should be very little hardcoded values in your spell. Anything that a user might want to configure should be in a configurable trigger (ex: AoE, heal amount, duration)
  • Lightning_handle1 stores the handle id of (Picked unit), but you are doing this outside of a unit group loop
  • Why are you turning off the loop on cast? You should be checking if you should turn it on. Because of this, the loop never fires
  • Your variable names are extremely generic. Change them to something more specific to your spell like adding a special prefix
  • You store everything into (Last created hashtable), but I don't even see you creating a hashtable anywhere
  • I suggest you filter out your unit groups like this
  • Why do you check if "(Ability being cast) Equal to Holy Bolt" inside the unit group loop?
  • point2 leaks on cast
  • Point in the loop will leak every iteration
This spell is far from being MUI, so I didn't give it an extremely depth review. You should really reread some of the tutorials.


Set to Awaiting Update
 
Top