HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Divine shield castable on other targets

01-18-2007, 04:54 AM#1
mAc Chaos
Is there any way to make a skill that is basically Divine Shield, except you can cast it on other targets? The problem is having the trigger check up on the spell later to see when it should wear off, but the only way I can think of having it do that is using the "wait" command. But that's not a good way of doing it.
01-18-2007, 04:57 AM#2
maximilianx
can you explain what you have so far so that people can tell you what to change?
01-18-2007, 05:13 AM#3
mAc Chaos
Well, I have some trigger GUI work, but the problem isn't that it doesn't work, I just don't know how I would do it. If you guys have any ideas how to approach it I could.

Is there any way to get triggers to check up on the duration of an ability or spell formed by a previous trigger? My only option right now, as I said, is to simply have the same trigger that activates the "ability" wait for 30 seconds or however long the duration of the spell is and then disable it.
01-18-2007, 05:14 AM#4
Jacek
can't you just use some buff like Anti-magic Shell, set duration to 0.00 and make trigger:

Code:
events
   unit starts effect of ability
conditions
   ability being cast equal to Divine Protection (based off anti-magic)
actions
   Unit - Make Target of ability being cast Invulnerable
   Polled wait - wait 30 seconds
   Unit - Make Target of ability being cast Vulnerable
01-18-2007, 05:29 AM#5
maximilianx
or... make a caster variable and a target variable..
then..
Trigger:
divine protection
Collapse Events
unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Divine Protection
Collapse Actions
Set Caster = (Casting unit)
Set Target = (Target unit of ability being cast)
Unit - Add Divine Shield to Target
Wait 10.00 seconds
Unit - Remove Divine Shield from Target

This worked for me.
01-18-2007, 05:39 AM#6
Pyrogasm
Jacek, the line
Trigger:
Unit - Make Target of ability being cast Vulnerable
doesn't return a value for "target of ability being cast" because of the wait command.

For this, locals are needed if you want to make it MUI.
01-18-2007, 06:36 AM#7
mAc Chaos
Doesn't using the "wait" command stall all other trigger actions, though? Or is that only for Starcraft?
01-18-2007, 07:21 AM#8
Pheonix-IV
That's only for starcraft, wait in WCIII waits only that trigger.
01-18-2007, 02:16 PM#9
Jacek
Quote:
Originally Posted by Pyrogasm
Jacek, the line
Trigger:
Unit - Make Target of ability being cast Vulnerable
doesn't return a value for "target of ability being cast" because of the wait command.

For this, locals are needed if you want to make it MUI.
...
convert it to jass and store caster in local variable kk?
01-18-2007, 02:26 PM#10
maximilianx
lol you dont need jass to set variables
01-18-2007, 02:29 PM#11
Vexorian
Give target unit the item divine shield ability, order it to cast it.
01-18-2007, 04:54 PM#12
BertTheJasser
@Jacek: Your method is not MUI
Vexorians method is shurely the best, as , as we know that devine shield does not interrupt channling spells, it is very simple.
01-18-2007, 08:28 PM#13
Anopob
Quote:
Originally Posted by maximilianx
lol you dont need jass to set variables

You don't, but you need it to be MUI as they said (which means able to be cast by alot of units at once, or close to at once, and still work properly).
01-18-2007, 09:11 PM#14
mAc Chaos
I think these recommendations will do the trick. I'll try them out and see. Thanks.
01-19-2007, 09:39 PM#15
Mapz_Maker
If they didn't work, check out my ability syntax command. This is a good example of something that could be done in seconds with it!
Just get Ability Syntax Command's Header JASS and copy it into your map's header, then copy and paste the 'Start Effect' trigger into your map and add the condition that if the ability is your ability then do the trigger. using the ability you have created add into one of the art - effect boxes the following code
invul`true`'target',wait`replacewithinteger`,invul`false`'target'

the code call enfc_StartEffect(GetSpellAbilityId(), 1, GetSpellAbilityUnit(), GetSpellTargetUnit()) is the code that causes the abilities effect to occur, change the integer (in red) call enfc_StartEffect(GetSpellAbilityId(), 1, GetSpellAbilityUnit(), GetSpellTargetUnit()) to the integer that corresponds to your unused art field
Art - EFFECT = 0
Art - TARGET = 1
Art - CASTER = 2
Art - SPECIAL = 3
Art - AREA EFFECT = 4
Art - MISSILE = 5

If you tell me what base spell you are using i will go ahead and upload a demo of that spell easily.