The Ability Distribution plugin is an addon to my Stat Distribution plugin: It will thus not work on its own. Make sure that both plugins are always equally up to date.
This plugin will extend the stat distribution plugin with a toggle that allows you to switch between increasing your parameters and Abilities.
What are abilities?
Every hero can have his own set of abilities or you could have the actors share the same abilities. It’s up to you.
Abilities don’t do anything on their own. It will be your job to integrate abilities into wherever you want them. A few examples for the use of abilities:
- You want to open this magicly sparking magic chest of Magic? You better have a high ability level in Perception then!
- You can make a skill’s damage/healing/absorb scale with ability levels instead of the usual and boring default params.
- You use Yanfly’s Class Params? Great, why not make a param scale with an ability level? Your actors could get extra HP for having a high Tenacity ability level. Example formula would be:
maxhp = 200 + (level * 30) + (user.abilityLevel("Tenacity") * 60)
This formula means: Base HP value of 200 and the actor gains 30 HP per level. For each point in tenacity, their HP increases by another 60. You can of course make the values vary for every different class! You could have Tenacity have a bigger effect for Warriors and a smaller effect for mages!
These are just some examples of usage that come to my mind. You can use these abilities basically anywhere!
This plugin doesn’t really require any adjustments. There’s one thing that you might wanna change though: The key binding for switching between the Stat and Ability windows. You can do so in the plugin parameters.
Now onto the most important part of this plugin: The script commands.
$gameActors.actor(x).addAbility(“name”, startValue, maxValue, requiredPoints, growth, color1, color2)
color1 and color2 are optional – they will default to text color 10.
I know this looks extremely overwhelming at first but it loses its scary look if you inspect it close enough. In the paragraph above, I mentioned that you have to add abilities to your actors. There are no pre-defined abilities or anything of the sort. You have to add each ability that you want in the game manually to the actors you want to have this ability.
Let’s take an actor from my game: Dean. His actor ID is 4 in the database. So I replace the x above with 4, since I want to add an ability to him. Let’s add the Tenacity ability I’ve mentioned above. That means I replace “name” with “Tenacity”. I want Dean to start with 0 Tenacity and I want him to be able to increase it up to 30. For this reason I replace startValue with 0 and maxValue with 30. I need Dean to be able to get this ability up rather quick so I give this ability a cost of 1. To do this I replace requiredPoints with 1. Since I have a low cost for the ability I’ll give it a slow growth: Hence I replace growth with 1. I want to use the default colours so I just leave those parameters blank. The final command looks like this:
$gameActors.actor(4).addAbility("Tenacity", 0, 30, 1, 1)
These commands are best used in Conditional Branches, since they return either true or false:
Returns true if actor x has ability “abilityName”. Returns false otherwise.
- $gameActor.actor(x).checkAbilityLevel(“abilityName”, level)
Returns true if the ability level of “abilityName” for actor x is bigger than or equal to level. Returns false otherwise.
This one returns an integer:
Returns the level of “ability” of actor x.
With these commands existing abilities can be altered:
- $gameActors.actor(x).increaseAbilityLevel(“ability”, amount)
Increases “ability”‘s level by amount.
- $gameActor.actor(x).abilitySetName(“oldName”, “newName”)
Sets ability “oldName”‘s name to “newName” for actor x.
- $gameActor.actor(x).abilitySetMaxValue(“ability”, value)
Sets “ability”‘s maximum value to value for actor x.
- $gameActor.actor(x).abilitySetReqPoints(“ability”, value)
Sets “ability”‘s required points to be upped once to value for actor x.
- $gameActor.actor(x).abilitySetCurrentValue(“ability”, value)
Sets “ability”‘s current value to value for actor x.
- $gameActor.actor(x).abilitySetColor1(“ability”, newColor)
Sets “ability”‘s color 1 to newColor for actor x.
- $gameActor.actor(x).abilitySetColor2(“ability”, newColor)
Sets “ability”‘s color 2 to newColor for actor x.
Removes “ability” from the list of actor x’s abilities. This is permanent and no trace of this ability will be left over so be sure to use this with caution.
Default Window: Determines which of the both windows will be open when the scene is called. Possibilites: stat ability
Switch Key: The key number for switching windows. See below for more information on this.
Key Name: The name of the Key on the keyboard.
Lower Help Window Text 1: This text will be shown in the lower help window when the stat window is active.
Lower Help Window Text 2: This text will be shown in the lower help window when the ability window is active.
Help Window Text: This text will be shown in the upper help window when selecting an ability.
Return Text: This text will be shown in the upper help window when the Finish command is selected.
About the key parameters: You can either use a pre-defined key by the Maker Engine (for a list of these look in the plugins help file) or you can use a key that you want (I chose “S” for this). To find out the number that refers to the key of your liking follow this link: http://www.theasciicode.com.ar/