Skill Levels + Add-Ons

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
Overview/Features

Skill Levels v1.05 (04/12/2014)

This is a core script that allows you to have skill levels

- Assign initial, maximum and exp formula for each skill on a per actor/enemy basis

- Escape codes for showing those values in texts

- Script calls to handle modifying those values

EXP On Use Add-On v1.01 (04/11/2014)

An add-on for gaining skill exp upon skill use

- Gain exp when you use a skill

- Exp gain is set as a formula per skill

- Can have both hit and miss exp formula

Note: this add-on isn't yet fully tested

Downloads

View it here

Changelog

Skill Levels

Version 1.01 - Made the default level and max to be 1 instead of 0

Version 1.02 - Added an extension method that allows making extensions

when skills level up [NOTE: This is yet to be tested]

Version 1.03 - Fixed errors on the regex

Version 1.04 - Fixed a problem with a missing parameter

Version 1.05 - Clarified some info on the description + changed the specific actor extension tag

because the old one was wrong
Exp On Use Add-on

Version 1.01 - Fixed errors with the regex
Terms and Conditions

Read it here

Short Snippets

Show level on skill name

Code:
#Adds level to the skill nameclass RPG::BaseItem    def name    if self.is_a?(RPG::Skill) then      if SceneManager.scene_is?(Scene_Battle)        return @name if  BattleManager.actor.nil?        return @name + ": Level " + BattleManager.actor.skill_level(@id).to_s      else        return @name + ": Level " + SceneManager.scene.actor.skill_level(@id).to_s      end    else      return @name    end  end  endclass Scene_Base  attr_accessor :actorend
 
Last edited by a moderator:

SpacemanFive

Meteor Mage
Veteran
Joined
Jun 25, 2013
Messages
207
Reaction score
24
First Language
English
Primarily Uses
RMMZ
This sounds like an extremely useful script. I'm definitely thinking of using it in my current projects.

I'd like to ask a question about it, however. Would it be possible for there to be an add-on, which allows for a skill to be learnt based on the levels of one or more other skills?
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,299
Reaction score
11,712
First Language
English
Primarily Uses
RMVXA
This looks interesting.

Just as an aside, your Terms and Conditions still have you as Adiktuzmiko, not Engr. Shana.  Maybe a bit confusing?
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
@Space - I think so, I'll take a look when I get time


W8, you mean like leveling a skill when others reach a certain level or simply learning a skill? because if it's simply learning a skill, that is out of scope and Tsukihime's learn conditions I think can already handle that.


@ksjp - IDK... haha... maybe I'll just use my old name some time in the near future :)
 
Last edited by a moderator:

SpacemanFive

Meteor Mage
Veteran
Joined
Jun 25, 2013
Messages
207
Reaction score
24
First Language
English
Primarily Uses
RMMZ
@Space - I think so, I'll take a look when I get time

W8, you mean like leveling a skill when others reach a certain level or simply learning a skill? because if it's simply learning a skill, that is out of scope and Tsukihime's learn conditions I think can already handle that.

@ksjp - IDK... haha... maybe I'll just use my old name some time in the near future :)
I meant something like this:

A character has Skill A and Skill B. They manage to get them both to level 5. When they do, Skill C is unlocked and can now be used by the character.

If that is out of the scope of this script, would Tsukihime's script be able to manage that in conjunction with this one?
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
I think Tsukihime's script might be able to do that if used with this script. Since this script gives you method calls for determining skill level.


you can even just use a parallel process common event for this matter... but oh well, it might be pretty easy to make an add-on that is specific for that...
 
Last edited by a moderator:

SpacemanFive

Meteor Mage
Veteran
Joined
Jun 25, 2013
Messages
207
Reaction score
24
First Language
English
Primarily Uses
RMMZ
I think Tsukihime's script might be able to do that if used with this script. Since this script gives you method calls for determining skill level.

you can even just use a parallel process common event for this matter...
Great. Looks like that's what I'll be using, then.

The games I'm currently working on include a feature where you can learn combo skills once you've sufficiently mastered previous ones, which is why I wanted to be able to set skill level as a learn condition.

Thank you.
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
Updated script, added some extension support for making your own methods that run when a skill levels. if you know ruby, you can possibly write out your own formula to make it learn a new skill
 

SpacemanFive

Meteor Mage
Veteran
Joined
Jun 25, 2013
Messages
207
Reaction score
24
First Language
English
Primarily Uses
RMMZ
Updated script, added some extension support for making your own methods that run when a skill levels. if you know ruby, you can possibly write out your own formula to make it learn a new skill
That's all I needed, thank you very much. I hope it wasn't too much trouble.
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
tell me if it works... I can't perform tests right now since I'm on the office. :)
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
Added a snippet on the original post to show level on the skill name
 

Zoltor

Veteran
Veteran
Joined
Jan 18, 2014
Messages
1,550
Reaction score
211
First Language
English
Primarily Uses
I wasn't gonna use a skill leveling system in my game, but then I thought, while It's not worth it for my reg char skill, such would be great to use for the skills that the Summons/special transformation's use(it will help them keep up with the power curve, if their skills gained levels).

