| 06-06-2006, 12:43 AM | #1 |
I'm thinking of an ability that combines spiked tendrils (crypt lord) and entangling roots. The unit casts the spell, and spiked tendrils hit the units, followed by the units being trapped by entangling roots for, 7 seconds lets say. My question is this. How do you combine 2 spells? I'm thinking a trigger (GUI or JASS, but I'll need major help with the JASS) that states somrtihng along these lines. EVENT: A unit begins casting an ability CONDITIONS: Ability being cast equal to Hyper Roots (or whatever I choose to call it) ACTIONS: create a dummy unit at *spell target location* give *last created unit* spiked tendrils give *last created unit* entangling roots make *last created unit* use spiked tendril at *spell target location* make *last created unit* use entangling roots on all unit's damaged by spiked tendrils kill *last created unit* and blah blah blah Any way I could do/improve this? |
| 06-06-2006, 01:34 AM | #2 |
Well, you could cast the impale and then check for units with the stun buff... then you could pick every unit and make a dummy entangle them... But make sure not to make them invulnerable or it wont work... |
| 06-06-2006, 01:50 AM | #3 |
hmmm... That could work I would suppose. But 1). How do you check for buff? and 2) how would I make them invulnerable??? Would casting impale mean making the unit cast impale (with the diff. name ofc) and then check for the buff? Should I put in a condition stating that the ability is equal to my spell, so that it doesn't confuse them with any other stun buff? And uhh... How would you pick every unit so the dummy can cast upon it? (gawd im such a noob) |
| 06-06-2006, 06:26 AM | #4 |
In GUI is a condition called 'Unit has Buff' or something like that. The parent type of buff is ability, therefore several ability-using natives works fine with buffs. We use the following in JASS to see if a unit has a buff: JASS:GetUnitAbilityLevel(whichUnit, 'Buff') > 0 Of course, replace whichUnit with your unit, and 'Buff' with the rawcode of your buff. If the unit has the buff, the ability level of the buff will be 1, if it does not have it, it will be 0. You cannot use this to detect the level of the spell which added the buff, unfortunately. There is also a GUI function called 'Make unit Invulnerable/Vulnerable' or something like that. In JASS use this: JASS:call SetUnitInvulnerable(unit, true) Replace true with false to make it vulnerable again. You can also add or remove the 'Avul' ability, that does the same. |
| 06-06-2006, 07:43 PM | #5 |
I didn't want to make the unit (in)vulnerable, I was just asking why st33m thought it might happen. Oh well. So if the stun buff comes from impale, and another comes from storm bolt, it won't read them as the same buff? That's good to know. ctrl+d in the WE displays rawcode, correct? The spell is a single leveled one, but I may make it multi., but no big deal that you can't detect the level witht that code, but it's possible to detect ability level in general, right? So that the tangleing roots can do more/less damage and stay on for more/less time. I'm gonna start expeimentting with GUI and JASS, seeing as how I'm starting to understand it all now. Thanks Blade. And not only me, but 2 of my WC3 TFT playing friends love your Azeroth Arcane Arena (one of them won't stop asking me to play it with him) Again good job on the map! |
| 06-06-2006, 09:11 PM | #6 |
Impale makes units invulnerable quickly when they are in the air. |
| 06-06-2006, 11:12 PM | #7 |
Really? Intrsiting.... How could this effect the outcome? |
| 06-07-2006, 12:52 AM | #8 |
It won't allow you to cast entangaling roots, This can be rectified easily though go into the object editor and go into the Entangling roots spell and click the targets part of it and add invulnerable to it and you should have no problem. Your path will be like this if you don't already know it. Object Editor > Abillities > Nightelf > Entangling Roots > Targets Allowed > Click Invulnerable |
| 06-08-2006, 03:27 AM | #9 |
I was thinking and this came up. Say for example 10 units were hit by impale. Would I need to bring up 10 dummy units to cast 10 entangling roots all at once? I'm betting I need some sort of integer A thing, A being number of uinits with the implae stun buff, then for each A, make a dummy unit and have it cast entangling roots at a unit (then brings up the problem of getting them to cast it on the units), then destroy and/or null the dummys. |
| 06-08-2006, 07:37 AM | #10 |
You can't use integer A (loop) for casting a spell on several units, as the dummy gets ordered, but has no time to actually cast the spell as he is ordered to to cast on another unit. So the effect would be, the last unit being entangled and all other units being not affected. So, you could use a short wait of 0 sekonds (call TriggerSleepAction(0)) wich is in realtime ~0.07-0.09, or you could just create n (being the number of units hitted) dummy casters which certainly do the job properly. By the way: You should always use the triggerevent - a unit starts the EFFECT of an ability and impale is a kind of tricky, because the units are not hit at the same time (that is actually really bad). This might be a lack of accuracy(?) as you might not catch the onits at the end of the implae line. |
| 06-08-2006, 11:19 AM | #11 |
Well actually, I'd find it more accurate if they were entangled as they went down the line, rather than all at once. I'll try some things, but I'll probably need help with the JASS code. Is there any way to make impale move slower? |
| 06-08-2006, 11:38 AM | #12 |
The Wave Time field affects how fast/slow impale goes. |
