HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Spell Idea: Face lift for Carrion Swarm

06-01-2004, 02:29 PM#1
Unsung Hero
I was thinking of an idea for Carrion Swarm, but I don't know where to start. This spell will require the use of triggers, I'm sure, and I have limited experience there.

I want the spell to work like Locust Swarm + Blink + Life Drain in one. The idea is that when the Dread Lord casts the spell, he turns into a swarm of bats that move through and attack enemy targets in the directed path. A portion of the damage dealt would be absorbed and given to the DL to restore health.

Is this possible to make? I figure it'd be very complicated, so if you guys can't help I understand. It's a lot to ask for help on something like this. Thanks.
06-01-2004, 03:34 PM#2
ChinShu
Quote:
Originally Posted by Unsung Hero
I was thinking of an idea for Carrion Swarm, but I don't know where to start. This spell will require the use of triggers, I'm sure, and I have limited experience there.

I want the spell to work like Locust Swarm + Blink + Life Drain in one. The idea is that when the Dread Lord casts the spell, he turns into a swarm of bats that move through and attack enemy targets in the directed path. A portion of the damage dealt would be absorbed and given to the DL to restore health.

Is this possible to make? I figure it'd be very complicated, so if you guys can't help I understand. It's a lot to ask for help on something like this. Thanks.

This is possible and I've made it! ;)

Here is the trigger:


Event:
Unit - A unit begins casting an ability

Condition:
(Ability being cast) Equal to Carrion Swarm

Action:
Wait - 0.5 seconds(Since you need to wait for the Dread lord to do his casting animation)

