- Joined
- Mar 16, 2008
- Messages
- 962
Hi, I'm trying to edit this spell to:
1) remove the Waits (I tried to do this but all the delays were messed up and the entire spell seems to go off at the same time).
2) getting rid of the custom script stuff and just replacing with an integer counter.
3) get rid of some of the functions that could be replaced by PN variables to make trigger more efficient.
4) keep/make it MPI.
5) make it cause friendly fire but not self damage (I was able to do this on my own).
6) and destroy all destructible (I was able to do this on my own).
Could anyone at least help me come up with a general plan to get rid of the waits? That's my main concern.
1) remove the Waits (I tried to do this but all the delays were messed up and the entire spell seems to go off at the same time).
2) getting rid of the custom script stuff and just replacing with an integer counter.
3) get rid of some of the functions that could be replaced by PN variables to make trigger more efficient.
4) keep/make it MPI.
5) make it cause friendly fire but not self damage (I was able to do this on my own).
6) and destroy all destructible (I was able to do this on my own).
-
SPELL
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Fire Beam (Fire Beam) (R)
-
-
Actions
-
-------- DON'T TOUCH THIS, UNLESS YOUR KNOW WHAT YOU ARE DOING --------
-
Custom script: local integer locExecCount = GetTriggerExecCount(GetTriggeringTrigger())
-
Custom script: if locExecCount == 50 then
-
Custom script: call ResetTrigger(GetTriggeringTrigger())
-
Custom script: endif
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
Set VariableSet FB_CasterUnit[FB_TriggerExecCount] = (Triggering unit)
-
Unit - Pause FB_CasterUnit[FB_TriggerExecCount]
-
For each (Integer FB_Integer[FB_TriggerExecCount]) from 1 to 10, do (Actions)
-
Loop - Actions
-
Animation - Change FB_CasterUnit[FB_TriggerExecCount]'s vertex coloring to (((Real(FB_Integer[FB_TriggerExecCount])) x 10.00)%, 0.00%, 0.00%) with 0.00% transparency
-
Set VariableSet FB_OrbPoint[FB_TriggerExecCount] = ((Position of FB_CasterUnit[FB_TriggerExecCount]) offset by 100.00 towards ((Real(FB_Integer[FB_TriggerExecCount])) x 36.00) degrees.)
-
Unit - Create 1 Dummy (fire beam import) for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_OrbPoint[FB_TriggerExecCount] facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_FB_OrbPoint[udg_FB_TriggerExecCount])
-
Animation - Change (Last created unit)'s size to (200.00%, 200.00%, 200.00%) of its original size
-
Unit - Add a (CONFIG_ChargeWait + 1.00) second Generic expiration timer to (Last created unit)
-
Wait 0.01 seconds
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
-
-
Wait CONFIG_ChargeWait seconds
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
Set VariableSet FB_CasterPos[FB_TriggerExecCount] = (Position of FB_CasterUnit[FB_TriggerExecCount])
-
Unit - Create 1 Dummy (fire beam import) for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_CasterPos[FB_TriggerExecCount] facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_FB_CasterPos[udg_FB_TriggerExecCount])
-
Animation - Change (Last created unit)'s size to (200.00%, 200.00%, 200.00%) of its original size
-
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
-
Animation - Play FB_CasterUnit[FB_TriggerExecCount]'s spell animation
-
Set VariableSet FB_Integer[FB_TriggerExecCount] = 0
-
For each (Integer FB_Integer[FB_TriggerExecCount]) from 1 to CONFIG_BeamNumber, do (Actions)
-
Loop - Actions
-
Set VariableSet FB_OrbPoint[FB_TriggerExecCount] = ((Position of FB_CasterUnit[FB_TriggerExecCount]) offset by (CONFIG_BeamDistance x (Real(FB_Integer[FB_TriggerExecCount]))) towards (Facing of FB_CasterUnit[FB_TriggerExecCount]) degrees.)
-
Unit - Create 1 Medium Royal House 2 for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_OrbPoint[FB_TriggerExecCount] facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_FB_OrbPoint[udg_FB_TriggerExecCount])
-
Set VariableSet FB_LastCreated[FB_TriggerExecCount] = (Last created unit)
-
Set VariableSet FB_LastCreatedPos[FB_TriggerExecCount] = (Position of FB_LastCreated[FB_TriggerExecCount])
-
Unit - Add a ((((CONFIG_BeamDistance x (Real(CONFIG_BeamNumber))) x 0.50) / 100.00) - 0.10) second Generic expiration timer to FB_LastCreated[FB_TriggerExecCount]
-
Animation - Change FB_LastCreated[FB_TriggerExecCount]'s size to (200.00%, 200.00%, 300.00%) of its original size
-
Set VariableSet FB_DamageGroup[FB_TriggerExecCount] = (Units within CONFIG_BeamDmgDistance of FB_LastCreatedPos[FB_TriggerExecCount] matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of FB_CasterUnit[FB_TriggerExecCount]).) Equal to True)).)
-
Unit Group - Pick every unit in FB_DamageGroup[FB_TriggerExecCount] and do (Actions)
-
Loop - Actions
-
Unit - Cause FB_CasterUnit[FB_TriggerExecCount] to damage (Picked unit), dealing ((CONFIG_BeamDmg x (Real((Level of Metamorphosis (Illidan) for FB_CasterUnit[FB_TriggerExecCount])))) + 50.00) damage of attack type Hero and damage type Fire
-
-
-
Custom script: call DestroyGroup(udg_FB_DamageGroup[udg_FB_TriggerExecCount])
-
Wait 0.00 seconds
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
-
-
Special Effect - Create a special effect at FB_CasterPos[FB_TriggerExecCount] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
-
Special Effect - Destroy (Last created special effect)
-
Unit - Create 1 Royal General for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_LastCreatedPos[FB_TriggerExecCount] facing Default building facing degrees
-
Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
-
Unit - Create 1 Small Royal House 1 for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_LastCreatedPos[FB_TriggerExecCount] facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_FB_LastCreatedPos[udg_FB_TriggerExecCount])
-
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
-
Set VariableSet FB_DamageGroup[FB_TriggerExecCount] = (Units within 500.00 of (Position of (Last created unit)) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of FB_CasterUnit[FB_TriggerExecCount]).) Equal to True)).)
-
Unit Group - Pick every unit in FB_DamageGroup[FB_TriggerExecCount] and do (Actions)
-
Loop - Actions
-
Unit - Cause FB_CasterUnit[FB_TriggerExecCount] to damage (Picked unit), dealing ((CONFIG_ExplosionDmg x (Real((Level of Metamorphosis (Illidan) for FB_CasterUnit[FB_TriggerExecCount])))) + 50.00) damage of attack type Hero and damage type Fire
-
-
-
Custom script: call DestroyGroup(udg_FB_DamageGroup[udg_FB_TriggerExecCount])
-
Wait 0.50 seconds
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
Unit - Unpause FB_CasterUnit[FB_TriggerExecCount]
-
Animation - Change FB_CasterUnit[FB_TriggerExecCount]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
-
Animation - Reset FB_CasterUnit[FB_TriggerExecCount]'s animation
-
-
-
SPELL
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Fire Beam (Fire Beam) (R)
-
-
Actions
-
-------- DON'T TOUCH THIS, UNLESS YOUR KNOW WHAT YOU ARE DOING --------
-
Custom script: local integer locExecCount = GetTriggerExecCount(GetTriggeringTrigger())
-
Custom script: if locExecCount == 50 then
-
Custom script: call ResetTrigger(GetTriggeringTrigger())
-
Custom script: endif
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
Set VariableSet FB_CasterUnit[FB_TriggerExecCount] = (Triggering unit)
-
Unit - Pause FB_CasterUnit[FB_TriggerExecCount]
-
For each (Integer FB_Integer[FB_TriggerExecCount]) from 1 to 10, do (Actions)
-
Loop - Actions
-
Animation - Change FB_CasterUnit[FB_TriggerExecCount]'s vertex coloring to (((Real(FB_Integer[FB_TriggerExecCount])) x 10.00)%, 0.00%, 0.00%) with 0.00% transparency
-
Set VariableSet FB_OrbPoint[FB_TriggerExecCount] = ((Position of FB_CasterUnit[FB_TriggerExecCount]) offset by 100.00 towards ((Real(FB_Integer[FB_TriggerExecCount])) x 36.00) degrees.)
-
Unit - Create 1 Orb (fire beam import) for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_OrbPoint[FB_TriggerExecCount] facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_FB_OrbPoint[udg_FB_TriggerExecCount])
-
Animation - Change (Last created unit)'s size to (200.00%, 200.00%, 200.00%) of its original size
-
Unit - Add a (CONFIG_ChargeWait + 1.00) second Generic expiration timer to (Last created unit)
-
Wait 0.01 seconds
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
-
-
Wait CONFIG_ChargeWait seconds
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
Set VariableSet FB_CasterPos[FB_TriggerExecCount] = (Position of FB_CasterUnit[FB_TriggerExecCount])
-
Unit - Create 1 Start Effect1 (fire beam import) for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_CasterPos[FB_TriggerExecCount] facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_FB_CasterPos[udg_FB_TriggerExecCount])
-
Animation - Change (Last created unit)'s size to (200.00%, 200.00%, 200.00%) of its original size
-
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
-
Animation - Play FB_CasterUnit[FB_TriggerExecCount]'s spell animation
-
Set VariableSet FB_Integer[FB_TriggerExecCount] = 0
-
For each (Integer FB_Integer[FB_TriggerExecCount]) from 1 to CONFIG_BeamNumber, do (Actions)
-
Loop - Actions
-
Set VariableSet FB_OrbPoint[FB_TriggerExecCount] = ((Position of FB_CasterUnit[FB_TriggerExecCount]) offset by (CONFIG_BeamDistance x (Real(FB_Integer[FB_TriggerExecCount]))) towards (Facing of FB_CasterUnit[FB_TriggerExecCount]) degrees.)
-
Unit - Create 1 Beam (fire beam import) for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_OrbPoint[FB_TriggerExecCount] facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_FB_OrbPoint[udg_FB_TriggerExecCount])
-
Set VariableSet FB_LastCreated[FB_TriggerExecCount] = (Last created unit)
-
Set VariableSet FB_LastCreatedPos[FB_TriggerExecCount] = (Position of FB_LastCreated[FB_TriggerExecCount])
-
Unit - Add a ((((CONFIG_BeamDistance x (Real(CONFIG_BeamNumber))) x 0.50) / 100.00) - 0.10) second Generic expiration timer to FB_LastCreated[FB_TriggerExecCount]
-
Animation - Change FB_LastCreated[FB_TriggerExecCount]'s size to (200.00%, 200.00%, 300.00%) of its original size
-
-------- Edited to include friendly targets but not caster --------
-
Set VariableSet FB_DamageGroup[FB_TriggerExecCount] = (Units within CONFIG_BeamDmgDistance of FB_LastCreatedPos[FB_TriggerExecCount] matching ((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to FB_CasterUnit[FB_TriggerExecCount])).)
-
-------- end edit --------
-
Unit Group - Pick every unit in FB_DamageGroup[FB_TriggerExecCount] and do (Actions)
-
Loop - Actions
-
Unit - Cause FB_CasterUnit[FB_TriggerExecCount] to damage (Picked unit), dealing ((CONFIG_BeamDmg x (Real((Level of Metamorphosis (Illidan) for FB_CasterUnit[FB_TriggerExecCount])))) + 50.00) damage of attack type Hero and damage type Fire
-
-
-
Custom script: call DestroyGroup(udg_FB_DamageGroup[udg_FB_TriggerExecCount])
-
-------- Edited to kill trees --------
-
Set VariableSet extra_FB_point = FB_LastCreatedPos[FB_TriggerExecCount]
-
Destructible - Pick every destructible within CONFIG_BeamDistance of extra_FB_point and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation(udg_extra_FB_point)
-
-------- end edit --------
-
Wait 0.00 seconds
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
-
-
Special Effect - Create a special effect at FB_CasterPos[FB_TriggerExecCount] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
-
Special Effect - Destroy (Last created special effect)
-
Unit - Create 1 Explosion Effect1 (fire beam import) for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_LastCreatedPos[FB_TriggerExecCount] facing Default building facing degrees
-
Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
-
Unit - Create 1 Explosion Effect2 (fire beam import) for (Owner of FB_CasterUnit[FB_TriggerExecCount]) at FB_LastCreatedPos[FB_TriggerExecCount] facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_FB_LastCreatedPos[udg_FB_TriggerExecCount])
-
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
-
Set VariableSet FB_DamageGroup[FB_TriggerExecCount] = (Units within 500.00 of (Position of (Last created unit)) matching ((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to FB_CasterUnit[FB_TriggerExecCount])).)
-
Unit Group - Pick every unit in FB_DamageGroup[FB_TriggerExecCount] and do (Actions)
-
Loop - Actions
-
Unit - Cause FB_CasterUnit[FB_TriggerExecCount] to damage (Picked unit), dealing ((CONFIG_ExplosionDmg x (Real((Level of Metamorphosis (Illidan) for FB_CasterUnit[FB_TriggerExecCount])))) + 50.00) damage of attack type Hero and damage type Fire
-
-
-
Custom script: call DestroyGroup(udg_FB_DamageGroup[udg_FB_TriggerExecCount])
-
-------- Edited to kill trees --------
-
Set VariableSet extra_FB_point = (Position of (Last created unit))
-
Destructible - Pick every destructible within 500.00 of extra_FB_point and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Custom script: call RemoveLocation(udg_extra_FB_point)
-
-------- end edit --------
-
Wait 0.50 seconds
-
Custom script: set udg_FB_TriggerExecCount = locExecCount
-
Unit - Unpause FB_CasterUnit[FB_TriggerExecCount]
-
Animation - Change FB_CasterUnit[FB_TriggerExecCount]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
-
Animation - Reset FB_CasterUnit[FB_TriggerExecCount]'s animation
-
-
Could anyone at least help me come up with a general plan to get rid of the waits? That's my main concern.
Last edited: