Actor Generator

Rinobi

Veteran
Veteran
Joined
Mar 24, 2014
Messages
579
Reaction score
219
First Language
English
Primarily Uses
RMVXA
Actor Generator
by: Rinobi

Create randomly generator actors with a great deal of customization.
This script includes gender, personality, and stat settings.

See script header for details, and screenshots for example use.​


  • [05/19/2017] 1.00 Public Release
  • [02/23/2020] 1.10 Added missing kernel methods
  • [02/24/2020] 1.20 Bug Fixes
  • [02/29/2020] 1.30 Bug Fixes
  • A great deal of customization, allowing specific or broad randomization.
  • Randomization performed through notetags on project startup and in-game script calls.
  • Nicknames and Descriptions used as 'personality' titles and descriptions.
  • Three types of actor stat variation for further differentiation.
  • ABSOLUTELY NO HASHES INCLUDED!
ags_exam00.PNG ags_exam01.PNG ags_exam02.PNG ags_exam03.PNG ags_exam04.PNG ags_exam05.PNG
Code:
module RINOBI module ActGen # DO NOT MODIFY
#==============================================================================
# # Actor Generator
# -----------------------------------------------------------------------------
# 1.0 [04/23/2017] Completed
# 1.1 [02/23/2020] Added missing kernel methods
# 1.2 [02/24/2020] Bug Fixes
# 1.3 [02/29/2020] Bug Fixes
#-
# Randomly generates an actor.
#==============================================================================
# # TERMS OF USE
#------------------------------------------------------------------------------
# 1. Preserve this header.
# 2. Do not re-upload this script.
# 3. Do not claim this script as your own work.
# 4. Do not release modified versions of this script.
# 5. Contact me for commercial use.
#==============================================================================
# # SETTINGS
# -----------------------------------------------------------------------------
# Adjust the below settings to your liking.
#-

    #======================================================================
    # >> Actor Generation
    # ---------------------------------------------------------------------
    # All settings can be generated at once, or individual notetags may be
    # used for fine tuning. 
    #-
    # <GENERATE ALL>            | <generate_all>
    # <GENERATE GENDER>         | <generate_gender>
    # <GENERATE GENDER GRAPHICS>| <generate_gender_graphics>
    # <GENERATE NAME>           | <generate_name>
    # <GENERATE PERSONALITY>    | <generate_personality>
    # <GENERATE CLASS>          | <generate_class>
    # <GENERATE INITIAL LEVEL>  | <generate_initial_level>
    # <GENERATE MAXIMUM LEVEL>  | <generate_maximum_level>
    # <GENERATE SKILL LEARNING> | <generate_skill_learning>
    # <GENERATE PARAMETERS>     | <generate_parameters>
    # <GENERATE PARAM RATE>     | <generate_param_rate>
    # <GENERATE PARAM BASE>     | <generate_param_base>
    # <GENERATE PARAM PLUS>     | <generate_param_plus>
    #-
    # $game_actors[actor_id].generate_all
    # $game_actors[actor_id].generate_gender
    # $game_actors[actor_id].generate_gender_graphics
    # $game_actors[actor_id].generate_name
    # $game_actors[actor_id].generate_personality
    # $game_actors[actor_id].generate_class
    # $game_actors[actor_id].generate_initial_level
    # $game_actors[actor_id].generate_maximum_level
    # $game_actors[actor_id].generate_skill_learning
    # $game_actors[actor_id].generate_parameters
    # $game_actors[actor_id].generate_param_rate
    # $game_actors[actor_id].generate_param_base
    # $game_actors[actor_id].generate_param_plus
    #======================================================================
    # >> Disable Switches
    # ---------------------------------------------------------------------
    # Prevents certain generation elements from processing while using the
    # Generate All notetag. These settings will not prevent other notages
    # from functioning normally.
    #-
    # Note Tags:
    #
    # <DISABLE GENDER>          | <disable_gender>
    # <DISABLE GENDER GRAPHICS> | <disable_gender_graphics>
    # <DISABLE NAME>            | <disable_name>
    # <DISABLE PERSONALITY>     | <disable_personality>
    # <DISABLE CLASS>           | <disable_class>
    # <DISABLE INITIAL LEVEL>   | <disable_initial_level>
    # <DISABLE MAXIMUM LEVEL>   | <disable_maximum_level>
    # <DISABLE SKILL LEARNING>  | <disable_skill_learning>
    # <DISABLE PARAMETERS>      | <disable_parameters>
    # <DISABLE PARAM RATE>      | <disable_param_rate>
    # <DISABLE PARAM BASE>      | <disable_param_base>
    # <DISABLE PARAM PLUS>      | <disable_param_plus>
    #-
    # Script Calls:
    #
    # $game_actors[actor_id].disable_genders = true
    # $game_actors[actor_id].disable_g_graphics = true
    # $game_actors[actor_id].disable_names = true
    # $game_actors[actor_id].disable_personalities = true
    # $game_actors[actor_id].disable_classes = true
    # $game_actors[actor_id].disable_initial_levels = true
    # $game_actors[actor_id].disable_maximum_levels = true
    # $game_actors[actor_id].disable_skill_learning = true
    # $game_actors[actor_id].disable_parameters = true
    # $game_actors[actor_id].disable_param_rate = true
    # $game_actors[actor_id].disable_param_base = true
    # $game_actors[actor_id].disable_param_plus = true
    #======================================================================
      Disable_Genders        = false  # Gender will not be chosen.
      Disable_G_Graphics     = false  # Gender Graphics will not be chosen.
      Disable_Names          = false  # Name Generation will not process.
      Disable_Personalities  = false  # A personnally will not be generated.
      Disable_Classes        = false  # A class will not be set randomly.
      Disable_Initial_Levels = false  # Use database initial level.
      Disable_Maximum_Levels = false  # Use database maximum level.
      Disable_Skill_Learning = false  # Only class skills learned on level up.
      Disable_Parameters     = false  # All Stat modifers will not be applied.
      Disable_Param_Rate     = false  # Rate stat modifiers will not be applied.
      Disable_Param_Base     = false  # Base stat modifiers will not be applied.
      Disable_Param_Plus     = false  # Plus stat modifiers will not be applied.
    
    #======================================================================
    # >> Default Gender
    # ---------------------------------------------------------------------
    # The gender all actors will receive before any settings are applied.
    # Can be one of three strings: "female", "male", "bigender" or a number
    # between 0 and 2 representing the genders respectively.
    #-
    # <SET GENDER: X> or <set_gender: X>
    # $game_actors[actor_id].set_gender(X)
    #======================================================================
      Default_Gender = "BiGender"

    #======================================================================
    # >> Bigender Chance
    # ---------------------------------------------------------------------
    # The percent chance that an actor will be generated as a bigender.
    # These actors use ambigous names and bigender graphics. Set to 0.00
    # to disable this setting.
    #-
    # <SET BIGENDER CHANCE: X> | <set_bigender_chance: X>
    # $game_actors[actor_id].set_bigender_chance(X)
    #======================================================================
      Bigender_Chance = 5.0

    #======================================================================
    # >> Gender Graphics
    # ---------------------------------------------------------------------
    # Actors will be given random graphics based on their gender setting.
    # Character and face graphics are defined in sets from left to right.
    #-
    # ["Character Name", Character Index, "Face Name", Face Index]
    #======================================================================
      Gender_Graphics = [
        [ # Female
          # Character | Face
          ["Actor1",1,"Actor1",1], ["Actor1",3,"Actor1",3],
          ["Actor1",5,"Actor1",5], ["Actor2",1,"Actor2",1],
          ["Actor2",3,"Actor2",3], ["Actor2",5,"Actor2",5],
          ["Actor2",7,"Actor2",7], ["Actor3",1,"Actor3",1],
          ["Actor3",3,"Actor3",3], ["Actor3",5,"Actor3",5],
          ["Actor3",7,"Actor3",7], ["Actor4",1,"Actor4",1],
          ["Actor4",3,"Actor4",3], ["Actor4",5,"Actor4",5],
          ["Actor5",1,"Actor5",1], ["Actor5",5,"Actor5",5],
          ["Actor5",7,"Actor5",7], ["People1",1,"People1",1],
          ["People1",5,"People1",5], ["People1",7,"People1",7],
          ["People2",1,"People2",1], ["People2",5,"People2",5],
          ["People2",7,"People2",7], ["People3",0,"People3",0],
          ["People3",2,"People3",2], ["People3",7,"People3",7],
          ["People4",1,"People4",1], ["People4",3,"People4",3],
        ],
        [ # Male
          # Character | Face
          ["Actor1",0,"Actor1",0], ["Actor1",2,"Actor1",2],
          ["Actor1",4,"Actor1",4], ["Actor1",6,"Actor1",6],
          ["Actor2",2,"Actor2",2], ["Actor2",6,"Actor2",6],
          ["Actor3",0,"Actor3",0], ["Actor3",2,"Actor3",2],
          ["Actor3",6,"Actor3",6], ["Actor4",0,"Actor4",0],
          ["Actor4",2,"Actor4",2], ["Actor4",6,"Actor4",6],
          ["Actor5",2,"Actor5",2], ["Actor5",3,"Actor5",3],
          ["Evil",0,"Evil",0], ["Evil",1,"Evil",1],
          ["Evil",5,"Evil",5], ["Evil",6,"Evil",6],
          ["People1",0,"People1",0], ["People1",2,"People1",2],
          ["People1",4,"People1",4], ["People1",6,"People1",6],
          ["People2",0,"People2",0], ["People2",2,"People2",2],
          ["People2",3,"People2",3], ["People2",4,"People2",4],
          ["People3",1,"People3",1], ["People3",3,"People3",3],
          ["People3",4,"People3",4], ["People4",0,"People4",0],
          ["People4",2,"People4",2], ["People4",4,"People4",4],
          ["People4",5,"People4",5], ["People4",6,"People4",6],
          ["People4",7,"People4",7],
        ],
        [ # Bigender
          # Character | Face
          ["Actor2",0,"Actor2",0], ["Actor2",4,"Actor2",4],
          ["Actor3",4,"Actor3",4], ["Actor4",4,"Actor4",4],
          ["Actor4",7,"Actor4",7], ["Actor5",0,"Actor5",0],
          ["Actor5",3,"Actor5",3], ["Actor5",4,"Actor5",4],
          ["Actor5",6,"Actor5",6], ["Evil",2,"Evil",2],
          ["Evil",3,"Evil",3], ["Evil",4,"Evil",4],
          ["Evil",7,"Evil",7], ["People1",3,"People1",3],
          ["People2",5,"People2",5], ["People2",6,"People2",6],
          ["People3",5,"People3",5],
        ],
      ] # Gender Graphics
      
    #======================================================================
    # >> Name Dictionary
    # ---------------------------------------------------------------------
    # The total selection of names based on gender. Ambigous names are also
    # avaliable to male and female actors.
    #======================================================================
      Names = [
        [ # Feminine
        "Ainsley", "Amy", "Amilia", "Anabelle", "Andra",
        "Aretha", "Ariana", "Ashley", "Bernadine", "Braidy",
        "Brenda", "Candy", "Casey", "Cathryn", "Chelsie",
        "Cherie", "Cordelia", "Corine", "Dakota", "Daniella",
        "Davena", "Deanna", "Delice", "Dianna", "Dianne",
        "Dorothy", "Edna", "Elaina", "Elizabeth", "Ella",
        "Emma", "Evelyn", "Freda", "Hilda", "Hollie",
        "Georgia", "Ginger", "Isabell", "Isidora", "Jade",
        "Jazmine", "Jennifer", "Joella", "Joy", "Julianne",
        "Kacie", "Kalie", "Kalla", "Kristeen", "Krystle",
        "Kyla", "Laura", "Laurelle", "Leila", "Lela",
        "Lexie", "Lindsie", "Linnaea", "London", "Lorena",
        "Louise", "Lucia", "Lydia", "Lynn", "Madelaine",
        "Margaret", "Marissa", "Matilda", "Maybelline", "Monna",
        "Moriah", "Myranda", "Nichole", "Pauleen", "Permelia",
        "Queen", "Rachel", "Rebecca", "Rexana", "Rochelle",
        "Rosanne", "Rose", "Rosemary", "Rowena", "Roxanne",
        "Sabrina", "Sara", "Serina", "Serrena", "Sheila", 
        "Sherry", "Silvia", "Sophia", "Stacy", "Susan", 
        "Sydnie", "Tabitha", "Tammara", "Tara", "Vivyan", 
        "Xanthia", "Zenia", 
        ],
        [ # Masculine
        "Ace", "Aiden", "Allen", "Archer", "Aylmer", 
        "Baxter", "Blake", "Brandon", "Brant", "Bret", 
        "Brian", "Brodie", "Bryce", "Buddy", "Burt", 
        "Calvin", "Colbert", "Cooper", "Cory", "Crispin", 
        "Dalton", "Daren", "Darrell", "Delmar", "Derrick", 
        "Darwin", "David", "Dean", "Devin", "Donald", 
        "Edwin", "Ernest", "Evander", "Gabriel", "Garret", 
        "Garry", "Gorden", "Harlan", "Harold", "Harris", 
        "Hubert", "Hyrum", "Ivor", "Jarvis", "Jaymes", 
        "Jeffry", "Jerred", "Jocelyn", "Jolynon", "Joshua", 
        "Kenrick", "Kody", "Lawrence", "Lee", "Leon", 
        "Leyton", "Lloyd", "Lynton", "Marcus", "Mark", 
        "Marlo", "Martin", "Maurice", "Maverick", "Maxwell", 
        "Mordikai", "Morris", "Moss", "Nathan", "Nigel", 
        "Norbert", "Odin", "Oscar", "Oswin", "Otto", 
        "Price", "Quinn", "Richard", "Rick", "Robert", 
        "Roswell", "Roy", "Rudolph", "Russel", "Seth", 
        "Shannon", "Slade", "Sonny", "Tanner", "Terence", 
        "Terrell", "Troy", "Trueman", "Tylor", "Waldo", 
        "Wallace", "Warrick", "Weldon", "William", "Wright", 
        "Zatch", 
        ],
        [ # Ambigous
        "Alan", "Ambrose", "Angel", "Ash", "Bell", 
        "Blair", "Braelyn", "Bronte", "Brynne", "Cameron", 
        "Candace", "Casey", "Cass", "Cassidy", "Chante", 
        "Cherice", "Clive", "Cohen", "Corynn", "Dayton", 
        "Deanne", "Deeann", "Deloris", "Derby", "Devan", 
        "Dyson", "Eden", "Elaine", "Ellery", "Eloise", 
        "Emerald", "Errol", "Estelle", "Eunice", "Florence", 
        "Francis", "Franklyn", "Gae", "Garnette", "Gene", 
        "Grey", "Gypsy", "Hearther", "Hunter", "Inez", 
        "Jaiden", "Jessie", "Jewel", "Jordan", "Judith", 
        "Kevyn", "Kiley", "Kim", "Kinley", "Kinsley", 
        "Kyle", "Lacy", "Laverne", "Leone", "Lesley", 
        "Linsey", "Lowell", "Lyle", "Macey", "Marion", 
        "Marjorie", "Melville", "Morgan", "Moses", "Narelle", 
        "Nevaeh", "Noel", "Odell", "Olive", "Ora", 
        "Orval", "Patrice", "Rain", "Raven", "Regan", 
        "Rene", "Rian", "Sage", "Skye", "Skylar", 
        "Sorrel", "Star", "Sylvanus", "Tallulah", "Tatum", 
        "Taylor", "Terry", "Vere", "Yazmin", 
        ],
      ] # Names
      
    #======================================================================
    # >> Personalities.
    # ---------------------------------------------------------------------
    # This setting affects nicknames and actor descriptions. It's meant to
    # give gennerated actors a little more diversity and... personality.
    #-
    # <SET PERSONALITY: X> or <set_personality: X>
    # $game_actors[actor_id].set_personality(X)
    #
    # Where X is a number representing the corrisponding personality below.
    #======================================================================
      Personalities = [ # <= DO NOT MODIFY
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 1 - Dutiful
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Dutiful",
        "Interested in security and a peaceful living.",
        "Extremely thorough, responsible, and dependable."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 2 - Technical
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Technical",
        "Interested in how and why things work.",
        "Has excellent skills with mechanical things."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 3 - Nurturer
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Nurturer",
        "Can always be depended on to follow through.",
        "Puts the needs of others above their own needs."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 4 - Artistic
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Artistic",
        "Does not like conflict, but is likely to do",
        "things which may generate conflict."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 5 - Protector
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Protector",
        "Quietly forceful, original and sensitive.",
        "Tends to stick to things until they are done."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 6 - Idealist
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Idealist",
        "Quiet, reflective, and idealistic.",
        "Interested in serving humanity."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 7 - Deductive
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Deductive",
        "Analytical, and determined. Has an exceptional",
        "ability to turn theories into plans of action."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 8 - Thinker
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Thinker",
        "Logical, original, and a creative thinker.",
        "Becomes very excited about theories and ideas."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 9 - Achiever
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Achiever",
        "Friendly, adaptable, and action-oriented.",
        "Generally focuses on getting immediate results."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 10 - Guardian
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Guardian",
        "Practical, traditional, and well organized.",
        "Interested in obvious pratical applications."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 11 - Performer
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Performer",
        "People-oriented and fun-loving. Makes things",
        "more fun for others by enjoying of the moment."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 12 - Caregiver
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Caregiver",
        "Warm-hearted, conscientious, and usually popular.",
        "Tends to put the needs of others above own needs."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 13 - Inspirer
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Inspirer",
        "Enthusiastic, idealistic, and creative.",
        "Able to do almost anything of interest."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 14 - Giver
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Giver",
        "Sensitive with outstanding people skills.",
        "Has a real concern for how others think and feel."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 15 - Visionary
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Visionary",
        "Creative, resourceful, and intellectually quick.",
        "Good at a broad range of things."],
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        # >>> 16 - Executive
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        ["Executive",
        "Assertive and outspoken, driven to lead.",
        "Understands difficult organizationnal problems."]
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      ] # Personalities
      
    #======================================================================
    # >> Max Possible Level
    # ---------------------------------------------------------------------
    # Mostly inntended for compatibility, this setting affects parameter
    # related calculations. Set it to the max possible level for actors.
    #======================================================================
      Max_Possible_Level = 99
      
    #======================================================================
    # >> Class Selection
    # ---------------------------------------------------------------------
    # The classes avaliable for actor generation.
    # Add any muber of class IDs to the array.
    #-
    # <SET CLASS SELECTION: X,X,X> or <set_class_selection: X,X,X>
    # $game_actors[actor_id].set_class_selection([X,X,X])
    #======================================================================
      Class_Selection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      
    #======================================================================
    # >> Level Range
    # ---------------------------------------------------------------------
    # The initial and maximum level a generated actor will have.
    #-
    # <SET INITIAL LEVEL: (X..X)> | <set_initial_level: (X..X)>
    # <SET MAXIMUM LEVEL: (X..X)> | <set_maximum_level: (X..X)>
    # $game_actors[actor_id].set_initial_level(X..X)
    # $game_actors[actor_id].set_maximum_level(X..X)
    #======================================================================
      Initial_Level_Range = (1..5 ) # Starting level range.
      Maximum_Level_Range = (50..Max_Possible_Level) # Ending level range.
      
    #======================================================================
    # >> Skill Learnings
    # ---------------------------------------------------------------------
    # These are the skills an actor will learn upon increasing their level.
    # The list below is seperated by classes ordered in the way they appear
    # appear within your database after the first class. Class 0 affects
    # all actors.
    #======================================================================
      Skill_Learnings = [ # <= DO NOT MODIFY
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        [ # >>> Class 0 - All Actors
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 1
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (1..10), [20, 21, 23]
          ], # Tier 1
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 2
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (11..20), [8, 9, 10, 19, 24]
          ], # Tier 2
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 3
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (21..30), [5, 11, 12, 13, 14, 15]
          ], # Tier 3
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 4
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (31..40), [16, 17, 18, 22]
          ], # Tier 4
        ],# Soldier
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        [ # >>> Class 1 - Soldier
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 1
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (1..5), [80,85,90,95,100,105,110]
          ], # Tier 1
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 2
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (6..10), [81,86,91,96,101,106,111]
          ], # Tier 2
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 3
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (11..15), [82,87,92,97,102,107,112]
          ], # Tier 3
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 4
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (16..20), [83,88,93,98,103,108,113]
          ], # Tier 4
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 5
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (21..25), [84,89,94,99,104,109,114]
          ], # Tier 5
        ],# Soldier
        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        [ # >>> Class 2 - Monk
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 1
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (1..5), [80,85,90,95,100,105,110]
          ], # Tier 1
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 2
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (6..10), [81,86,91,96,101,106,111]
          ], # Tier 2
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 3
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (11..15), [82,87,92,97,102,107,112]
          ], # Tier 3
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 4
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (16..20), [83,88,93,98,103,108,113]
          ], # Tier 4
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          [ # Tier 5
          #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          # Level Range | Skill IDs
          (21..25), [84,89,94,99,104,109,114]
          ], # Tier 5
        ],# Monk
      ]
      
    #======================================================================
    # >> Parameter Rate
    # ---------------------------------------------------------------------
    # Multiplies all parameters within the below range. Each parameter is
    # affected seperately by a value within the range.
    #======================================================================
      Parameter_Rate = (0.80..1.25)
      
    #======================================================================
    # >> Parameter Base
    # ---------------------------------------------------------------------
    # Adds a flat value within the below range to the specified parameter.
    #======================================================================
      Parameter_Base = [
        (-113..226), # MHP Parameter
          (-23..46), # MMP Parameter
            (-4..8), # ATK Parameter
            (-4..8), # DEF Parameter
            (-4..8), # MAT Parameter
            (-4..8), # MDF Parameter
           (-8..16), # AGI Parameter
           (-8..16), # LUK Parameter
      ] # <= DO DOT MODIFY
      
    #======================================================================
    # >> Parameter Plus
    # ---------------------------------------------------------------------
    # Set two value ranges per parameter, minimum and maximum bonus values.
    # The set values create a distribution range based on the actor's
    # current level.
    #======================================================================
      Parameter_Plus = [
        [(-113..113), (-1338..1338)], # MHP Parameter
        [  (-23..23),   (-268..268)], # MMP Parameter
        [    (-4..4),     (-35..35)], # ATK Parameter
        [    (-4..4),     (-35..35)], # DEF Parameter
        [    (-4..4),     (-35..35)], # MAT Parameter
        [    (-4..4),     (-35..35)], # MDF Parameter
        [    (-8..8),     (-69..69)], # AGI Parameter
        [    (-8..8),     (-69..69)], # LUK Parameter
      ] # <= DO DOT MODIFY
