Something i'm absolutely stumped with in relation to abilities is how do I make it so that a hero can only learn or upgrade an ability every 2 or 3 levels?
The way i've currently got everything set up is
Hero unit
Ability: Learn Ability (has lets say... stimpack as Learn1)
Points set to -1 (must gain level 2 to earn first point)
Points per level set to 1 (Basically I want this to be 0.5, in order to only gain 1 point every 2 levels but that's not possible)
Ability: Stimpack (currently has no validators/requirements)
Effects field set up as Stimpack1 / Stimpack2 / Stimpack3 for different levels
Now what happens if mr Hero starts out at level 1, he has -1 points to put into a skill, meaning he can't learn anything. Good that's what I want. Hero gets to level 2, he now has 0 points to put into a skill, still can't learn anything, exactly how I want it. He gets to level 3 he can put one point into stimpack if he chooses, ok. He gets to level 4 he now has 2 skill points and so on
What I want to happen is he can only gain 1 skill point every 2 or 3 levels instead of every 1 level. Additionally I also want to have specific level requirements for each ability. Stimpack I don't care about, since if I can make it only 1 skill point per level great. But I will need the hero to be at least say level 6 before he can learn Overpower, and level 10 before he can upgrade Overpower to level 2
I've been searching the forums and I can work out how to make abilities and give them different effects for each level, but I can't for the life of me figure out how to have requirements for learning it, nor how to give only 1 skill point per X amount of levels, rather than being fixed at 1 skill point per level. I'd much appreciate any help on this.
Doesn't really matter how I go about this, i'd prefer to keep it in the data editor for the streamlined feel, but if triggers are necessary so be it
Some theoretical workarounds, none of which i've yet been able to implement
Data method - somehow through using validators/requirements require that the hero is an ODD level to be allowed to gain skill points, yet not disable the ability entirely, allowing him to still spend them regardless of level
i'm useless with data editor scripting. Need some help here
Trigger method - When hero gains a level, set skill points for ability to Trunc(Hero Level / 2) - IE if level 1 / 0 points, lvl2 / 1 point, lvl 3 / 1 point, lvl 4 / 2 points etc
The issue I have with this is I have no idea how to set the skill points, i've checked catalog values and cant find anything
Trigger method - When hero gains a level, check if level is odd and if so, remove 1 skill point
same as above, no idea how to set the skill points or even how to add/remove one
Data method - Make a learnable ability require 2 skill points to be learned/upgraded?
If anyone could provide a solution to any of the above, or an alternative way i'd much appreciate it
I was having trouble with this exact thing and frankly I don't think the implemented Learn-Abilities are flexible enough...
I guess you would have to create your own Learn-Ability in order to give points every 2-3 levels or make Abilities require more than 1 learning point. I didn't do it though, because that's a LOT of work.
Anyways I can help you with the Ability requirements part:
What you wanna do is create a new requirement. Let's say your ability can be learned at level 1, 5, 9, 13 and so on. So you need to represent this with a formula, like this:
LevelOfUnit >= ((LevelofAbility + 0 ) * 4 ) +1
At level 0 this is (0 + 0)*4 +1 = 1.
At level 1 this is (1 + 0)*4 +1 = 5.
....
[I was gonna add the screenshot here, but that didn't work :s. It's attached now.]
I'm using "Show" for my requirements because I think the way requirements are shown ingame is ugly, but you can use "Use", too
Apart from the correct implementation of the formula you just have to do three things: The whole thing must be "Greater or equal". On the first side you count the levels of your veterancy COMPLETED on unit. On the second side count the levels of the ability again completed on unit.
Now just add the requirement to your learning ability and that's that.
awesome thanks i'll have a look at it later. But how do I reference say LevelOfUnit or LevelOfAbility to an ingame unit/ability in the data editor? I have 0 experience with data scripting. Triggers no problem and to an extent custom scripts.
Or do I literally just use LevelOfUnit and it'll check the level of the unit which houses the learn ability? buuuuut then how does LevelOfAbility become (level of ability 'Stimpack')?
I probably need to read some tutorials on scripting.....
edit: though this still doesn't solve the issue of only getting 1 point every 2 levels, because if I have say 4 different abilities and they all have level 2/4/6/8 as requirements, By level 3 i'll still have 2 points to put into 2 different abilities. Though it's a start so that's good and we're on track
No way i'm going to rewrite the learn ability, but surely there's a catalog value that can be set to manually give/remove skill points to a unit?
I know blizzard wanted to give more control to users but at the same time like seriously.... the most basic crap more often than not takes significantly longer than major overhauls. Creating a weapon from scratch, no problems. Making that weapon show a beam for instance, takes about 5x longer than everything else combined
You can't use LevelOfUnit, that was just an example. :-)
Let's do it step by step:
In the data editor go to Requirements. Add a new object, leave everything as it is.
Now click Requirements +
Add a new node to "Use", choose "Greater or equal"
Add two new nodes to the "Greater or equal"
For the first one: Choose "Count Behaviour", then your veterancy behaviour, then "Completed on unit" (This is very important!)
For the second one: I suggest you play around with the nodes to adapt the formula to your needs, but one thing you will need. To count the Ability level add a node, using "Count Ability". Pick your Ability and again "Completed on Unit"
I hope this helps! And yes, I'm aware this doesn't adress the learning point issue. :-(
Edit: Check the screenshot, I know it's german, but you get the idea.
Hero Gains Level
Events
Unit - Any Unit gains an experience level
Local Variables
Conditions
(Controller of player (Triggering player)) == User
Actions
Variable - Modify HeroLevel[(Triggering player)]: + 1
General - If (Conditions) then do (Actions) else do (Actions)
If
(HeroLevel[(Triggering player)] mod 2) >= 1
Then
Variable - Modify SkillPointsAvailable[(Triggering player)]: + 1
Unit - Enable the Hero - Learn Ability (Assault) ability for PlayerHero[(Triggering player)]
Else
Skill points
Events
Unit - Any Unit uses Hero - Learn Ability (Assault) at Generic6 - Complete stage (Include shared abilities)
Local Variables
Conditions
Actions
Variable - Modify SkillPointsAvailable[(Triggering player)]: - 1
General - If (Conditions) then do (Actions) else do (Actions)
If
SkillPointsAvailable[(Triggering player)] < 1
Then
Unit - Disable the Hero - Learn Ability (Assault) ability for PlayerHero[(Triggering player)]
Else
But this gives 1 point to SkillPointsAvailable whenever going up to an odd level 3/5/7/etc and is easily changeable if required. It also gives me greater flexibility in that I might only want to enable learning the first skill point at say lvl 4, then odd numbers thereafter, but give a bonus one at 10. Combined with level requirements for the abilities themselves I think we're be in business
edit: this still doesn't change the number of skill points available, i'm still gaining 1 per level even when the ability is disabled. However it does allow me to restrict spending to my liking
Something i'm absolutely stumped with in relation to abilities is how do I make it so that a hero can only learn or upgrade an ability every 2 or 3 levels? The way i've currently got everything set up is
Hero unit
Ability: Learn Ability (has lets say... stimpack as Learn1)
Ability: Stimpack (currently has no validators/requirements)
Now what happens if mr Hero starts out at level 1, he has -1 points to put into a skill, meaning he can't learn anything. Good that's what I want. Hero gets to level 2, he now has 0 points to put into a skill, still can't learn anything, exactly how I want it. He gets to level 3 he can put one point into stimpack if he chooses, ok. He gets to level 4 he now has 2 skill points and so on
What I want to happen is he can only gain 1 skill point every 2 or 3 levels instead of every 1 level. Additionally I also want to have specific level requirements for each ability. Stimpack I don't care about, since if I can make it only 1 skill point per level great. But I will need the hero to be at least say level 6 before he can learn Overpower, and level 10 before he can upgrade Overpower to level 2
I've been searching the forums and I can work out how to make abilities and give them different effects for each level, but I can't for the life of me figure out how to have requirements for learning it, nor how to give only 1 skill point per X amount of levels, rather than being fixed at 1 skill point per level. I'd much appreciate any help on this.
Cheers
bump - really need this sorted if possible
Doesn't really matter how I go about this, i'd prefer to keep it in the data editor for the streamlined feel, but if triggers are necessary so be it Some theoretical workarounds, none of which i've yet been able to implement
Data method - somehow through using validators/requirements require that the hero is an ODD level to be allowed to gain skill points, yet not disable the ability entirely, allowing him to still spend them regardless of level
Trigger method - When hero gains a level, set skill points for ability to Trunc(Hero Level / 2) - IE if level 1 / 0 points, lvl2 / 1 point, lvl 3 / 1 point, lvl 4 / 2 points etc
Trigger method - When hero gains a level, check if level is odd and if so, remove 1 skill point
Data method - Make a learnable ability require 2 skill points to be learned/upgraded?
If anyone could provide a solution to any of the above, or an alternative way i'd much appreciate it
@Millenium7: Go
I was having trouble with this exact thing and frankly I don't think the implemented Learn-Abilities are flexible enough...
I guess you would have to create your own Learn-Ability in order to give points every 2-3 levels or make Abilities require more than 1 learning point. I didn't do it though, because that's a LOT of work.
Anyways I can help you with the Ability requirements part:
What you wanna do is create a new requirement. Let's say your ability can be learned at level 1, 5, 9, 13 and so on. So you need to represent this with a formula, like this:
LevelOfUnit >= ((LevelofAbility + 0 ) * 4 ) +1
At level 0 this is (0 + 0)*4 +1 = 1.
At level 1 this is (1 + 0)*4 +1 = 5.
....
[I was gonna add the screenshot here, but that didn't work :s. It's attached now.]
I'm using "Show" for my requirements because I think the way requirements are shown ingame is ugly, but you can use "Use", too Apart from the correct implementation of the formula you just have to do three things: The whole thing must be "Greater or equal". On the first side you count the levels of your veterancy COMPLETED on unit. On the second side count the levels of the ability again completed on unit.
Now just add the requirement to your learning ability and that's that.
awesome thanks i'll have a look at it later. But how do I reference say LevelOfUnit or LevelOfAbility to an ingame unit/ability in the data editor? I have 0 experience with data scripting. Triggers no problem and to an extent custom scripts. Or do I literally just use LevelOfUnit and it'll check the level of the unit which houses the learn ability? buuuuut then how does LevelOfAbility become (level of ability 'Stimpack')?
I probably need to read some tutorials on scripting.....
edit: though this still doesn't solve the issue of only getting 1 point every 2 levels, because if I have say 4 different abilities and they all have level 2/4/6/8 as requirements, By level 3 i'll still have 2 points to put into 2 different abilities. Though it's a start so that's good and we're on track
No way i'm going to rewrite the learn ability, but surely there's a catalog value that can be set to manually give/remove skill points to a unit?
I know blizzard wanted to give more control to users but at the same time like seriously.... the most basic crap more often than not takes significantly longer than major overhauls. Creating a weapon from scratch, no problems. Making that weapon show a beam for instance, takes about 5x longer than everything else combined
@Millenium7: Go
You can't use LevelOfUnit, that was just an example. :-)
Let's do it step by step:
I hope this helps! And yes, I'm aware this doesn't adress the learning point issue. :-(
Edit: Check the screenshot, I know it's german, but you get the idea.
Sorted!
I created 2 global variables
HeroLevel[Array] - Integer
SkillPointsAvailable - Integer
and 2 triggers
Hero Gains Level
Events
Unit - Any Unit gains an experience level
Local Variables
Conditions
(Controller of player (Triggering player)) == User
Actions
Variable - Modify HeroLevel[(Triggering player)]: + 1
General - If (Conditions) then do (Actions) else do (Actions)
If
(HeroLevel[(Triggering player)] mod 2) >= 1
Then
Variable - Modify SkillPointsAvailable[(Triggering player)]: + 1
Unit - Enable the Hero - Learn Ability (Assault) ability for PlayerHero[(Triggering player)]
Else
Skill points
Events
Unit - Any Unit uses Hero - Learn Ability (Assault) at Generic6 - Complete stage (Include shared abilities)
Local Variables
Conditions
Actions
Variable - Modify SkillPointsAvailable[(Triggering player)]: - 1
General - If (Conditions) then do (Actions) else do (Actions)
If
SkillPointsAvailable[(Triggering player)] < 1
Then
Unit - Disable the Hero - Learn Ability (Assault) ability for PlayerHero[(Triggering player)]
Else
But this gives 1 point to SkillPointsAvailable whenever going up to an odd level 3/5/7/etc and is easily changeable if required. It also gives me greater flexibility in that I might only want to enable learning the first skill point at say lvl 4, then odd numbers thereafter, but give a bonus one at 10. Combined with level requirements for the abilities themselves I think we're be in business
edit: this still doesn't change the number of skill points available, i'm still gaining 1 per level even when the ability is disabled. However it does allow me to restrict spending to my liking