HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Aoe spells

09-03-2004, 09:28 PM#1
andrewandrew
i wasnt sure where to post this question so i will put it here..
i wanted to know if you could make a single target spell (lets say.. holy light, death coil, entangling roots) hit multiple units with the blizzard circle thing so you know where and what units are gonna be affected. If you didnt understand what i typed please say so.. thanks if you could help...
09-03-2004, 09:45 PM#2
AFB-DieHard
maybe you could use blizzard or another AoE spell and just change the buff to what you want
09-03-2004, 10:23 PM#3
-={tWiStÄr}=-
I'm not quite sure how people do it... but i guess they base it off blizzard, then make a dummy unit and make it cast the spell on each unit that was in the blizzard.
09-03-2004, 10:30 PM#4
Milkman
I would do the following:
Base it off Infernal, spawn a dummy caster at pos of striking,
Pick Units in range of unit matching your conditions.
Use some cool missile effect by borrowing functions from the caster system.
Use damage unit from caster system OR wait for 1.17 which will have this.
09-04-2004, 01:25 AM#5
Grater
Heres how I would do it:
Base the ability off Inferno.
Got to "Targets Allowed" field and press shit-enter, type "none" - now the base ability will effect no units.
Set the impact delay to 0.
Set the duration to 1.
All other fields are rendered moot by the "none" targets allowed. But ofcourse set mana and cooldown as desired.

Make the summoned unit type "Hidden Caster" - Hidden Caster should be a copy of flying sheep, optionally with flying height and min flying height set to 0.

Now make the single-target ability that will actually be cast, like make a copy of entangling roots and set cooldown and mana to 0.



Now make a trigger exactly like this:
Code:
Mass Root
    Events
        Unit - A unit Spawns a summoned unit
    Conditions
        (Unit-type of (Summoned unit)) Equal to Hidden Caster
    Actions
        Unit - Add Root  to (Summoned unit)
        Unit Group - Pick every unit in (Units within 250.00 of (Position of (Summoned unit))) and do (Actions)
            Loop - Actions
                Unit - Make (Summoned unit) face (Picked unit) over 0.00 seconds
                Unit - Order (Summoned unit) to Night Elf Keeper Of The Grove - Entangling Roots (Picked unit)
       Unit - Remove (Summoned unit) from the game

As long as you follow my instructions, this method works flawlessly for nearly all abilities, it's all in GUI and only leaks 1 location with each cast.
09-04-2004, 01:40 AM#6
Grater
The above example is the one I feel is easiest to understand. Now here is a better version.
It uses two variables:
Unit - HiddenCaster
Point - TempLoc
At startup create a unit that will cast the spells:
Code:
Init Hidden Caster
    Events
        Map initialization
    Conditions
    Actions
        Unit - Create 1 Flying Sheep for Neutral Passive at (Center of (Playable map area)) facing Default building facing degrees
        Unit - Hide (Last created unit)
        Set HiddenCaster = (Last created unit)
(Default flying sheep works just fine, unless you want to change the flying height so the spell projectiles appear to come from ground level)

Now to make a spell, lets base it off silence this time. Go to targets allowed, and again enter "none", rename it to "Mass Root", chance the effect blah blah blah.

Now to cast the spell, we first change the owner of HiddenCaster to the owner of casting unit - this is so the correct player gets the kills and so on. Next we add the ability to HiddenCaster. Then we move HiddenCaster to the center of the casting area, pick every nearby unit, and order HiddenCaster to root em, if they are friendly, mechanical or whatever the root just fails. Easy, no "matching condition" required. Wrapping up, we remove the "Root" ability from Hidden Caster, why? In case you want to use multiple roots, say short root that roots for 5 seconds, and long root that roots for 20 seconds. If the HiddenCaster had both roots at once, it wouldn't know which one to use. Finally, we prevent the location from leaking.
Code:
Mass Root 2
    Events
        Unit - A unit Begins casting an ability
    Conditions
        (Ability being cast) Equal to Mass Root
    Actions
        Set TempLoc = (Target point of ability being cast)
        Unit - Change ownership of HiddenCaster to (Owner of (Casting unit)) and Change color
        Unit - Add Root  to HiddenCaster
        Unit - Move HiddenCaster instantly to TempLoc
        Unit Group - Pick every unit in (Units within 250.00 of TempLoc) and do (Actions)
            Loop - Actions
                Unit - Make HiddenCaster face (Picked unit) over 0.00 seconds
                Unit - Order HiddenCaster to Night Elf Keeper Of The Grove - Entangling Roots (Picked unit)
        Unit - Remove Root  from HiddenCaster
        Custom script:   call RemoveLocation(udg_TempLoc)

This is the method I use for all single-target -> AoE spells, ofcourse I usually write the triggers in raw JASS, but it works damn near as well in GUI!
09-04-2004, 04:10 AM#7
andrewandrew
Quote:
Originally Posted by Grater
The above example is the one I feel is easiest to understand. Now here is a better version.
It uses two variables:
Unit - HiddenCaster
Point - TempLoc
At startup create a unit that will cast the spells:
Code:
Init Hidden Caster
    Events
        Map initialization
    Conditions
    Actions
        Unit - Create 1 Flying Sheep for Neutral Passive at (Center of (Playable map area)) facing Default building facing degrees
        Unit - Hide (Last created unit)
        Set HiddenCaster = (Last created unit)
