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!
Thanks to Valve for the Rupture Icon.
Credits go to Icefrog for the original spell.
Deals a mighty blow to the enemy causing any movement to result in bleeding and loss of life.
Level 1-150 Initial damage, 20% of distance dealt in damage. Lasts for 7 seconds.
Level 2-250 Initial damage, 40% of distance dealt in damage. Lasts for 8 seconds.
Level 3-350 Initial damage, 60% of distance dealt in damage. Lasts for 9 seconds.
Cooldown: 70/60/50
RUPTURECONFIG
Events
Map initialization
Conditions
Actions
-------- ABILITY BEING CAST: --------
Set RUPTURE_ABILITY = Rupture
-------- THE ABILITY'S BUFF: --------
Set RUPTURE_BUFF = Rupture
-------- INITIAL DAMAGE: --------
Set RUPTURE_INITIAL_DAMAGE[1] = 150.00
Set RUPTURE_INITIAL_DAMAGE[2] = 250.00
Set RUPTURE_INITIAL_DAMAGE[3] = 350.00
-------- VALUE TO BE MULTIPLIED TO DISTANCE TRAVELLED: --------
Set RUPTURE_DAMAGE_MUTIPLIER[1] = 0.20
Set RUPTURE_DAMAGE_MUTIPLIER[2] = 0.40
Set RUPTURE_DAMAGE_MUTIPLIER[3] = 0.60
-------- DURATION: --------
Set RUPTURE_INITIAL_DURATION[1] = 7.00
Set RUPTURE_INITIAL_DURATION[2] = 8.00
Set RUPTURE_INITIAL_DURATION[3] = 9.00
-------- THE SPECIAL EFFECT THAT APPEARS WHENEVER THE TARGET UNIT MOVES: --------
Set RUPTURE_SPFX = war3mapImported\BleedEffect.mdx
RUPTURESTART
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to RUPTURE_ABILITY
Actions
-------- IMPORTANT SYSTEM PART START --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RUPTURE_INDEX_LISTENER Equal to 0
Then - Actions
Trigger - Turn on RUPTURELOOP <gen>
Else - Actions
-------- Check if the Recycle Container got free slots where you can grab an index --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RUPTURE_RECYCLE_SIZE Greater than 0
Then - Actions
Set RUPTURE_RECYCLE_SIZE = (RUPTURE_RECYCLE_SIZE - 1)
Set RUPTURE_CURRENT_INDEX = RUPTURE_RECYCLE_CONTAINER[RUPTURE_RECYCLE_SIZE]
Else - Actions
Set RUPTURE_CURRENT_INDEX = RUPTURE_INDEX_SIZE
Set RUPTURE_INDEX_SIZE = (RUPTURE_INDEX_SIZE + 1)
-------- IMPORTANT SYSTEM PART END --------
Set RUPTURE_TRIGGER_UNIT[RUPTURE_CURRENT_INDEX] = (Triggering unit)
Set RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX] = (Target unit of ability being cast)
Set RUPTURE_POSITION_OF_TARGET[RUPTURE_CURRENT_INDEX] = (Position of RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX])
Unit - Cause RUPTURE_TRIGGER_UNIT[RUPTURE_CURRENT_INDEX] to damage RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX], dealing RUPTURE_INITIAL_DAMAGE[(Level of RUPTURE_ABILITY for (Triggering unit))] damage of attack type Spells and damage type Magic
Set RUPTURE_SPELL_DURATION[RUPTURE_CURRENT_INDEX] = RUPTURE_INITIAL_DURATION[(Level of RUPTURE_ABILITY for (Triggering unit))]
-------- IMPORTANT SYSTEM PART START --------
-------- Register the current index --------
Set RUPTURE_INDEX_CONTAINER[RUPTURE_INDEX_LISTENER] = RUPTURE_CURRENT_INDEX
-------- Increase the size of the Index Container --------
Set RUPTURE_INDEX_LISTENER = (RUPTURE_INDEX_LISTENER + 1)
-------- IMPORTANT SYSTEM PART END --------
RUPTURELOOP
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
For each (Integer RUPTURE_EXAMPLE_LOOP) from 0 to (RUPTURE_INDEX_LISTENER - 1), do (Actions)
Loop - Actions
-------- Set the current index --------
Set RUPTURE_CURRENT_INDEX = RUPTURE_INDEX_CONTAINER[RUPTURE_EXAMPLE_LOOP]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RUPTURE_SPELL_DURATION[RUPTURE_CURRENT_INDEX] Greater than 0.00
Then - Actions
Set RUPTURE_SPELL_DURATION[RUPTURE_CURRENT_INDEX] = (RUPTURE_SPELL_DURATION[RUPTURE_CURRENT_INDEX] - 0.03)
-------- This checks if the target unit has moved. --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX] has buff RUPTURE_BUFF) Equal to True
Then - Actions
Set RUPTURE_DISTANCE_TRAVELLED[RUPTURE_CURRENT_INDEX] = (Distance between (Position of RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX]) and RUPTURE_POSITION_OF_TARGET[RUPTURE_CURRENT_INDEX])
-------- If the "DISTANCE TRAVELLED" variable stores a real value greater than 0, the target unit takes damage. --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RUPTURE_DISTANCE_TRAVELLED[RUPTURE_CURRENT_INDEX] Greater than 0.00
Then - Actions
Set RUPTURE_DAMAGE_TO_BE_DEALT[RUPTURE_CURRENT_INDEX] = (RUPTURE_DAMAGE_MUTIPLIER[(Level of RUPTURE_ABILITY for RUPTURE_TRIGGER_UNIT[RUPTURE_CURRENT_INDEX])] x (Distance between (Position of RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX]) and RUPTURE_POSITION_OF_TARGET[RUPTURE_CURRENT_INDEX]))
Unit - Cause RUPTURE_TRIGGER_UNIT[RUPTURE_CURRENT_INDEX] to damage RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX], dealing RUPTURE_DAMAGE_TO_BE_DEALT[RUPTURE_CURRENT_INDEX] damage of attack type Chaos and damage type Magic
Set RUPTURE_POSITION_OF_TARGET[RUPTURE_CURRENT_INDEX] = (Position of RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX])
Special Effect - Create a special effect attached to the chest of RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX] using RUPTURE_SPFX
Special Effect - Destroy (Last created special effect)
-------- This resets the "DISTANCE_TRAVELLED" variable. --------
Set RUPTURE_DISTANCE_TRAVELLED[RUPTURE_CURRENT_INDEX] = 0.00
Else - Actions
-------- This resets the "DISTANCE_TRAVELLED" variable. --------
Set RUPTURE_DISTANCE_TRAVELLED[RUPTURE_CURRENT_INDEX] = 0.00
Else - Actions
Set RUPTURE_INITIAL_DURATION[RUPTURE_CURRENT_INDEX] = 0.00
Else - Actions
Set RUPTURE_DAMAGE_TO_BE_DEALT[RUPTURE_CURRENT_INDEX] = 0.00
Set RUPTURE_DISTANCE_TRAVELLED[RUPTURE_CURRENT_INDEX] = 0.00
Set RUPTURE_TRIGGER_UNIT[RUPTURE_CURRENT_INDEX] = No unit
Set RUPTURE_TARGET_UNIT[RUPTURE_CURRENT_INDEX] = No unit
12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.
Rupture V1.6 | Reviewed by Maker | 1st November 2013
Concept[/COLOR]]
The spell can be used tactically as it makes the target take more
damage if it moves
It is directly from...
post triggers in description.
I think this is normal GUI not UMSWE.
Don't just use ITEs to make different lvls simply use a math equation.
This is MUI but it will loop through all unused indexes. Look at my tutorial things a guier should know the chapter how to index. It will show you how to properly index a spell.
This leaks locations very bad. Anything with position of / center of / player start location / offset will leak. Look at the tutorial things that leak on triggers and scripts page.
Never use 0.01 for a loop timer use 0.03
You need a config trigger. Please read spell submission rules before posting spells.
Don't use waits. not sure why you have a reset trigger...
Set RupturePositionofTarget[OverallInt] = (Position of (Target unit of ability being cast))
should be
Set RupturePositionofTarget[OverallInt] = (Position of RuptureTargetUnit[OverallInt])
so it's like this
Set OverallInt = (OverallInt + 1)
Set RuptureTriggerUnit[OverallInt] = (Triggering unit)
Set RuptureTargetUnit[OverallInt] = (Target unit of ability being cast)
Set RupturePositionofTarget[OverallInt] = (Position of RuptureTargetUnit[OverallInt])
also store the level of ability
and you should null a variable when it is no longer used
why this?
Unit - Cause RuptureTriggerUnit[TempInt] to damage RuptureTargetUnit[TempInt], dealing (RuptureDamage[TempInt] x (Distance between (Position of RuptureTargetUnit[TempInt]) and RupturePositionofTarget[TempInt])) damage
it should be
Unit - Cause RuptureTriggerUnit[TempInt] to damage RuptureTargetUnit[TempInt], dealing (RuptureDamage[TempInt] x (Distance between RupturePositionofTarget[TempInt] and RupturePositionofTarget[TempInt])) damage
so it's like this
Set RupturePositionofTarget[TempInt] = (Position of RuptureTargetUnit[TempInt])
Unit - Cause RuptureTriggerUnit[TempInt] to damage RuptureTargetUnit[TempInt], dealing (RuptureDamage[TempInt] x (Distance between RupturePositionofTarget[TempInt] and RupturePositionofTarget[TempInt])) damage
may i ask? is the rupture buff will stay forever?
and why the periodic timer is not turned off when you finish on using it?
Unit - Cause RuptureTriggerUnit[TempInt] to damage RuptureTargetUnit[TempInt], dealing (RuptureDamage[TempInt] x (Distance between RupturePositionofTarget[TempInt] and RupturePositionofTarget[TempInt])) damage
Then the damage would only be .20/.40/.60. The damage will be too small. As though the target unit doesn't even take damage.
Thanks for pointing this out:
Set RupturePositionofTarget[OverallInt] = (Position of (Target unit of ability being cast))
No, the buff doesn't last forever. But once the unit loses the buff, the trigger no longer affects the unit. But the damage will stack if you cast the ability twice on the same unit (As long as it has the buff.).
I Downloaded the spell and Tested it to my Map a While ago, (I was in school) Then, I was surprised that the Functions of the Spell looks great and outstanding. Well, 10 Over 10.
I Downloaded the spell and Tested it to my Map a While ago, (I was in school) Then, I was surprised that the Functions of the Spell looks great and outstanding. Well, 10 Over 10.
If you are going to give rating on triggers also please look at the triggers closer.
This still has a lot of leaks.
If just one instance is running this leaks 3 positions every .03 seconds. That is a lot of leaks when multiple units cast the spell and when the spell lasts for a long time. if spell lasts for 1 second and 100 units cast it it leaks 3,333 locations.
You need to move this after the Destroy effect, it doesn not clear leaks where you added it
Custom script: set udg_RupturePositionofTarget[udg_TempInt]=null
This ^ too
Special Effect - Create a special effect attached to the chest of RuptureTargetUnit[TempInt] using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
attach it to the origin, not chest
Remove the Fx from the Buff, and add something like: if distance > 15 then create another Fx, like a double Fx
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.