• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Chain Heal

Status
Not open for further replies.
Level 34
Joined
Sep 6, 2006
Messages
8,873
Is there a way to check for units targeted by Healing Wave? I want to have healing wave heal, then put rejuvenation on each unit. I can only get the rejuv on the first unit hit. Anyone know how to do this?
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
Trigger the whole chainspell... Like choosing a random unit from allied units within range of the targetted unit, then cast a dummy rejuvenation on him. Create a healing wave lightning effect. Then remove the new target from the picked unit group, then repeat the process until you targetted everyone in the unit group or the maximum allowed targets...
 
Level 34
Joined
Sep 6, 2006
Messages
8,873
Slightly confusing Eleandor. I have no clue how I would remove the new target from the picked unit group. I'll try GW's than yours if need be.

Thanks guys.
 
Level 34
Joined
Sep 6, 2006
Messages
8,873
Sorry about the double post, but I have no clue how to check if a unit has a buff on it.
 
Level 34
Joined
Sep 6, 2006
Messages
8,873
I always forget to check under boolean conditions. I need to thoroughly go through them all. Thanks.
 
Level 34
Joined
Sep 6, 2006
Messages
8,873
Double post, sorry.

I still can't get this to work. This is what I have right now (fix the location leak later).

  • Chain Heal
    • Events
      • Map initialization
    • Conditions
      • ((Matching unit) has buff Chain Heal ) Equal to True
    • Actions
      • Unit - Create 1 Dummyunit for Player 1 (Red) at (Position of (Target unit of ability being cast)) facing Default building facing degrees
      • Unit - Add Rejuv to (Last created unit)
      • Unit - Order (Last created unit) to Night Elf Druid Of The Claw - Rejuvenation (Target unit of ability being cast)
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
I added a Chain Buff to Healing Wave, but it won't stay on. I may try and use something like spirit link to do this. Trigger both the heal and the over-time heal.
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
"Map initialization" means this trigger will run before the map started.
If you do it this way, you'd need to do a time event like every 0.05.

"((Matching unit) has buff Chain Heal ) Equal to True"
There is no matching unit here, you'll need to pick every unit that is matching - matching unit has buff.

Anyway, maybe you'll just prefer making the heal itself triggerd, its pretty easy.
 
Level 5
Joined
Aug 23, 2007
Messages
141
Use the basic heal spell. Set a trigger so that when you cast heal, a dummy unit casts rejuvenation, and a second dummy unit casts heal2 on a random allied unit. Set a trigger so that when a unit casts heal2, a dummy unit casts rejuvenation2, den another dummy casts heal3. Set another trigger so that when a unit casts heal3, a unit casts rejuvenation3, and then another unit casts heal4. Set a trigger so that when a unit casts heal4, a dummy unit casts rejuvenation4. Voila. You've got a 4 link heal/rejuvenation spell.


Obviously, this will be very tedious to make, and is probably impossible to perfectly trigger with heroes... Option b, go JASS
 
Well, they obviously are pretty confused.
They tell you to make your own chain spell, but i warn you, that will be difficult to do, and the tutorials about that are actually bugged, so they don't work.

However, there is no way to check if a unit has a buff, if you use a warcraft heal chain spell, because it was not meant to buff units.

Your only way out, is however, to create your own spell, although you must know it won't be much easy.

I made chain mana burn spell, and a fire stun spell for a competition. They are in JASS, hope you can understand them. You are free to use and download my map, but don't steal it, PurPlePoot needs it for evaluation, and I wouldn't like him to see my map around everywhere - he could think my spell was not really mine, but some else's spell.

You can download the map here:
http://www.hiveworkshop.com/forums/showthread.php?t=52999&page=4

I don't know if you like JASS, but this is the best I can do to help.
 
Level 5
Joined
Aug 23, 2007
Messages
141
Got a better idea.

Event should be

Time - Periodic Event

Set it to .1 seconds.

Use the action:

For each (Integer A) from (Number of units in (Units in (Playable map area) matching ((((Triggering unit) has buff Healing Wave) Equal to True) and (((Triggering unit) has buff Rejuvenation) Equal to False)))) to (Number of units in (Units in (Playable map area) matching ((((Matching Unit) has buff Healing Wave) Equal to True) and (((Matching Unit) has buff Rejuvenation) Equal to False)))), do (Actions)
Loop - Actions
Unit - Create 1 ChainHealDummy for Neutral Extra at (Center of (Playable map area)) facing Default building facing degrees
Unit - Add 3 second expiration timer to (Last created unit)
Unit - Order (Last created unit) to Night Elf Druid Of The Claw - Rejuvenation (Random unit from (Units in (Playable map area) matching ((((Matching unit) has buff Chain Heal Buff) Equal to True) and (((Matching unit) has buff Rejuvenation) Equal to False))))