(Default flying sheep works just fine, unless you want to change the flying height so the spell projectiles appear to come from ground level)

Now to make a spell, lets base it off silence this time. Go to targets allowed, and again enter "none", rename it to "Mass Root", chance the effect blah blah blah.

Now to cast the spell, we first change the owner of HiddenCaster to the owner of casting unit - this is so the correct player gets the kills and so on. Next we add the ability to HiddenCaster. Then we move HiddenCaster to the center of the casting area, pick every nearby unit, and order HiddenCaster to root em, if they are friendly, mechanical or whatever the root just fails. Easy, no "matching condition" required. Wrapping up, we remove the "Root" ability from Hidden Caster, why? In case you want to use multiple roots, say short root that roots for 5 seconds, and long root that roots for 20 seconds. If the HiddenCaster had both roots at once, it wouldn't know which one to use. Finally, we prevent the location from leaking.
Code:
Mass Root 2
    Events
        Unit - A unit Begins casting an ability
    Conditions
        (Ability being cast) Equal to Mass Root
    Actions
        Set TempLoc = (Target point of ability being cast)
        Unit - Change ownership of HiddenCaster to (Owner of (Casting unit)) and Change color
        Unit - Add Root  to HiddenCaster
        Unit - Move HiddenCaster instantly to TempLoc
        Unit Group - Pick every unit in (Units within 250.00 of TempLoc) and do (Actions)
            Loop - Actions
                Unit - Make HiddenCaster face (Picked unit) over 0.00 seconds
                Unit - Order HiddenCaster to Night Elf Keeper Of The Grove - Entangling Roots (Picked unit)
        Unit - Remove Root  from HiddenCaster
        Custom script:   call RemoveLocation(udg_TempLoc)

This is the method I use for all single-target -> AoE spells, ofcourse I usually write the triggers in raw JASS, but it works damn near as well in GUI!

i like how you explain everything slowly, btw yes it did work and thanks alot!!! I never thought making a spell would be THAT complicated but thanks again!
09-04-2004, 12:29 PM#8
BuRnInSpartan
Quote:
Originally Posted by Grater
The above example is the one I feel is easiest to understand. Now here is a better version.
It uses two variables:
Unit - HiddenCaster
Point - TempLoc
At startup create a unit that will cast the spells:
Code:
Init Hidden Caster
    Events
        Map initialization
    Conditions
    Actions
        Unit - Create 1 Flying Sheep for Neutral Passive at (Center of (Playable map area)) facing Default building facing degrees
        Unit - Hide (Last created unit)
        Set HiddenCaster = (Last created unit)
(Default flying sheep works just fine, unless you want to change the flying height so the spell projectiles appear to come from ground level)

Now to make a spell, lets base it off silence this time. Go to targets allowed, and again enter "none", rename it to "Mass Root", chance the effect blah blah blah.

Now to cast the spell, we first change the owner of HiddenCaster to the owner of casting unit - this is so the correct player gets the kills and so on. Next we add the ability to HiddenCaster. Then we move HiddenCaster to the center of the casting area, pick every nearby unit, and order HiddenCaster to root em, if they are friendly, mechanical or whatever the root just fails. Easy, no "matching condition" required. Wrapping up, we remove the "Root" ability from Hidden Caster, why? In case you want to use multiple roots, say short root that roots for 5 seconds, and long root that roots for 20 seconds. If the HiddenCaster had both roots at once, it wouldn't know which one to use. Finally, we prevent the location from leaking.
Code:
Mass Root 2
    Events
        Unit - A unit Begins casting an ability
    Conditions
        (Ability being cast) Equal to Mass Root
    Actions
        Set TempLoc = (Target point of ability being cast)
        Unit - Change ownership of HiddenCaster to (Owner of (Casting unit)) and Change color
        Unit - Add Root  to HiddenCaster
        Unit - Move HiddenCaster instantly to TempLoc
        Unit Group - Pick every unit in (Units within 250.00 of TempLoc) and do (Actions)
            Loop - Actions
                Unit - Make HiddenCaster face (Picked unit) over 0.00 seconds
                Unit - Order HiddenCaster to Night Elf Keeper Of The Grove - Entangling Roots (Picked unit)
        Unit - Remove Root  from HiddenCaster
        Custom script:   call RemoveLocation(udg_TempLoc)

This is the method I use for all single-target -> AoE spells, ofcourse I usually write the triggers in raw JASS, but it works damn near as well in GUI!


Shouldn't you make the sheep invulnerable? b/c spells like blizzard would hurt it. and also give it locust and take off wander
09-04-2004, 10:54 PM#9
Grater
A hidden unit cannot be targeted by anything. Wander doesn't matter. Hidden is the more powerful version of locust.