SES Switches and Variables (Access by name and more)

Discussion in 'RGSS3 Scripts (RMVX Ace)' started by Solistra, Jul 17, 2013.

  1. Solistra

    Solistra Veteran Veteran

    Messages:
    593
    Likes Received:
    241
    SES Switches and Variables v1.0
    by Solistra
    Introduction
    This script allows you to access and use switches, variables, and event self-switches in a more flexible manner than that used by RMVX Ace by default. Most notably, you can access these elements by name rather than by numerical index only -- which is particularly useful with event self-switches. This script also allows you to specify default starting values for switches, variables, and event self-switches.

    Change Log
    • v1.0 (July 16th, 2013) - Initial release.
    Features
    • Access switch, variable, and self-switch values by name rather than ID number.
    • Easily toggle switch and self-switch values.
    • Very extensible and reusable design for scripters.
    • Adds Enumerable functionality to switches, variables, and self-switches (usage of methods such as each_with_index, reduce, and collect).
    • Conforms to common usage of the default classes.
    How to Use
    Switches, variables, and event self-switches may be accessed normally when using this script if desired. For instance, these are still acceptable:

    Code:
    $game_switches[5]$game_self_switches[[22, 5, "C"]]
    In addition to this, however, any of these elements may be accessed by the names that the user has designated for them in the editor like so:
    Code:
    $game_switches["Switch name"]$game_variables["Variable name"]$game_self_switches["Map name", "Event name", "A"]
    In the case of event self-switches, you may optionally use map and event names or not. The script call $game_self_switches["Map name", 5, "A"] is still perfectly valid to access the "A" switch of event ID 5 on "Map name".

    This script also allows you to toggle switch and event self-switch values:
    Code:
    $game_switches.toggle!("Switch name or ID")$game_self_switches.toggle!("Map name", "Event name", "A")
    Advanced Use
    For scripters, you may now also add actions to be evaluated whenever an assignment is performed on switches, variables, or event self-switches. Adding an action to be evaluated is simple:


    Code:
    $game_switches.actions.push('puts "#{index} assigned to #{value}"')
    Actions are strings which are evaluated within the context of the instance. For more detailed information, consult the documentation of this script.
    Script
    This script is available from my Pastebin account here.

    Credit and Thanks
    • Solistra
    Author's Notes
    This script is provided with the Creative Commons By-Attribution Share-Alike Unported 3.0 License. This essentially means that you are free to modify and use this script for both commercial and non-commercial projects as long as I am properly credited for it. Likewise, you may share your modifications to this script as long as credit for the original version is maintained.
     
    #1
    Archeia, Acetonide and ultimagicka like this.
  2. Raen Andaleio

    Raen Andaleio Veteran Veteran

    Messages:
    79
    Likes Received:
    14
    Location:
    Germany
    First Language:
    German
    Hi,

    I'm getting an error.

    Line 183: NoMethodError occurred.

    Undefined method 'default_action' for #<Game_Switches:0xd393b24>

    Happens as soon as I enter a map with an event that checks a switch.
     
    #2
  3. Solistra

    Solistra Veteran Veteran

    Messages:
    593
    Likes Received:
    241
    This script is exceptionally old to me at this point, and I actually don't even have a copy of Ace at the moment to test it on. However, the error you're encountering was simply an oversight that I never caught before (are you loading a saved game and getting the error? It should never happen when starting from a fresh game).


    Anyway, on line 183, simply replace self.default_action with self.class.default_action and it should work just fine.
     
    #3
  4. Raen Andaleio

    Raen Andaleio Veteran Veteran

    Messages:
    79
    Likes Received:
    14
    Location:
    Germany
    First Language:
    German
    Hm, the error still occurs after I changed the code. You're right, it's a saved game. It indeed doesn't seem to occur in a new game though, so that's ok. Thanks =^,.,^=
     
    #4

Share This Page