#==============================================================================
#                             END OF SETTINGS
#==============================================================================
Set_Gender = /<(?:SET GENDER|set_gender):[ ](.*)>/i
Set_BiGender = /<(?:SET BIGENDER|set_bigender):[ ](\d+)>/i
Set_Personality = /<(?:SET PERSONALITY|set_personality):[ ](\d+)>/i
Set_Class_Selection = /<(?:SET CLASS SELECTION|set_class_selection):[ ](.*)>/i
Set_Initial_Level = /<(?:SET INITIAL LEVEL|set_initial_level):[ ](.*)>/i
Set_Maximum_Level = /<(?:SET MAXIMUM LEVEL|set_maximum_level):[ ](.*)>/i
Generate_All = /<(?:GENERATE ALL|generate_all)>/i
Generate_Gender = /<(?:GENERATE GENDER|generate_gender)>/i
Generate_G_Graphics = /<(?:GENERATE GENDER Graphics|generate_gender_graphics)>/i
Generate_Name = /<(?:GENERATE NAME|generate_name)>/i
Generate_Personality = /<(?:GENERATE PERSONALITY|generate_personality)>/i
Generate_Class = /<(?:GENERATE CLASS|generate_class)>/i
Generate_Initial_Level = /<(?:GENERATE INITIAL LEVEL|generate_initial_level)>/i
Generate_Maximum_Level = /<(?:GENERATE MAXIMUM LEVEL|generate_maximum_level)>/i
Generate_Skill_Learn = /<(?:GENERATE SKILL LEARNING|generate_skill_learning)>/i
Generate_Parameters = /<(?:GENERATE PARAMETERS|generate_parameters)>/i
Generate_Param_Rate = /<(?:GENERATE PARAM RATE|generate_param_rate)>/i
Generate_Param_Base = /<(?:GENERATE PARAM BASE|generate_param_base)>/i
Generate_Param_Plus = /<(?:GENERATE PARAM PLUS|generate_param_plus)>/i
Diswitch_Gender = /<(?:DISABLE GENDER|disable_gender)>/i
Diswitch_G_Graphics = /<(?:DISABLE GENDER GRAPHICS|disable_gender_graphics)>/i
Diswitch_Name = /<(?:DISABLE NAME|disable_name)>/i
Diswitch_Personality = /<(?:DISABLE PERSONALITY|disable_personality)>/i
Diswitch_Class = /<(?:DISABLE CLASS|disable_class)>/i
Diswitch_Initial_Level = /<(?:DISABLE INITIAL LEVEL|disable_initial_level)>/i
Diswitch_Maximum_Level = /<(?:DISABLE MAXIMUM LEVEL|disable_maximum_level)>/i
Diswitch_Skill_Learn = /<(?:DISABLE SKILL LEARNING|disable_skill_learning)>/i
Diswitch_Parameters = /<(?:DISABLE PARAMETERS|disable_parameters)>/i
Diswitch_Param_Rate = /<(?:DISABLE PARAM RATE|disable_param_rate)>/i
Diswitch_Param_Base = /<(?:DISABLE PARAM BASE|disable_param_base)>/i
Diswitch_Param_Plus = /<(?:DISABLE PARAM PLUS|disable_param_plus)>/i
Random_Seed = Random.new
end end # DO NOT MODIFY
#==============================================================================
# ** IMPORT SCRIPT
#------------------------------------------------------------------------------
$imported = {} if $imported.nil?
$imported[:RIN_ACTGEN] = true
#==============================================================================
# ** KERNEL
#------------------------------------------------------------------------------
# A module defining the methods that can be referred to by all classes.
# Object classes are included in this module. The methods explained on the
# Built-in Functions page are defined in this module.
# Object class methods are defined in this module. This ensures compatibility
# with top-level method redefinition.
#==============================================================================
module Kernel
  #--------------------------------------------------------------------------
  # * RINOBI Randomization Seed
  #--------------------------------------------------------------------------
  def random; RINOBI::ActGen::Random_Seed end
  #--------------------------------------------------------------------------
  # * Distribute
  #--------------------------------------------------------------------------
  def distribute(begin_value, end_value, array_size, return_ints = false)
    diff = 1.0 * (end_value - begin_value)
    n = [array_size-1, 1].max
    (0..(array_size-1)).map do |i|
      v = begin_value + i * diff / n
      return_ints ? v.round : v
    end
  end
end
#==============================================================================
# ** Game_BattlerBase
#------------------------------------------------------------------------------
#  This base class handles battlers. It mainly contains methods for calculating
# parameters. It is used as a super class of the Game_Battler class.
#==============================================================================
class Game_BattlerBase
  #--------------------------------------------------------------------------
  # * Access Method by Parameter Abbreviations
  #--------------------------------------------------------------------------
  def rhp;  @rparams[0];    end             # RHP   Rate of Hit Points
  def rmp;  @rparams[1];    end             # RMP   Rate of Magic Points
  def rtk;  @rparams[2];    end             # RTK   Rate of Attack Power
  def ref;  @rparams[3];    end             # REF   Rate of Defense Power
  def rak;  @rparams[4];    end             # RAT   Rate of Magic Attack Power
  def rdf;  @rparams[5];    end             # RDF   Rate of Magic Defense Power
  def rgi;  @rparams[6];    end             # RGI   Rate of Agility
  def ruk;  @rparams[7];    end             # RUK   Rate of Luck
  #--------------------------------------------------------------------------
  def bhp;  @bparams[0];    end             # BHP   Base Hit Points
  def bmp;  @bparams[1];    end             # BMP   Base Magic Points
  def btk;  @bparams[2];    end             # BTK   Base Attack Power
  def bef;  @bparams[3];    end             # BEF   Base Defense Power
  def bak;  @bparams[4];    end             # BAT   Base Magic Attack Power
  def bdf;  @bparams[5];    end             # BDF   Base Magic Defense Power
  def bgi;  @bparams[6];    end             # BGI   Base Agility
  def buk;  @bparams[7];    end             # BUK   Base Luck
  #--------------------------------------------------------------------------
  def php;  @pparams[0];    end             # PHP   Bonus Hit Points
  def pmp;  @pparams[1];    end             # PMP   Bonus Magic Points
  def ptk;  @pparams[2];    end             # PTK   Bonus Attack Power
  def pef;  @pparams[3];    end             # PEF   Bonus Defense Power
  def pak;  @pparams[4];    end             # PAT   Bonus Magic Attack Power
  def pdf;  @pparams[5];    end             # PDF   Bonus Magic Defense Power
  def pgi;  @pparams[6];    end             # PGI   Bonus Agility
  def puk;  @pparams[7];    end             # PUK   Bonus Luck
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :rparams
  attr_accessor :bparams
  attr_accessor :pparams
  attr_accessor :bigender_chance
  attr_accessor :gender_graphics
  attr_accessor :names
  attr_accessor :personalities
  attr_accessor :max_possible_level
  attr_accessor :class_selection
  attr_accessor :initial_level_range
  attr_accessor :maximum_level_range
  attr_accessor :base_skill_learnings
  attr_accessor :disable_genders
  attr_accessor :disable_g_graphics
  attr_accessor :disable_names
  attr_accessor :disable_personalities
  attr_accessor :disable_classes
  attr_accessor :disable_initial_levels
  attr_accessor :disable_maximum_levels
  attr_accessor :disable_skill_learning
  attr_accessor :disable_parameters
  attr_accessor :disable_param_rate
  attr_accessor :disable_param_base
  attr_accessor :disable_param_plus
  attr_accessor :parameter_rates
  attr_accessor :parameter_bases
  attr_accessor :parameter_pluses
  #--------------------------------------------------------------------------
  # * Alias Method: Object Initialization
  #--------------------------------------------------------------------------
  alias :rinactgen_initialize :initialize
  def initialize
    rinactgen_initialize
    generate_default_variables
    generate_default_parameters
  end
  #--------------------------------------------------------------------------
  # * Name Method: Generate Default Variables
  #--------------------------------------------------------------------------
  def generate_default_variables
    @bigender_chance = RINOBI::ActGen::Bigender_Chance
    @gender_graphics = RINOBI::ActGen::Gender_Graphics.compact
    @names = RINOBI::ActGen::Names.compact
    @personalities = RINOBI::ActGen::Personalities.compact
    @max_possible_level = RINOBI::ActGen::Max_Possible_Level
    @class_selection = RINOBI::ActGen::Class_Selection.compact
    @initial_level_range = RINOBI::ActGen::Initial_Level_Range
    @maximum_level_range = RINOBI::ActGen::Maximum_Level_Range
    @base_skill_learnings = RINOBI::ActGen::Skill_Learnings.compact
    @disable_genders = RINOBI::ActGen::Disable_Genders
    @disable_g_graphics = RINOBI::ActGen::Disable_G_Graphics
    @disable_names = RINOBI::ActGen::Disable_Names
    @disable_personalities = RINOBI::ActGen::Disable_Personalities
    @disable_classes = RINOBI::ActGen::Disable_Classes
    @disable_initial_levels = RINOBI::ActGen::Disable_Initial_Levels
    @disable_maximum_levels = RINOBI::ActGen::Disable_Maximum_Levels
    @disable_skill_learning = RINOBI::ActGen::Disable_Skill_Learning
    @disable_parameters = RINOBI::ActGen::Disable_Parameters
    @disable_param_rate = RINOBI::ActGen::Disable_Param_Rate
    @disable_param_base = RINOBI::ActGen::Disable_Param_Base
    @disable_param_plus = RINOBI::ActGen::Disable_Param_Plus
    @parameter_rates = RINOBI::ActGen::Parameter_Rate
    @parameter_bases = RINOBI::ActGen::Parameter_Base.compact
    @parameter_pluses = RINOBI::ActGen::Parameter_Plus.compact
  end
  #--------------------------------------------------------------------------
  # * Name Method: Generate Parameters
  #--------------------------------------------------------------------------
  def generate_default_parameters
    generate_default_param_rate
    generate_default_param_base
    generate_default_param_plus
  end
  #--------------------------------------------------------------------------
  # * Name Method: Generate Parameter Rate
  #--------------------------------------------------------------------------
  def generate_default_param_rate
    @rparams = Array.new(8, 1.00)
  end
  #--------------------------------------------------------------------------
  # * Name Method: Generate Parameter Base
  #--------------------------------------------------------------------------
  def generate_default_param_base
    @bparams = Array.new(8, 0)
  end
  #--------------------------------------------------------------------------
  # * Name Method: Generate Parameter Plus
  #--------------------------------------------------------------------------
  def generate_default_param_plus
    @pparams = Array.new(8){|param_id| Array.new(max_possible_level, 0)}
  end
end
#==============================================================================
# ** 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 :gender
  attr_accessor :skill_learnings
  #--------------------------------------------------------------------------
  # * Alias Method: Setup
  #--------------------------------------------------------------------------
  alias :rinactgen_setup :setup
  def setup(actor_id)
    @skill_learnings = []
    rinactgen_setup(actor_id)
    set_gender(RINOBI::ActGen::Default_Gender)
    generate_notetag_settings
    generate_default_values
    recover_all
  end
  #--------------------------------------------------------------------------
  # * Alias Method: Initialize Skills
  #--------------------------------------------------------------------------
  alias :rinactgen_init_skills :init_skills
  def init_skills
    rinactgen_init_skills
    return unless base_skill_learnings
    skill_learnings.each do |learning|
      learn_skill(learning.skill_id) if learning.level <= @level
    end
  end
  #--------------------------------------------------------------------------
  # * Alias Method: Level Up
  #--------------------------------------------------------------------------
  alias :rinactgen_level_up :level_up
  def level_up
    rinactgen_level_up
    return unless skill_learnings
    skill_learnings.each do |learning|
      learn_skill(learning.skill_id) if learning.level == @level
    end
  end
  #--------------------------------------------------------------------------
  # * Alias Method: Get Base Value of Parameter
  #--------------------------------------------------------------------------
  alias :rinactgen_param_base :param_base
  def param_base(param_id)
    value = rinactgen_param_base(param_id)
    value += @bparams[param_id]
    value += @pparams[param_id][@level]
    value *= @rparams[param_id]
    value.round
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Default Values
  #--------------------------------------------------------------------------
  def generate_notetag_settings
    actor.note.split(/[\r\n]+/).each do |line|
    case line
    when RINOBI::ActGen::Set_Gender             then set_gender($1)
    when RINOBI::ActGen::Set_BiGender           then set_bigender($1.to_f)
    when RINOBI::ActGen::Set_Personality        then set_personality($1)
    when RINOBI::ActGen::Set_Class_Selection    then set_class_selection($1)
    when RINOBI::ActGen::Set_Initial_Level      then set_initial_level($1)
    when RINOBI::ActGen::Set_Maximum_Level      then set_maximum_level($1)
    when RINOBI::ActGen::Diswitch_Gender        then @disable_genders = true
    when RINOBI::ActGen::Diswitch_G_Graphics    then @disable_g_graphics = true
    when RINOBI::ActGen::Diswitch_Name          then @disable_names = true
    when RINOBI::ActGen::Diswitch_Personality   then @disable_personalities = true
    when RINOBI::ActGen::Diswitch_Class         then @disable_classes = true
    when RINOBI::ActGen::Diswitch_Initial_Level then @disable_initial_levels = true
    when RINOBI::ActGen::Diswitch_Maximum_Level then @disable_maximum_levels = true
    when RINOBI::ActGen::Diswitch_Skill_Learn   then @disable_skill_learning = true
    when RINOBI::ActGen::Diswitch_Parameters    then @disable_parameters = true
    when RINOBI::ActGen::Diswitch_Param_Rate    then @disable_param_rate = true
    when RINOBI::ActGen::Diswitch_Param_Base    then @disable_param_base = true
    when RINOBI::ActGen::Diswitch_Param_Plus    then @disable_param_plus = true
    end end
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Default Values
  #--------------------------------------------------------------------------
  def generate_default_values
    actor.note.split(/[\r\n]+/).each do |line|
    case line
    when RINOBI::ActGen::Generate_All           then generate_all
    when RINOBI::ActGen::Generate_Gender        then generate_gender
    when RINOBI::ActGen::Generate_G_Graphics    then generate_g_graphics
    when RINOBI::ActGen::Generate_Name          then generate_name
    when RINOBI::ActGen::Generate_Personality   then generate_personality
    when RINOBI::ActGen::Generate_Class         then generate_class
    when RINOBI::ActGen::Generate_Initial_Level then generate_initial_level
    when RINOBI::ActGen::Generate_Maximum_Level then generate_maximum_level
    when RINOBI::ActGen::Generate_Skill_Learn   then generate_skill_learning(@class_id)
    when RINOBI::ActGen::Generate_Parameters    then generate_parameters
    when RINOBI::ActGen::Generate_Param_Rate    then generate_param_rate
    when RINOBI::ActGen::Generate_Param_Base    then generate_param_base
    when RINOBI::ActGen::Generate_Param_Plus    then generate_param_plus
    end end
  end
  #--------------------------------------------------------------------------
  # * New Method: Add Learning
  #--------------------------------------------------------------------------
  def add_skill_learning(skill_id, level)
    learning = RPG::Class::Learning.new
    learning.skill_id = skill_id
    learning.level = level
    skill_learnings.push(learning)
  end
  #--------------------------------------------------------------------------
  # * New Method: Remove Learning
  #--------------------------------------------------------------------------
  def remove_skill_learning(skill_id)
    skill_learnings.reject!{|learning| learning.skill_id == skill_id}
  end
  #--------------------------------------------------------------------------
  # * New Method: Set Gender
  #--------------------------------------------------------------------------
  def set_gender(setting = nil)
    return @gender = 0 if setting.downcase == "female"
    return @gender = 1 if setting.downcase == "male"
    return @gender = 2 if setting.downcase == "bigender"
    return @gender = [[setting.to_i, 0].max, 3].min
  end
  #--------------------------------------------------------------------------
  # * New Method: Set BiGender
  #--------------------------------------------------------------------------
  def set_bigender(setting = bigender_chance)
    @bigender_chance = setting
  end
  #--------------------------------------------------------------------------
  # * New Method: Set Personality
  #--------------------------------------------------------------------------
  def set_personality(setting)
    setting = @personalities[setting.to_i] if setting.is_a?(String)
    setting = @personalities[setting] if setting.is_a?(Integer)
    @personality = setting
    @nickname = @personality[0]
    actor.description = @personality[1] + "\n" + @personality[2]
  end
  #--------------------------------------------------------------------------
  # * New Method: Set Class Selection
  #--------------------------------------------------------------------------
  def set_class_selection(setting)
    setting = setting.split(/,/).collect!{|n| n.to_i} if setting.is_a?(String)
    @class_selection = setting
  end
  #--------------------------------------------------------------------------
  # * New Method: Set Initial Level Range
  #--------------------------------------------------------------------------
  def set_initial_level(setting)
    @initial_level_range = setting.is_a?(String) ? eval(setting) : setting
  end
  #--------------------------------------------------------------------------
  # * New Method: Set Maximum Level Range
  #--------------------------------------------------------------------------
  def set_maximum_level(setting)
    @maximum_level_range = setting.is_a?(String) ? eval(setting) : setting
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Actor
  #--------------------------------------------------------------------------
  def generate_all
    generate_gender unless disable_genders
    generate_g_graphics unless disable_g_graphics
    generate_name(@gender) unless disable_names
    generate_personality unless disable_personalities
    generate_class unless disable_classes
    generate_level
    generate_skill_learning(@class_id) unless disable_skill_learning
    generate_parameters unless disable_parameters
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Gender Graphics
  #--------------------------------------------------------------------------
  def generate_g_graphics
    gender_array = gender_graphics[@gender].sample
    @character_name = gender_array[0]
    @character_index = gender_array[1]
    @face_name = gender_array[2]
    @face_index = gender_array[3]
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Name
  #--------------------------------------------------------------------------
  def generate_name(gender = @gender)
    @name = (names[gender] + names[2]).sample
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Personality
  #--------------------------------------------------------------------------
  def generate_personality
    set_personality(personalities.sample)
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Class
  #--------------------------------------------------------------------------
  def generate_class
    @class_id = class_selection.sample
    change_class(@class_id, true)
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Level
  #--------------------------------------------------------------------------
  def generate_level
    generate_initial_level unless @disable_initial_levels
    generate_maximum_level unless @disable_maximum_levels
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Initial Level
  #--------------------------------------------------------------------------
  def generate_initial_level(mean = 3, buffer = 10)
    change_level(random.rand(initial_level_range), false)
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Maximum Level
  #--------------------------------------------------------------------------
  def generate_maximum_level
    actor.max_level = random.rand(maximum_level_range)
  end
  #--------------------------------------------------------------------------
  # * New Method: Setup Skill Learnings
  #--------------------------------------------------------------------------
  def generate_skill_learning(class_id)
    learnings = base_skill_learnings[0]
    learnings.push(*base_skill_learnings[class_id])
    learnings.compact.each do |tiers|
      add_skill_learning(tiers[1].sample, random.rand(tiers[0]))
    end
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Gender
  #--------------------------------------------------------------------------
  def generate_gender
    @gender = rand(1) # Female | Male | Hermaphrodite
    @gender = 2 if rand < bigender_chance * 0.01
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Parameters
  #--------------------------------------------------------------------------
  def generate_parameters
    generate_param_rate unless disable_param_rate
    generate_param_base unless disable_param_base
    generate_param_plus unless disable_param_plus
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Parameter Rate
  #--------------------------------------------------------------------------
  def generate_param_rate
    @rparams = Array.new(8){random.rand(parameter_rates)}
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Parameter Rate
  #--------------------------------------------------------------------------
  def generate_param_base
    @bparams = Array.new(8){|param_id| random.rand(parameter_bases[param_id])}
  end
  #--------------------------------------------------------------------------
  # * New Method: Generate Parameter Plus
  #--------------------------------------------------------------------------
  def generate_param_plus
    @pparams = Array.new(8) do |param_id|
      min = random.rand(parameter_pluses[param_id][0])
      max = random.rand(parameter_pluses[param_id][1])
      distribute(min, max, 99, true)
    end
  end
