I've made an aura of healing, every unit in a radius of 7 from the original unit is healed 1 hp/s. I want to give this ability to my hero in order for him to level it up and improve it. Say, level 2 of the ability would have a radius of 8 and heal 2 hp/s.
This "ability" isn't an ability at all, it's a passive behaviour. My heroes can't spend their points in behaviours.
I want to make something similar to the Dark Templar's permanent cloak ability. After the ability is learnt, the button just sits there telling you what it does. The problem is that the Dark Templar ability never had any levels, so I can't use that as an example.
Does anyone have any idea how to turn a passive behaviour into a level-able ability?
@Ccx55: Go
I use a complicated system of triggers, specifically CatalogSetvalue to change the name and the information of the passive button - since passive buttons are not designed for level-able spells, you have no choice but to give them names like MySpell [Level 1] - as well as the effect of the ability.
You can also use active spells with no effect and make them level-able. You can also give them a requirement they can never fulfill to grey them out, but in any case, it will look sort of crappy compared to the "real" passive buttons.
I also saw multiple maps use an effect - instant spell, which has to be used one time at each level, but thats even worse. Other maps avoid using passives completely.
Well, the main goal for me would be the gameplay, I can worry about the details later.
Are you saying I can use trigger to enable/disable the Healing Aura behaviour for heroes? Is there any way of returning a hero's Veterancy level, then?
Hero maps are always boring unless they have some sort of passive skill in them - they're what makes the game interesting. I suppose I will have to give up if it's too complicated, but it would be a great feature.
Is there anywhere I can learn more about this? Or am I doomed to test it alone?
As you can see, this is quite complicated, but I do not know of any other method to get the exact same behavior we want; a passive button, which shows the correct level and tooltip, but still has the looks of the real passive buttons.
There are easier methods, but they don't happen to have my desired result.
For your aura, you will need 5 behaviors instead of 1 stacking one. You could, however, use 1 aura for all levels, which applies different behaviors for each level (by modifying the apply behavior effect using CatalogSetValue), saving you some behaviors
@Kueken531: Go
Are you saying I can use trigger to enable/disable the Healing Aura behaviour for heroes? Is there any way of returning a hero's Veterancy level, then?
Indeed sure there is. I don't need it, since for this ability system, the hero's level is irrelevant, just the spell level matters. However, I check for the hero level in my map and it seems to work just fine ;)
In galaxy, the function is called UnitLevel, no idea for Gui
Quote:
Hero maps are always boring unless they have some sort of passive skill in them - they're what makes the game interesting. I suppose I will have to give up if it's too complicated, but it would be a great feature.
It is complicated, but so is the whole editor ;). Just have a look at the map and see, if this is exactly your desired behavior.
Quote:
Is there anywhere I can learn more about this? Or am I doomed to test it alone?
Well, you probably know the hero tutorials out there. Besides that, its just testing alone and asking in forum threads, I guess :)
You could try joining the mapster IRC channel, if you have frequent questions.
Something similar to the above could aslo be done using pure data where you have a dummy ability that you level using the learn ability which has no button in the command card. You then have several passive abilities in the same command card slot which are restricted and only reveal when the level of the dummy ability is equal to the passive level. The auras of the different levels then use the same requirement to enable/disable the effect for the various levels.
Thanks for the huge effort in helping me, this map is really informative. I was almost hoping that Blizzard had implemented something more simple, but it's good to know that it's possible.
(Also, I just realised you're the creator of one of my favourite maps. Great work on that.)
That was my first attempt on a passive ability, but it ended very quickly. I realised I had no idea how to register if a hero had learnt an ability. Is there actually any way to return if a player's learnt the dummy ability? That probably would make things more simple.
That was my first attempt on a passive ability, but it ended very quickly. I realised I had no idea how to register if a hero had learnt an ability. Is there actually any way to return if a player's learnt the dummy ability? That probably would make things more simple.
I use basically the same method, so yes, it is possible. It is present in the testmap.
I just use upgrades to control the properties of an ability. To make it levelable, I just make it a toggle ability that does nothing when you click it and has the same graphic for on and off.
I assume you know how to use the Learn type of abilities, right? Adding an ability into there so that it can be clicked on a sub-menu etc? If you haven't, then you should watch the tutorials for them, because it would take me probably an hour to get through all the information there and make it clear.
I have something similar set up in a map that I'm making, really just for my own enjoyment. I have heroes, which emulate the leveling systems from WC3. So, you can only purchase the same abilities at level 1, 3, 5 in succession. I have several passive aura abilities, one of which is actually a healing aura. So I'll just be using some images/my set-up as an example for you. This can be tweaked in any number of ways, simply by modifying what the behavior does.
All of this can be done within the data editor without ever using a trigger. It comes out much cleaner this way.
I'll leave out the WC3 leveling system, as that just adds an extra level of complexity. And there are a few guides out there that explain how to do it.
Abilities:
2 Abilities (1 for your ability so you can learn it via a leveling menu, and 1 for the actual learn ability)
For however many levels you want of your ability, you'll need the number of things below times that level, so if you want 3 levels, you'll need 6 behaviors and effects.
Buttons:
1 + x buttons - 1 for learning the ability, and x for however many levels you have
So, here's what you'll need:
Effects:
Apply Behavior
Search Area
Behaviors:
2 Buffs (1 for the periodic effect, 1 for the actual regeneration that will be applied)
Requirements:
1 requirement per level
So, let's assume you've got your passive ability set up and you've got that all done. You'll end up needing to duplicate that however many times you want the ability to level.
The parts you probably don't know how to do:
The dummy ability to level it, which will be Ability Type: Behavior
The only thing you'll need to do with this is add the 3 behavior levels of your behavior that applies the periodic effect under behavior.
The buttons:
Give each one a description of what you want the ability to do etc, this should mirror your behaviors that you implemented.
The learn button should basically have a synopsis of the levels of your ability, basically saying what each one is. (This is the one you'll be using for your learn ability)
(Picture 1) The requirements:
One for each level of your ability, basically just call them Regen Aura Lv1, Lv2, Lv3... etc.
What you want to do here is this:
Open up Requirement+ and go to the expression bullet and paste this in:
CountAbil(RegenerationAura,CompleteOnlyAtUnit) == 3
You'll be changing the RegenerationAura to your ability, and the 3 to whatever level it is. So for level 1, it should be level Constant 1. This will be in a tree-like structure branching down, the CountAbility line will be on top of Constant #. So just change them accordingly.
(Picture 2) Now go back to your behaviors that apply your periodic effect, under the Behavior - Requirement field, change it to the corresponding Requirements you just created. This will prevent multiple levels of the same behavior being active on your unit at the same time. So when it levels up, one goes away, and another activates.
Now what you need to do is go back to your unit, add the periodic behaviors (the ones we just added requirements to) to the unit, all of the levels of it. Now add the ability that you created for this passive behavior to this unit's abilities.
The framework is basically laid at this point. All you have to do now is the actually click-and-level portion.
(Picture 3) Go into your Ability - Command Card+ field. Remember those buttons you created for each level? This is where we're going to use them. On the same cell, add each level of the button (hopefully you put in Level 1, Level 2, Level 3, etc on them so they're easy to distinguish, otherwise this will get messy). And for each corresponding level, change the command type to passive like you would normally, and the requirement (right below it) to the ones we created for this.
Last step! (Picture 4)
Go into your submenu for learning abilities, and add the button for Learning your ability. If you've added this button/ability to your learn ability command for your hero, then when you select the ability (Learn Abilities or whatever you called it) - the ability command should have this dummy ability we created.
That should be it. Long winded, I know, but it's clean and you never have to touch a trigger - so there's no lag, and the game itself will do the work, not rely on button clicks and endless calls which would create unneeded lag.
Didnt read the last post (its a bit long), but I had an idea some time ago...
I noticed the flags in the "Behavior" abilities (like Cloak from ghosts and banshees) had the "Toggle" flag, and also allowed multiple behaviors (Which I believe means it's levelable), but there's also the "Toggle On" flag, which i guess means that the ability is starts as toggled on. In theory, if you add all behaviors you need like a normal levelable ability, check the toggle on flag and don't make anything that allows the behavior to be toggled off. I think that solves it, if it works the way I think it should, which might not be the case.
Someone also mentioned an "Effect - Instant" ability that applies the behavior... If you could get that ability to autocast itself the moment its learned, it'd work as well.
Also, I do ability leveling through Catalog triggers, as it's much cleaner and automatically updates d ref tooltips and is a LOT less work (you can also simply just use upgrades in case catalogs arent working properly as is the case with one of my spells) The "Unit uses Ability" event also detects Learn abilities, and you can use "Level of ability" to do calculations based on level of ability (Not sure, but I think it always counts the level BEFORE the ability learned a new level)
Catalog/Upgrade triggers make adding more ability levels far easier and cleaner. No millions of data entries, and no having to link actors for every single level, which gets annoying when you have 5+ levels for one ability.
Something similar to the above could aslo be done using pure data where
you have a dummy ability that you level using the learn ability which
has no button in the command card. You then have several passive
abilities in the same command card slot which are restricted and only
reveal when the level of the dummy ability is equal to the passive
level. The auras of the different levels then use the same requirement
to enable/disable the effect for the various levels.
There is no requirement to tell what level a hero has trained an ability too.
Through testing I have determined that it does not work as you would think.
The "count ability" does not return more then 1 for a single unit even if the unit has spent more then 1 point on it.
Here is a video tutorial about passive levelable abilities. I have no clue if it works since I just bookmarked it in case I need it some day. It may also be outdated since it is from august 2010, but maybe it helps.
Hi,
I know that this post maybe old but i found that your way to do it is really clear and simple. But I am stuck at the dummy ability thing...
Can you give me further information on this particular part?
I've made an aura of healing, every unit in a radius of 7 from the original unit is healed 1 hp/s. I want to give this ability to my hero in order for him to level it up and improve it. Say, level 2 of the ability would have a radius of 8 and heal 2 hp/s.
This "ability" isn't an ability at all, it's a passive behaviour. My heroes can't spend their points in behaviours.
I want to make something similar to the Dark Templar's permanent cloak ability. After the ability is learnt, the button just sits there telling you what it does. The problem is that the Dark Templar ability never had any levels, so I can't use that as an example.
Does anyone have any idea how to turn a passive behaviour into a level-able ability?
your aura is proibly set like this
ability - behaviour (apply ) - effect search - effect apply
find the effect that does the healing and duplicate it . make it so each duplicate you make heals more and more ( thes are your lvls )
then go to your ability : effect - effect + and add each duplicated effect in order.
@Selfcreation: Go If it were just that easy...
@Ccx55: Go I use a complicated system of triggers, specifically CatalogSetvalue to change the name and the information of the passive button - since passive buttons are not designed for level-able spells, you have no choice but to give them names like MySpell [Level 1] - as well as the effect of the ability.
You can also use active spells with no effect and make them level-able. You can also give them a requirement they can never fulfill to grey them out, but in any case, it will look sort of crappy compared to the "real" passive buttons.
I also saw multiple maps use an effect - instant spell, which has to be used one time at each level, but thats even worse. Other maps avoid using passives completely.
I will make a quick example map.
@Kueken531: Go
Well, the main goal for me would be the gameplay, I can worry about the details later.
Are you saying I can use trigger to enable/disable the Healing Aura behaviour for heroes? Is there any way of returning a hero's Veterancy level, then?
Hero maps are always boring unless they have some sort of passive skill in them - they're what makes the game interesting. I suppose I will have to give up if it's too complicated, but it would be a great feature.
Is there anywhere I can learn more about this? Or am I doomed to test it alone?
Here you go, testmap attached.
As you can see, this is quite complicated, but I do not know of any other method to get the exact same behavior we want; a passive button, which shows the correct level and tooltip, but still has the looks of the real passive buttons.
There are easier methods, but they don't happen to have my desired result.
For your aura, you will need 5 behaviors instead of 1 stacking one. You could, however, use 1 aura for all levels, which applies different behaviors for each level (by modifying the apply behavior effect using CatalogSetValue), saving you some behaviors
Indeed sure there is. I don't need it, since for this ability system, the hero's level is irrelevant, just the spell level matters. However, I check for the hero level in my map and it seems to work just fine ;)
In galaxy, the function is called UnitLevel, no idea for Gui
It is complicated, but so is the whole editor ;). Just have a look at the map and see, if this is exactly your desired behavior.
Well, you probably know the hero tutorials out there. Besides that, its just testing alone and asking in forum threads, I guess :)
You could try joining the mapster IRC channel, if you have frequent questions.
In my own testing as well. I have found that say you just want 1 behavior that does the healing
THis is how I would do it
This uses minimal triggers but it does require additional validators and requirements. I dont believe it would show in tool tips properly either.
Something similar to the above could aslo be done using pure data where you have a dummy ability that you level using the learn ability which has no button in the command card. You then have several passive abilities in the same command card slot which are restricted and only reveal when the level of the dummy ability is equal to the passive level. The auras of the different levels then use the same requirement to enable/disable the effect for the various levels.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
@Kueken531: Go
Thanks for the huge effort in helping me, this map is really informative. I was almost hoping that Blizzard had implemented something more simple, but it's good to know that it's possible. (Also, I just realised you're the creator of one of my favourite maps. Great work on that.)
@SouLCarveRR: Go
That was my first attempt on a passive ability, but it ended very quickly. I realised I had no idea how to register if a hero had learnt an ability. Is there actually any way to return if a player's learnt the dummy ability? That probably would make things more simple.
I use basically the same method, so yes, it is possible. It is present in the testmap.
<<quote 301691>>
@Selfcreation: Go If it were just that easy...
is it not that easy? ive done it for ALL my spells in my game , works fine..
I just use upgrades to control the properties of an ability. To make it levelable, I just make it a toggle ability that does nothing when you click it and has the same graphic for on and off.
I assume you know how to use the Learn type of abilities, right? Adding an ability into there so that it can be clicked on a sub-menu etc? If you haven't, then you should watch the tutorials for them, because it would take me probably an hour to get through all the information there and make it clear.
I have something similar set up in a map that I'm making, really just for my own enjoyment. I have heroes, which emulate the leveling systems from WC3. So, you can only purchase the same abilities at level 1, 3, 5 in succession. I have several passive aura abilities, one of which is actually a healing aura. So I'll just be using some images/my set-up as an example for you. This can be tweaked in any number of ways, simply by modifying what the behavior does.
All of this can be done within the data editor without ever using a trigger. It comes out much cleaner this way.
I'll leave out the WC3 leveling system, as that just adds an extra level of complexity. And there are a few guides out there that explain how to do it.
Abilities: 2 Abilities (1 for your ability so you can learn it via a leveling menu, and 1 for the actual learn ability)
For however many levels you want of your ability, you'll need the number of things below times that level, so if you want 3 levels, you'll need 6 behaviors and effects.
Buttons: 1 + x buttons - 1 for learning the ability, and x for however many levels you have
So, here's what you'll need: Effects: Apply Behavior Search Area
Behaviors: 2 Buffs (1 for the periodic effect, 1 for the actual regeneration that will be applied)
Requirements: 1 requirement per level
So, let's assume you've got your passive ability set up and you've got that all done. You'll end up needing to duplicate that however many times you want the ability to level.
The parts you probably don't know how to do: The dummy ability to level it, which will be Ability Type: Behavior The only thing you'll need to do with this is add the 3 behavior levels of your behavior that applies the periodic effect under behavior.
The buttons: Give each one a description of what you want the ability to do etc, this should mirror your behaviors that you implemented. The learn button should basically have a synopsis of the levels of your ability, basically saying what each one is. (This is the one you'll be using for your learn ability)
(Picture 1) The requirements: One for each level of your ability, basically just call them Regen Aura Lv1, Lv2, Lv3... etc. What you want to do here is this: Open up Requirement+ and go to the expression bullet and paste this in: CountAbil(RegenerationAura,CompleteOnlyAtUnit) == 3
You'll be changing the RegenerationAura to your ability, and the 3 to whatever level it is. So for level 1, it should be level Constant 1. This will be in a tree-like structure branching down, the CountAbility line will be on top of Constant #. So just change them accordingly.
(Picture 2) Now go back to your behaviors that apply your periodic effect, under the Behavior - Requirement field, change it to the corresponding Requirements you just created. This will prevent multiple levels of the same behavior being active on your unit at the same time. So when it levels up, one goes away, and another activates.
Now what you need to do is go back to your unit, add the periodic behaviors (the ones we just added requirements to) to the unit, all of the levels of it. Now add the ability that you created for this passive behavior to this unit's abilities.
The framework is basically laid at this point. All you have to do now is the actually click-and-level portion.
(Picture 3) Go into your Ability - Command Card+ field. Remember those buttons you created for each level? This is where we're going to use them. On the same cell, add each level of the button (hopefully you put in Level 1, Level 2, Level 3, etc on them so they're easy to distinguish, otherwise this will get messy). And for each corresponding level, change the command type to passive like you would normally, and the requirement (right below it) to the ones we created for this.
Last step! (Picture 4) Go into your submenu for learning abilities, and add the button for Learning your ability. If you've added this button/ability to your learn ability command for your hero, then when you select the ability (Learn Abilities or whatever you called it) - the ability command should have this dummy ability we created.
That should be it. Long winded, I know, but it's clean and you never have to touch a trigger - so there's no lag, and the game itself will do the work, not rely on button clicks and endless calls which would create unneeded lag.
Didnt read the last post (its a bit long), but I had an idea some time ago...
I noticed the flags in the "Behavior" abilities (like Cloak from ghosts and banshees) had the "Toggle" flag, and also allowed multiple behaviors (Which I believe means it's levelable), but there's also the "Toggle On" flag, which i guess means that the ability is starts as toggled on. In theory, if you add all behaviors you need like a normal levelable ability, check the toggle on flag and don't make anything that allows the behavior to be toggled off. I think that solves it, if it works the way I think it should, which might not be the case.
Someone also mentioned an "Effect - Instant" ability that applies the behavior... If you could get that ability to autocast itself the moment its learned, it'd work as well.
Also, I do ability leveling through Catalog triggers, as it's much cleaner and automatically updates d ref tooltips and is a LOT less work (you can also simply just use upgrades in case catalogs arent working properly as is the case with one of my spells) The "Unit uses Ability" event also detects Learn abilities, and you can use "Level of ability" to do calculations based on level of ability (Not sure, but I think it always counts the level BEFORE the ability learned a new level)
Catalog/Upgrade triggers make adding more ability levels far easier and cleaner. No millions of data entries, and no having to link actors for every single level, which gets annoying when you have 5+ levels for one ability.
There is no requirement to tell what level a hero has trained an ability too.
Through testing I have determined that it does not work as you would think.
The "count ability" does not return more then 1 for a single unit even if the unit has spent more then 1 point on it.
Here is a video tutorial about passive levelable abilities. I have no clue if it works since I just bookmarked it in case I need it some day. It may also be outdated since it is from august 2010, but maybe it helps.
@Helemar: Go
Hi, I know that this post maybe old but i found that your way to do it is really clear and simple. But I am stuck at the dummy ability thing... Can you give me further information on this particular part?
Thanks
Just use a levelled Behavior type ability that is not toggleable and on by default.
The dummy ability worked by having its level counted by requirements that were then used to activate the correct passive level.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg