Actor & Party's Self Variables XP - PK8 - 09-17-2009
Actor & Party's Self Variables XP
Version: 1
Introduction
This script is a tad similar to that of the built in feature: Self Switches. For those not familiar with Self Switches, Self Switches pretty much pertain to a specific event. Example: Treasure Chests.
Actor & Party Self Variables allows developers to set certain variables pertaining to a certain party member or actor.
Let's say, you set a variable to Party Member 1 (Aluxes) to 5. In case you ever change party members, the variable will still be 5 for that member in the party (Aluxes). Or how about if you want to set a certain variable for a specific actor instead of a member in the party. You can do that as well!
Features- Set party member's self variables via call script.
- Get party member's self variables via call script.
- Set actor's self variables via call script.
- Get actor's self variables via call script.
Screenshots
I can't screencap this!
Demo
No demo.
Script
Code: =begin
?????????????????????????????????????????????????????????????????????????????????
? Actor & Party Self Variables XP ?
? Version 1.0 ?
? by PK8 & Kain Nobel ?
? 9/16/09 ?
? http://rmvxp.com ?
?????????????????????????????????????????????????????????????????????????????????
? ? Table of Contents ?
? ?? Author's Notes - Line 18?22 ?
? ?? Introduction & Description - Line 24?37 ?
? ?? Features - Line 39?43 ?
? ?? How to Use - Line 45?90 ?
? ?? This aliases the following... - Line 92,93 ?
? ?? Thanks - Line 95?98 ?
? ?? Changelog - Line 100,101 ?
????????????????????????????????????????????????????????????????????????????????
? ? Author's Notes ?
? Lowell/Adalwulf mentioned creating a "Personal Variables" system which filled?
? my head in with ideas about variables and switches. One of these ideas being ?
? giving party members and actors their own self variables. I could think of a ?
? few uses for them. How about an actor's Reputation or Alignment? ?
?????????????????????????????????????????????????????????????????????????????????
? ? Introduction & Description ?
? This script is a tad similar to that of the built in feature: Self Switches. ?
? For those not familiar with Self Switches, Self Switches pretty much pertain ?
? to a specific event. Example: Treasure Chests. ?
? ?
? Actor & Party Self Variables allows developers to set certain variables ?
? pertaining to a certain party member or actor. ?
? ?
? Let's say, you set a variable to Party Member 1 (Aluxes) to 5. In case you ?
? ever change party members, the variable will still be 5 for that member in ?
? the party (Aluxes). ?
? ?
? Or how about if you want to set a certain variable for a specific actor ?
? instead of a member in the party. You can do that as well! ?
?????????????????????????????????????????????????????????????????????????????????
? ? Features ?
? ? Set party member's self variables via call script. (How to use is below) ?
? ? Get party member's self variables via call script. (How to use is below) ?
? ? Set actor's self variables via call script. (How to use is below) ?
? ? Get actor's self variables via call script. (How to use is below) ?
????????????????????????????????????????????????????????????????????????????????
? ? How to Use ?
? ?
? ? Setting up a party member's self variable: ?
? To set a self variable for a party member, you'll need to call this script:?
? party_self_variable(member, id, value, oper) ?
? member: Party Member. (0, 1, 2, 3) ?
? id: Party Member Self Variable Identification. Example: 'A', 'B' ?
? value: Give it a value. ?
? oper: 0: Set, 1: Add, 2: Sub, 3: Mul, 4: Div, 5: Mod ?
? Example: party_self_variable(0, 'A', 5, 0) sets whoever may be the 1st ?
? party member's variable "A" to 5. ?
? ?
? ? Getting a party member's self variable: ?
? To get a self variable of a party member, you can call this script. ?
? party_self_variable(member, id) ?
? member: Party Member. (0, 1, 2, 3) ?
? id: Party Member Self Variable Identification. Example: 'A', 'B' ?
? Example: party_self_variable(0, 'A') gets variable "A" of whoever may be ?
? the 1st party member. ?
? ?
? ? Using party member's self variables in evented if conditions. ?
? You're probably wondering how, right? Alright. To do this, go to the ?
? conditional branch event command, click on the fourth tab, select Script ?
? and type either of these in the input form: ?
? party_self_variable(member, id) == value <- Equal to. ?
? party_self_variable(member, id) >= value <- Greater than or Equal to. ?
? party_self_variable(member, id) <= value <- Less than or Equal to. ?
? party_self_variable(member, id) > value <- Greater than. ?
? party_self_variable(member, id) < value <- Less than. ?
? party_self_variable(member, id) != value <- Not Equal to. ?
? ?
? ? Setting up an actor's self variable: ?
? To set a self variable for an actor, you'll need to call this script: ?
? actor_self_variable(actor, id, value, oper) ?
? actor: Character ID from the database. (1, 2, 3, 4, 5, 6, 7, 8) ?
? id: Party Member Self Variable Identification. Example: 'A', 'B' ?
? value: Give it a value. ?
? oper: 0: Set, 1: Add, 2: Sub, 3: Mul, 4: Div, 5: Mod ?
? Example: actor_self_variable(1, 'A', 5, 0) sets Actor 1's variable "A" to 5?
? ?
? ? Getting an actor's self variable: ?
? To get a self variable of an actor, you can call this script. ?
? actor_self_variable(actor, id) ?
? actor: Character ID from the database. (1, 2, 3, 4, 5, 6, 7, 8) ?
? id: Party Member Self Variable Identification. Example: 'A', 'B' ?
? Example: actor_self_variable(1, 'A') gets variable "A" of Actor 1. ?
? ?
? ? Using an actor's self variables in evented if conditions. ?
? To do this, go to the conditional branch event command, click on the fourth?
? tab, select Script and type either of these in the input form: ?
? actor_self_variable(member, id) == value <- Equal to. ?
? actor_self_variable(member, id) >= value <- Greater than or Equal to. ?
? actor_self_variable(member, id) <= value <- Less than or Equal to. ?
? actor_self_variable(member, id) > value <- Greater than. ?
? actor_self_variable(member, id) < value <- Less than. ?
? actor_self_variable(member, id) != value <- Not Equal to. ?
????????????????????????????????????????????????????????????????????????????????
? ? This aliases the following... ?
? initialize - Game_Party ?
????????????????????????????????????????????????????????????????????????????????
? ? Thanks ?
? Lowell: He mentioned creating a personal variables system for his project ?
? which made me (PK8) catch "the scripting bug". ?
? Kain Nobel: He modified some of the code and made it a lot better. ?
????????????????????????????????????????????????????????????????????????????????
? ? Changelog ?
? Version 1.0 - 9/16/09: Initial Release ?
?????????????????????????????????????????????????????????????????????????????????
=end
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
# This class handles the party. It includes information on amount of gold
# and items. The instance of this class is referenced by $game_party.
#==============================================================================
class Game_Party
attr_accessor :self_variables
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias_method :partyselfvariables_gmparty_initialize, :initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(*args)
partyselfvariables_gmparty_initialize(*args)
@self_variables = Game_Party::SelfVariables.new
end
end
#==============================================================================
# ** Game_Party::SelfVariables
#------------------------------------------------------------------------------
# This handles self variables. It's a wrapper for the built-in class "Array."
# The instance of this class is referenced by $game_party.self_variables.
#==============================================================================
class Game_Party::SelfVariables
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@data = {}
end
#--------------------------------------------------------------------------
# * Get Self Variable of Actor
# key : key
#--------------------------------------------------------------------------
def [](key)
if @data[key] == nil
return 0
else
return @data[key]
end
end
#--------------------------------------------------------------------------
# * Set Self Variable of Actor
# key : key
# value : value
#--------------------------------------------------------------------------
def []=(key, value)
@data[key] = value
end
end
#==============================================================================
# ** Interpreter
#------------------------------------------------------------------------------
# This interpreter runs event commands. This class is used within the
# Game_System class and the Game_Event class.
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# * Control Party Self Variable
#--------------------------------------------------------------------------
def party_self_variable(member, id, value = nil, oper = nil)
key = [$game_party.actors[member].id, id]
if value != nil
case oper
when nil, 0, 'equal', 'set', '=' # Setting
$game_party.self_variables[key] = value
when 1, 'add', '+' # Adding
$game_party.self_variables[key] += value
when 2, 'sub', 'subtract', '-' # Subtracting
$game_party.self_variables[key] -= value
when 3, 'mul', 'multiply', 'x', '*' # Multiplying
$game_party.self_variables[key] *= value
when 4, 'div', 'divide', '/' # Dividing
$game_party.self_variables[key] /= value if value != 0
when 5, 'mod', 'modular', '%' # Modulating
$game_party.self_variables[key] %= value if value != 0
end
else
return $game_party.self_variables[key]
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# * Control Actor Self Variable
#--------------------------------------------------------------------------
def actor_self_variable(actor, id, value = nil, oper = nil)
key = [$game_actors[actor].id, id]
if value != nil
case oper
when nil, 0, 'equal', 'set', '=' # Setting
$game_party.self_variables[key] = value
when 1, 'add', '+' # Adding
$game_party.self_variables[key] += value
when 2, 'sub', 'subtract', '-' # Subtracting
$game_party.self_variables[key] -= value
when 3, 'mul', 'multiply', 'x', '*' # Multiplying
$game_party.self_variables[key] *= value
when 4, 'div', 'divide', '/' # Dividing
$game_party.self_variables[key] /= value if value != 0
when 5, 'mod', 'modular', '%' # Modulating
$game_party.self_variables[key] %= value if value != 0
end
else
return $game_party.self_variables[key]
end
$game_map.need_refresh = true
return true
end
end
Instructions
How to use is in the script.
FAQ
If you're having any trouble, feel free to ask.
Compatibility
Aliases Game_Party's initialize method.
Credits and Thanks
Lowell: He mentioned creating a personal variables system for his project which made me (PK8) catch "the scripting bug".
Kain Nobel: He modified some of the code and made it a lot better.
Author's Notes
Lowell/Adalwulf mentioned creating a "Personal Variables" system which filled my head in with ideas about variables and switches. One of these ideas being giving party members and actors their own self variables. I could think of a few uses for them. How about an actor's Reputation or Alignment?
Terms and Conditions
Possibly exclusive to RMVXP.
|