Remeber: The Rejuvenation has to have infinite cast range, and no mana cost, no cooldown.

I apologize for this post... I don't know how to post it so it looks like a real trigger.
 
Last edited:
Level 29
Joined
Jul 29, 2007
Messages
5,174
Ok, for all of you who just love to say making chain spells with triggers (well, without timers) is soooooo hard, here is a kick in your face.

Just check this map out and see what a SUPER-MEGA-HARD trigger I made there ...
 

Attachments

  • Triggerd Chain Heal.w3x
    19.4 KB · Views: 52
Level 5
Joined
Aug 23, 2007
Messages
141
Oh, yeah. There is no healing wave buff...

BTW. GhostWolf? I know how to do that continuous chain heal. BUT the main problem here is how to place the rejuvenation buff on the healed units. Still, nice trigger, I'll give you that...
 
Level 5
Joined
Aug 23, 2007
Messages
141
Nice Trigger !?
It is not MUI and it leaks. You guys wanna see some nice triggers, check out the chain spells I made for the contest.

If you change my code, you will have that reju thing in your unit in no time.
But You have to use my code.

Still, GW, you can do way better then that =)

Hehe. Shouldn't have added the "I'll give you that" part. It wa meant to be sarcasm...
 
Level 3
Joined
Oct 19, 2007
Messages
51
Sorry to resurrect a dead topic, but did you test that spell at all?

It appears to...err...not work...at all.

And Healing wave actually seems to, in the real game, prioritize lowest health unit in range (not to be difficult or anything, :p ), but I know you could do that.

Things I noticed about using the ability:
If it happened to choose a unit in the loop that was already max life, it just pretended like it healed something and moved on. If you damage one of the peasants and another one on the other side, and try healing, you have a small chance of getting the second healed.

"Point" seemed to move around lots. Usually about 200 range away from whatever peasant was being bounced to. Looking at the trigger I'm not sure how that happened.

Your tooltips were screwed :p


I don't mean to be critical, but the making of a "semi-functional" chain heal is rather simple. Making one with the precise functionality and reliability of blizz's is a TAD more difficult; and by tad I mean a lot. Though I did agree with your first solution, right up until I found out it didn't work. lol

And I really don't think a single leak in the ability (fixed by an extra 2 lines ANYWAYS) is much of an issue, unless the ability is going ot be cast 1000 times a game by a few hundred different units...
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
I do not know about the bugs you mentioned, when I tested it, it worked perfectly.
I did however damage all the peasents with the "dmg" command so maybe because of that I didn't see those things.
The range was not a bug at all, it was the range of the spell. The original chain heal won't pick units at 5000 range of it, right ? it just has a range.

And making it work flawllesly isn't hard at all, it just requires more conditions.
Something like this:

Pick all units matching ... is ally ... hp isn't max ... and do:
- get random unit
- check if random unit isn't previous unit
- cast on the random unit

So, the only thing I didn't add is the hp check, thats the only real bug I can see and I do not care as it was the easiest and crappiest example, that is all.
 
Level 3
Joined
Oct 19, 2007
Messages
51
for instance, as is, your dummy's are being spawned at random spots. If I weren't currently in a battleships game, I'd show a screenie to show what I mean. it looks more like each unit being healed is being healed by a nearby could, not a smooth 'chain' from the caster to the final unit being healed. Plus you would have to check for not only the last unit healed, but any other units already healed by the ability (assuming the original does not heal units more than once) or check that the unit was injured (as I previously mentioned).

Beyond that, I don't see much that is an issue. I do concede the point that it is rather simple, once one knows what they're doing. Good show!
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
Link Abilitys per example.

Link abilities are not Chain abilities.

Chain abilities are abilities that hit multiple units one after another and there it finishes (by hit I mean that the spell hit, im not refering to 'damages').

Link abilities are chain abilities that leave effects for some time.


Now anyway to answer you, its possible with setting all the targets to an arrayed group variable (which is the only way I can think about a sloution also in Jass, just there you can use structs instead of a global var), and then when a event, that needs the link effects to work, happens, you make a loop from 1 to ammount.of.indexes.accoupied and check if the unit is in a group and do your actions.


for instance, as is, your dummy's are being spawned at random spots. If I weren't currently in a battleships game, I'd show a screenie to show what I mean. it looks more like each unit being healed is being healed by a nearby could, not a smooth 'chain' from the caster to the final unit being healed. Plus you would have to check for not only the last unit healed, but any other units already healed by the ability (assuming the original does not heal units more than once) or check that the unit was injured (as I previously mentioned).

I do not know of any "random" spawning since they are spawn exacly where the current 'caste' is.
When I tested it, it looked just like the original ability.

About the conditions, like I said, they are really easy to put, I didn't even try because it was just an poor example of a chain ability in GUI, that is all.
 
Status
Not open for further replies.
Top