Common Event Self Variables VX
#1
Common Event Self Variables VX
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?
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Event Location Saver 1.1 ixfuru 0 4,680 12-07-2016, 11:36 PM
Last Post: ixfuru
   Event Comment Conditionals ixfuru 3 7,076 08-05-2015, 02:31 AM
Last Post: JayRay
   ELSA (Event Layering Script Advance) JayRay 0 198 02-25-2015, 08:34 PM
Last Post: JayRay
   Event Transparency DerVVulfman 0 181 03-09-2013, 06:00 AM
Last Post: DerVVulfman
   The Event Extenders Grimimi 2 6,973 09-01-2012, 05:54 AM
Last Post: Grimimi
   Group Variables v1.1 PK8 0 219 11-12-2009, 06:30 AM
Last Post: PK8
   Common Event Self Switches VX PK8 0 995 09-17-2009, 03:54 AM
Last Post: PK8
   Actor & Party's Self Variables VX PK8 0 756 09-17-2009, 01:43 AM
Last Post: PK8
   [Unsupported] PK8's Self Variables VX PK8 1 6,231 09-16-2009, 10:20 AM
Last Post: Kain Nobel
   Call Event VX woratana 0 4,618 01-22-2009, 01:13 PM
Last Post: woratana



Users browsing this thread: 1 Guest(s)