HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Spell/Trigger Help

07-17-2003, 08:28 AM#1
Viper504
hey would there be any way to make a spell where frost nova would hit an enemy unit or units like 5 times in a row back to back ? Or if theres a trigger i could use that would make 5 novas appear
07-17-2003, 10:27 AM#2
Sinzar
For each (Integer A) from 1 to 5, do (Actions)
Loop - Actions
Special Effect - Create a special effect at (Position of (Triggering unit)) using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Wait 0.50 game-time seconds

if you want it to deal damage as well then

For each (Integer A) from 1 to 5, do (Actions)
Loop - Actions
Special Effect - Create a special effect at (Position of (Triggering unit)) using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - 50.00)
Wait 0.50 game-time seconds


dont forget to add in triggers to clear the special effects afterwards
07-17-2003, 10:58 AM#3
Guest
wow..........
07-17-2003, 11:23 AM#4
Ultramagnetic
wouildn't it just be easier to trigger the casting unit to cast frost nova 4 more times in a row after he does the first one?

e: unit is issued an order targeting an object

c: issued order equal to frostnova

a: set variable = target unit of issued order
order triggering unit to Undead Lich Frostnova variable unit.
wait .01 seconds game time
repeat 3 more times.

????
07-17-2003, 12:34 PM#5
Sinzar
frost nova has a cooldown (refresh) of 8 seconds, so if a unit was ordered to cast it four more times right away the spell would not be ready and he would do nothing

unless of course you edited the frost nova spell and removed the cooldown period
07-17-2003, 01:05 PM#6
Ultramagnetic
Oh, right. I forgot that part... ya. I MEANT it to be in there though. Take the cooldown out... Onl problem there would be that the regular spell would have no cooldown either.


Hrm. Maybe make another modified FN, with no cooldown, and same damage etc, and give it to an invisible unit that spawns at the casters location and casts it another 3 times in a row on the same target as the hero?
07-17-2003, 01:09 PM#7
playamarz
Or just give it no icon and give it to your current user right now if he doens't have all 5 of his abilities set up.. :)
07-17-2003, 01:35 PM#8
kharma
Quote:
Originally posted by playamarz
Or just give it no icon and give it to your current user right now if he doens't have all 5 of his abilities set up.. :)
Giving a non existant icon doesn't make the ability unusable strangely enough. There'll be no box, but you can still click on it and the tooltip will still show up. However, depending on the ability priority, you could put it at position 3,2 and have it kicked off the visible abilities list by the ultimate. But that would only be useful if the ultimate carried a higher priority and it was pre-researched.

So basically, giving an invisible unit the ability is an easier method :P

~kharma
07-17-2003, 07:48 PM#9
Viper504
<---NOOB

ok i tried to do it and the effect works but not on targeted unit.
heres my trigger

Action
UNit begins casting ability

Condition
Ability = nova

Action
For each (Integer A) from 1 to 5, do (Actions)
Loop - Actions
Special Effect - Create a special effect at (Position of (Triggering unit)) using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - 50.00)
Wait 0.50 game-time seconds

that makes the effect on me not the targeted unit
then i changed it to targeted unit and theres no effect at all
whats wrong with the trigger ????

Thx for all your help
07-17-2003, 08:02 PM#10
Pirogen
Have you tried this?

Variables used:
FrostNovaVictim (unit)
Code:
Events:
-A unit is issued an order targeting a unit
Conditions:
-(Issued order) equal to Frost Nova
Actions:
-Set FrostNovaVictim = (target unit of issued order) 
Now, add your trigger:
Code:
Events:
-A unit begins casting an ability
Conditions:
-(Ability being cast) equal to Frost Nova
Actions:
-For each Integer A from 1 to 5, do (actions)
 -Loop - Actions
 -Special Effect - Create a special effect at (Position of (FrostNovaVictim)) using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
 -Unit - Set life of (FrostNovaVictim) to ((Life of (FrostNovaVictim)) - 50.00)
 -Wait 0.50 game-time seconds
