Actor Generator
Actor Generatorby: 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.
Spoiler: Change Log
[*] 1.00 Public Release
[*] 1.10 Added missing kernel methods
[*] 1.20 Bug Fixes
[*] 1.30 Bug Fixes
Spoiler: Features
[*]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!
Spoiler: Screenshots
https://forums.rpgmakerweb.com/attachments/ags_exam04-png.64655/
Spoiler: Script Code:
module RINOBI module ActGen # DO NOT MODIFY
#==============================================================================
# # Actor Generator
# -----------------------------------------------------------------------------
# 1.0 Completed
# 1.1 Added missing kernel methods
# 1.2 Bug Fixes
# 1.3 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.generate_all
# $game_actors.generate_gender
# $game_actors.generate_gender_graphics
# $game_actors.generate_name
# $game_actors.generate_personality
# $game_actors.generate_class
# $game_actors.generate_initial_level
# $game_actors.generate_maximum_level
# $game_actors.generate_skill_learning
# $game_actors.generate_parameters
# $game_actors.generate_param_rate
# $game_actors.generate_param_base
# $game_actors.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.disable_genders = true
# $game_actors.disable_g_graphics = true
# $game_actors.disable_names = true
# $game_actors.disable_personalities = true
# $game_actors.disable_classes = true
# $game_actors.disable_initial_levels = true
# $game_actors.disable_maximum_levels = true
# $game_actors.disable_skill_learning = true
# $game_actors.disable_parameters = true
# $game_actors.disable_param_rate = true
# $game_actors.disable_param_base = true
# $game_actors.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.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.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.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.set_class_selection()
#======================================================================
Class_Selection =
#======================================================================
# >> 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.set_initial_level(X..X)
# $game_actors.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),
], # Tier 1
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 2
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(11..20),
], # Tier 2
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 3
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(21..30),
], # Tier 3
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 4
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(31..40),
], # Tier 4
],# Soldier
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # >>> Class 1 - Soldier
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 1
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(1..5),
], # Tier 1
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 2
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(6..10),
], # Tier 2
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 3
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(11..15),
], # Tier 3
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 4
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(16..20),
], # Tier 4
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 5
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(21..25),
], # Tier 5
],# Soldier
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # >>> Class 2 - Monk
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 1
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(1..5),
], # Tier 1
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 2
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(6..10),
], # Tier 2
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 3
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(11..15),
], # Tier 3
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 4
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(16..20),
], # Tier 4
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ # Tier 5
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Level Range | Skill IDs
(21..25),
], # 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 = .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; end # RHP Rate of Hit Points
def rmp;@rparams; end # RMP Rate of Magic Points
def rtk;@rparams; end # RTK Rate of Attack Power
def ref;@rparams; end # REF Rate of Defense Power
def rak;@rparams; end # RAT Rate of Magic Attack Power
def rdf;@rparams; end # RDF Rate of Magic Defense Power
def rgi;@rparams; end # RGI Rate of Agility
def ruk;@rparams; end # RUK Rate of Luck
#--------------------------------------------------------------------------
def bhp;@bparams; end # BHP Base Hit Points
def bmp;@bparams; end # BMP Base Magic Points
def btk;@bparams; end # BTK Base Attack Power
def bef;@bparams; end # BEF Base Defense Power
def bak;@bparams; end # BAT Base Magic Attack Power
def bdf;@bparams; end # BDF Base Magic Defense Power
def bgi;@bparams; end # BGI Base Agility
def buk;@bparams; end # BUK Base Luck
#--------------------------------------------------------------------------
def php;@pparams; end # PHP Bonus Hit Points
def pmp;@pparams; end # PMP Bonus Magic Points
def ptk;@pparams; end # PTK Bonus Attack Power
def pef;@pparams; end # PEF Bonus Defense Power
def pak;@pparams; end # PAT Bonus Magic Attack Power
def pdf;@pparams; end # PDF Bonus Magic Defense Power
def pgi;@pparams; end # PGI Bonus Agility
def puk;@pparams; 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
value += @pparams[@level]
value *= @rparams
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 = [.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 if setting.is_a?(String)
setting = @personalities if setting.is_a?(Integer)
@personality = setting
@nickname = @personality
actor.description = @personality + "\n" + @personality
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
@character_index = gender_array
@face_name = gender_array
@face_index = gender_array
end
#--------------------------------------------------------------------------
# * New Method: Generate Name
#--------------------------------------------------------------------------
def generate_name(gender = @gender)
@name = (names + names).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
learnings.push(*base_skill_learnings)
learnings.compact.each do |tiers|
add_skill_learning(tiers.sample, random.rand(tiers))
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)}
end
#--------------------------------------------------------------------------
# * New Method: Generate Parameter Plus
#--------------------------------------------------------------------------
def generate_param_plus
@pparams = Array.new(8) do |param_id|
min = random.rand(parameter_pluses)
max = random.rand(parameter_pluses)
distribute(min, max, 99, true)
end
end
end # Game_Actor
Spoiler: Downloadsrin_actor_generator_v100.txt
rin_actor_generator_v110.txt
rin_actor_generator_v120.txt
rin_actor_generator_v130.txt
本贴来自国际rpgmaker官方论坛作者:Rinobi处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/actor-generator.78836/
页:
[1]