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!
The blademaster rushes to his enemy target. Once he reaches his target, he then attacks the target 10/14/18 times, dealing 50/100/150 damage per attack.
Made the config trigger.
Somethings arent configurable in the trigger. They need to be configurated in the object editor.
These are:
>the models of illusions following the master
>The animation index (used to make the caster walk)
before changing it you must know which is the correct number of the animation you want.
I used this because the walking animation cannot be played by the normal GUI trigger.
It is 6 here because it is the walking animation number of the blademaster.
The 7th animation of him, here in hiveworkshop.
6 because the index starts from 0.
Didnt use the script below about the moving of the caster, I couldnt understand it, Im new at this =)
Fixed the leaks too.
Here are the Triggers:
[
Configuration Trigger
Events
Map initialization
Conditions
Actions
-------- Here you can set the Number of Attacks --------
Set CLMaxSlashes[1] = 10
Set CLMaxSlashes[2] = 14
Set CLMaxSlashes[3] = 18
-------- Here you can set the speed --------
Set CLSpeed = 25.00
-------- Here you can set the Animation --------
Set CLAnimation = Attack
-------- Here you can set the Special Effect --------
Set CLEffect = Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
-------- Here you can set the Attachment of the SFX --------
Set CLAttachment = weapon
-------- Here you can set the Damage --------
Set CLDamage[1] = 50.00
Set CLDamage[2] = 100.00
Set CLDamage[3] = 150.00
-------- Here you can set the animation speed --------
Set CLAnimationSpeed = 250.00
-------- Here you can set the transparency of the Illus --------
Set CLTransparency = 60.00
-------- Here you can set the duration of the Illusions --------
Set CLDuration = 0.40
-------- Here you can set the Minimum distance required to begin attacking --------
Set CLMinimumDistance = 100.00
-------- Here you can set the animation index --------
Set CLAnimationIndex = 6
-------- Here you can set the slash interval --------
Set CLSlashInterval = 5
-------- Here you can set the SFX when the target is slashed. --------
Set CLSFX = Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
-------- Here you can change the attachment of that SFX --------
Set CLAttach = chest
[
Infinite Slashes Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Infinite Slashes
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesIndex Equal to 0
Then - Actions
Trigger - Turn on Infinite Slashes Loop <gen>
Else - Actions
-------- Do not touch this --------
Set InfiniteSlashesIndex = (InfiniteSlashesIndex + 1)
Set InfiniteSlashesMui = (InfiniteSlashesMui + 1)
Set InfiniteSlashesBol1[InfiniteSlashesMui] = True
Set InfiniteSlashesBol2[InfiniteSlashesMui] = True
Set InfiniteSlashesCaster[InfiniteSlashesMui] = (Triggering unit)
Set InfiniteSlashesTarget[InfiniteSlashesMui] = (Target unit of ability being cast)
Set CLSpellLevel[InfiniteSlashesMui] = (Level of Infinite Slashes for InfiniteSlashesCaster[InfiniteSlashesMui])
-------- Do not touch this --------
Animation - Change InfiniteSlashesCaster[InfiniteSlashesMui]'s animation speed to CLAnimationSpeed% of its original speed
-------- Special Effect --------
Special Effect - Create a special effect attached to the CLAttachment of InfiniteSlashesCaster[InfiniteSlashesMui] using CLEffect
Set InfiniteSlashesSFX[InfiniteSlashesMui] = (Last created special effect)
-------- Setting Number of Slashes --------
Set InfiniteSlashesCount2[InfiniteSlashesMui] = CLMaxSlashes[CLSpellLevel[InfiniteSlashesMui]]
-------- Pausing the Caster --------
Unit - Pause InfiniteSlashesCaster[InfiniteSlashesMui]
[
Infinite Slashes Loop
Events
Time - Every 0.04 seconds of game time
Conditions
Actions
For each (Integer InfiniteSlashesLoop) from 1 to InfiniteSlashesMui, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesBol1[InfiniteSlashesLoop] Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesBol2[InfiniteSlashesLoop] Equal to True
Then - Actions
-------- Moving the Caster --------
Set InfiniteSlashesTargetLoc = (Position of InfiniteSlashesTarget[InfiniteSlashesLoop])
Set InfiniteSlashesCasterLoc = (Position of InfiniteSlashesCaster[InfiniteSlashesLoop])
Set InfiniteSlashesAngle[InfiniteSlashesLoop] = (Angle from InfiniteSlashesCasterLoc to InfiniteSlashesTargetLoc)
Unit - Make InfiniteSlashesCaster[InfiniteSlashesLoop] face InfiniteSlashesAngle[InfiniteSlashesLoop] over 0.00 seconds
Set InfiniteSlashesCasterLoc2 = (InfiniteSlashesCasterLoc offset by CLSpeed towards InfiniteSlashesAngle[InfiniteSlashesLoop] degrees)
Unit - Create 1 Infinite Slashes Dummy for (Owner of InfiniteSlashesCaster[InfiniteSlashesLoop]) at InfiniteSlashesCasterLoc2 facing InfiniteSlashesAngle[InfiniteSlashesLoop] degrees
Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with CLTransparency% transparency
Unit - Add a CLDuration second Generic expiration timer to (Last created unit)
Set InfiniteSlashesCount1[InfiniteSlashesLoop] = 0
Animation - Play InfiniteSlashesCaster[InfiniteSlashesLoop]'s CLAnimation animation
-------- Dealing Damage --------
Unit - Cause InfiniteSlashesCaster[InfiniteSlashesLoop] to damage InfiniteSlashesTarget[InfiniteSlashesLoop], dealing CLDamage[CLSpellLevel[InfiniteSlashesLoop]] damage of attack type Normal and damage type Normal
Special Effect - Create a special effect attached to the CLAttach of InfiniteSlashesTarget[InfiniteSlashesLoop] using CLSFX
Special Effect - Destroy (Last created special effect)
-------- Creating Sound --------
Sound - Play MetalHeavySliceStone2 <gen> at 100.00% volume, attached to InfiniteSlashesTarget[InfiniteSlashesLoop]
-------- Decreasing the remaining attacks --------
Set InfiniteSlashesCount2[InfiniteSlashesLoop] = (InfiniteSlashesCount2[InfiniteSlashesLoop] - 1)
-------- Do not touch this --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(InfiniteSlashesTarget[InfiniteSlashesLoop] is paused) Not equal to True
Then - Actions
Unit - Pause InfiniteSlashesTarget[InfiniteSlashesLoop]
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(InfiniteSlashesCaster[InfiniteSlashesLoop] is alive) Not equal to True
(InfiniteSlashesTarget[InfiniteSlashesLoop] is alive) Not equal to True
InfiniteSlashesCount2[InfiniteSlashesLoop] Equal to 0
Then - Actions
-------- Do not touch this --------
Unit - Order InfiniteSlashesCaster[InfiniteSlashesLoop] to Stop
Set InfiniteSlashesBol1[InfiniteSlashesLoop] = False
Special Effect - Destroy InfiniteSlashesSFX[InfiniteSlashesLoop]
Unit - Unpause InfiniteSlashesTarget[InfiniteSlashesLoop]
Unit - Unpause InfiniteSlashesCaster[InfiniteSlashesLoop]
Animation - Change InfiniteSlashesCaster[InfiniteSlashesLoop]'s animation speed to 100.00% of its original speed
Set InfiniteSlashesBol1[InfiniteSlashesLoop] = False
Set InfiniteSlashesBol2[InfiniteSlashesLoop] = False
Set InfiniteSlashesCaster[InfiniteSlashesLoop] = No unit
Set InfiniteSlashesTarget[InfiniteSlashesLoop] = No unit
Set InfiniteSlashesDistance[InfiniteSlashesLoop] = 0.00
Set InfiniteSlashesCount2[InfiniteSlashesLoop] = 0
Set InfiniteSlashesIndex = (InfiniteSlashesIndex - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesIndex Equal to 0
Then - Actions
Set InfiniteSlashesMui = 0
Trigger - Turn off (This trigger)
Else - Actions
-------- Do not touch this --------
Else - Actions
Else - Actions
Else - Actions
[
Infintie Slashes Dummy
Events
Unit - A unit Dies
Conditions
(Unit-type of (Triggering unit)) Equal to Infinite Slashes Dummy
You need a configuration trigger,which include damage,animation speed,special effects,offset/speed,slashes or even conditions thats far enough
BTW good work +rep
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesIndex Equal to 0
Then - Actions
Trigger - Turn on Infinite Slashes Loop <gen>
Else - Actions
-------- Do not touch this --------
Set InfiniteSlashesIndex = (InfiniteSlashesIndex + 1)
Set InfiniteSlashesMui = (InfiniteSlashesMui + 1)
Set InfiniteSlashesBol1[InfiniteSlashesMui] = True
Set InfiniteSlashesBol2[InfiniteSlashesMui] = True
Set InfiniteSlashesCaster[InfiniteSlashesMui] = (Triggering unit)
Set InfiniteSlashesTarget[InfiniteSlashesMui] = (Target unit of ability being cast)
-------- Do not touch this --------
Animation - Change InfiniteSlashesCaster[InfiniteSlashesMui]'s animation speed to 250.00% of its original speed
-------- Special Effect --------
Special Effect - Create a special effect attached to the weapon of InfiniteSlashesCaster[InfiniteSlashesMui] using Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
Set InfiniteSlashesSFX[InfiniteSlashesMui] = (Last created special effect)
-------- Damage --------
Set InfiniteSlashesDamage[InfiniteSlashesMui] = 50.00
-------- Number of Slashes --------
Set InfiniteSlashesCount2[InfiniteSlashesMui] = (6 + (2 x (Level of Infinite Slashes for InfiniteSlashesCaster[InfiniteSlashesMui])))
-------- Pausing the Caster --------
Unit - Pause InfiniteSlashesCaster[InfiniteSlashesMui]
Infinite Slashes Loop
Events
Time - Every 0.04 seconds of game time
Conditions
Actions
For each (Integer InfiniteSlashesLoop) from 1 to InfiniteSlashesMui, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesBol1[InfiniteSlashesLoop] Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesBol2[InfiniteSlashesLoop] Equal to True
Then - Actions
-------- Moving the Caster --------
Set InfiniteSlashesTargetLoc = (Position of InfiniteSlashesTarget[InfiniteSlashesLoop])
Set InfiniteSlashesCasterLoc = (Position of InfiniteSlashesCaster[InfiniteSlashesLoop])
Set InfiniteSlashesAngle[InfiniteSlashesLoop] = (Angle from InfiniteSlashesCasterLoc to InfiniteSlashesTargetLoc)
Unit - Make InfiniteSlashesCaster[InfiniteSlashesLoop] face InfiniteSlashesAngle[InfiniteSlashesLoop] over 0.01 seconds
Set InfiniteSlashesCasterLoc = (InfiniteSlashesCasterLoc offset by 25.00 towards InfiniteSlashesAngle[InfiniteSlashesLoop] degrees)
Unit - Create 1 Infinite Slashes Dummy for (Owner of InfiniteSlashesCaster[InfiniteSlashesLoop]) at InfiniteSlashesCasterLoc facing InfiniteSlashesAngle[InfiniteSlashesLoop] degrees
Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 60.00% transparency
Unit - Add a 0.40 second Generic expiration timer to (Last created unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesDistance[InfiniteSlashesLoop] Less than or equal to 100.00
Then - Actions
-------- Setting the Loop to attack instead of move --------
Set InfiniteSlashesBol2[InfiniteSlashesLoop] = False
-------- Pausing the Target --------
Unit - Pause InfiniteSlashesTarget[InfiniteSlashesLoop]
Else - Actions
Else - Actions
-------- Counting the time before each strike is executed --------
Set InfiniteSlashesCount1[InfiniteSlashesLoop] = (InfiniteSlashesCount1[InfiniteSlashesLoop] + 1)
-------- Here its every .2 seconds as the slash starts when the int is 5 --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesCount1[InfiniteSlashesLoop] Equal to 5
Then - Actions
-------- Reseting the count --------
Set InfiniteSlashesCount1[InfiniteSlashesLoop] = 0
Animation - Play InfiniteSlashesCaster[InfiniteSlashesLoop]'s attack animation
-------- Dealing Damage --------
Unit - Cause InfiniteSlashesCaster[InfiniteSlashesLoop] to damage InfiniteSlashesTarget[InfiniteSlashesLoop], dealing InfiniteSlashesDamage[InfiniteSlashesLoop] damage of attack type Normal and damage type Normal
Special Effect - Create a special effect attached to the chest of InfiniteSlashesTarget[InfiniteSlashesLoop] using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
Special Effect - Destroy (Last created special effect)
-------- Decreasing the remaining attacks --------
Set InfiniteSlashesCount2[InfiniteSlashesLoop] = (InfiniteSlashesCount2[InfiniteSlashesLoop] - 1)
-------- Do not touch this --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(InfiniteSlashesCaster[InfiniteSlashesLoop] is alive) Not equal to True
(InfiniteSlashesTarget[InfiniteSlashesLoop] is alive) Not equal to True
InfiniteSlashesCount2[InfiniteSlashesLoop] Equal to 0
Then - Actions
-------- Do not touch this --------
Unit - Order InfiniteSlashesCaster[InfiniteSlashesLoop] to Stop
Set InfiniteSlashesBol1[InfiniteSlashesLoop] = False
Special Effect - Destroy InfiniteSlashesSFX[InfiniteSlashesLoop]
Unit - Unpause InfiniteSlashesTarget[InfiniteSlashesLoop]
Unit - Unpause InfiniteSlashesCaster[InfiniteSlashesLoop]
Animation - Change InfiniteSlashesCaster[InfiniteSlashesLoop]'s animation speed to 100.00% of its original speed
Set InfiniteSlashesBol1[InfiniteSlashesLoop] = False
Set InfiniteSlashesBol2[InfiniteSlashesLoop] = False
Set InfiniteSlashesCaster[InfiniteSlashesLoop] = No unit
Set InfiniteSlashesTarget[InfiniteSlashesLoop] = No unit
Set InfiniteSlashesDistance[InfiniteSlashesLoop] = 0.00
Set InfiniteSlashesDamage[InfiniteSlashesLoop] = 0.00
Set InfiniteSlashesCount2[InfiniteSlashesLoop] = 0
Set InfiniteSlashesIndex = (InfiniteSlashesIndex - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesIndex Equal to 0
Then - Actions
Set InfiniteSlashesMui = 0
Trigger - Turn off (This trigger)
Else - Actions
-------- Do not touch this --------
Else - Actions
Else - Actions
Else - Actions
Infintie Slashes Dummy
Events
Unit - A unit Dies
Conditions
(Unit-type of (Triggering unit)) Equal to Infinite Slashes Dummy
Actions
Unit - Remove (Triggering unit) from the game
The first trigger has the configurations =) I already used comments to tell which are configurable =)
I really don't have nothing to say about this, I've seen this spell on youtube, and yeeeee the spell is cool, it is fine for me, readable and well triggered, good job. +rep
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesIndex Equal to 0
Then - Actions
Trigger - Turn on Infinite Slashes Loop <gen>
Else - Actions
-------- Do not touch this --------
Set InfiniteSlashesIndex = (InfiniteSlashesIndex + 1)
Set InfiniteSlashesMui = (InfiniteSlashesMui + 1)
Set InfiniteSlashesBol1[InfiniteSlashesMui] = True
Set InfiniteSlashesBol2[InfiniteSlashesMui] = True
Set InfiniteSlashesCaster[InfiniteSlashesMui] = (Triggering unit)
Set InfiniteSlashesTarget[InfiniteSlashesMui] = (Target unit of ability being cast)
-------- Do not touch this --------
Animation - Change InfiniteSlashesCaster[InfiniteSlashesMui]'s animation speed to 250.00% of its original speed
-------- Special Effect --------
Special Effect - Create a special effect attached to the weapon of InfiniteSlashesCaster[InfiniteSlashesMui] using Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
Set InfiniteSlashesSFX[InfiniteSlashesMui] = (Last created special effect)
-------- Damage --------
Set InfiniteSlashesDamage[InfiniteSlashesMui] = 50.00
-------- Number of Slashes --------
Set InfiniteSlashesCount2[InfiniteSlashesMui] = (6 + (2 x (Level of Infinite Slashes for InfiniteSlashesCaster[InfiniteSlashesMui])))
-------- Pausing the Caster --------
Unit - Pause InfiniteSlashesCaster[InfiniteSlashesMui]
Infinite Slashes Loop
Events
Time - Every 0.04 seconds of game time
Conditions
Actions
For each (Integer InfiniteSlashesLoop) from 1 to InfiniteSlashesMui, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesBol1[InfiniteSlashesLoop] Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesBol2[InfiniteSlashesLoop] Equal to True
Then - Actions
-------- Moving the Caster --------
Set InfiniteSlashesTargetLoc = (Position of InfiniteSlashesTarget[InfiniteSlashesLoop])
Set InfiniteSlashesCasterLoc = (Position of InfiniteSlashesCaster[InfiniteSlashesLoop])
Set InfiniteSlashesAngle[InfiniteSlashesLoop] = (Angle from InfiniteSlashesCasterLoc to InfiniteSlashesTargetLoc)
Unit - Make InfiniteSlashesCaster[InfiniteSlashesLoop] face InfiniteSlashesAngle[InfiniteSlashesLoop] over 0.01 seconds
Set InfiniteSlashesCasterLoc = (InfiniteSlashesCasterLoc offset by 25.00 towards InfiniteSlashesAngle[InfiniteSlashesLoop] degrees)
Unit - Create 1 Infinite Slashes Dummy for (Owner of InfiniteSlashesCaster[InfiniteSlashesLoop]) at InfiniteSlashesCasterLoc facing InfiniteSlashesAngle[InfiniteSlashesLoop] degrees
Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 60.00% transparency
Unit - Add a 0.40 second Generic expiration timer to (Last created unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesDistance[InfiniteSlashesLoop] Less than or equal to 100.00
Then - Actions
-------- Setting the Loop to attack instead of move --------
Set InfiniteSlashesBol2[InfiniteSlashesLoop] = False
-------- Pausing the Target --------
Unit - Pause InfiniteSlashesTarget[InfiniteSlashesLoop]
Else - Actions
Else - Actions
-------- Counting the time before each strike is executed --------
Set InfiniteSlashesCount1[InfiniteSlashesLoop] = (InfiniteSlashesCount1[InfiniteSlashesLoop] + 1)
-------- Here its every .2 seconds as the slash starts when the int is 5 --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesCount1[InfiniteSlashesLoop] Equal to 5
Then - Actions
-------- Reseting the count --------
Set InfiniteSlashesCount1[InfiniteSlashesLoop] = 0
Animation - Play InfiniteSlashesCaster[InfiniteSlashesLoop]'s attack animation
-------- Dealing Damage --------
Unit - Cause InfiniteSlashesCaster[InfiniteSlashesLoop] to damage InfiniteSlashesTarget[InfiniteSlashesLoop], dealing InfiniteSlashesDamage[InfiniteSlashesLoop] damage of attack type Normal and damage type Normal
Special Effect - Create a special effect attached to the chest of InfiniteSlashesTarget[InfiniteSlashesLoop] using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
Special Effect - Destroy (Last created special effect)
-------- Decreasing the remaining attacks --------
Set InfiniteSlashesCount2[InfiniteSlashesLoop] = (InfiniteSlashesCount2[InfiniteSlashesLoop] - 1)
-------- Do not touch this --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(InfiniteSlashesCaster[InfiniteSlashesLoop] is alive) Not equal to True
(InfiniteSlashesTarget[InfiniteSlashesLoop] is alive) Not equal to True
InfiniteSlashesCount2[InfiniteSlashesLoop] Equal to 0
Then - Actions
-------- Do not touch this --------
Unit - Order InfiniteSlashesCaster[InfiniteSlashesLoop] to Stop
Set InfiniteSlashesBol1[InfiniteSlashesLoop] = False
Special Effect - Destroy InfiniteSlashesSFX[InfiniteSlashesLoop]
Unit - Unpause InfiniteSlashesTarget[InfiniteSlashesLoop]
Unit - Unpause InfiniteSlashesCaster[InfiniteSlashesLoop]
Animation - Change InfiniteSlashesCaster[InfiniteSlashesLoop]'s animation speed to 100.00% of its original speed
Set InfiniteSlashesBol1[InfiniteSlashesLoop] = False
Set InfiniteSlashesBol2[InfiniteSlashesLoop] = False
Set InfiniteSlashesCaster[InfiniteSlashesLoop] = No unit
Set InfiniteSlashesTarget[InfiniteSlashesLoop] = No unit
Set InfiniteSlashesDistance[InfiniteSlashesLoop] = 0.00
Set InfiniteSlashesDamage[InfiniteSlashesLoop] = 0.00
Set InfiniteSlashesCount2[InfiniteSlashesLoop] = 0
Set InfiniteSlashesIndex = (InfiniteSlashesIndex - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
InfiniteSlashesIndex Equal to 0
Then - Actions
Set InfiniteSlashesMui = 0
Trigger - Turn off (This trigger)
Else - Actions
-------- Do not touch this --------
Else - Actions
Else - Actions
Else - Actions
Infintie Slashes Dummy
Events
Unit - A unit Dies
Conditions
(Unit-type of (Triggering unit)) Equal to Infinite Slashes Dummy
Actions
Unit - Remove (Triggering unit) from the game
The first trigger has the configurations =) I already used comments to tell which are configurable =)
Review:
1.Dont use Polar offset so that you wont create a variable for a point then use it for SetUnitX/Y
Use this instead:
[jass=]
call SetUnitX(udg_unit,GetUnitX(udg_unit) + speed * Cos(angle * bj_DEGTORAD))
call SetUnitY(udg_unit,GetUnitX(udg_unit) + speed * Sin(angle * bj_DEGTORAD))
[/code]
This is the same w/ polar offset,but doesnt leak.
2.Make Unit Face Angle can have rate of 0.00 seconds.
3.Speed must be configurable
4.Animation speed must be configurable also.
5.effect model should be configurable.
6.Minimum distance should be configurable.
7.Dont use animation by id,because some units doesnt have the same animation id.
8.the animation id should be configurable.
9.the first caster loc leaks.(loop)
10.animations should be configurable.
11.Vertex alpha should be configurable(transparency)
12.effect attachment should be configurable.
13.Max slashes count should be configurable.
14.Lastly,this needs a configuration trigger.Examples are found in some spells in hive,like BUP's,doom's,mine,and many.
Review:
1.Dont use Polar offset so that you wont create a variable for a point then use it for SetUnitX/Y
Use this instead:
[jass=]
call SetUnitX(udg_unit,GetUnitX(udg_unit) + speed * Cos(angle * bj_DEGTORAD))
call SetUnitY(udg_unit,GetUnitX(udg_unit) + speed * Sin(angle * bj_DEGTORAD))
[/code]
This is the same w/ polar offset,but doesnt leak.
2.Make Unit Face Angle can have rate of 0.00 seconds.
3.Speed must be configurable
4.Animation speed must be configurable also.
5.effect model should be configurable.
6.Minimum distance should be configurable.
7.Dont use animation by id,because some units doesnt have the same animation id.
8.the animation id should be configurable.
9.the first caster loc leaks.(loop)
10.animations should be configurable.
11.Vertex alpha should be configurable(transparency)
12.effect attachment should be configurable.
13.Max slashes count should be configurable.
14.Lastly,this needs a configuration trigger.Examples are found in some spells in hive,like BUP's,doom's,mine,and many.
Review:
1.Dont use Polar offset so that you wont create a variable for a point then use it for SetUnitX/Y
Use this instead:
[jass=]
call SetUnitX(udg_unit,GetUnitX(udg_unit) + speed * Cos(angle * bj_DEGTORAD))
call SetUnitY(udg_unit,GetUnitX(udg_unit) + speed * Sin(angle * bj_DEGTORAD))
[/code]
This is the same w/ polar offset,but doesnt leak.
2.Make Unit Face Angle can have rate of 0.00 seconds.
3.Speed must be configurable
4.Animation speed must be configurable also.
5.effect model should be configurable.
6.Minimum distance should be configurable.
7.Dont use animation by id,because some units doesnt have the same animation id.
8.the animation id should be configurable.
9.the first caster loc leaks.(loop)
10.animations should be configurable.
11.Vertex alpha should be configurable(transparency)
12.effect attachment should be configurable.
13.Max slashes count should be configurable.
14.Lastly,this needs a configuration trigger.Examples are found in some spells in hive,like BUP's,doom's,mine,and many.
You dont know what im talking about.
They need to be configurables for the users to change its properties easily.
If Mag reviews this,he would do the same.
@meowie
animation does work on SetUnitX/Y because it doesnt interrupt animations and orders while moving.
Creating 2 variables, 1 for attachment and 1 for model saving their string and use them once is completly unecessary and increases the size of the map, users can change it easily with no variables, well at least if they have eyes.
No,you dont understand me.Configuration allows user to give full control for the ability trigger,so that if they want to change it easily,they must be added to the configuration trigger.
InfiniteSlashesCount1[InfiniteSlashesLoop] Equal to 5
should be configurable same w/
Special Effect - Create a special effect attached to the chest of InfiniteSlashesTarget[InfiniteSlashesLoop] using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
Should also add prefix so that it wont collide on the maps that will be imported from this spell.
You havent fixed the SetUnitX/Y problem,please view my previous review.
There's no need to separate the configuration trigger. you can just combine it with Casting trigger.
Damage[1]= 50
replace
Set Damage[InfiniteSlashesIndex] = (50.00 x (Real((Level of Infinite Slashes for InfiniteSlashesCaster[InfiniteSlashesMui]))))
Unit - Cause InfiniteSlashesCaster[InfiniteSlashesLoop] to damage InfiniteSlashesTarget[InfiniteSlashesLoop], dealing Damage[SpellLevel[InfiniteSlashesLoop]] damage of attack type Normal and damage type Normal
those are unnecessary indexing of an integer
Since you are using a unit dummy. Create a Unit type Variable to Configure it so that users can use different Dummy unit.
Pause is a lousy function it is not consistent. You need to add condition to check if caster and Target are STILL pausing . Multiple cast on a same hero will cause it to lose its constant. use if/else checking and pause the hero till the slashing is finish.
There's no need to separate the configuration trigger. you can just combine it with Casting trigger.
Also
Damage[1]= 50
replace
Set Damage[InfiniteSlashesIndex] = (50.00 x (Real((Level of Infinite Slashes for InfiniteSlashesCaster[InfiniteSlashesMui]))))
Unit - Cause InfiniteSlashesCaster[InfiniteSlashesLoop] to damage InfiniteSlashesTarget[InfiniteSlashesLoop], dealing Damage[SpellLevel[InfiniteSlashesLoop]] damage of attack type Normal and damage type Normal
those are unnecessary indexing of an integer
Since you are using a unit dummy. Create a Unit type Variable to Configure it so that users can use different Dummy unit.
Cant they just change it in the object editor? Its the model of the dummy that needs to be changed =.= other than that is the fact that they need to know what number is the index of the anim for walking or doing something else.
As for the damage, I cannot do that. It may seem that the damage dealt is 50xlevel but if a user wants to change it, then boom, the trigger dies.
That is why randatamus wanted me to create a config trigger =)
The damage part is fine already, dont need to change it
@meowie
Are you kidding me?tell that in front of Mag.
He will laugh at you.
We are making this trigger so that users can easily see that constants of the spell and doest make the user scroll down and find the constants by them self,especially the beginners.
@meowie
Are you kidding me?tell that in front of Mag.
He will laugh at you.
We are making this trigger so that users can easily see that constants of the spell and doest make the user scroll down and find the constants by them self,especially the beginners.
@meowie
Are you kidding me?tell that in front of Mag.
He will laugh at you.
We are making this trigger so that users can easily see that constants of the spell and doest make the user scroll down and find the constants by them self,especially the beginners.
User friendly wise i understand. However it's kinda inefficient since it declare the function at map int if it isn't used then it just waste of memory imo but no matter.
Cant they just change it in the object editor? Its the model of the dummy that needs to be changed =.= other than that is the fact that they need to know what number is the index of the anim for walking or doing something else.
As for the damage, I cannot do that. It may seem that the damage dealt is 50xlevel but if a user wants to change it, then boom, the trigger dies.
That is why randatamus wanted me to create a config trigger =)
The damage part is fine already, dont need to change it
The reason of using variable to declare unit type is to utilize the use variation. you wouldn't want 3 different unit model use the same Dummy. it look stupid.
Secondly , Since you used unit index it's up to them solely to find the unit index. because it involve checking unit index from war3 viewer .Once again you don't expect this spell solely used on a hero with same animation index.
Yes it "may" be fine as it is now. But you just declare pointless function such as this. Once again its up to user to configure its damage function with the help of Documentation.
For the damage declare
Set SpellLevel[InfiniteSlashesMui] = (Level of Infinite Slashes for InfiniteSlashesCaster[InfiniteSlashesMui])
is that a need to convert to integer? No.
Unit - Cause InfiniteSlashesCaster[InfiniteSlashesLoop] to damage InfiniteSlashesTarget[InfiniteSlashesLoop], dealing Damage[SpellLevel[InfiniteSlashesLoop]] damage of attack type Normal and damage type Normal
Like i said its pointless. why use damage[1~4[index]] when u are just use damage[index].
Set Damage[InfiniteSlashesIndex] = (50.00 x (Real((Level of Infinite Slashes for InfiniteSlashesCaster[InfiniteSlashesMui]))))
just solve it and simple for user to configure rather use Inefficient indexing.
Would you like to have 20 variables for a simple spell like this? It's just a waste of time creating 2 variables for model and attachment effect and saving their path to use them once. Anyway if users want to change it, they just can do easily lol, imo.
___________
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.