HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Siren's Call.

08-11-2007, 03:06 AM#1
burningice95
So I'm making this spell...Siren's call. The premise is that units here the sirens beautifal song and run towards her, but when they get close enough they see her true nature (and are polymorphed). But for some reason the trigger only works about 10% of the time (or only polymorphs some units)

Trigger:
Sirens Call
Collapse Events
Unit - A unit Begins channeling an ability
Collapse Conditions
(Ability being cast) Equal to Sirens Call
Collapse Actions
Set SirenCaster = (Casting unit)
Set SirenPost = (Position of (Casting unit))
Unit - Create 1 caster (Caster System) for (Owner of SirenCaster) at SirenPost facing Default building facing degrees
Set DummyCaster = (Last created unit)
Trigger - Turn on Sirens Call Taunt <gen>
Wait ((Real((Level of Sirens Call for SirenCaster))) x 3.00) seconds
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(Level of Sirens Call for SirenCaster) Greater than 1
Collapse Then - Actions
Wait ((Real((Level of Sirens Call for (Triggering unit)))) - 1.00) seconds
Else - Actions
Trigger - Turn off Sirens Call Taunt <gen>
Collapse Unit Group - Pick every unit in (Units in (Playable map area) matching (((Triggering unit) has buff Polymorph) Equal to True)) and do (Actions)
Collapse Loop - Actions
Unit - Remove Polymorph buff from (Triggering unit)
Custom script: call RemoveLocation(udg_Temp_Unit_post)
Custom script: call RemoveLocation(udg_SirenPost)

Initially off:
Trigger:
Sirens Call Taunt
Collapse Events
Time - Every 0.10 seconds of game time
Conditions
Collapse Actions
Unit - Order DummyCaster to Night Elf Mountain Giant - Taunt
Collapse Unit Group - Pick every unit in (Units within ((Real((Level of Sirens Call for SirenCaster))) x 350.00) of SirenPost) and do (Actions)
Collapse Loop - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(((Owner of (Picked unit)) is an enemy of (Owner of SirenCaster)) Equal to True) and (((Picked unit) has buff Polymorph) Equal to False)
Collapse Then - Actions
Set Temp_Unit_post = (Position of (Picked unit))
Unit - Create 1 caster (Caster System) for (Owner of SirenCaster) at Temp_Unit_post facing Default building facing degrees
Unit - Set level of Polymorph Sirens Call for (Last created unit) to (Level of Sirens Call for SirenCaster)
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Order (Last created unit) to Human Sorceress - Polymorph (Picked unit)
Unit - Remove (Last created unit) from the game
Else - Actions

The dummy caster has the polymorph & taunt abilities.
08-11-2007, 04:09 AM#2
PenguinEmperor
Did you check the cooldowns of the abilities and their capable targets? That could be the problem. Or, maybe change the max number of targets for both abilities to an insanley high neumber.
08-11-2007, 04:32 AM#3
ChaosWolfs
Instead of "Pick all units" try "Pick 1 Random unit from Unit group"

I am doing a bloodlust aura on a big map and it works nicely, except for the fact I have to find a decent way to remove it. But use "Pick all units from (1 random unit from unit group)".

ALSO -> Computer dummies don't work that well. Player-owned dummies or Neutral Passive work fine.
08-11-2007, 06:36 AM#4
burningice95
I dont see those fields for either of those spells, penguin (and taunt is already set to have a max of 100 units).

I tried what you said Chaos (neutral passive dummies, and the random unit thing), and neither of those worked.

This shouldn't be so complicated....
08-11-2007, 07:27 AM#5
botanic
1) are you using the correct polymorph?

2) there is no wait between taunt and poly o.0

3) is the unit possible out of range for poly?

4) where is Temp_Unit_post?

5) create the unit and set there lvl then do the pick every unit and have it cast poly on picked unit then after the loop remove the unit

6) make shure the cooldown on poly is 0 and the manacost is 0 as well as required lvl

7) do you ever have the unit learn poly? you cant set a lvl of an ability the caster doesnt have
08-11-2007, 10:08 AM#6
burningice95
I simplified it a bit (the caster had polymorph, but i decided adding it through triggers would be better, since i use the caster for other stuff). And I got rid of the constant taunt, since i didn't like it...

But it still doesn't work!!