07-17-2003, 08:26 PM#11
Ultramagnetic
that would work just fine, BUT I'm assuming he wants it to be like five frostnovas cast in a row, effecting all the other units around the target too... So that method would only effect the target unit... that's why a modified FN cast a couple times in a row would work better instead of the added trigger actions you put in there.

The way I look at it is why trigger a spell that's already coded. He could even just bump the AoE down to 0 if he wanted it to only hit one unit at a time too.

Use that spell editor. It comes in handy/

I would do it like this... Use that first trigger Pirogen suggested, alongside a second trigger that looks like this:

E: Unit begins casting an ability.

c: ability being cast equal to frostnova.

a: -Create unit at location of FrostNovaVictim (or casting unit, whatever you want).

//The unit you create here is the one that has the modified frostnova skill I suggested you make earlier in the thread.

make another variable. FrostNovaInvisCaster.

-set variable FrostNovaInvisCaster = last created unit.
-For each integer from 1 to 5
*Order FrostNovaInvisCaster to Undead Lich - Frostnova FrostNovaVictim.
*Animation - Play triggering unit's Spell animation


And that should do it.
07-17-2003, 08:29 PM#12
Viper504
Events:
-A unit is issued an order targeting a unit
Conditions:
-(Issued order) equal to Frost Nova
Actions:
-Set FrostNovaVictim = (target unit of issued order)

in Event is unit= object thats all i can pick

and in condition how do u get = to frost nova cant find where u pick abilitys

sorry for being such a noob :(
07-17-2003, 08:42 PM#13
Pirogen
When I said unit, I meant object. Sorry for that.

And the condition thing... First, choose "Order Comparison" as your condition. It should be something like "(issued order) equal to (order(stop))". Just change it to "(issued order) equal to (order(frostnova))".

To Ultramagnetic: I didn't thought of that, sorry. I guess it should be something like this:
- Unit Group - Pick all units in (units within (Frost Nova AOE) of FrostNovaVictim, matching (((Owner of (Picked unit)) is an enemy to (Owner of (casting unit))) Equal to True)) and do (Unit - set life of (matching unit) to ((life of matching unit)) - (whatever)))
07-17-2003, 08:59 PM#14
Zifnab
I thought there was a trigger that can clear the cooldown of an ability on a unit. So just put the cooldown clearing trigger between the "Cast" and "Wait .01 seconds" loop.
That way the spell is actually cast multiple times and effects many units each time.
07-17-2003, 09:04 PM#15
Sinzar
use this trigger to cast nova 5 times (the original cast + 4 copies), it has the AE, and correct damage for level 1 frost nova, change the 50 ae damage in the trigger to 100 or 150 for level 2 or 3.

map with trigger included also so u can play with it.

nova
Events
Unit - A unit Is issued an order targeting an object
Conditions
(Issued order) Equal to (Order(frostnova))
Actions
Set NovaTarget = (Target unit of issued order)
For each (Integer A) from 1 to 4, do (Actions)
Loop - Actions
Wait 0.50 game-time seconds
Special Effect - Create a special effect at (Position of NovaTarget) using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Set SpecialEffectVariable[SpecialEffectInteger] = (Last created special effect)
Set SpecialEffectInteger = (SpecialEffectInteger + 1)
Unit - Set life of NovaTarget to ((Life of NovaTarget) - 100.00)
Unit Group - Pick every unit in (Units within 200.00 of (Position of NovaTarget) matching ((((Owner of (Matching unit)) is an ally of (Owner of (Ordered unit))) Equal to False) and (((Matching unit) is Mechanical) Equal to False))) and do (Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - 50.00))
For each (Integer A) from 0 to SpecialEffectInteger, do (Actions)
Loop - Actions
Special Effect - Destroy SpecialEffectVariable[(Integer A)]
Set SpecialEffectInteger = 0