HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Fearie Fire

05-05-2007, 01:10 PM#1
DarthRevansith
Is there a way of making Feari Fire stack with itself ? like when you cast twice on the same unit it´s armor will reduce again, but the time doesn´t "resset", so the first cast ends and his armor is partially given back, but the second cast is still there... is there a way to do it ?
05-05-2007, 01:16 PM#2
Castlemaster
The way I would do it

One trigger: Detects when faerie fire (1) is cast. If unit has buff faerie fire (1), then dummy cast a faerie fire (2) with increased armor. This of course would reset the timer, so I would give faerie fire (2) several levels with differing duration. Once that is done, correspond the correct level of faerie fire (2) (ie, duration of faerie fire (2)) with the remaining duration of faerie fire (1).

Second trigger: when faerie fire (2) expires, dummy cast faerie fire (1) with appropriate duration (again, make faerie fire (1) have differing durations by giving it several levels)

At this point is the only way I can think to do it.
05-05-2007, 01:28 PM#3
DarthRevansith
i think i got the idea but your post is very confusing.. but thanks, anyway. can´t you make a trigger in
Trigger:
trigger
-tag ?
05-05-2007, 02:25 PM#4
Castlemaster
Ok I'll clarify

First, lets designate our spell faerie fire (1) and faerie fire (2). (2) is the stacked effect, while (1) is the unstacked effect. If your faerie fire (1) lasts 10 seconds, make it have 10 or 20 levels, where the only difference in levels is duration. Level 1 = 10 seconds, level 2 = 9 seconds, level 3 = 8 seconds, etc. Do the same with faerie fire (2)

Make this trigger for the stack effect
Trigger:
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Faerie Fire (1)
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Triggering unit) has buff Faerie Fire (1)) Equal to True
Collapse Then - Actions
-------- Find out how much time was left on Faerie Fire (1) buff --------
Unit - Create 1 Dummy Caster for (Owner of (Casting unit)) at (Position of (Target unit of ability being cast)) facing Default building facing degrees
Unit - Add Faerie Fire (2) to (Last created unit)
Unit - Set level of Faerie Fire (2) for (Last created unit) to FaerieFireDuration
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Else - Actions

Since you do not want it to refresh the duration, that adds the problem of making it last as long as the current duration, hence the "Find out how much time was left on faerie fire (1)"

If faerie fire (2) has a shorter buff duration than faerie fire (1) then you have to add a trigger to recast faerie fire (1) after faerie fire 2 expires. If you want this you would trigger it like this.
Trigger:
Collapse Events
Time - Every 0.50 seconds of game time
Collapse Conditions
(FaerieFireTarget has buff Faerie Fire) Equal to False
Collapse Actions
Unit - Create 1 Dummy Caster for (Owner of (Casting unit)) at (Position of FaerieFireTarget) facing Default building facing degrees
Unit - Add Faerie Fire (2) to (Last created unit)
Unit - Set level of Faerie Fire (2) for (Last created unit) to FaerieFireDuration
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire FaerieFireTarget

Hope that clears things up.
This may not be the best way, but it's one method.
05-05-2007, 03:45 PM#5
PsychoPif
IMHO, I would make the second cast reset the duration, it would be much easier to do and would'nt take much from the gameplay. Why make it stack if most of the time, it's only going to count one cast.

Again, it's your spell, just I thought I would share my point of view :)
05-05-2007, 06:49 PM#6
DarthRevansith
ok... i´ve changed my mind..... it is much harder to make it to have different duration and it won´t affect that much the gameplay... so you guys can simplify it to work norma, ressenting the duration at each cast.
05-05-2007, 08:07 PM#7
DarthRevansith
I tried something and it DOESN´T WORK. i´m so angry. evrything i try to make in my own doesn´t work. I created 6 abilities called blood crush ( modified feari fire). and i created 6 buffs based on feari fire the only difference is the name. So when the unit casts the spell, blood cruch (1) [ buff] is aplied to the target. so i made a trigger to check if buff 1 is already aplied to the unit, if it is so the dummy will cast blood crush (2), reducing armor by more 1 point and aplying the second buff, and so on:

