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

Bankai V# 3.00

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Inspired by DEMONIC RAGE 2.0 by reyo

Also a bit of inspiration for the name from the anime/cartoon Bleach


[trigger=]
Bankai Config
Events
Time - Elapsed game time is 0.00 seconds
Conditions
Actions
-------- The ability to run everything --------
Set bankability = Bankai
Set bankatktype = Chaos
Set bankdmgtype = Unknown
Set bankdummy = Dummy
[/trigger]

[trigger=]
Bankai
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to bankability
Actions
Set bankdex = (bankdex + 1)
Set bankhero[bankdex] = (Triggering unit)
Custom script: set udg_bankalreadyhit[udg_bankdex] = CreateGroup()
-------- The time duration has to be always at least one second ahead of when metamorphis/bankai ends --------
Set banktime[bankdex] = 930.00
-------- Damage dealt in the area --------
Set bankdmg[bankdex] = 200.00
-------- How much Strength gets added to the caster --------
Set bankstr[bankdex] = 25
-------- Area of effect range for the Damage dealt in the area --------
Set bankrange[bankdex] = 550.00
-------- This is the max growth size of the first ring --------
Set banksizelimit1[bankdex] = 325.00
-------- This is the max growth size of the second ring --------
Set banksizelimit2[bankdex] = 500.00
-------- --------
-------- Starting size of first ring --------
Set banksizecount[bankdex] = 100.00
-------- Starting size of second ring --------
Set banksizecount2[bankdex] = 100.00
-------- Starting the timer for 3 sec delay --------
Set bankcounter[bankdex] = 60
-------- Current rate at which the AoE increases in order to damage nearby enemies --------
Set banksizeincreaser[bankdex] = 10.00
-------- Current rate at which the first ring grows by --------
Set bankringgrowthrate1[bankdex] = 10.00
-------- Current rate at which the second ring grows by --------
Set bankringgrowthrate2[bankdex] = 10.50
-------- Starting AoE --------
Set bankaoecurrentsize[bankdex] = (25.00 x (Real((Level of bankability for bankhero[bankdex]))))
-------- Metamorphis is a bugged ability which triggers cast events twice, there is no avoiding it. Only this workaround counters that. --------
Unit Group - Add bankhero[bankdex] to bankstopdoublecast
-------- Setting the point in order to clean its leak as well spawning the dummy units --------
Set bankdummyp = (Position of bankhero[bankdex])
Unit - Create 1 bankdummy for Neutral Passive at bankdummyp facing Default building facing degrees
Set bankdummyu[bankdex] = (Last created unit)
Unit - Create 1 bankdummy for Neutral Passive at bankdummyp facing Default building facing degrees
Set bankdummyu2[bankdex] = (Last created unit)
Custom script: call RemoveLocation(udg_bankdummyp)
-------- Adds the amount of strength you specified --------
Hero - Modify Strength of bankhero[bankdex]: Add bankstr[bankdex]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bankdex Equal to 1
Then - Actions
Custom script: set udg_TempReal = 0.031250000
Countdown Timer - Start banktimer as a Repeating timer that will expire in TempReal seconds
Else - Actions

[/trigger]

[trigger=]
Bankai Loop
Events
Time - banktimer expires
Conditions
Actions
For each (Integer bankloop) from 1 to bankdex, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bankcounter[bankloop] Less than or equal to 0
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(bankhero[bankloop] is dead) Not equal to True
banktime[bankloop] Greater than 0.00
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bankaoecurrentsize[bankloop] Less than or equal to bankrange[bankloop]
Then - Actions
Set bankaoecurrentsize[bankloop] = (bankaoecurrentsize[bankloop] + banksizeincreaser[bankloop])
Set bankdummyp = (Position of bankhero[bankloop])
Set bankdummygroup = (Units within bankaoecurrentsize[bankloop] of bankdummyp)
Unit Group - Pick every unit in bankdummygroup and do (Actions)
Loop - Actions
Set bankenumunit = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(bankenumunit belongs to an enemy of (Owner of bankhero[bankdex])) Equal to True
(bankenumunit is in bankalreadyhit[bankloop]) Equal to False
Then - Actions
Unit - Cause bankhero[bankdex] to damage bankenumunit, dealing bankdmg[bankloop] damage of attack type bankatktype and damage type bankdmgtype
Unit Group - Add bankenumunit to bankalreadyhit[bankloop]
Else - Actions
Set bankenumunit = No unit
Custom script: call RemoveLocation(udg_bankdummyp)
Custom script: call DestroyGroup(udg_bankdummygroup)
Else - Actions
Set bankdummyp = (Position of bankhero[bankloop])
Unit - Move bankdummyu[bankloop] instantly to bankdummyp
Unit - Move bankdummyu2[bankloop] instantly to bankdummyp
Custom script: call RemoveLocation(udg_bankdummyp)
Set banktime[bankloop] = (banktime[bankloop] - 1.00)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
banksizecount[bankloop] Less than banksizelimit1[bankloop]
Then - Actions
Set banksizecount[bankloop] = (banksizecount[bankloop] + bankringgrowthrate1[bankloop])
Animation - Change bankdummyu[bankloop]'s size to (banksizecount[bankloop]%, 100.00%, 100.00%) of its original size
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
banksizecount2[bankloop] Less than banksizelimit2[bankloop]
Then - Actions
Set banksizecount2[bankloop] = (banksizecount2[bankloop] + bankringgrowthrate2[bankloop])
Animation - Change bankdummyu2[bankloop]'s size to (banksizecount2[bankloop]%, 100.00%, 100.00%) of its original size
Else - Actions
Else - Actions
Custom script: call DestroyGroup(udg_bankalreadyhit[udg_bankloop])
Set bankalreadyhit[bankloop] = bankalreadyhit[bankdex]
Custom script: set udg_bankalreadyhit[udg_bankdex] = null
Hero - Modify Strength of bankhero[bankloop]: Subtract bankstr[bankloop]
Unit - Remove bankdummyu[bankloop] from the game
Unit - Remove bankdummyu2[bankloop] from the game
Set banksizecount[bankloop] = banksizecount[bankdex]
Set banksizecount2[bankloop] = banksizecount2[bankdex]
Set banksizelimit1[bankloop] = banksizelimit1[bankdex]
Set banksizelimit2[bankloop] = banksizelimit2[bankdex]
Unit Group - Remove bankhero[bankloop] from bankstopdoublecast
Set bankhero[bankloop] = bankhero[bankdex]
Set bankhero[bankdex] = No unit
Set bankdummyu[bankloop] = bankdummyu[bankdex]
Set bankdummyu[bankdex] = No unit
Set bankdummyu2[bankloop] = bankdummyu2[bankdex]
Set bankdummyu2[bankdex] = No unit
Set bankcounter[bankloop] = bankcounter[bankdex]
Set banktime[bankloop] = banktime[bankdex]
Set bankdex = (bankdex - 1)
Set bankloop = (bankloop - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
bankdex Equal to 0
Then - Actions
Countdown Timer - Pause banktimer
Else - Actions
Else - Actions
Set bankcounter[bankloop] = (bankcounter[bankloop] - 1)


[/trigger]


This spell requires the custom model & texture which is the dust wave thing otherwise well it would look much worse. The file size of both is below 10kb which should be okay I am hoping.

Keywords:
bleach,t,a,l,0,n,d,a,t,c,-,3,epic,awesome,fun,cool,bright,shiny,big,aoe,lol,rofl,joke,s,anime,cartoon,wc3,warcraft,crap,keywords,search,words
Contents

Bankai (Map)

Reviews
12th Dec 2015 IcemanBo: For long time as NeedsFix. Rejected. 00:30, 24th Jan 2015 IcemanBo: http://www.hiveworkshop.com/forums/spells-569/bankai-v-3-00-a-257706/index2.html#post2643938
Quick look over code:

  • Custom script: set udg_TempReal = 0.031250000
  • Countdown Timer - Start banktimer as a Repeating timer that will expire in TempReal seconds
^Can be done in one line custom script. call TimerStart(udg_banktimer, 0.031200, true, null)

TriggeringPlayer can be stored in a variable in cast trigger to avoid repetive "(Owner of bankhero[bankdex])" in the loop.

When you destroy group[index], then also null group[index] afterwards, because you can't ensure you will use the same index number again.
 
Add a proper spell description. What does it do?

Before you create a group check if it equals null.

Make it support multiple levels. Everything that is configurable should be in config trigger.

Why not allow multiple registration? Just curious, because you restricted it.

OwnerOfCaster could be indexed as well.

No really need to null temp variables.
 
Add a proper spell description. What does it do?

Before you create a group check if it equals null.

Make it support multiple levels. Everything that is configurable should be in config trigger.

Why not allow multiple registration? Just curious, because you restricted it.

OwnerOfCaster could be indexed as well.

No really need to null temp variables.

Okay.

Why do a pointless check? I'm pretty sure I was told to not do so because it just uses extra memory that servers no real purpose. It gets nulled at the end every instance therefore a check is pointless.

I thought it supported multiple levels already... My bad, will upload latest sometime soon.

Eh..... Maybe.

Lies, null anything that moves! :thumbs_up:
 
Top