end # Game_Actor
 

Attachments

Last edited:

ydoolb

Veteran
Veteran
Joined
Jul 12, 2012
Messages
39
Reaction score
18
Very interesting idea! Thank you for the script.
 

NumbeRED39

Villager
Member
Joined
Feb 24, 2020
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
I'm sorry for reviving a such an old thread but, this script does not seem to be working for me.
It keeps giving me an error whenever I start the game:
2020-02-24.png
Is there some kind of set up I have to do or something?
I tested it without other custom scripts but it doesn't seem to be a problem of compatibility between them.
 

Rinobi

Veteran
Veteran
Joined
Mar 24, 2014
Messages
579
Reaction score
219
First Language
English
Primarily Uses
RMVXA
@NumbeRED39
My bad, this script had an unnecessary dependency.
Please download the latest version and let me know if it works for you.
 

NumbeRED39

Villager
Member
Joined
Feb 24, 2020
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
@Rinobi Used "generate all" on the first four actors and everything seems to be in order, even tried a fight and everything works like it should in this case. Even used different means of randomizations and didn't get an error.
2020-02-24 (5).png

Only one I'm getting an error with is <generate_param_plus> when I use it:
1582544737185.png

Otherwise it doesn't seem like anything else is giving me problems atm.
Will let you know if something else comes up while i use the script!