The only problem is, using one of those external note scripts is so gonna be a must for anyone planning to use this(might've been better off not using note tags at all, but havng people just add stuff to the script its self, working off of examples instead, to make it user friendly).

Suggestion/comment: It's strange that you make it strictly based on the Actor, why not the skill in general or the Class, I would think those two would make more sense, then to tie it to/base it on the Actor?
 
Last edited by a moderator:

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
Doing it for the skill makes it so limited... as for Actor Vs Class... hmmmm... I think it was because classes can be shared, Actors aren't (if we're talking about the actual class objects)... It gives you more freedom if you do it with the actor IMHO.


Now of course I can also make it based on the class the actor has (so it will be based on both Actor+Class), but oh well, that will just be more complicated + it will only be useful for games using multiclasses per actor since there's no point in checking for the class if your actor only uses 1 class anyways. Though then, I simply don't like the idea of having my skills "reset" level when I change classes (for the class only of course if ever I have skills that is shared between classes). Like if I can use Mage and Supah Mage, and I have a level 10 Fire on Mage then I switch to Supah Mage which also has fire, then since I'm checking classes, my Fire on Supah Mage is back to level 1 only.
 
Last edited by a moderator:

Otaku

Villager
Member
Joined
Jan 19, 2014
Messages
22
Reaction score
0
First Language
English
Primarily Uses
I am still learning and I need some help.

<SKILL LEVEL: ID,VALUE> = Sets initial level of skill denoted by ID to VALUE <SKILL MAX: ID,VALUE> = Sets the maximum level of skill denoted by ID to VALUE <SKILL PATH: FORMULA> = The formula used to determine how much EXP is needed per level. Supports multiple lines.How do I use these? I already know what the "ID" is.

I already know where to place the coding, the problem is "value" and "formula".

How do I use those two?
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
for example if you want actor 1's skill 10 to start and level 2 and have a max of 10


<SKILL LEVEL: 10,2>


<SKILL MAX: 10,10>


then if you want it to require a static 50 exp per level


<SKILL PATH: 50>


if you want it 50 per level


<SKILL PATH: 50*lvl>


Note: lvl returns the current level


so for level 1 to level 2, that will return 50*1
 

Otaku

Villager
Member
Joined
Jan 19, 2014
Messages
22
Reaction score
0
First Language
English
Primarily Uses

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
Updated script to v1.03! Changed the multilined tags because the old ones are so error prone
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,299
Reaction score
11,712
First Language
English
Primarily Uses
RMVXA
I know you say this script is easy, but not if you're a scripting idiot.  I set out below what I hoped to do and how I went about it, so that you can check my logic, and then the things I can't work out.

For testing purposes I used Skill 51 'fire' which has the damage formula 150 + a.mat * 2 - b.mdf * 2

So that I could see exactly what was happening, I reduced Variance to zero.

Because I don't want to sit around for hours, I decided that it should level up after being used only 5 times.

In the actor note box I put

<SKILL LEVEL: 51,1>

<SKILL MAX: 51,10>

<SKILL PATH: 5>

 

If I have read your instructions correctly, I now need to tag the skill as per the add-on script.  That says it should have the note:

<SKILL EXP_H: formula>

 

So problem number #1 - what is that formula?  I want each use of the skill to add one, so that after using it 5 times (in this example) it goes up to level 2.  However, if I play it simple and put in just 1 or +1, then I get the error message:

Script 'Adiktuzmiko Skills level up' line 194: ArgumentError occurred

wrong number of arguments (0 for 1)

 

So the formula should be ?

 

 

My next step would be to specify exactly how much the skill's damage should increase on each level up.  Which is my next problem, because I don't see where to specify that.  For the sake of an example, it could be so that after each level up, the base number in the damage formula would go up 20.

So at level 2 it would be 170 + a.mat * 2 - b.mdf * 2  

At level 3 it would be 190 + a.mat * 2 - b.mdf * 2

and so on.

 

Where do I specify that increase in damage?

 

Thanks.
 
Last edited by a moderator:

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
W8, I still need to check the add-on because I think it has the same flaw on the regex as the original script... Btw, just to be sure, the script error was on the original script?


as for the damage increase, it is done on your damage formula itself. As said on the script itself, you can use


a.skill_level(skill_id) to get the skill level of the caster


so your formula would be:


(150+a.skill_level(51)) + a.mat * 2 - b.mdf * 2


PS: Updated script. Can you try it now? btw, on the formula for the exp gain, put 1


PS 2: Get the updated levels script too, the error was because I forgot to add a parameter to the method call


PS 3: and make sure to see and use the new tags coz you seem to be using the really old ones
 
Last edited by a moderator:

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,299
Reaction score
11,712
First Language
English
Primarily Uses
RMVXA
Hmm, well...

Putting the info in the damage formula is fine - I know it's working because with (150+a.skill_level(51)) an extra 1 is added to the amount of damage caused - that's because it's the base plus 1 as that is the level of the skill.

However, I used the skill a lot more than 5 times, which is the number specified in the actor note tag <SKILL PATH: 5> and nothing changed.  The damage dealt remained exactly the same.

The skill note tag now reads:

<SKILL EXP_H>1<END SKILL EXP_H>

so I assume that each time the skill is used, the experience should increase by 1 until the 5 is reached, and at the very least another 1 should be added to the damage inflicted as it should increase the level by 1.

However, I still don't see where I specify that I want the damage inflicted by this skill to be +20 over the base rate, and in another skill to be +35 or whatever with each level up.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,867
Messages
1,017,062
Members
137,575
Latest member
akekaphol101
Top