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

Frigid Blast [v1.2]

Spell Description

Active Ability
Spell Type: Point Target (turns to Instant after cast)
Cast Range: X Range
Jaina sends a small piece of crystal shard towards. She can activate it to cause a freezing explosion upon the area around that crystal, dealing damage to all the enemies around the area of the crystal and freezes them for 2 seconds. Damage and area of effect slightly increases by the distance travelled of that crystal.
Level 1: 50 base damage. Max 150 damage
Level 2: 100 base damage. Max 300 damage
Level 3: 150 base damage. Max 450 damage

Cooldown: 5 seconds

Spell inspired from DotA's Ancient Apparition's ultimate spell
The idea is unoriginal but at least it does not follow exactly how the spell works
I uploaded it because as far as I can see no one upload this spell yet
[trigger=Frigid Blast]Frigid Blast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Frigid Blast (Target)
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FB_indexSize Equal to 0
Then - Actions
Trigger - Turn on Frigid Blast loop <gen>
Else - Actions
Set FB_indexSize = (FB_indexSize + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FB_indexSize Greater than FB_indexMax
Then - Actions
Set FB_index1[FB_indexSize] = FB_indexSize
Set FB_indexMax = FB_indexSize
Else - Actions
Set FB_index2 = FB_index1[FB_indexSize]
-------- ======================================================== --------
Set FB_check[FB_index2] = False
Set FB_caster[FB_index2] = (Triggering unit)
Set tempReal = (Real((Level of Frigid Blast (Target) for FB_caster[FB_index2])))
-------- --------------------------------------------- Configurable --------------------------------------------- --------
Set FB_baseDamage[FB_index2] = (50.00 x tempReal)
Set FB_baseAoE[FB_index2] = 200.00
Set FB_damageIncrement[FB_index2] = tempReal
Set FB_AoEIncrement[FB_index2] = (1.50 x tempReal)
Set FB_maxDamage[FB_index2] = (150.00 x tempReal)
Set FB_speed[FB_index2] = (40.00 - (2.00 x tempReal))
Set FB_cooldown[FB_index2] = 5.00
-------- ----------------------------------------- Configurable End ----------------------------------------- --------
Set tempPoint = (Position of FB_caster[FB_index2])
Set tempPoint2 = (Target point of ability being cast)
Set FB_angle[FB_index2] = (Angle from tempPoint to tempPoint2)
Set tempPoint3 = (tempPoint offset by 120.00 towards FB_angle[FB_index2] degrees)
Unit - Create 1 Frigid Blast_dummy for (Owner of FB_caster[FB_index2]) at tempPoint3 facing Default building facing degrees
Set FB_dummy[FB_index2] = (Last created unit)
Unit Group - Add FB_caster[FB_index2] to FB_casterGroup
Unit - Remove Frigid Blast (Target) from FB_caster[FB_index2]
Unit - Add Frigid Blast (Instant) to FB_caster[FB_index2]
Unit - Set level of Frigid Blast (Instant) for FB_caster[FB_index2] to (Integer(tempReal))
Custom script: call RemoveLocation (udg_tempPoint3)
Custom script: call RemoveLocation (udg_tempPoint2)
Custom script: call RemoveLocation (udg_tempPoint)
[/trigger]
[trigger=Frigid Blast loop]Frigid Blast loop
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
For each (Integer FB_index3) from 1 to FB_indexSize, do (Actions)
Loop - Actions
Set FB_index2 = FB_index1[FB_index3]
-------- ---------------------------------------------------------------------------------------------------------------- --------
Set tempPoint = (Position of FB_dummy[FB_index2])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(FB_caster[FB_index2] is alive) Equal to True
(FB_caster[FB_index2] is in FB_casterGroup) Equal to True
Then - Actions
Set tempPoint2 = (tempPoint offset by FB_speed[FB_index2] towards FB_angle[FB_index2] degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Playable map area) contains tempPoint2) Equal to True
Then - Actions
Unit - Move FB_dummy[FB_index2] instantly to tempPoint2
Set FB_baseAoE[FB_index2] = (FB_baseAoE[FB_index2] + FB_AoEIncrement[FB_index2])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FB_baseDamage[FB_index2] Less than FB_maxDamage[FB_index2]
Then - Actions
Set FB_baseDamage[FB_index2] = (FB_baseDamage[FB_index2] + FB_damageIncrement[FB_index2])
Else - Actions
Else - Actions
Unit - Order FB_caster[FB_index2] to Night Elf Warden - Fan Of Knives
Custom script: call RemoveLocation (udg_tempPoint2)
Else - Actions
Unit - Explode FB_dummy[FB_index2]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(FB_caster[FB_index2] is alive) Equal to True
FB_check[FB_index2] Equal to False
Then - Actions
Set FB_check[FB_index2] = True
For each (Integer tempInteger) from 1 to 12, do (Actions)
Loop - Actions
Set tempPoint2 = (tempPoint offset by FB_baseAoE[FB_index2] towards (30.00 x (Real(tempInteger))) degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Playable map area) contains tempPoint2) Equal to True
Then - Actions
Unit - Create 1 Frigid Blast_check for (Owner of FB_caster[FB_index2]) at tempPoint2 facing Default building facing degrees
Else - Actions
Custom script: call RemoveLocation (udg_tempPoint2)
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units within FB_baseAoE[FB_index2] of tempPoint matching (((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Mechanical) Equal to False) and (((Matching unit) is Magic Immune) Equal to False))) and ((((Matching unit) is alive) Equal and do (Actions)
Loop - Actions
Set tempPoint3 = (Position of (Picked unit))
Unit - Cause FB_caster[FB_index2] to damage (Picked unit), dealing FB_baseDamage[FB_index2] damage of attack type Spells and damage type Normal
Unit - Create 1 dummy_unit for (Owner of FB_caster[FB_index2]) at tempPoint3 facing Default building facing degrees
Unit - Add Frigid Blast (dummy) to (Last created unit)
Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
Custom script: call RemoveLocation (udg_tempPoint3)
Special Effect - Create a special effect at tempPoint using war3mapImported\Shiva'sWrath.mdx
Special Effect - Destroy (Last created special effect)
Else - Actions
-------- ---------------------------------------------------------------------------------------------------------------- --------
Set FB_cooldown[FB_index2] = (FB_cooldown[FB_index2] - 0.03)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FB_cooldown[FB_index2] Less than or equal to 0.00
Then - Actions
Unit - Remove Frigid Blast (Instant) from FB_caster[FB_index2]
Unit - Add Frigid Blast (Target) to FB_caster[FB_index2]
Set FB_index1[FB_index3] = FB_index1[FB_indexSize]
Set FB_index1[FB_indexSize] = FB_index2
Set FB_indexSize = (FB_indexSize - 1)
Set FB_index3 = (FB_index3 - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FB_indexSize Equal to 0
Then - Actions
Trigger - Turn off Frigid Blast explode <gen>
Trigger - Turn off (This trigger)
Else - Actions
Else - Actions
Custom script: call RemoveLocation (udg_tempPoint)
[/trigger]
[trigger=Frigid Blast explode]Frigid Blast explode
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Frigid Blast (Instant)
Actions
Unit Group - Remove (Triggering unit) from FB_casterGroup
[/trigger]


A screenshot to show how it works
154935-albums5387-picture55491.jpg



This spell requires camera bounds or else it might cause the game to crash
154935-albums5387-picture56130.jpg



Changelog

v1.2
- added importing instructions
- turned off "Frigid Blast explode"
- moved the following trigger data out of If/Then/Else block
  • Set tempPoint = (Position of FB_dummy[FB_index2])
v1.1
- crash fixed

v1.0b
- removed upgrades used and structures built from dummies
- used a real variable instead of integer variable for level of Frigid Blast ability
- changed the model of missile
- speed of the missile is now configurable
- checked whether the points of where the missile going to move and the dummies going to create are in playable map area

v1.0
- spell released
Please feel free to give any constructive critics/comments
Credits

Thanks to Daelin for the model of the missile
Thanks to JetFangInferno for the effect upon activate
Thanks to Maker for fixing a bug which the target point not working and fixing game crash
Thanks to Hanky for his dynamic indexing system
Keywords:
Jay the Editor, Frigid Blast
Ice, Freeze, Frozen, Missile, Target, Instant,
Contents

Frigid Blast (Map)

Reviews
Moderator: Maker Date:28th Feb 2012 Spell: Frigid Blast v1.2 Approved This is quite interesting spell. You can use it tactically as one can detonate the projectile when he pleases and also the spell can be used for limited exploration. The...

Moderator

M

Moderator

160036-albums4747-picture55861.png



Moderator: Maker
Date:28th Feb 2012
Spell: Frigid Blast v1.2

Review

Approved

This is quite interesting spell. You can use it tactically as one can detonate the projectile when
he pleases and also the spell can be used for limited exploration. The effects are good.

What bothers me about this spell is that it uses 3 abilities and 3 dummies. You could maybe
reduce the dummy count to 2 by deleting the dummy caster and using one of the other dummies
to cast the dummy ability. You can hide the effect dummy so it won't show up in that case.
Also the abrupt interruption of the cast animation when the ability is removed from the caster is a bit unaesthetic.

Suggested changes
  • Set dummy's Art - Animation - Cast point to 0 for instant spell casting


160036-albums4747-picture55861.png



Moderator: Maker
Date:27th Feb 2012
Spell: Frigid Blast v1.1

Review

Required changes
  • Add importing instructions
  • Frigid Blast explode should not be on all the time
Suggested changes
  • You are setting the position of dummy both in THEN and ELSE branches in the looping trigger. Set it only once, before the if/then/else
  • Set dummy's Art - Animation - Cast time to 0 for instant spell casting

Reviewed by Maker, Frigid Blast v1.0b, 7th Feb 2012

  • Remove upgrades used and structures built from dummies
  • You could convert the ability level into a real since you're not using the integer for anything, only the real
    You're doing the integer to real conversion four times
  • The dummy gives vision
  • I do not really approve the fact that you remove the ability, that aborts the animation which looks bad
  • The spell causes fatal errors
 
Level 12
Joined
Aug 12, 2008
Messages
349
Bribe said:
I think the missile is firing way too quickly there.
Oh.. I'll slow it down. ><

Bribe said:
It should have a cutoff point as well, which is not too far from the launch point, maybe 900 or 1100 as the cutoff point, and then it would just explode.
Well, uhh.. I just copied the idea of the DotA's Ancient Apparition's ultimate which able to travel until the end of a map.

Bribe said:
The missile could be more massive, cause it's really tiny and easy to miss.
Finding a better model for the missile :p

Magtheridon96 said:
To fix the fatal error, you should check if the coordinates you're moving the dummy unit to are inside the map bounds.
Yes, I did check it.
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • ((Playable map area) contains tempPoint2) Equal to True
    • Then - Actions
      • Unit - Move FB_dummy[FB_index2] instantly to tempPoint2
      • Set FB_baseAoE[FB_index2] = (FB_baseAoE[FB_index2] + FB_AoEIncrement[FB_index2])
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FB_baseDamage[FB_index2] Less than FB_maxDamage[FB_index2]
        • Then - Actions
          • Set FB_baseDamage[FB_index2] = (FB_baseDamage[FB_index2] + FB_damageIncrement[FB_index2])
        • Else - Actions
    • Else - Actions
      • Unit - Order FB_caster[FB_index2] to Night Elf Warden - Fan Of Knives
EDIT: Just realised that I check whether the point in playable map area two times. :p The above trigger is an updated trigger. Although I did check it but the fatal error still occurs. Weird @@
 
Last edited:
Level 14
Joined
Aug 8, 2010
Messages
1,022
The spell is awesome, but you should make the small piece of ice travel with acceleration - starts really slow, and begins traveling faster and faster. That can be made with an integer array in the loop trigger. You set it every loop to raise (Set IntegerVar[array] = IntegerVar[array] + 0.10). And set the point offset to be equal to that variable. But make it stop accelerating at one point with If/Then/Else. 20-25 units per 0.03 seconds is pretty good value (instead of 40 - its way too much).

EDIT : Accidently voted...
 
Last edited:
Level 12
Joined
Aug 12, 2008
Messages
349
The spell is awesome, but you should make the small piece of ice travel with acceleration - starts really slow, and begins traveling faster and faster. That can be made with an integer array in the loop trigger. You set it every loop to raise (Set IntegerVar[array] = IntegerVar[array] + 0.10). And set the point offset to be equal to that variable. But make it stop accelerating at one point with If/Then/Else. 20-25 units per 0.03 seconds is pretty good value (instead of 40 - its way too much).
Hmm.. I guess I gotta make it configurable. :)


Document when the fatal errors occur and under what conditions so we can find a solution :O
I myself not very sure about it. :/ It seems to have certain kind of range when it crashes. Here's a picture of a sample mini-map to show when it crashed. In the picture, the coloured areas are when it crashes when the dummy moved out of bound. It still works when the dummy moves out of bound if it's not in those 'area'.
154935-albums5387-picture55508.jpg
 
Level 12
Joined
Aug 12, 2008
Messages
349
Yes, you can. You can configure the area of effect by
"FB_baseAoE[FB_index2]" = The area of effect
"FB_AoEIncrement[FB_index2]" = How much increase in the area of effect.

If you want the area of effect to be constant and only increase by level, then you can adjust the value in "FB_baseAoE[FB_index2]" to something like 200 + (100 x Level)
and set the value in "FB_AoEIncrement[FB_index2]" to 0
 
Level 2
Joined
Jul 31, 2012
Messages
14
Are the level spells can be configured? because the frigid blast until 3 level and i want to make this spell until 4 level..
Thank you ..
 
Last edited:
Top