EDIT: Nvm I ran into other errors:
 

Attachments

Last edited:

NumbeRED39

Villager
Member
Joined
Feb 24, 2020
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
@Rinobi Ok, so I haven't encountered errors like before, but I found a glitch.
When a generated actor goes into a battle and wins, it's level is reverted to its initial level.
Nothing else seems to be affected, I'm using "param_plus" and that seems to stay the same.

Actors with non-generated levels do not seem to be affected as far as I know.

Thanks again for looking into this btw!
 

NumbeRED39

Villager
Member
Joined
Feb 24, 2020
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
@Rinobi Ok, so I haven't encountered errors like before, but I found a glitch.
When a generated actor goes into a battle and wins, it's level is reverted to its initial level.
Nothing else seems to be affected, I'm using "param_plus" and that seems to stay the same.

Actors with non-generated levels do not seem to be affected by this as far as I know.

EDIT: Found out the stat randomization affects even the actor that do not use the notetag.
I even tried using all the disable notetags but it doesn't work, the actor still gets different stats each time I add it to the party.

Thanks again for looking into this btw!
 

Rinobi

Veteran
Veteran
Joined
Mar 24, 2014
Messages
579
Reaction score
219
First Language
English
Primarily Uses
RMVXA
@NumbeRED39 Param randomization bug should be fixed now.

