The_Sarah - [v1.2] Actor Based Skill Progression

The_Sarah

Let's make great games together!
Veteran
Joined
Jul 18, 2020
Messages
100
Reaction score
80
First Language
English
Primarily Uses
RMVXA
Howdy!

Time for another script by me! The_Sarah! :)


Actor Based Skill Progression
[version 1.2]
by The_Sarah



---------------------
Patch Notes
.
Update 2 - Updated to 1.2 to help compatibility with other scripts.
Update 1 - Updated to version 1.1 to fix a bug with skill types.
.

---------------------
.
.
Features
.

Original script made by me (The_Sarah).
Initially requested by Slickdeath97
.

With this script, you are able to tie Skill Types, and the minimum levels required for chosen Actor/s to learn chosen Skills, to the Features section in the "Actor" tab rather than the "Class" tab.
.
This makes it easier for you to allow class changing in your game, without taking away skills that should stay with your character regardless of class change.
.
.
.
How to Use
Place the script below materials and above main in the Script Editor.

Then follow these steps:
.​
Step 1) Create your desired Skill Types in the "Terms" tab of the Database.

Step 2) Create any desired Skills for those Skill Types in the "Skills" tab of the Database.

Step 3) Make sure your Actors have BOTH the desired Skills and Skill Types listed in their "Features" list on their page in the "Actor" tab of the Database.

Step 4) Add a relevant Notetag in the "Notes" boxes of the Skills you would like to apply this script's effects to.
An example of how to write these Notetags is: <actorlvl30>

You may replace the number 30 in that example with the number of any minimum level required to learn your desired skills.
You must write the rest of that Notetag exactly the same.
.
More examples of how the Notetags work are listed within the Script, both in its How to Use section and its Notetags Examples Key section.

Step 5) Enjoy the Script! Maybe leave a like on this RPG Maker Forum Page? :p


Script
Actor Based Skill Progression [v1.2]
Ruby:
#------------------------------------------------------------------------------#
=begin

                         Actor Based Skill Progression

                                by The_Sarah
                                   (v1.2)
                                                       
--                                                                            --

                             ~~~ REQUIREMENTS ~~~
                         
                                    None
                              
--                                                                            --

                              ~~~ HOW TO USE ~~~

                        
Step 1) Create your desired Skill Types in the "Terms" tab of the Database.


Step 2) Create any desired Skills for those Skill Types in the "Skills" tab of
         the Database.
   
   
Step 3) Make sure your Actors have BOTH the desired Skills and Skill Types
         in their "Features" list on their page in the "Actor" tab of the
         Database.
   
   
Step 4) Add a relevant Notetag in the "Notes" boxes of the Skills you would
         like to apply this script's effects to.
   
         An example of how to write these Notetags is:  <actorlvl30>
   
   
         "<"        is the beginning of the Notetag and MUST be included
   
         "actorlvl" represents this actor level script and MUST be included
   
         "30"       is the minimum number you want your Actor/s to be at to
                    learn the desired Skill. This number can be changed to
                    any level in the game.
   
         ">"        is the end of the Notetag and MUST be included
   
   
         More examples of how the Notetags work are listed below this section
         in the "Notetags Examples Key".
   
   
Step 5) Enjoy the Script!
         Maybe leave a like on the RPG Maker Forum Page I post this to? :P
   
   
--                                                                            --

                           ~~~ NOTETAGS EXAMPLES ~~~
                     
You can write any number in your Notetag as long as it comes after the text
"actorlvl" and as long as it is a level your chosen Actor/s can achieve in
your game.

Here are just a few examples (min means minimum):
     
       Notetag Examples                        Explanations
        
         <actorlvl1>           =      A skill learned at min Actor level 1
         <actorlvl2>           =      A skill learned at min Actor level 2
         <actorlvl3>           =      A skill learned at min Actor level 3

         <actorlvl10>          =      A skill learned at min Actor level 10
         <actorlvl11>          =      A skill learned at min Actor level 11
         <actorlvl16>          =      A skill learned at min Actor level 16
       
         <actorlvl20>          =      A skill learned at min Actor level 20
         <actorlvl37>          =      A skill learned at min Actor level 37
         <actorlvl50>          =      A skill learned at min Actor level 50
         <actorlvl80>          =      A skill learned at min Actor level 80
         <actorlvl99>          =      A skill learned at min Actor level 99
         
   
--                                                                            --

                              ~~~ FEATURES ~~~
                          
   With this script, you are able to tie Skill Types and Learned Skill Levels
   of chosen Skills to the Features in the Actor tab rather than the Class tab.

   This makes it easier for you to allow class changing in your game without
   taking away skills that should stay with your character regardless of
   class change.
          