Polymorph has 99999 range, 0 mana, 0 cd, allowed targets include enemy, non hero, hero, air, enemy, ground, organic.
Trigger:
Sirens Call
Collapse Events
Unit - A unit Begins casting an ability
Collapse Conditions
(Ability being cast) Equal to Sirens Call
Collapse Actions
Set SirenCaster = (Casting unit)
Set SirenPost = (Position of (Casting unit))
Trigger - Turn on Sirens Call Taunt <gen>
Wait ((Real((Level of Sirens Call for SirenCaster))) x 3.00) seconds
Wait ((Real((Level of Sirens Call for (Triggering unit)))) - 1.00) seconds
Trigger - Turn off Sirens Call Taunt <gen>
Collapse Unit Group - Pick every unit in (Units in (Playable map area) matching (((Triggering unit) has buff Polymorph) Equal to True)) and do (Actions)
Collapse Loop - Actions
Unit - Remove Polymorph buff from (Triggering unit)
Custom script: call RemoveLocation(udg_Temp_Unit_post)
Custom script: call RemoveLocation(udg_SirenPost)
Trigger:
Sirens Call Taunt
Collapse Events
Time - Every 1.00 seconds of game time
Conditions
Collapse Actions
Collapse Unit Group - Pick every unit in (Units within 800.00 of SirenPost) and do (Actions)
Collapse Loop - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(((Owner of (Picked unit)) is an enemy of (Owner of SirenCaster)) Equal to True) and (((Picked unit) has buff Polymorph) Equal to False)
Collapse Then - Actions
Set Temp_Unit_post = (Position of (Picked unit))
Unit - Create 1 caster (Caster System) for Neutral Passive at Temp_Unit_post facing Default building facing degrees
Unit - Add Polymorph Sirens Call to DummyCaster
Unit - Set level of Polymorph Sirens Call for DummyCaster to (Level of Sirens Call for SirenCaster)
Unit - Order DummyCaster to Human Sorceress - Polymorph (Picked unit)
Else - Actions
08-11-2007, 10:32 AM#7
Toink
You set the variable Temp_Unit_Post as the CASTER's position, then when you turn on the 2nd trigger it picks units within 800 of Temp_unit_post. Then you SET temp_unit_post to the position of the PICKED UNIT, that means the second time that trigger fires off, it will pick units within temp_unit_post, which is NOT at the location of the caster since you set it to a different position

Oh btw,

Trigger:
Unit Group - Pick every unit in (Units in (Playable map area) matching (((Triggering unit) has buff Polymorph) Equal to True)) and do (Actions)
Loop - Actions
Unit - Remove Polymorph buff from (Triggering unit)

You use Triggering Unit instead of Matching Unit.
08-11-2007, 10:40 AM#8
botanic
ok does nothing work or does it sometimes work or what?
08-11-2007, 07:14 PM#9
burningice95
@ Toink Lol, thats what I get for debugging at 3 am in the morning.

& No its still not working.

Sorry for keeping you waiting botanic...It was 5 am so I decided to go to sleep....

I guess it must be some sort of object editor problem, so i'll upload a map with the spell....

and here is the modified trigger code.

Trigger:
Sirens Call
Collapse Events
Unit - A unit Begins casting an ability
Collapse Conditions
(Ability being cast) Equal to Sirens Call
Collapse Actions
Set SirenCaster = (Casting unit)
Set SirenPost = (Position of (Casting unit))
Trigger - Turn on Sirens Call Taunt <gen>
Wait ((Real((Level of Sirens Call for SirenCaster))) x 3.00) seconds
Wait ((Real((Level of Sirens Call for SirenCaster))) - 1.00) seconds
Trigger - Turn off Sirens Call Taunt <gen>
Collapse Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) has buff Polymorph) Equal to True)) and do (Actions)
Collapse Loop - Actions
Unit - Remove Polymorph buff from (Triggering unit)
Custom script: call RemoveLocation(udg_SirenPost)

Trigger:
Sirens Call Taunt
Collapse Events
Time - Every 0.50 seconds of game time
Conditions
Collapse Actions
Collapse Unit Group - Pick every unit in (Units within ((Real((Level of Sirens Call for SirenCaster))) x 250.00) of SirenPost) and do (Actions)
Collapse Loop - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(((Owner of (Picked unit)) is an enemy of (Owner of SirenCaster)) Equal to True) and (((Picked unit) has buff Polymorph) Equal to False)
Collapse Then - Actions
Unit - Create 1 caster (Caster System) for Neutral Passive at SirenPost facing Default building facing degrees
Unit - Add Polymorph Sirens Call to DummyCaster
Unit - Set level of Polymorph Sirens Call for DummyCaster to (Level of Sirens Call for SirenCaster)
Unit - Order DummyCaster to Human Sorceress - Polymorph (Picked unit)
Else - Actions
Attached Files
File type: w3xSirens Calll.w3x (19.6 KB)
08-11-2007, 09:43 PM#10
ChaosWolfs
Heh.
Found the error.

You forgot this.

Trigger:
Set DummyCaster = (Last created unit)
08-11-2007, 10:11 PM#11
burningice95
duuuuuuuuuuurh.

It works now. Thanks guys :)