I have been fiddling around with hero "learn" ability and came to realise that there was no direct way to level up behaviors.
So playing around I found couple of methods to add hero passive abilities.
1. Trigger based: Making a dummy ability then when the button for that learn ability is triggered, buff permanent added.
[Time: B, Must make 2 buttons for skill and learn]
[Efficiency: C, going back and forth between data and trigger]
2. Effect based: Making an effect ability that adds behavior
[Time: F, must make effect for every level (ability)]
[Efficiency: F, must make effect for every level!!!]
It just seems making triggers for passive ability learning is just much faster than adding it all with data editor.
Does anyone have any idea to make passive ability for heroes faster and more efficient?
It does appear there's no implementation for learning passive abilities - I ran into the same problem. Unfortunately, you missed something. The button pressed event has a comment:
"Only register this event when you absolutely need it, as it will generate network traffic from all players for every button they press."
The trigger solution should probably be avoided in multiplayer maps, which means we have to create dozens of effects and behaviors. Creating just five simple 3-level auras requires a total of 75 behaviors, buttons, abilities and effects. Plus in the WC3 editor, setting stats for these takes less than a second with the right click > "Auto Fill Levels" tool. In the galaxy editor, I don't even have a clue how long it would take to manually set all this stuff. Thankfully I only planned for one aura in my dungeon crawl map.
The implementation for learnable abilities is very bare-bones right now, but hopefully things will improve in the future. The WC3 editor improved drastically from the time it was first released.
Incidentally, how is #1 actually possible? I'm trying to experiment with it to see how efficient it is, but can't find any useful trigger functions to determine which unit the button was pressed on.
Based off the progression of the WC3 editor (huge change from classic to frozen throne), I'm guessing we won't see any significant changes to the GE until the first starcraft 2 expansion is released in a year or so. They'll probably release only minor changes in patches.
I ran into another significant problem. Even if a behavior's removed (through validators or triggers), the command button for it remains on a unit's command card. Has anyone figured out a way to get a "Command Type: Passive" button to hide from a command card?
I've been using the #1 approach to this and it works. However my problem is with the buttons of different ranks displaying incorrectly.
What do you use in the requirements to count behaviors on a unit? I tried a: CountBehavior BEHAVIORBLAH CompletedAtUnit = 1, show
But it doesn't work right. (I don't have access to the editor right now so the above code is just an example)
Edit:
I figured it out. Just make a dummy ability like usual and apply it to the "learn" ability. Then make a trigger event "unit uses ability" to catch when that ability is learned. Make sure you choose the ability that is a part of the "learn" ability. After that, just add/remove behavoirs (the buff/aura) to the triggering unit.
I have been fiddling around with hero "learn" ability and came to realise that there was no direct way to level up behaviors.
So playing around I found couple of methods to add hero passive abilities.
1. Trigger based: Making a dummy ability then when the button for that learn ability is triggered, buff permanent added.
[Time: B, Must make 2 buttons for skill and learn]
[Efficiency: C, going back and forth between data and trigger]
2. Effect based: Making an effect ability that adds behavior
[Time: F, must make effect for every level (ability)]
[Efficiency: F, must make effect for every level!!!]
It just seems making triggers for passive ability learning is just much faster than adding it all with data editor.
Does anyone have any idea to make passive ability for heroes faster and more efficient?
It does appear there's no implementation for learning passive abilities - I ran into the same problem. Unfortunately, you missed something. The button pressed event has a comment:
"Only register this event when you absolutely need it, as it will generate network traffic from all players for every button they press."
The trigger solution should probably be avoided in multiplayer maps, which means we have to create dozens of effects and behaviors. Creating just five simple 3-level auras requires a total of 75 behaviors, buttons, abilities and effects. Plus in the WC3 editor, setting stats for these takes less than a second with the right click > "Auto Fill Levels" tool. In the galaxy editor, I don't even have a clue how long it would take to manually set all this stuff. Thankfully I only planned for one aura in my dungeon crawl map.
The implementation for learnable abilities is very bare-bones right now, but hopefully things will improve in the future. The WC3 editor improved drastically from the time it was first released.
Incidentally, how is #1 actually possible? I'm trying to experiment with it to see how efficient it is, but can't find any useful trigger functions to determine which unit the button was pressed on.
Imo the hero function is totally not ready. GE needs alot of updates imo.
@Acww52: Go
Based off the progression of the WC3 editor (huge change from classic to frozen throne), I'm guessing we won't see any significant changes to the GE until the first starcraft 2 expansion is released in a year or so. They'll probably release only minor changes in patches.
I ran into another significant problem. Even if a behavior's removed (through validators or triggers), the command button for it remains on a unit's command card. Has anyone figured out a way to get a "Command Type: Passive" button to hide from a command card?
I've been using the #1 approach to this and it works. However my problem is with the buttons of different ranks displaying incorrectly.
What do you use in the requirements to count behaviors on a unit? I tried a: CountBehavior BEHAVIORBLAH CompletedAtUnit = 1, show
But it doesn't work right. (I don't have access to the editor right now so the above code is just an example)
Edit:
I figured it out. Just make a dummy ability like usual and apply it to the "learn" ability. Then make a trigger event "unit uses ability" to catch when that ability is learned. Make sure you choose the ability that is a part of the "learn" ability. After that, just add/remove behavoirs (the buff/aura) to the triggering unit.