--                                                                            --

                            ~~~ TERMS OF USE ~~~

                      
    If you share a game with this script in it (freely or commercially),
    please credit me in the game.

      Ideally like this: "Actor Based Skills script by The_Sarah"

      Of like this if you edit the script yourself:
                         "Original Actor Based Skills script by The_Sarah"
                      
                   
    Other than that, this script is free to download and use or edit in any
    game or project you desire (free or commercial).
                      

--                                                                            --

                                ~~~ BUGS ~~~
 
                           No current known issues.

           
--                                                                            --

                           ~~~ SPECIAL THANKS ~~~

     * The_Sarah (aka me) for being awesome and making this script :D

     * RPG Maker Forum user Slickdeath97 for requesting it / the idea.


--                                                                            --

                                ~~~ OUTRO ~~~

   Have wonderful lives everyone!
   Be kind to eachother!
   Remember, we're all human!

                    Let's make wonderful games together!

                                                            - The_Sarah

=end
#------------------------------------------------------------------------------#
#=begin

#------------------------------------------------------------------------------#
#                                The Script                                    #
#------------------------------------------------------------------------------#
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles actors. It is used within the Game_Actors class
# ($game_actors) and is also referenced from the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Aliased Method: Get Added Skills
  # ** (originally found in Game_BattlerBase)
  #--------------------------------------------------------------------------
  alias thesarah_actorbasedskills_gameactor_addedskills           added_skills
  def added_skills
    if features_set(FEATURE_SKILL_ADD) {|test| $data_skills[test].note[/<actorlvl/i] }
       features_set(FEATURE_SKILL_ADD).delete_if {|test| $data_skills[test].note[/<actorlvl\s*(\d+)>/i] && $1.to_i > @level}
    else
      thesarah_actorbasedskills_gameactor_addedskills  # calls original method
    end
  end

end # end of Game_Actor class


#=end
.
Credit and Thanks
Me, aka The_Sarah for making the script.
Slickdeath97 for the idea.
.
.
Terms of use

1) Users must link to this forum post when sharing the script elsewhere.
2) Users must credit The_Sarah when sharing free games with others that have this script in them.
3) Users must credit The_Sarah when using the script in a game selling commercially.
4) If Users have edited the script, credit must still be provided to The_Sarah for the original script.
5) Other than that, there is no cost and it is free to use wherever :).

And that's it!
Enjoy, everyone! :)
 
Last edited:

slickdeath97

Veteran
Veteran
Joined
Feb 26, 2019
Messages
441
Reaction score
9
First Language
english
Primarily Uses
RMVXA
Howdy!

Time for another script by me! The_Sarah! :)


Actor Based Skill Progression
by The_Sarah [version 1.0]



---------------------
Patch Notes
.
None as of yet
.

---------------------
.
.
Features
.

Original script made by me (The_Sarah).
Initially requested by Slickdeath97
.

With this script, you are able to tie Skill Types, and the Learned Skill Minimum Levels of chosen Skills, to the Features in the "Actor" tab rather than the "Class" tab.
.
This makes it easier for you to allow class changing in your game, without taking away skills that should stay with your character regardless of class change.
.
.
.
How to Use
Place the script below materials and above main in the Script Editor.

Then follow these steps:
.​
Step 1) Create your desired Skill Types in the "Terms" tab of the Database.

Step 2) Create any desired Skills for those Skill Types in the "Skills" tab of the Database.

Step 3) Make sure your Actors have BOTH the desired Skills and Skill Types listed in their "Features" list on their page in the "Actor" tab of the Database.

Step 4) Add a relevant Notetag in the "Notes" boxes of the Skills you would like to apply this script's effects to.
An example of how to write these Notetags is: <actorlvl30>

You may replace the number 30 in that example with the number of any minimum level required to learn your desired skills.
You must write the rest of that Notetag exactly the same.
.
More examples of how the Notetags work are listed within the Script, both in its How to Use section and its Notetags Examples Key section.

Step 5) Enjoy the Script! Maybe leave a like on this RPG Maker Forum Page? :p


Script
Actor Based Skill Progression [v1.0]
Ruby:
#------------------------------------------------------------------------------#
=begin

                         Actor Based Skill Progression

                                by The_Sarah
                                   (v1.0)
                                                          
--                                                                            --

                             ~~~ REQUIREMENTS ~~~
                            
                                    None
                                  
--                                                                            --

                              ~~~ HOW TO USE ~~~

                            
