Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
A kinda simple spell I made because I often see in Hero Arena maps that there are spells of this type and all of them pauses both the caster and the target and makes the caster invulnerable. This one won't do any of these things.
Slashes the target unit several times rapidly, dealing damage per slash.
Level 1: Slashes 5 times. Each slash deals 40 damage.
Level 2: Slashes 7 times. Each slash deals 55 damage.
Level 3: Slashes 9 times. Each slash deals 70 damage.
Level 4: Slashes 11 times. Each slash deals 85 damage.
Level 5: Slashes 13 times. Each slash deals 100 damage.
Import instructions in the init trigger
Skill Init
Events
Map initialization
Conditions
Actions
Set DummyUnit = Dark Stalker Dummy
Set DummySkill = Fade 0.35 sec
Set DummyEffect = Rapid Slash Effect
Set HeroEffect = Rapid Slash Effect 2
Rapid Slash
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Rapid Slash
Actions
Set TempInt = (Player number of (Triggering player))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RSHas[RSLastRecycled] Equal to True
Then - Actions
Set RSMax = (RSMax + 1)
Set RSIndex = RSMax
Else - Actions
Set RSIndex = RSLastRecycled
Set RSLastRecycled = RSRecycledList[RSLastRecycled]
Set RSCaster[RSIndex] = (Triggering unit)
Set RSTarget[RSIndex] = (Target unit of ability being cast)
Set RSHas[RSIndex] = True
Set RSCount = (RSCount + 1)
Set RSEffectDelayer[RSIndex] = 1
Set RSRemaining[RSIndex] = (3 + (2 x (Level of Rapid Slash for RSCaster[RSIndex])))
Set RSDamage[RSIndex] = (25.00 + (15.00 x (Real((Level of Rapid Slash for RSCaster[RSIndex])))))
Unit - Add HeroEffect to RSCaster[RSIndex]
Unit - Turn collision for RSCaster[RSIndex] Off
Animation - Change RSCaster[RSIndex]'s animation speed to 200.00% of its original speed
Animation - Change RSCaster[RSIndex]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
Set TempLoc = (Position of RSCaster[RSIndex])
Set TempLoc2 = (Position of RSTarget[RSIndex])
Set RSDistance[RSIndex] = (Distance between TempLoc and TempLoc2)
Custom script: call RemoveLocation (udg_TempLoc)
Custom script: call RemoveLocation (udg_TempLoc2)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Rapid Slash Loop <gen> is on) Equal to False
Then - Actions
Trigger - Turn on Rapid Slash Loop <gen>
Else - Actions
Rapid Slash Loop
Events
Time - Every 0.08 seconds of game time
Conditions
Actions
For each (Integer RSInteger) from 0 to RSMax, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RSHas[RSInteger] Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RSRemaining[RSInteger] Greater than 0
Then - Actions
Set RSEffectDelayer[RSInteger] = (RSEffectDelayer[RSInteger] + 1)
Set TempLoc = (Position of RSCaster[RSInteger])
Set TempLoc2 = (Position of RSTarget[RSInteger])
Set TempLoc3 = (TempLoc2 offset by RSDistance[RSInteger] towards (Angle from TempLoc2 to TempLoc) degrees)
Unit - Order RSTarget[RSInteger] to Stop
Unit - Move RSCaster[RSInteger] instantly to TempLoc3, facing TempLoc2
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(RSEffectDelayer[RSInteger] mod 3) Equal to 0
Then - Actions
Set RSRemaining[RSInteger] = (RSRemaining[RSInteger] - 1)
Unit - Create 1 DummyUnit for Neutral Passive at TempLoc3 facing (Angle from TempLoc to TempLoc2) degrees
Set TempUnit = (Last created unit)
Unit - Add DummyEffect to TempUnit
Unit - Turn collision for TempUnit Off
Unit - Add a 0.50 second Generic expiration timer to TempUnit
Unit - Add DummySkill to TempUnit
Unit - Order TempUnit to Orc Blademaster - Wind Walk
Animation - Change TempUnit's vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
Animation - Play TempUnit's attack animation
Animation - Play RSCaster[RSInteger]'s attack animation
Unit - Cause RSCaster[RSInteger] to damage RSTarget[RSInteger], dealing RSDamage[RSInteger] damage of attack type Hero and damage type Normal
Else - Actions
Custom script: call RemoveLocation (udg_TempLoc)
Custom script: call RemoveLocation (udg_TempLoc2)
Custom script: call RemoveLocation (udg_TempLoc3)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(RSTarget[RSInteger] is dead) Equal to True
(RSCaster[RSInteger] is dead) Equal to True
Then - Actions
Set RSRemaining[RSInteger] = 0
Else - Actions
Else - Actions
Animation - Change RSCaster[RSInteger]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Animation - Change RSCaster[RSInteger]'s animation speed to 100.00% of its original speed
Animation - Play RSCaster[RSInteger]'s stand animation
Unit - Remove HeroEffect from RSCaster[RSInteger]
Unit - Turn collision for RSCaster[RSInteger] On
Set RSCount = (RSCount - 1)
Set RSHas[RSInteger] = False
Set RSRecycledList[RSInteger] = RSLastRecycled
Set RSLastRecycled = RSInteger
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RSCount Equal to 0
Then - Actions
Trigger - Turn off (This trigger)
For each (Integer A) from 0 to RSMax, do (Set RSRecycledList[(Integer A)] = 0)
14th Jan 2012
Bribe: The indexing is really weird. You don't need a "has" variable because there is no reason to iterate over dead indices. Check out Hanky's Dynamic Indexing which is the best GUI indexing out there.
Looking at the comments I can...
14th Jan 2012
Bribe: The indexing is really weird. You don't need a "has" variable because there is no reason to iterate over dead indices. Check out Hanky's Dynamic Indexing which is the best GUI indexing out there.
Looking at the comments I can see that Maker has already mentioned this. His system works just fine in its current state so maybe the version you tried last March was buggy (I do recall he said he fixed some bugs in the past few months).
However I happen to know that your indexing works (it simply could be "better"). So I will approve this with a 3/5 rating for now.
You could use proper dynamic indexing, where "dead" instances are removed and you don't need the Has boolean.
Improve the learn tooltip, you should list the damage of every level there. Look at standard Blizzard abilities.
Change the learned icon position.
Ordering the unit to constantly stop causes the stop and attack icons to flash which doesn't look professional.
You could try to make the spell support being able to abort it by ordering the unit to move. You move the unit instantly periodically so the unit can't be ordered to do anything else. Maybe that is instended, but I like being able to abort my spells.
Maybe you could change the colour of the dummies to the owner of the caster.
Good job with the ability, triggering looks ok.
Somehow this reminds me of my Lightning Speed Laceration spell.
Well if you can tell me what the hell is the problem of this spell then I will try it(again). http://www.hiveworkshop.com/forums/1873973-post6.html
That was the first time(and the last as well) when I've tried to make a spell with other's index recycling system. This one was made with Hanky's template and it often crashed.
Improve the learn tooltip, you should list the damage of every level there. Look at standard Blizzard abilities.
Change the learned icon position.
Then how could I make it without stunning the target? If I just change the movement speed of the target to nearly zero and order a dummy unit to cast a spell on the target that disables the attack is more complicated and I have to use another one dummy and spell.
You could try to make the spell support being able to abort it by ordering the unit to move. You move the unit instantly periodically so the unit can't be ordered to do anything else. Maybe that is instended, but I like being able to abort my spells.
You should check only after you reduce the integer; move the block into it.
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FIndexS Equal to 0
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
If I'm not mistaken, it automatically creates the unit group after you set it. You don't need to use native to create it anymore.
Custom script: set udg_FFreezeGroup[udg_TempInt] = CreateGroup()
Set FFreezeGroup[TempInt] = (Units within 750.00 of FCastPoint[TempInt] matching ((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to FCaster[TempInt])))
Marsal said:
Well, this type of spell can be found in almost every Hero Arena map.
Lightning Speed Laceration spell is one of Maker's spell. lol.
EDIT:
Marsal said:
Then how could I make it without stunning the target? If I just change the movement speed of the target to nearly zero and order a dummy unit to cast a spell on the target that disables the attack is more complicated and I have to use another one dummy and spell.
You should check only after you reduce the integer; move the block into it.
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FIndexS Equal to 0
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
If I'm not mistaken, it automatically creates the unit group after you set it. You don't need to use native to create it anymore.
Custom script: set udg_FFreezeGroup[udg_TempInt] = CreateGroup()
Set FFreezeGroup[TempInt] = (Units within 750.00 of FCastPoint[TempInt] matching ((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to FCaster[TempInt])))
Lightning Speed Laceration spell is one of Maker's spell. lol.
EDIT: My suggestion would be to create a dummy and order the dummy unit to stun the target. In the end of the duration, remove the buff.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.