• 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!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Ruse Switch v1.1

  • Like
Reactions: IRoILaurentiu
ok for those people who can't get the "Nether Swap" right,from DOTA, well this is how it's done..

Credits to:

-Kobas- ===> He gave the codes through comment
and
Magtheridon96 ===> He helped me with few mistakes

I modified this spell a lil bit for it to be unique

Deals damage if the target is an enemy, switches place with the target. Heals if the target is an ally, still switches place with the target (good for saving an ally)

PS:
I just wanted to share this spell to people who wants to know how it is done
if -Kobas- decides to remove this then it is his decision I would follow since he is the one who gave the codes :))

anyways here is/are the codes

  • Ruse Switch
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ruse Switch
    • Actions
      • -------- Do not touch any of these codes below, because this is where the units switch places --------
      • Custom script: local real x1=GetUnitX(GetTriggerUnit())
      • Custom script: local real y1=GetUnitY(GetTriggerUnit())
      • Custom script: local real x2=GetUnitX(GetSpellTargetUnit())
      • Custom script: local real y2=GetUnitY(GetSpellTargetUnit())
      • Custom script: call SetUnitX(GetSpellTargetUnit(), x1)
      • Custom script: call SetUnitY(GetSpellTargetUnit(), y1)
      • Custom script: call SetUnitX(GetTriggerUnit(), x2)
      • Custom script: call SetUnitY(GetTriggerUnit(), y2)
      • -------- This is where you can edit everything, special effects, damage, etc. --------
      • Set RS_caster = (Triggering unit)
      • Set RS_target = (Target unit of ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • And - All (Conditions) are true
            • Conditions
              • (RS_target belongs to an enemy of (Owner of RS_caster)) Equal to True
              • (RS_target is A structure) Not equal to True
        • Then - Actions
          • Unit - Cause RS_caster to damage RS_target, dealing (100.00 x (Real((Level of Ruse Switch for RS_caster)))) damage of attack type Spells and damage type Normal
          • Special Effect - Create a special effect attached to the chest of RS_caster using Abilities\Spells\Other\Doom\DoomDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect attached to the chest of RS_target using Abilities\Spells\Other\Doom\DoomDeath.mdl
          • Special Effect - Destroy (Last created special effect)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • And - All (Conditions) are true
                • Conditions
                  • (RS_target belongs to an ally of (Owner of RS_caster)) Equal to True
                  • (RS_target is A structure) Not equal to True
            • Then - Actions
              • Unit - Set life of RS_target to ((Life of RS_target) + (75.00 x (Real((Level of Ruse Switch for RS_caster)))))
              • Special Effect - Create a special effect attached to the chest of RS_caster using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect attached to the chest of RS_target using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
              • Special Effect - Destroy (Last created special effect)
            • Else - Actions

v1.0= release
v1.1= Added more Features


Keywords:
Swap, Switch , Ruse , Nether Swap
Contents

Ruse Switch (Map)

Reviews
Ruse Switch v1.1 | Reviewed by Maker | 29th Sep 2013 APPROVED The spell works but it is not very original [tr] Remove the unneeded And (All conditions)

Moderator

M

Moderator


Ruse Switch v1.1 | Reviewed by Maker | 29th Sep 2013
APPROVED


126248-albums6177-picture66521.png


  • The spell works but it is not very original
126248-albums6177-picture66523.png


  • Remove the unneeded And (All conditions)
[tr]
 
Hmm, spell too simple, store everything that will used twice to a variable ( GetTriggerUnit() and GetSpellTargetUnit() )

Spell is very very simple but it is useful ^^. 3/5.

Store GetTriggerUnit and GetSpellTargetUnit in the variable. Configuration gone :( . Read spell submission rules http://www.hiveworkshop.com/forums/beta-rules-information-710/spell-submission-rules-230362/

From what I recall, using a local is slower than calling the native 3 times (or somewhere around there). Could be wrong though, haven't touched WE for about an year.
 
Level 9
Joined
Dec 12, 2007
Messages
489
really too simple and already done so many times with same or different name,
both at the hive and other forum like thehelper.

sample of the hive
http://www.hiveworkshop.com/forums/spells.php?search=nether swap&d=list&r=20
there already 4 spell with the same name, though all 4 still labeled needs fix.

From what I recall, using a local is slower than calling the native 3 times (or somewhere around there). Could be wrong though, haven't touched WE for about an year.
referencing to a local variable is faster than function call, even native function.
 

Kazeon

Hosted Project: EC
Level 34
Joined
Oct 12, 2011
Messages
3,449
well keep it simple :p
  • Ruse Switch
  • Events
  • Unit - A unit Starts the effect of an ability
  • Conditions
  • (Ability being cast) Equal to Ruse Switch
  • Actions
  • -------- this doesn't need configurable variables :P --------
  • set TempPoint[1] = Position of (Triggering Unit)
  • set TempPoint[2] = Position of (Event Response - Target of Ability being Cast)
  • Unit - Move (Triggering Unit) to TempPoint[2]
  • Unit - Move (Event Response - Target of Ability being Cast) to TempPoint[1]
  • custom script: RemoveLocation(udg_TempPoint[1])
  • custom script: RemoveLocation(udg_TempPoint[2])
  • ------- that is more simple units swaping triggers -------
I type it manually, so..
 
Level 9
Joined
Dec 12, 2007
Messages
489
well keep it simple :p
  • Ruse Switch
  • Events
  • Unit - A unit Starts the effect of an ability
  • Conditions
  • (Ability being cast) Equal to Ruse Switch
  • Actions
  • -------- this doesn't need configurable variables :P --------
  • set TempPoint[1] = Position of (Triggering Unit)
  • set TempPoint[2] = Position of (Event Response - Target of Ability being Cast)
  • Unit - Move (Triggering Unit) to TempPoint[2]
  • Unit - Move (Event Response - Target of Ability being Cast) to TempPoint[1]
  • custom script: RemoveLocation(udg_TempPoint[1])
  • custom script: RemoveLocation(udg_TempPoint[2])
  • ------- that is more simple units swaping triggers -------
I type it manually, so..

honestly, chronos_077's trigger is better because it avoid the use of location
 

Kazeon

Hosted Project: EC
Level 34
Joined
Oct 12, 2011
Messages
3,449
honestly, chronos_077's trigger is better because it avoid the use of location
yeah, I can't beat magh and kobas :/

Im too lazy to download it so this is just quick review
chronos, u dont need to add AND condition. Then, you don't need condition "Target is a building equal to" since your custom ability is unable to target building. Or if you haven't configure your custom ability, just fix it (once again I m too lazy to dl it :p), because swaping with stucture seems weird
 
Level 19
Joined
Mar 18, 2012
Messages
1,716
Change it to this:

  • Set RS_caster = (Triggering unit)
  • Set RS_target = (Target unit of ability being cast)
  • Custom script: local real x1=GetUnitX(udg_RS_caster)
  • Custom script: local real y1=GetUnitY(udg_RS_caster)
  • Custom script: local real x2=GetUnitX(udg_RS_target)
  • Custom script: local real y2=GetUnitY(udg_RS_target)
  • Custom script: call SetUnitX(udg_RS_target, x1)
  • Custom script: call SetUnitY(udg_RS_target, y1)
  • Custom script: call SetUnitX(udg_RS_caster, x2)
  • Custom script: call SetUnitY(udg_RS_caster, y2)
Your "unique" part is also kinda bumpy.
 
Level 13
Joined
Mar 29, 2012
Messages
542
REVIEW|Ruse Switch|v1.1
Resource Status: Needs Fix
Rating: 3/5 (Useful)
GENERAL

  • Do as what hodenhelm said
  • Effects, effect attachment points, damages, attack-type and damage-type should be configurable in another trigger
PROS

  • MUI and simple
CONS

  • No import instruction
  • Change
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • And - All (Conditions) are true
          • Conditions
            • (RS_target belongs to an enemy of (Owner of RS_caster)) Equal to True
            • (RS_target is A structure) Not equal to True
      • Then - Actions
        • Unit - Cause RS_caster to damage RS_target, dealing (100.00 x (Real((Level of Ruse Switch for RS_caster)))) damage of attack type Spells and damage type Normal
        • Special Effect - Create a special effect attached to the chest of RS_caster using Abilities\Spells\Other\Doom\DoomDeath.mdl
        • Special Effect - Destroy (Last created special effect)
        • Special Effect - Create a special effect attached to the chest of RS_target using Abilities\Spells\Other\Doom\DoomDeath.mdl
        • Special Effect - Destroy (Last created special effect)
      • Else - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • And - All (Conditions) are true
              • Conditions
                • (RS_target belongs to an ally of (Owner of RS_caster)) Equal to True
                • (RS_target is A structure) Not equal to True
          • Then - Actions
            • Unit - Set life of RS_target to ((Life of RS_target) + (75.00 x (Real((Level of Ruse Switch for RS_caster)))))
            • Special Effect - Create a special effect attached to the chest of RS_caster using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
            • Special Effect - Destroy (Last created special effect)
            • Special Effect - Create a special effect attached to the chest of RS_target using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
            • Special Effect - Destroy (Last created special effect)
          • Else - Actions
    to
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • (RS_target is A structure) Not equal to True
      • Then - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (RS_target belongs to an enemy of (Owner of RS_caster)) Equal to True
          • Then - Actions
            • Unit - Cause RS_caster to damage RS_target, dealing (100.00 x (Real((Level of Ruse Switch for RS_caster)))) damage of attack type Spells and damage type Normal
            • Special Effect - Create a special effect attached to the chest of RS_caster using Abilities\Spells\Other\Doom\DoomDeath.mdl
            • Special Effect - Destroy (Last created special effect)
            • Special Effect - Create a special effect attached to the chest of RS_target using Abilities\Spells\Other\Doom\DoomDeath.mdl
            • Special Effect - Destroy (Last created special effect)
          • Else - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (RS_target belongs to an ally of (Owner of RS_caster)) Equal to True
              • Then - Actions
                • Unit - Set life of RS_target to ((Life of RS_target) + (75.00 x (Real((Level of Ruse Switch for RS_caster)))))
                • Special Effect - Create a special effect attached to the chest of RS_caster using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
                • Special Effect - Destroy (Last created special effect)
                • Special Effect - Create a special effect attached to the chest of RS_target using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
                • Special Effect - Destroy (Last created special effect)
              • Else - Actions
      • Else - Actions
SUGGESTIONS

  • (Owner of RS_caster) should be stored
  • The effect attachment point should be "origin"
[/TD][/tr] If you have any question about this review, PM or VM me Review template by Doomlord

Edit:
oh, my bad...You don't need to check if the target is a structure, you can set the target allowed on Object Editor not to allow targeting structure
 
Last edited:
Level 20
Joined
Aug 13, 2013
Messages
1,696
Why use local reals in this spell??? o_O, well stick to pure GUI not JASS don't declare locals in GUI you can use global variable or create an X/Y into the variable editor, Just as I said store the DuO target and caster into the global variable and use it to the custom scripts ike adding global prefixes: udg_YOUR_GLOBAL_VARIABLE.You must put the stored Duo variable in the top of the action func but you must remove the locals at the top of the function because it will gives you error about locals. Also make configuration trigger in value of life, effects and damage. Life of triggering unit, player must be stored to variable.

@hodenhelm

putting the global variables above the locals will give errors. So remove the locals then change it to globals.
 
how do i change locals to globals?

Basically, the idea is that since you declared RS_caster and RS_target, might as well use those variables to save a few native calls.

  • Custom script: local real x1
  • Custom script: local real x2
  • Custom script: local real y1
  • Custom script: local real y2
  • set RS_caster = (Triggering unit)
  • set RS_target = (Target unit of ability being cast)
  • Custom script: set x1 = GetUnitX(udg_RS_caster)
  • Custom script: set y1 = GetUnitY(udg_RS_caster)
  • Custom script: set x2 = GetUnitX(udg_RS_target)
  • Custom script: set y2 = GetUnitY(udg_RS_target)
  • Custom script: call SetUnitX(udg_RS_caster, x2)
  • Custom script: call SetUnitY(udg_RS_caster, y2)
  • Custom script: call SetUnitX(udg_RS_target, x1)
  • Custom script: call SetUnitY(udg_RS_target, y1)
You could also use global variables for your x's and y's. That way, you can eliminate the use of locals altogether. But using locals for your x's and y's are fine.
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
Basically, the idea is that since you declared RS_caster and RS_target, might as well use those variables to save a few native calls.

  • Custom script: local real x1
  • Custom script: local real x2
  • Custom script: local real y1
  • Custom script: local real y2
  • set RS_caster = (Triggering unit)
  • set RS_target = (Target unit of ability being cast)
  • Custom script: set x1 = GetUnitX ( udg_RS_caster )
  • Custom script: set y1 = GetUnitY ( udg_RS_caster )
  • Custom script: set x2 = GetUnitX ( udg_RS_target )
  • Custom script: set y2 = GetUnitY ( udg_RS_target )
  • Custom script: call SetUnitX ( udg_RS_caster, x2 )
  • Custom script: call SetUnitY ( udg_RS_caster, y2 )
  • Custom script: call SetUnitX ( udg_RS_target, x1 )
  • Custom script: call SetUnitY ( udg_RS_target, y1 )
You could also use global variables for your x's and y's. That way, you can eliminate the use of locals altogether. But using locals for your x's and y's are fine.

:vw_wtf:? The user that will download this spell and import it to another map will gives errors about X/Y and if he do that, it is like he made a spell to turn in JASS.
Make it like this:
  • Set RS_caster = (Triggering unit)
  • set RS_target = (Target unit of ability being cast)
  • Custom script: set udg_x1 = GetUnitX ( udg_RS_caster )
  • Custom script: set udg_x2 = GetUnitX ( udg_RS_target )
  • Custom script: set udg_y1 = GetUnitY ( udg_RS_caster )
  • Custom script: set udg_y2 = GetUnitY ( udg_RS_target )
  • Custom script: call SetUnitX ( udg_RS_caster , udg_x2 )
  • Custom script: call SetUnitY ( udg_RS_caster , udg_y2 )
  • Custom script: call SetUnitX ( udg_RS_target , udg_x1 )
  • Custom script: call SetUnitY ( udg_RS_target , udg_y1 )
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
What are you going on about finn?! I mean jake?! The coordinate variables are locals so it does not need to be instantiated (created) by World Editor. Stop hating on jass.
 
:vw_wtf:? The user that will download this spell and import it to another map will gives errors about X/Y and if he do that, it is like he made a spell to turn in JASS.
Make it like this:
  • Set RS_caster = (Triggering unit)
  • set RS_target = (Target unit of ability being cast)
  • Custom script: set udg_x1 = GetUnitX ( udg_RS_caster )
  • Custom script: set udg_x2 = GetUnitX ( udg_RS_target )
  • Custom script: set udg_y1 = GetUnitY ( udg_RS_caster )
  • Custom script: set udg_y2 = GetUnitY ( udg_RS_target )
  • Custom script: call SetUnitX ( udg_RS_caster , udg_x2 )
  • Custom script: call SetUnitY ( udg_RS_caster , udg_y2 )
  • Custom script: call SetUnitX ( udg_RS_target , udg_x1 )
  • Custom script: call SetUnitY ( udg_RS_target , udg_y1 )

Like mentioned by chobibo, I have no idea what you're going on about. The x and y variables are declared as locals, there will be no errors.
 
Level 9
Joined
Dec 12, 2007
Messages
489
:vw_wtf:? The user that will download this spell and import it to another map will gives errors about X/Y and if he do that, it is like he made a spell to turn in JASS.
Make it like this:
  • Set RS_caster = (Triggering unit)
  • set RS_target = (Target unit of ability being cast)
  • Custom script: set udg_x1 = GetUnitX ( udg_RS_caster )
  • Custom script: set udg_x2 = GetUnitX ( udg_RS_target )
  • Custom script: set udg_y1 = GetUnitY ( udg_RS_caster )
  • Custom script: set udg_y2 = GetUnitY ( udg_RS_target )
  • Custom script: call SetUnitX ( udg_RS_caster , udg_x2 )
  • Custom script: call SetUnitY ( udg_RS_caster , udg_y2 )
  • Custom script: call SetUnitX ( udg_RS_target , udg_x1 )
  • Custom script: call SetUnitY ( udg_RS_target , udg_y1 )
how can a local variable instance give error when copied into another map? the only bad thing about using custom script in GUI is just it limits further modification by pure GUI users.
 

Rheiko

Spell Reviewer
Level 25
Joined
Aug 27, 2013
Messages
4,121
What are you going on about finn?! I mean jake?! The coordinate variables are locals so it does not need to be instantiated (created) by World Editor. Stop hating on jass.
too much watching Adventure Time. i see :ogre_hurrhurr:


:vw_wtf:? The user that will download this spell and import it to another map will gives errors about X/Y and if he do that, it is like he made a spell to turn in JASS.
Make it like this:
  • Set RS_caster = (Triggering unit)
  • set RS_target = (Target unit of ability being cast)
  • Custom script: set udg_x1 = GetUnitX ( udg_RS_caster )
  • Custom script: set udg_x2 = GetUnitX ( udg_RS_target )
  • Custom script: set udg_y1 = GetUnitY ( udg_RS_caster )
  • Custom script: set udg_y2 = GetUnitY ( udg_RS_target )
  • Custom script: call SetUnitX ( udg_RS_caster , udg_x2 )
  • Custom script: call SetUnitY ( udg_RS_caster , udg_y2 )
  • Custom script: call SetUnitX ( udg_RS_target , udg_x1 )
  • Custom script: call SetUnitY ( udg_RS_target , udg_y1 )
yeah, how could locals cause an error?
AFAIK, locals will only cause an error if you didn't put them at the beginning of the trigger
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
Well that's his code and not iAyanami's, hes code won't work, but the former will.
Quoting then changing the quotes content is bs.
EDIT: I know, it wasn't directed at you anyways. Still I apologize. But changing the quotes is still a bs move, don't do that.
 
Last edited:
@chobibo

Anyway I'm not hating JASS. I mean that if he start doing declare variables in locals, it might be he turn the spell ( GUI ) into JASS, so it is better to turn it in JASS than GUI.

I honestly don't see anything wrong with using a bit of custom scripts. GUI is JASS, so there's no real clear line in distinguishing GUI from JASS (other than GUI is painfully inefficient compared to JASS :/)

Also, even if global X and Y variables are used, SetUnitX and SetUnitY isn't "GUI" either.
 
Try
  • Ruse Switch
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • And - All (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Ruse Switch
          • ((Target unit of ability being cast) is A structure) Equal to False
    • Actions
      • Custom script: local unit u1=GetTriggerUnit()
      • Custom script: local unit u2=GetSpellTargetUnit()
      • Custom script: local real x1=GetUnitX(u1)
      • Custom script: local real y1=GetUnitY(u1)
      • Custom script: local real x2=GetUnitX(u2)
      • Custom script: local real y2=GetUnitY(u2)
      • Custom script: call SetUnitX(u2, x1)
      • Custom script: call SetUnitY(u2, y1)
      • Custom script: call SetUnitX(u1, x2)
      • Custom script: call SetUnitY(u1, y2)
      • Custom script: if GetOwningPlayer(u1) == GetOwningPlayer(u2) then
      • Custom script: call SetUnitState(u2, UNIT_STATE_LIFE, GetUnitState(u2, UNIT_STATE_LIFE) + 75*GetUnitAbilityLevel(u1, 'A001'))
      • Custom script: call DestroyEffect(AddSpecialEffectTarget("chest", u1, "Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl"))
      • Custom script: call DestroyEffect(AddSpecialEffectTarget("chest", u2, "Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl"))
      • Custom script: else
      • Custom script: call UnitDamageTarget(u1, u2, 75*GetUnitAbilityLevel(u1, 'A001'), true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, null)
      • Custom script: call DestroyEffect(AddSpecialEffectTarget("chest", u1, "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl"))
      • Custom script: call DestroyEffect(AddSpecialEffectTarget("chest", u2, "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl"))
      • Custom script: endif
      • Custom script: set u1=null
      • Custom script: set u2=null
This here is almost fast as jass, difference is in 1 bonus function created in condition because of AND.
 

Attachments

  • RuseSwitch.w3x
    18.7 KB · Views: 51
Level 37
Joined
Mar 6, 2006
Messages
9,243
^Kobas, the AND is not needed, it actually adds needless code. Checking alliance status could be better than player = player, not to damage neutrals.

This could work, it doesn't heal/damage neutrals
  • Ruse Switch
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ruse Switch
    • Actions
      • -------- Do not touch any of these codes below, because this is where the units switch places --------
      • Custom script: local real x1=GetUnitX(GetTriggerUnit())
      • Custom script: local real y1=GetUnitY(GetTriggerUnit())
      • Custom script: local real x2=GetUnitX(GetSpellTargetUnit())
      • Custom script: local real y2=GetUnitY(GetSpellTargetUnit())
      • Custom script: call SetUnitX(GetSpellTargetUnit(), x1)
      • Custom script: call SetUnitY(GetSpellTargetUnit(), y1)
      • Custom script: call SetUnitX(GetTriggerUnit(), x2)
      • Custom script: call SetUnitY(GetTriggerUnit(), y2)
      • -------- This is where you can edit everything, special effects, damage, etc. --------
      • Set RS_caster = (Triggering unit)
      • Set RS_target = (Target unit of ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (RS_target is A structure) Equal to False
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (RS_target belongs to an enemy of (Owner of RS_caster)) Equal to True
            • Then - Actions
              • Unit - Cause RS_caster to damage RS_target, dealing (100.00 x (Real((Level of Ruse Switch for RS_caster)))) damage of attack type Spells and damage type Normal
              • Special Effect - Create a special effect attached to the chest of RS_caster using Abilities\Spells\Other\Doom\DoomDeath.mdl
              • Special Effect - Destroy (Last created special effect)
              • Special Effect - Create a special effect attached to the chest of RS_target using Abilities\Spells\Other\Doom\DoomDeath.mdl
              • Special Effect - Destroy (Last created special effect)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (RS_target belongs to an ally of (Owner of RS_caster)) Equal to True
                • Then - Actions
                  • Unit - Set life of RS_target to ((Life of RS_target) + (75.00 x (Real((Level of Ruse Switch for RS_caster)))))
                  • Special Effect - Create a special effect attached to the chest of RS_caster using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect attached to the chest of RS_target using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
                  • Special Effect - Destroy (Last created special effect)
                • Else - Actions
        • Else - Actions
 
Top