Step 1) Create your desired Skill Types in the "Terms" tab of the Database.


Step 2) Create any desired Skills for those Skill Types in the "Skills" tab of
         the Database.
      
      
Step 3) Make sure your Actors have BOTH the desired Skills and Skill Types
         in their "Features" list on their page in the "Actor" tab of the
         Database.
      
      
Step 4) Add a relevant Notetag in the "Notes" boxes of the Skills you would
         like to apply this script's effects to.
      
         An example of how to write these Notetags is:  <actorlvl30>
      
      
         "<"        is the beginning of the Notetag and MUST be included
      
         "actorlvl" represents this actor skill script and MUST be included
      
         "30"       is the minimum number you want your Actor/s to be at to learn
                    the desired Skill. This number can be changed to any level
                    in the game.
      
         ">"        is the end of the Notetag and MUST be included
      
      
         More examples of how the Notetags work are listed below this section
         in the "Notetags Examples Key".
      
      
Step 5) Enjoy the Script!
         Maybe leave a like on the RPG Maker Forum Page I post this to? :P
      
      
--                                                                            --

                           ~~~ NOTETAGS EXAMPLES ~~~
                        
You can write any number in your Notetags as long as they come after the text
"actorlvl" and they are a level your chosen Actor/s can achieve in your game.

Here are just a few examples (min means minimum):
        
            Notetag Example                   Explanation
            
             <actorlvl1>           =      A skill learned at min Actor level 1
             <actorlvl2>           =      A skill learned at min Actor level 2
             <actorlvl3>           =      A skill learned at min Actor level 3

             <actorlvl10>          =      A skill learned at min Actor level 10
             <actorlvl11>          =      A skill learned at min Actor level 11
             <actorlvl12>          =      A skill learned at min Actor level 12
          
             <actorlvl20>          =      A skill learned at min Actor level 20
             <actorlvl30>          =      A skill learned at min Actor level 30
             <actorlvl50>          =      A skill learned at min Actor level 50
             <actorlvl80>          =      A skill learned at min Actor level 80
             <actorlvl99>          =      A skill learned at min Actor level 99
            
      
--                                                                            --

                              ~~~ FEATURES ~~~
                              
   With this script, you are able to tie Skill Types and Learned Skill Levels
   of chosen Skills to the Features in the Actor tab rather than the Class tab.

   This makes it easier for you to allow class changing in your game without
   taking away skills that should stay with your character regardless of
   class change.
              

--                                                                            --

                            ~~~ TERMS OF USE ~~~
  
                          
    If you share a game with this script in it (freely or commercially),
    please credit me in the game.
  
      Ideally like this: "Actor Based Skills script by The_Sarah"
    
      Of like this if you edit the script yourself:
                         "Original Actor Based Skills script by The_Sarah"
                          
                      
    Other than that, this script is free to download and use or edit in any
    game or project you desire (free or commercial).
                          
  
--                                                                            --

                                ~~~ BUGS ~~~
    
                           No current known issues.
  
              
--                                                                            --

                           ~~~ SPECIAL THANKS ~~~

     * The_Sarah (aka me) for being awesome and making this script :D
  
     * RPG Maker Forum user Slickdeath97 for requesting it / the idea.
  
  
--                                                                            --

                           ~~~ AUTHOR'S NOTES ~~~
                                (code talk)
                              
I've also included a little bit of code in this Script for getting an Actor's
Skill Types into a Public Instance Variable.

This is a bit leftover from an earlier version of this Script but I quite
like this extra info added to Game_Actor and figure others might find it
useful so I've decided to leave it in here as the Script's not that big.


--                                                                            --

                                ~~~ OUTRO ~~~

   Have wonderful lives everyone!
   Be kind to eachother!
   Remember, we're all human!

                    Let's make wonderful games together!

                                                            - The_Sarah

=end
#------------------------------------------------------------------------------#
#=begin

#------------------------------------------------------------------------------#
#                                The Script                                    #
#------------------------------------------------------------------------------#
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles actors. It is used within the Game_Actors class
# ($game_actors) and is also referenced from the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :actor_added_skill_types  # For getting Actor's skill types
  #--------------------------------------------------------------------------
  # * Aliased Method: Setup
  #--------------------------------------------------------------------------
  alias thesarah_actorbasedskills_gameactor_setup             setup
  def setup(actor_id)
    thesarah_actorbasedskills_gameactor_setup(actor_id) # calls original method
    get_actor_added_skill_types
  end
  #--------------------------------------------------------------------------
  # * New Method: Get Actor's Added Skill Types
  #--------------------------------------------------------------------------
  def get_actor_added_skill_types
    @actor_added_skill_types = added_skill_types
  end
  #--------------------------------------------------------------------------
  # * Overwritten Method: Get Skill Object Array
  #--------------------------------------------------------------------------
  def skills
    (@skills | added_skills).sort.collect {|id| $data_skills[id] unless $data_skills[id].note[/<actorlvl\s*(\d+)>/i] && $1.to_i > @level }
  end


end # end of Game_Actor class

#=end
.
Credit and Thanks
Me, aka The_Sarah for making the script.
Slickdeath97 for the idea.
.
.
Terms of use

1) Users must link to this forum post when sharing the script elsewhere.
2) Users must credit The_Sarah when sharing free games with others that have this script in them.
3) Users must credit The_Sarah when using the script in a game selling commercially.
4) If Users have edited the script, credit must still be provided to The_Sarah for the original script.
5) Other than that, there is no cost and it is free to use wherever :).

And that's it!
Enjoy, everyone! :)
Ok, so I got an error when I put both the skills and skill type in the actors part of the database:
1598368981268.png


1598369014453.png


1598369037454.png
 

The_Sarah

Let's make great games together!
Veteran
Joined
Jul 18, 2020
Messages
100
Reaction score
80
First Language
English
Primarily Uses
RMVXA
Ok, so I got an error when I put both the skills and skill type in the actors part of the database:
1598368981268.png


1598369014453.png


1598369037454.png
Thanks for pointing that out!

It was a result of some behind the scenes code I thought was pretty nifty so left in but turns out I hadn't considered all the reactions to that code lol.

Anyway, script has now been updated to a version 1.1 which "fixes" that bug accordingly.

Everything should work great now, let me know if you encounter any more problems.
 

slickdeath97

Veteran
Veteran
Joined
Feb 26, 2019
Messages
441
Reaction score
9
First Language
english
Primarily Uses
RMVXA
Thanks for pointing that out!

It was a result of some behind the scenes code I thought was pretty nifty so left in but turns out I hadn't considered all the reactions to that code lol.

Anyway, script has now been updated to a version 1.1 which "fixes" that bug accordingly.

Everything should work great now, let me know if you encounter any more problems.
Got another error:
1598376332313.png
Here is the script I am using that is giving the error:
 

The_Sarah

Let's make great games together!
Veteran
Joined
Jul 18, 2020
Messages
100
Reaction score
80
First Language
English
Primarily Uses
RMVXA
Alright, looking into it now, gimme a mo.
 

The_Sarah

Let's make great games together!
Veteran
Joined
Jul 18, 2020
Messages
100
Reaction score
80
First Language
English
Primarily Uses
RMVXA
If you want here is my script list that I have:
Hmm, thought it was an aliasing issue, turns out it's a little more complex than that.

This may take a little bit of time to figure out, will update you when done (should still be "today" :) ).

(Edit - The script works fine on its own by the way, it's a compatibility issue with how Yanfly calls Skills, shouldn't be impossible to get working together though, working on it now)
 

The_Sarah

Let's make great games together!
Veteran
Joined
Jul 18, 2020
Messages
100
Reaction score
80
First Language
English
Primarily Uses
RMVXA
Got another error:
View attachment 157390
Here is the script I am using that is giving the error:
I believe I have fixed the issues of other-script compatibility.

Sorry it took a little while, had to learn more about how arrays and array based methods worked for this one and I wasn't all that experienced with that at first.

This script should now work with any other script you want to use provided it is this script's version 1.2 or onwards.
 

slickdeath97

Veteran
Veteran
Joined
Feb 26, 2019
Messages
441
Reaction score
9
First Language
english
Primarily Uses
RMVXA
I believe I have fixed the issues of other-script compatibility.

Sorry it took a little while, had to learn more about how arrays and array based methods worked for this one and I wasn't all that experienced with that at first.

This script should now work with any other script you want to use provided it is this script's version 1.2 or onwards.
YOU ARE A GOD SEND! I am definitely putting you in the credits of my game. Thank you so much.
 

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

Latest Threads

Latest Posts

Latest Profile Posts

People3_5 and People3_8 added!

so hopefully tomorrow i get to go home from the hospital i've been here for 5 days already and it's driving me mad. I miss my family like crazy but at least I get to use my own toiletries and my own clothes. My mom is coming to visit soon i can't wait to see her cause i miss her the most. :kaojoy:
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.

Forum statistics

Threads
105,868
Messages
1,017,090
Members
137,586
Latest member
Usagiis
Top