09-17-2009, 04:55 AM
(This post was last modified: 09-02-2024, 09:59 PM by DerVVulfman.)
Common Event Self Variables VX
Version: 1
Version: 1
Introduction
This script is a 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.
Common Event Self Variables allows developers to set certain variables pertaining to a certain Common Event.
Features
- Set Common Event's self variables via call script.
- Get Common Event's self variables via call script.
Screenshots
No screencap.
Demo
No demo.
Script
Code:
=begin
????????????????????????????????????????????????????????????????????????????????
? Common Event Self Variables VX ?
? Version 1.0 ?
? by PK8 ?
? 9/16/09 ?
? http://rmvxp.com ?
????????????????????????????????????????????????????????????????????????????????
? ? Table of Contents ?
? ?? Author's Notes - Line 18?21 ?
? ?? Introduction & Description - Line 23?29 ?
? ?? Features - Line 31?33 ?
? ?? How to Use - Line 35?62 ?
? ?? This aliases the following... - Line 64,65 ?
? ?? Thanks - Line 67?71 ?
? ?? Changelog - Line 73,74 ?
????????????????????????????????????????????????????????????????????????????????
? ? 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 COMMON EVENTS their own self variables. ?
????????????????????????????????????????????????????????????????????????????????
? ? Introduction & Description ?
? This script is a 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. ?
? ?
? Common Event Self Variables allows developers to set certain variables ?
? pertaining to a certain Common Event. ?
????????????????????????????????????????????????????????????????????????????????
? ? Features ?
? ? Set Common Event's self variables via call script. (How to use is below) ?
? ? Get Common Event's self variables via call script. (How to use is below) ?
????????????????????????????????????????????????????????????????????????????????
? ? How to Use ?
? ?
? ? Setting up a Common Event's self variable: ?
? To set a self variable for a common event, you'll need to call this script:?
? ce_self_variable(ceid, id, value, oper) ?
? ceid: Common Event's ID ?
? id: Common Event's Self Variable ID. Example: 'A', 'B' ?
? value: Give it a value. ?
? oper: 0: Set, 1: Add, 2: Sub, 3: Mul, 4: Div, 5: Mod ?
? Example: ce_self_variable(1, 'A', 5, 0) sets the first Common Event's ?
? variable "A" to 5. ?
? ?
? ? Getting a Common Event's self variable: ?
? To get a self variable of a Common Event, you can call this script. ?
? ce_self_variable(ceid, id) ?
? ceid: Common Event's ID ?
? id: Common Event's Self Variable ID. Example: 'A', 'B' ?
? Example: ce_self_variable(1, 'A') gets Common Event's variable "A". ?
? ?
? ? Using Common Event's self variable 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: ?
? ce_self_variable(ceid, id) == value <- Equal to. ?
? ce_self_variable(ceid, id) >= value <- Greater than or Equal to. ?
? ce_self_variable(ceid, id) <= value <- Less than or Equal to. ?
? ce_self_variable(ceid, id) > value <- Greater than. ?
? ce_self_variable(ceid, id) < value <- Less than. ?
? ce_self_variable(ceid, id) != value <- Not Equal to. ?
????????????????????????????????????????????????????????????????????????????????
? ? This aliases the following... ?
? initialize - Game_Map ?
????????????????????????????????????????????????????????????????????????????????
? ? Thanks ?
? Lowell: He mentioned creating a personal variables system for his project ?
? which made me catch "the scripting bug". ?
? Kain Nobel: I'm using Kain Nobel's modifications to the Actor & Party's Self ?
? Switches script as a base. ?
????????????????????????????????????????????????????????????????????????????????
? ? Changelog ?
? Version 1.0 - 9/16/09: Initial Release ?
????????????????????????????????????????????????????????????????????????????????
=end
#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
# This class handles maps. It includes scrolling and passage determination
# functions. The instance of this class is referenced by $game_map.
#==============================================================================
class Game_Map
attr_accessor :ce_self_variables
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias_method :ceselfvariables_gmmap_initialize, :initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(*args)
ceselfvariables_gmmap_initialize(*args)
@ce_self_variables = Game_Map::CE_SelfVariables.new
end
end
#==============================================================================
# ** Game_Map::CE_SelfVariables
#------------------------------------------------------------------------------
# This handles variables. It's a wrapper for the built-in class "Array."
# The instance of this class is referenced by $game_map.ce_self_variables.
#==============================================================================
class Game_Map::CE_SelfVariables
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@data = {}
end
#--------------------------------------------------------------------------
# * Get Self Variable of Common Event
# key : key
#--------------------------------------------------------------------------
def [](key)
if @data[key] == nil
return 0
else
return @data[key]
end
end
#--------------------------------------------------------------------------
# * Set Self Variable of Common Event
# key : key
# value : value
#--------------------------------------------------------------------------
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 Common Event Self variable
#--------------------------------------------------------------------------
def ce_self_variable(ceid, id, value = nil, oper = nil)
if $data_common_events[ceid].id > 0 and $data_common_events[ceid] != nil
key = [$data_common_events[ceid].id, id]
if value != nil
case oper
when nil, 0, 'equal', 'set', '=' # Setting
$game_map.ce_self_variables[key] = value
when 1, 'add', '+' # Adding
$game_map.ce_self_variables[key] += value
when 2, 'sub', 'subtract', '-' # Subtracting
$game_map.ce_self_variables[key] -= value
when 3, 'mul', 'multiply', 'x', '*' # Multiplying
$game_map.ce_self_variables[key] *= value
when 4, 'div', 'divide', '/' # Dividing
$game_map.ce_self_variables[key] /= value if value != 0
when 5, 'mod', 'modular', '%' # Modulating
$game_map.ce_self_variables[key] %= value if value != 0
end
else
return $game_map.ce_self_variables[key]
end
end
$game_map.need_refresh = true
return true
end
end
Instructions
Instructions on how to use it is in the script.
FAQ
Awaiting question.
Compatibility
Aliases initialize of Game_Map.
Credits and Thanks
Lowell: He mentioned creating a personal variables system for his project which made me catch "the scripting bug".
Kain Nobel: I'm using Kain Nobel's modifications to the Actor & Party's Self Switches script as a base.
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 COMMON EVENTS their own self variables.
Terms and Conditions
Exclusive to RMVXP?