Special Effect - Create a special effect attached to the origin of (Casting Unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl

Unit - Move (Casting unit) instantly to (Target point of ability being cast)

Wait - 0.5 seconds

Unit - Set life of (Casting unit) to ((Life of (Casting unit) + x)

x = However many HP you want the Dreadlord to regain back.


You may need to change some of the wait values. But other then that, the spell should work like you described.

Hope this helps. :D
06-01-2004, 07:06 PM#3
linkmaster23
Quote:
Originally Posted by ChinShu
This is possible and I've made it! ;)

Here is the trigger:


Event:
Unit - A unit begins casting an ability

Condition:
(Ability being cast) Equal to Carrion Swarm

Action:
Wait - 0.5 seconds(Since you need to wait for the Dread lord to do his casting animation)

Special Effect - Create a special effect attached to the origin of (Casting Unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl

Unit - Move (Casting unit) instantly to (Target point of ability being cast)

Wait - 0.5 seconds

Unit - Set life of (Casting unit) to ((Life of (Casting unit) + x)

x = However many HP you want the Dreadlord to regain back.


You may need to change some of the wait values. But other then that, the spell should work like you described.

Hope this helps. :D
Your trigger is flawed. You need to do something to give exp and gold when they die from the spell. You have three solutions, one make the spell bring the unit down to a minimum of 1 HP, or kill the unit with an invisable dummy and add the life that way, or finally, just kill the unit, add it's point value to the heros EXP, and add teh gold manually. Your best bet is to set up a trigger like so...

Quote:
If HP of Target Unit is Less than 50
Then
Create one dummy killer and order dummy kill to attack once Target Unit
Wait .50 Game-Time seconds
REmove last created unit
Else
Set unit life of Target unit to -50.

That's a bad way, the best way is just to make the dummy unit deal the damage all the time, then just detect how much damage was given and add it to the hero. Hope it helped. :) Good Luck!
06-01-2004, 07:21 PM#4
ChinShu
Quote:
Originally Posted by linkmaster23
Your trigger is flawed. You need to do something to give exp and gold when they die from the spell. You have three solutions, one make the spell bring the unit down to a minimum of 1 HP, or kill the unit with an invisable dummy and add the life that way, or finally, just kill the unit, add it's point value to the heros EXP, and add teh gold manually. Your best bet is to set up a trigger like so...



That's a bad way, the best way is just to make the dummy unit deal the damage all the time, then just detect how much damage was given and add it to the hero. Hope it helped. :) Good Luck!

I don't understand why you need to have the unit killed or brought down to a minimum of 1 HP... :\

The Dreadlord casts the spell, then the spell hits the enemies, doing dmg, then the the Dreadlord beams to the place where he casted it and gets HP for it.
06-01-2004, 07:24 PM#5
linkmaster23
What if the move kills the unit? Where's the exp and gold? NO where! That's the biggest problem with Triggered Spells, when you killa unit through triggers, you don't get bounty. :(
06-01-2004, 08:04 PM#6
ChinShu
Quote:
Originally Posted by linkmaster23
What if the move kills the unit? Where's the exp and gold? NO where! That's the biggest problem with Triggered Spells, when you killa unit through triggers, you don't get bounty. :(

Ooooooooooooooooooooooooooooooooooh o_O

I get it now. ^_^
06-01-2004, 08:52 PM#7
Das Jank
Thats true link but hes not killing the units with triggers, the hero casts carrion swarm and it damages the unit so he will gain gold and exp, the only thing the trigger is doing it moving the hero and giving life to the hero.
06-01-2004, 09:25 PM#8
linkmaster23
No, I'm pretty sure the hero is BECOMING the Swarm, and it takes more than 2.5 seconds for the move to finish. :)
06-01-2004, 09:27 PM#9
Milkman
Yes, And if there was a good way to count damage you could make the life drain proportionable to the number of units hit. Alos it would be cool if the DL transformed into a bat and flew with the swarm. That would be quite awsome indeed.
06-01-2004, 10:08 PM#10
Xinlitik
One sloppy way that I can think of is create a flying bat unit that goes through with the swarm, with the dreadlord hidden, and every .1 seconds pick every unit around him and subtract life from them, while adding to a variable. So, for example, set life to life - 15, set variable = variable + 15. Then at the end of the spell, move and unhide the dreadlord and add variable life to him.
06-01-2004, 10:11 PM#11
linkmaster23
Remember Xintilik, you can't subtract health like that... :P
06-01-2004, 10:19 PM#12
Milkman
Cant you, store the life of the unit in a real array and then set the array to life = life -15 and then set the units hp to that?
06-02-2004, 12:25 AM#13
Pyrus
Here's my 4 cents:
Have an ability based on Carrion Swarm that does exactly what carrion swarm does. The carrion swarm is the ability that does all damage and killing like it normally would.

Then you have the following triggers. I took these from a spell i did before.
Code:
E: Unit - A unit Starts the effect of an ability
C: (Ability being cast) Equal to Carrion Swarm
A: Set TargetPoint = (Target point of ability being cast)
    Set TargetAngle = (Angle from (Position of (Casting unit)) to TargetPoint)
    If (TargetAngle Less than 0.00) then do (Set TargetAngle = (TargetAngle + 360.00)) else do (Do nothing)

Code:
E: Unit - A unit Finishes casting an ability
C: (Ability being cast) Equal to Carrion Swarm
A: Unit - Hide (Casting unit)
    Unit - Move (Casting unit) instantly to ((Position of (Casting unit)) offset by 1000.00 towards TargetAngle degrees)
    Wait 0.20 game-time seconds
    Unit - Unhide (Casting unit)
    Selection - Select (Casting unit)

If you just use "move totarget point of ability being cast", the hero wont nessecarily be moved to the end of the wave. You may have to add in special effects, additional waits, and I didnt include the life regen.
06-02-2004, 12:38 AM#14
Luzif3r
someone on the tob forums did this already. it was a vampire hero and it worked flawless.
06-02-2004, 01:03 AM#15
Xinlitik
Quote:
Remember Xintilik, you can't subtract health like that... :P

Yes...you can.. :>

Code:
Trigger
    Events
    Conditions
    Actions
        Set Variable = 0
        Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
            Loop - Actions
                Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - 15.00)
                Set Variable = (Variable + 15.00)
        Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) + Variable)

I dont see what the problem here is...