I haven't been able to replicate the level glitch, however, there is a setting within the script that affects initial and maximum levels.
Code:
    #======================================================================
    # >> Level Range
    # ---------------------------------------------------------------------
    # The initial and maximum level a generated actor will have.
    #-
    # <SET INITIAL LEVEL: (X..X)> | <set_initial_level: (X..X)>
    # <SET MAXIMUM LEVEL: (X..X)> | <set_maximum_level: (X..X)>
    # $game_actors[actor_id].set_initial_level(X..X)
    # $game_actors[actor_id].set_maximum_level(X..X)
    #======================================================================
      Initial_Level_Range = (1..5 ) # Starting level range.
      Maximum_Level_Range = (50..Max_Possible_Level) # Ending level range.
The default maximum level rage was 5 thru 99; a typo, I've since changed it to 50 thru 99. Its possible that you rolled a very low max level. Do you encounter this problem in a clean project?
 

NumbeRED39

Villager
Member
Joined
Feb 24, 2020
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
@Rinobi Yes, I've just made a clean project just to see.
I didn't even realize I wasn't using max level randomizations, only initial level.
But it doesn't work either way, the characters all revert to level 1 after a fight.
 

Rinobi

Veteran
Veteran
Joined
Mar 24, 2014
Messages
579
Reaction score
219
First Language
English
Primarily Uses
RMVXA
@NumbeRED39 Try the latest version (made a minor change).
Are you able to level up normally after it reverts to level 1?
 

NumbeRED39

Villager
Member
Joined
Feb 24, 2020
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
@Rinobi Sorry for the late reply, I don't encounter it anymore.
Thanks.
 

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

Latest Threads

Latest Posts

Latest Profile Posts

Just released a new OST for my game and a new place to purchase it!

Ah, things to do when you finish a game.
Ami
Me: It's dark cloudy! I hope it's Rain…
(2-3 Hours Later,Changed To Sunny)
Me: :kaolivid:
EpicFILE wrote on Dr_Bonehead's profile.
Dr_Bonehead? You're in this forum too? :D
Take a listen to this beautiful 1975 supermarket music. :D

Somehow it makes me think that the actual real world is still at 1970s. What we experience now is just a futuristic dream. :)
Want to play sandbox games as long its not the online only.

Forum statistics

Threads
104,534
Messages
1,006,989
Members
136,028
Latest member
Niffleberries
Top