Code:
=begin
?????????????????????????????????????????????????????????????????????????????????
? Actor & Party Self Switches VX ?
? 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 switches. I personally can't ?
? think of any use to these but I'm sure someone can! ?
?????????????????????????????????????????????????????????????????????????????????
? ? 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 Switches allows developers to set certain switches ?
? pertaining to a certain party member or actor. ?
? ?
? Let's say, you set a switch to Party Member 1 (Ralph) to true. In case you ?
? ever change party members, the switch will still be turned on for that member?
? in the party (Ralph). ?
? ?
? Or how about if you want to set a certain switch for a specific actor instead?
? of a member in the party. You can do that as well! ?
?????????????????????????????????????????????????????????????????????????????????
? ? Features ?
? ? Set party member's self switches via call script. (How to use is below) ?
? ? Get party member's self switches via call script. (How to use is below) ?
? ? Set actor's self switches via call script. (How to use is below) ?
? ? Get actor's self switches via call script. (How to use is below) ?
????????????????????????????????????????????????????????????????????????????????
? ? How to Use ?
? ?
? ? Setting up a party member's self switch: ?
? To set a self switch for a party member, you'll need to call this script: ?
? party_self_switch(member, id, bool) ?
? member: Party Member. (0, 1, 2, 3) ?
? id: Party Member Self Switch Identification. Example: 'A', 'B' ?
? bool: true or false. ?
? Example: party_self_switch(0, 'A', true) sets whoever may be the 1st party ?
? member's switch "A" to true. ?
? ?
? ? Getting a party member's self switch: ?
? To get a self switch of a party member, you can call this script. ?
? party_self_switch(member, id) ?
? member: Party Member. (0, 1, 2, 3) ?
? id: Party Member Self Switch Identification. Example: 'A', 'B' ?
? Example: party_self_switch(0, 'A') gets switch "A" of whoever may be the ?
? 1st party member. ?
? ?
? ? Using party member's self switches 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_switch(member, id) == true ?
? party_self_switch(member, id) == false ?
? ?
? ? Setting up an actor's self switch: ?
? To set a self switch for an actor, you'll need to call this script: ?
? actor_self_switch(actor, id, bool) ?
? actor: Character ID from the database. (1, 2, 3, 4, 5, 6, 7, 8) ?
? id: Party Member Self Switch Identification. Example: 'A', 'B' ?
? bool: true or false. ?
? Example: actor_self_switch(1, 'A', true) sets Actor 1's switch "A" to true.?
? ?
? ? Getting an actor's self switch: ?
? To get a self switch of an actor, you can call this script. ?
? actor_self_switch(actor, id) ?
? actor: Character ID from the database. (1, 2, 3, 4, 5, 6, 7, 8) ?
? id: Party Member Self Switch Identification. Example: 'A', 'B' ?
? Example: actor_self_switch(1, 'A') gets switch "A" of Actor 1. ?
? ?
? ? Using an actor's self switch 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_switch(actor, id) == true ?
? actor_self_switch(actor, id) == false ?
????????????????????????????????????????????????????????????????????????????????
? ? 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_switches
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias_method :partyselfswitches_gmparty_initialize, :initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(*args)
partyselfswitches_gmparty_initialize(*args)
@self_switches = Game_Party::SelfSwitches.new
end
end
#==============================================================================
# ** Game_Party::SelfSwitches
#------------------------------------------------------------------------------
# This handles self switches. It's a wrapper for the built-in class "Array."
# The instance of this class is referenced by $game_party.self_switches.
#==============================================================================
class Game_Party::SelfSwitches
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@data = {}
end
#--------------------------------------------------------------------------
# * Get Self Switch of Actor
# key : key
#--------------------------------------------------------------------------
def [](key)
return @data[key] == true ? true : false
end
#--------------------------------------------------------------------------
# * Set Self Switch of Actor
# key : key
# value : ON (true) / OFF (false)
#--------------------------------------------------------------------------
def []=(key, value)
@data[key] = value
end
end
#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
# An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# * Control Party Self Switch
#--------------------------------------------------------------------------
def party_self_switch(member, id, bool = nil)
key = [$game_party.members[member].id, id]
if bool != nil
$game_party.self_switches[key] = bool
else
return $game_party.self_switches[key]
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# * Control Actor Self Switch
#--------------------------------------------------------------------------
def actor_self_switch(actor, id, bool = nil)
key = [$game_actors[actor].id, id]
if bool != nil
$game_party.self_switches[key] = bool
else
return $game_party.self_switches[key]
end
$game_map.need_refresh = true
return true
end
end