HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Help Please!

09-07-2003, 02:50 AM#1
futuraonline
I put this under map dev but no one answered so ill give it a shot here, the message was as follows:

What I am trying to make is an abiliy so that when its castes it will generate flamestrikes starting from a targeted point and in a spiral motion will continue to radiate out in that spiral motion while makinging a perm deformation to the ground and causeing a small ripple on each flamestrike/explotion that goes off. Also I need to figure out if I can make it so that when the flamestrike goes off in that area that it only hurts people in that area not the enite area where it will go off. just where the graphic is going off at that given point.

Also need help with another one :) Trying to make it so a phoenix will go in a given path (prob a large circle) and while going in that path drop Phoenix Eggs which when they hit the ground will Explode with an effect and once again do perment damage to the ground :)
09-07-2003, 03:08 AM#2
mikedogdude
Ok, for the first spell do something like this. Make 3 variables. 2 would be real variables. 1 would be a point. I dont know if you want this to be a spell you target a point or one like war stomp.

The first trigger would detect when the person uses the ability.
When the person uses the ability you would do a few things.

Set the variables.
PointX = either the position of the casting unit or the target of the ability, however you want this cast.
AngleX = 0
DistanceX = 0
Then
Then turn off (this trigger)
and turn on the second trigger.

Second Trigger.

Every .5 seconds (most of these numbers will have to be adjusted to fit how you want your ability)

Set AngleX = AngleX + 5 (you will probobly adjust this)

Set DistanceX= DistanceX + 20 (you will probobly adjust this)

If AngleX is greater than 360 then set AngleX = AngleX - 360
(this may not be necassary but im not sure how wc3 does angles)
Else nothing.

Create special effect (whatever sfx you want) at (point with polar offset (PointX offset by DistanceX towards AngleX))

Pick every unit within 100 of (point with polar offset (PointX offset by DistanceX towards AngleX)) and set health to (Units Health - However much you want)

If Then Else Multiple Functions
If DistanceX is greater than 600 (youll have to adjust this to what area you want the spell to have) Then turn off this trigger and turn on First trigger. Else Nothing.
09-07-2003, 03:13 AM#3
mikedogdude
Oops I forgot about damaging the ground. I forget the exact trigger, ive never used it. But theres an action that deforms the ground. It will look something like this:

(whatever the deformation action is, you should see it in the list) at (point with polar offset (PointX offset by DistanceX towards AngleX))
09-07-2003, 04:12 AM#4
futuraonline
Thanks so much for all you have done with this one but I do have a few problems, first off I posted my script so u can see what I have done but then I got some questions :)

First Trigger:

setup
Events
Unit - A unit Begins casting an ability
Conditions
(Unit-type of (Casting unit)) Equal to Archmage
(Ability being cast) Equal to Blizzard
Actions
Set spell_caster = (Casting unit)
Set PointX = (Position of spell_caster)
Set AngleX = 0.00
Set DistanceX = 0.00
Trigger - Turn off (This trigger)
Trigger - Turn on target <gen>

Second Trigger:

target
Events
Time - Every 0.75 seconds of game time
Conditions
Actions
Set AngleX = (AngleX + 40.00)
Set DistanceX = (DistanceX + 50.00)
If (AngleX Greater than 360.00) then do (Set AngleX = (AngleX - 360.00)) else do (Do nothing)
Special Effect - Create a special effect at (PointX offset by DistanceX towards AngleX degrees) using Abilities\Spells\Human\FlameStrike\FlameStrike1.mdl
Environment - Create a 0.50 second Permanent crater deformation at (PointX offset by DistanceX towards AngleX degrees) with radius 100.00 and depth 64.00
Environment - Create a 4.00 second Depression ripple deformation at (PointX offset by DistanceX towards AngleX degrees) with starting radius 100.00, ending radius 200.00, and depth 64.00, using 1.00 second ripples spaced 50.00 apart
Unit Group - Pick every unit in (Units within 100.00 of ((Center of (Playable map area)) offset by DistanceX towards AngleX degrees)) and do (Unit - Set life of (Targeted unit) to ((Life of (Triggering unit)) - 100.00))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
DistanceX Greater than 1600.00
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
Do nothing
__________________________________________________

Okie that is what I got but my problem is. First off I cant get the damage part to work, I know I did somehtign wrogn I jsut cant figure out how to fix it emote_sweat . Second as the effect goes around the spaceing between the flamestrikes gets larger so by the time its at its max radius its about 300-400 appart (I would like to find a way to keep spaceing the same so if the nuke is 100 wide i need the spaceing 150 appart from center so that jsut the edges touch. Therd the ripple I put in the group seems to go off before the Fire ever hits (I guess I can solve by just puttign a .5 second pause or something. Forth when the map starts up for some strange reason it automaticly casts the spell in the center of the map for some god forsaken reason. Last When I go to cast spell again the special effect doesnt work at all..... Please help and if you got any idea for the second trigger I talked about above with the phoenix that would be great :ggani:
09-07-2003, 04:22 AM#5
mikedogdude
You probobly didnt notice, but i edited my original post. In the last IfThenElseMultFunc you need to add "Turn on (first trigger)"

As for the health, you have to put:

Unit Group - Pick every unit in (Units within 100.00 of ((Center of (Playable map area)) offset by DistanceX towards AngleX degrees)) and do (Unit - Set life of (Picked Unit to ((Life of (Picked unit)) - 100.00))

You have to use picked unit instead of targeted and triggering unit. The triggering unit would be the archmage and there is no targeted unit.

For the spacing, youll probobly have to do some math so that each time when you set AngleX = AngleX+X The X gets smaller each time.
Not sure exaclty how, im thinking of a formula now.
09-07-2003, 04:27 AM#6
mikedogdude
Ok, i was trying to think of a complex formula, but i guess a simple one will work. A few changes:

In the first trigger add another action

Set VarX (a real variable) = 40

In the second trigger change it to

Set AngleX = AngleX+VarX

Then add one more action.

Set VarX = VarX-1 (youll have to adjust this until you get it to work how you want)
09-07-2003, 04:38 AM#7
futuraonline
Well adding the VarX totaly messes it up as it goes along, I attached map so you can see what I mean. Also the damage still doesnt work with "picked unit" and the effect still goes off in the center of the map when the map starts