Trigger:
BloodCrush1
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Blood Crush
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff Blood Crush (1)) Equal to True
Collapse Then - Actions
Set BCrushPoint = (Position of (Casting unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Casting unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (2) to (Last created unit)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions

Trigger:
BloodCrush2
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Blood Crush
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff Blood Crush (2)) Equal to True
Collapse Then - Actions
Set BCrushPoint = (Position of (Casting unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Casting unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (3) to (Last created unit)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions

Trigger:
BloodCrush3
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Blood Crush
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff Blood Crush (3)) Equal to True
Collapse Then - Actions
Set BCrushPoint = (Position of (Casting unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Casting unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (4) to (Last created unit)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions

Trigger:
BloodCrush4
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Blood Crush
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff Blood Crush (4)) Equal to True
Collapse Then - Actions
Set BCrushPoint = (Position of (Casting unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Casting unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (5) to (Last created unit)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions

Can someone help me to correct this ? and by the way.... i don´t know why my icon has a green square ( custom icon), when the upgrade that let you use the ability hasn´t been researched, the ability has BTN,DISBTN,PAS and DISPAS !!! why is it happening ?
05-05-2007, 08:39 PM#8
Dil999
If the stuff your working on isnt working, lower the complexity of your spells. I, personally, started making spells using Polar Offset, creating units and killing them, in order to do damage.
You have to know some basic math for that, though.
05-05-2007, 08:50 PM#9
DarthRevansith
I just wanna reduce the guys armor by 1 at each cast... is it that , resseting the coldown.... is it that hard ? wy isný my triggers working ? what about the icon ? no one answerd me
05-05-2007, 09:29 PM#10
tamisrah
Your trigger works fine except the case that someone casts the ability on a unit that already has the buff on level 5.

If thats not your problem than you must have done something wrong on the abilities.
05-05-2007, 09:51 PM#11
Pyrogasm
Fist off, you can condense all that into 1 trigger by using an Integer A loop and an array variable. To do this, make 1 dummy ability with 6 levels instead of 6 with 1 level. Next, create an array variable of type "Buff", and in another trigger do this:
Trigger:
Collapse Events
Map Initialization
Conditions
Collapse Actions
Set BloodCrushBuffs[1] = Blood Crush (1)
Set BloodCrushBuffs[2] = Blood Crush (2)
Set BloodCrushBuffs[3] = Blood Crush (3)
Set BloodCrushBuffs[4] = Blood Crush (4)
Set BloodCrushBuffs[5] = Blood Crush (5)
Then, change your existing BloodCrush trigger to the following:
Trigger:
BloodCrush
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Blood Crush
Collapse Actions
Collapse For each (Integer A) from 1 to 5 do (Actions)
Collapse Loop - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff (BloodCrushBuffs[(Integer A)]) Equal to True
Collapse Then - Actions
Set BCrushPoint = (Position of (Triggering unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Triggering unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (Dummy) to (Last created unit)
Unit - Set level of Blood Crush (Dummy) for (Last created unit) to ((Integer A) + 1)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Collapse Else - Actions
If (All conditions are true) then do (Then actions) else do (Else actions)
Collapse If - Conditions
(Integer A) equal to 6
Collapse Then - Actions
Set BCrushPoint = (Position of (Triggering unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Triggering unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (Dummy) to (Last created unit)
Unit - Set level of Blood Crush (Dummy) for (Last created unit) to (6)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions
That last If/Then/Else is just to check to see if it's already applied 4 times; if it is, it will refresh the duration by re-casting level 6 of the ability.
05-05-2007, 10:18 PM#12
DarthRevansith
ill try it... but what syze must be the array ?
05-05-2007, 10:38 PM#13
Pyrogasm
It doesn't actually matter. For any array variable, all the "Array size" box does is initialize the specific numbers with the default value. This is so that you don't get invalid returns, but as long as you are sure to set the variables equal to something before referencing them, you should be fine.


To be safe, you could make it size "5".
05-05-2007, 10:43 PM#14
DarthRevansith
i made it syze 5, and i erased all the abilities and kept only 2, modifying one to be the dummy with 6 levels and the other one the castable with no armor reduction and 0.01 sec duration ( but i´ve kept the buff blood crush 1 ) to the ability... then i copied your triggers..... and take a gues !!?!?!?!? they didn´t work, evrything doesn´t work for me ........ the target didnt even -1 armor in all the casts.... i casted for 3 times and all the casts nothing heppend to him ...
take a look if evrything is fine
Trigger:
bloodcrush
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Blood Crush
Collapse Actions
Collapse For each (Integer A) from 1 to 5, do (Actions)
Collapse Loop - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff BloodCrushBuffs[(Integer A)]) Equal to True
Collapse Then - Actions
Set BCrushPoint = (Position of (Triggering unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Triggering unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (dummy) to (Last created unit)
Unit - Set level of Blood Crush (dummy) for (Last created unit) to ((Integer A) + 1)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Collapse Else - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff BloodCrushBuffs[(Integer A)]) Equal to True
Collapse Then - Actions
Set BCrushPoint = (Position of (Triggering unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Triggering unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (dummy) to (Last created unit)
Unit - Set level of Blood Crush (dummy) for (Last created unit) to 6
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions
05-06-2007, 06:27 AM#15
Pyrogasm
Whoops. I forgot 1 If/Then/Else, and your nested If/Then/Else had an incorrect condition. Add this line to the variable-setting trigger: Set BloodCrushBuffs[6] = Blood Crush (6)

The trigger should be this:
Trigger:
bloodcrush
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Blood Crush
Collapse Actions
Collapse For each (Integer A) from 1 to 5, do (Actions)
Collapse Loop - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff BloodCrushBuffs[(Integer A)]) Equal to True
Collapse Then - Actions
Set BCrushPoint = (Position of (Triggering unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Triggering unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (dummy) to (Last created unit)
Unit - Set level of Blood Crush (dummy) for (Last created unit) to ((Integer A) + 1)
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Collapse Else - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Target unit of ability being cast) has buff BloodCrushBuffs[6]) Equal to True
----- The above condition was wrong in your trigger -----
Collapse Then - Actions
Set BCrushPoint = (Position of (Triggering unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Triggering unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (dummy) to (Last created unit)
Unit - Set level of Blood Crush (dummy) for (Last created unit) to 6
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Collapse Else - Actions
----- I forgot to put these in -----
Set BCrushPoint = (Position of (Triggering unit))
Unit - Create 1 DarthRevan dummy for (Owner of (Triggering unit)) at BCrushPoint facing Default building facing degrees
Custom script: call RemoveLocation(udg_BCrushPoint)
Unit - Add Blood Crush (dummy) to (Last created unit)
Unit - Set level of Blood Crush (dummy) for (Last created unit) to 1
----- Note the number in the above line; this ensures that the unit will get the level 1 buff -----
Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Faerie Fire (Target unit of ability being cast)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)