HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Creating a custom abilities

05-05-2011, 05:48 PM#1
Merko
Hello.
I've just started with map creating for Wc3, which i really enjoy so far.

At the moment, i'm just creating a "hero pvp arena" if you can call it that.
A map that will be based on another MMO that i play, and each hero should be some of the characters\professions from the game.

Lets say I want a ability on one of my heroes that gives an aura. The aura should give 50 damage and 50 armor (just an example). How can i manage that?

As for normal items, i can just add more stuff to the "Ability" variable, but when i create these abilities, it seems i can't do that the same way. Is what i'm trying to do even possible? Or do i just need to find some pre-built Abilities that blizzard have created and just modifiy the values?

Appreciate some answer to this :)
I'm a new forum member (as you can probably see), so don't try to scare me away just yet. :p
05-05-2011, 07:51 PM#2
Anitarf
Normally, you can only make custom abilities that are a modified copy of an existing ability. Most abilities are fairly limited regarding which of their aspects you can modify, so there are many very simple spell ideas that simply can not be made from any existing WC3 ability. In such cases, we usually use triggers to supplement the custom abilities by adding the missing functionality.

For the example you gave, there are two possible approaches:
  • Use a combination of two auras, one based on command aura that gives bonus damage and one based on devotion aura that gives bonus armour. Since you probably want it to be only a single ability in the hero skill learn menu, you need to use triggers to add the second ability to the hero when the first one is learned. There are ways of hiding that second ability's icon on the command card, however units affected by the auras will always show two buff icons in their status tabs.
  • Use triggers to code the entire aura functionality yourself. Doing that from scratch would be fairly complicated, however there exist community-made libraries that can help you with this task, such as a framework for applying a trigger-based aura and a system for applying arbitrary damage and armour bonuses.
05-08-2011, 09:47 PM#3
Merko
Hello.
Thanks for reply.

I've played around some and got some really good ideas. I've also managed to complete most of them.

But theres 1 small part (hopefully) that i need some assist on.
Lets say i got 'Avatar' ability on one of my hero, and when i use it i want the Hero to get another buff also Example devotion aura. - How can i do this with Triggers?

What i have so far:
Events:
Unit - A unit Starts the effects of an ability
Conditions:
(Ability being cast) Equal to Avatar
Actions:
Unit - Add Devotion Aura to (Triggering unit)

((sorry, no idea how you guys make it look like the Trigger editor in wc3))

So, my problem is in the "Actions" window. Since the "Add" just add the ability.
I want my hero to just add the buff devotion aura instantly to my hero when i cast "Avatar". Is that a big problem? I've looked like crazy in the Action trigger, but can't find anything that can help me. Thanks :)
05-09-2011, 05:44 AM#4
Pyrogasm
Goddamnit. I closed my browser while I was trying to write a nice post. Eff that.

To do trigger tags, type [trigger][/trigger] around the text you want to make into a GUI trigger. Quote this post to see how it works below.

As for what you're trying to do: buffs don't work that way. You can't just "add a buff" to a unit, and even if you could that's not the way the effects work. You're going to have to give the unit a devotion aura based ability, or trigger the aura yourself.

That being said, it really should work to just add the ability to the unit like you've done. As long as you make sure DevotionAuraAbil is a unit ability (not item or hero), this is probably the simplest solution:
Trigger:
Collapse Events:
Unit - A unit Starts the effects of an ability
Collapse Conditions:
(Ability being cast) Equal to Avatar
Collapse Actions:
Unit - Add DevotionAuraAbil to (Triggering unit)
Wait <Duration of Avatar, whatever that is> seconds
Unit - Remove DevotionAuraAbil from (Triggering unit)

Of course, that doesn't really account for everything (the unit dying while avatar is active, for instance) and the wait is a little sheisty... but it'll get the job done. In the long run, I'd really suggest going with a triggered aura library like Anitarf suggested.

For us old fogies

There was a time when a nice post like Merko's would've demanded attention and we'd all be trying to convert him to vJASS right off the bat. And now we settle for things people thought were flawless solutions back in 2004.

A little sad, isn't it?

05-09-2011, 08:55 AM#5
Anitarf
If you just want to add the devotion aura buff to the hero and not the actual devotion aura, then doesn't that mean you just want the hero to have bonus armour in avatar form? The avatar ability already bestows bonus armour on the hero, so there is no need to add it separately.

Oh, if you specifically wan to add a buff so it will show on the unit's status tab, the only way to add buffs is with abilities. So, you need to cast a spell on the hero that leaves a buff or give the hero a self-targeting aura to display the buff on him. Different buff spells based on the same base spell will not stack, but different auras based on the same base aura will, that's why using a self targeting aura is more convenient since you can just make multiple copies of tornado slow aura for this purpose. If you do that, you don't even have to worry about hiding the aura's command card icon when adding it to the hero because that ability doesn't have one.

As far as morph abilities go, Avatar is not the most suitable as it is hardcoded to just add bonus armour, damage and spell immunity. Actual morph abilities like metamorphosis change the caster to a different unit type, which gives you a lot more options. You can for example give the alternate form a different model, you can give it various unit abilities so you don't need to add/remove them with triggers (even if you do add them with triggers, I think they will be lost once the unit demorphs unless you specifically make them permanent).

Re:Pyrogasm

Quote:
Originally Posted by Pyrogasm
There was a time when a nice post like Merko's would've demanded attention and we'd all be trying to convert him to vJASS right off the bat. And now we settle for things people thought were flawless solutions back in 2004.
Well, I did also suggest vJass solutions. Normally, I wouldn't bother with simpler stuff because there'd be other people to suggest it, but since there's hardly anyone left now I feel I should fairly present all possible solutions and let him decide which is more suitable.