RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
State Viewer

0 Members and 1 Guest are viewing this topic.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
State Viewer
Version: 1.1
Author: modern algebra
Date: March 2, 2011

Version History


  • <Version 1.1> 03.02.2011 - Added the option that state descriptions would only be revealed after the state has been inflicted once
  • <Version 1.0> 03.02.2011 - Original Release

Description


The script is very simple - it is just a list of all the states in the game with descriptions. It can be accessed either by call script, by pressing a button in the Status screen, or through a command on the menu. The choice is, of course, up to you.

Features

  • Allows you to show a list of states with descriptions so that the player won't be clueless
  • Scrollable contents if you have more than 14 states
  • Can exclude some states if you don't want them to show in the list
  • Can choose to reveal state descriptions only once they have been inflicted
  • Accessible by call script or through the Status or Menu scenes if you prefer
  • Compatible with most popular CMSes
  • Heavily customizable

Screenshots



Instructions

Paste this script into its own slot in the Script Editor, below Materials but above Main. If you are using any custom menu systems, this script should be placed below them.

For instructions on configuring and using this script, see the header.

Script


Code: [Select]
#==============================================================================
#    State Viewer
#    Version: 1.1
#    Author: modern algebra (rmrk.net)
#    Date: March 2, 2011
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Description:
#
#    This script allows you to give states descriptions and call up a scene
#   whose sole purpose is to describe what each state does. This script has
#   built-in customization and can be made accessible from the Menu, the Status
#   Scene, or simply by call script in an event.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Instructions:
#
#    Paste this script into its own slot above Main and below Materials. If you
#   are using any other script which gives states descriptions than this should
#   be put below it. If you are using a menu script, this script must be below
#   it. Note that this will automatically add itself to the menu if using the
#   default menu, YEM Menu, FSCMS, or Phantasia-Esque CMS.
#
#    The scene can be called using the code:
#      $scene = Scene_StateView.new
#
#    To set the descriptions for each state, simply use the following code in
#   its notebox:
#      \DESC[x]
#     where x is the description you want.
#
#    EXAMPLE:
#      \DESC[This state drains HP every turn]
#
#    You can exclude some states from showing up in the list with the code:
#      \DESC_HIDE
#   It might be useful if you use dummy states for any purpose.
#
#    You have the option to make it accessible from the menu, status or both at
#   lines 46-56. You can then go on to set whether a label will be shown in the
#   scene and its size, font, color etc... at lines 57-69. You can also set an
#   option so that descriptions of states are only revealed once they have been
#   inflicted at line 70.
#==============================================================================
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#  CONFIGURATION
#``````````````````````````````````````````````````````````````````````````````
# Whether the scene should be accessible via the Status Scene
MASV_STATUS_ACCESS = false
  # If accessible by status screen, what button needs to be pressed?
  MASV_STATUS_KEY = Input::SHIFT
# Whether the scene should be accessible via a command in the menu
MASV_MENU_ACCESS = true
  # If accessible via the menu, what index is it in the command list
  MASV_MENU_INDEX = 4
  # If using YEM Menu, FSCMS, or Phantasia-Esque CMS, you can choose an icon
  #  for the menu command. It will do nothing if using default menu however
  MASV_MENU_ICON = 240
# The Label used to describe the scene in menu and on the screen
MASV_LABEL = "State List"
# Whether to show the label at the top of the screen when viewing states
MASV_SHOW_LABEL = true
  # The name of the font for the label if shown. Can be a string ("Arial") or
  #  an array of strings. Font.default_name is the basic font
  MASV_LABEL_FONTNAME = Font.default_name
  # The size of the font if label is shown
  MASV_LABEL_FONTSIZE = 32
  # The colour of the label if it is shown
  MASV_LABEL_COLOR = 16
  # The alignment of the label if shown. 0 => Left; 1 => Centre; 2 => Right
  MASV_LABEL_ALIGN = 1
# Whether to show all non-hidden states immediately or only show them once an
#  actor or enemy has been inflicted with it
MASV_SHOW_ALL_STATES = true
#``````````````````````````````````````````````````````````````````````````````
#  END CONFIGURATION
#//////////////////////////////////////////////////////////////////////////////

#==============================================================================
# ** RPG::State
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    new method - description
#==============================================================================

class RPG::State
  # In case another script already gives states a description
  unless self.method_defined? (:description)
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * Description
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    def description
      return self.note[/\\DESC\[(.+?)\]/i].nil? ? "" : $1.to_s
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Excluded?
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def desc_exclude?
    return !self.note[/\\DESC_HIDE/i].nil?
  end
end

#==============================================================================
# ** Game_System
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    new methods - masv_states_afflicted
#==============================================================================

class Game_System
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Public Instance Variables
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  attr_reader :masv_states_afflicted
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias molbr_stvw_inze_4rp8 initialize
  def initialize (*args)
    @masv_states_afflicted = []
    molbr_stvw_inze_4rp8 (*args) # Run Original Method
  end
end

#==============================================================================
# ** Game_Battler
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - add_state
#==============================================================================

class Game_Battler
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Add State
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias morala_stvw_adstat_5fc1 add_state
  def add_state (state_id, *args)
    $game_system.masv_states_afflicted.push (state_id) unless $game_system.masv_states_afflicted.include? (state_id)
    morala_stvw_adstat_5fc1 (state_id, *args) # Run Original Method
  end
end

#==============================================================================
# ** Window_StateView
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This window displays all states and descriptions of their effects
#==============================================================================

class Window_StateView < Window_Base
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Create Contents
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def create_contents
    self.contents.dispose
    hght = 0
    $data_states.each { |state| hght += 24 if !state.nil? && !state.desc_exclude?  && (MASV_SHOW_ALL_STATES || $game_system.masv_states_afflicted.include? (state.id)) }
    hght = 32 if hght == 0
    self.contents = Bitmap.new(width - 32, hght)
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Refresh
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def refresh
    contents.clear
    # Draw all states
    y = 0
    for state in $data_states
      next if state.nil? || state.desc_exclude? || (!MASV_SHOW_ALL_STATES && !$game_system.masv_states_afflicted.include? (state.id))
      draw_item (y, state)
      y += 24
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Draw Item
  #    state : RPG::State object that is being drawn
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def draw_item (y, state)
    # Draw Icon
    draw_icon(state.icon_index, 0, y)
    # Draw Name
    self.contents.font.color = system_color
    self.contents.draw_text (28, y, 108, 24, state.name)
    # Draw Description
    self.contents.font.color = normal_color
    self.contents.draw_text (142, y, contents.width - 142, 24, state.description)
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Update
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def update
    super
    if Input.press? (Input::DOWN) && ((self.oy + self.height - 32) < contents.height)
      self.oy += 3
    elsif Input.press? (Input::UP) && self.oy != 0
      self.oy -= 3
    end
  end
end

#==============================================================================
# ** Window_StateLabel
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This window shows the label if desired
#==============================================================================

class Window_StateLabel < Window_Base
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize (*args)
    super (*args)
    color = text_color (MASV_LABEL_COLOR)
    contents.fill_rect (0, MASV_LABEL_FONTSIZE - 4, contents.width, 2, color)
    contents.font = Font.new (MASV_LABEL_FONTNAME, MASV_LABEL_FONTSIZE)
    contents.font.color = color
    contents.draw_text (12, 0, contents.width - 24, MASV_LABEL_FONTSIZE, MASV_LABEL, MASV_LABEL_ALIGN)
  end
end

#==============================================================================
# ** Scene_StateView
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This scene processes the state viewing scene
#==============================================================================

class Scene_StateView < Scene_Base
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize (from_class = $scene.class, from_args = [])
    @from_class = from_class
    # weird, but necessary for YEM since doesn't permit argument passage
    @from_args = from_args.empty? && from_class.is_a? (Scene_Menu) ? [MASV_MENU_INDEX] : from_args
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Start Processing
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def start
    super
    create_menu_background
    if MASV_SHOW_LABEL
      @dummy_window = Window_StateLabel.new (0, 0, Graphics.width, Graphics.height)
      svh = 32 + (((@dummy_window.contents.height - MASV_LABEL_FONTSIZE) / 24)*24)
      @states_window = Window_StateView.new (0, Graphics.height - svh, Graphics.width, svh)
      @states_window.opacity = 0
    else
      @states_window = Window_StateView.new (0, 0, Graphics.width, Graphics.height)
    end
    @states_window.refresh
    @states_window.active = true
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Termination Processing
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def terminate
    super
    @dummy_window.dispose if MASV_SHOW_LABEL
    @states_window.dispose
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Frame Update
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def update
    super
    if @states_window.active
      if Input.trigger? (Input::C) || Input.trigger? (Input::B) # Escape or Enter
        Sound.play_cancel
        return_scene
      end
      @states_window.update # Update Window
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Return Scene
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def return_scene
    $scene = @from_class.new (*@from_args)
  end
end

# Status Integration
#==============================================================================
# ** Scene Status (Access from Status)
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - update
#==============================================================================

class Scene_Status
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Frame Update
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias mal_sv_update_9ic3 update
  def update (*args, &block)
    mal_sv_update_9ic3 (*args, &block) # Run Original Method
    if MASV_STATUS_ACCESS && Input.trigger? (MASV_STATUS_KEY)
      $scene = Scene_StateView.new (Scene_Status, [@actor_index])
    end
  end
end

# Menu Integration
if MASV_MENU_ACCESS
  # If YEM Menu
  if $imported && $imported["MainMenuMelody"]
    YEM::MENU::MENU_COMMANDS.insert (MASV_MENU_INDEX, :stateview)
    YEM::MENU::MENU_ICONS[:stateview] = MASV_MENU_ICON
    YEM::MENU::IMPORTED_COMMANDS[:stateview] = [nil, nil, false, MASV_MENU_ICON, MASV_LABEL, "Scene_StateView"]
  # If Full Status CMS
  elsif Game_System.method_defined? (:fscms_command_list)
    ModernAlgebra::FSCMS_CUSTOM_COMMANDS[:stateview] = [MASV_LABEL, MASV_MENU_ICON, -1, false, Scene_StateView, "Scene_Menu, [#{MASV_MENU_INDEX}]"]
    ModernAlgebra::FSCMS_COMMANDLIST.insert (MASV_MENU_INDEX, :stateview)
  # If Phantasia Esque Menu
  elsif Game_System.method_defined? (:tpcms_command_list)
    Phantasia_CMS::CUSTOM_COMMANDS[:stateview] = [MASV_LABEL, MASV_MENU_ICON, -1, false, Scene_StateView, "Scene_Menu, [#{MASV_MENU_INDEX}]"]
    Phantasia_CMS::COMMANDLIST.insert (MASV_MENU_INDEX, :stateview)
  else # Default Menu
    #========================================================================
    # ** Window_Command (unless already done by Quest Journal or IRP)
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #  Summary of Changes:
    #    new instance variable - ma_disabled_commands
    #    aliased method - initialize, draw_item
    #========================================================================
    unless Window_Command.method_defined? (:ma_disabled_commands)
      class Window_Command
        #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        # * Public Instance Variable
        #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        attr_reader :ma_disabled_commands
        #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        # * Initialize
        #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        alias ma_stateview_initz_8yg1 initialize
        def initialize (*args)
          @ma_disabled_commands = [] # Initialize new instance variable
          ma_stateview_initz_8yg1 (*args) # Run Original Method
        end
        #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        # * Draw Item
        #     index   : item number
        #     enabled : enabled flag. When false, draw semi-transparently
        #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        alias modalg_sttvw_itmdraw_7in3 draw_item
        def draw_item (index, enabled = true, *args)
          # Run Original Method
          modalg_sttvw_itmdraw_7in3 (index, enabled, *args)
          enabled ? @ma_disabled_commands.delete (index) : @ma_disabled_commands.push (index)
        end
      end
    end
    #==========================================================================
    # ** Scene Menu
    #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #  Summary of Changes:
    #    aliased methods - initialize, create_command_window
    #==========================================================================
   
    class Scene_Menu
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Object Initialization
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      alias malba_stview_iniz_5rx2 initialize
      def initialize (menu_index = 0, *args)
        malba_stview_iniz_5rx2 (menu_index, *args)
        $scene.is_a? (Scene_StateView) ? @menu_index = MASV_MENU_INDEX : (@menu_index += 1 if @menu_index >= MASV_MENU_INDEX)
      end
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Create Command Window
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      alias modabra_sv_cmmndwin_create_3tb8 create_command_window
      def create_command_window (*args)
        modabra_sv_cmmndwin_create_3tb8 (*args) # Run Original Method
        c = @command_window.commands
        c.insert (MASV_MENU_INDEX, MASV_LABEL)
        width = @command_window.width
        disabled = @command_window.ma_disabled_commands
        @command_window.dispose
        @command_window = @command_window.class.new (width, c)
        @command_window.index = @menu_index
        # Disable all of the old commands as well
        disabled.each { |i|
          i += 1 if i >= MASV_MENU_INDEX
          @command_window.draw_item (i, false)
        }
      end
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Update Command Selection
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      alias modgra_sttview_updcomnd_3rg8 update_command_selection
      def update_command_selection (*args)
        # If the State List command selected
        if @command_window.index == MASV_MENU_INDEX && Input.trigger? (Input::C)
          Sound.play_decision
          $scene = Scene_StateView.new (Scene_Menu, [@command_window.index])
          return
        end
        # Reduce command window index if over the states index
        change = @command_window.index > MASV_MENU_INDEX
        @command_window.index -= 1 if change
        modgra_sttview_updcomnd_3rg8 (*args) # Run Original Method
        @command_window.index += 1 if change
      end
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Update Actor Selection
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      alias mdrnab_viewstate_actupd_5fc9 update_actor_selection
      def update_actor_selection (*args)
        # Reduce command window index if over the states index
        change = @command_window.index > MASV_MENU_INDEX
        @command_window.index -= 1 if change
        mdrnab_viewstate_actupd_5fc9 (*args) # Run Original Method
        @command_window.index += 1 if change
      end
    end
  end
end

Credit


  • modern algebra

Thanks

  • Seiryuki, for the request
  • George Kapland, for the reveal upon infliction idea

Support


If you have any questions or bug reports, please post them in this topic, no matter how old this topic is. Do not PM me.

Known Compatibility Issues

If you are using YEM Menu, Full Status CMS, or Phantasia-esque Menu and want to have access through the menu, all you need to do is place this script below the CMS in the Script Editor - you will not need to manually add them via the interface available in each of those scripts.

If you already have some other script which gives states a description, then you may not need to set the description twice if you put this script below that one. It depends on how the other scripter would have set it up though.
« Last Edit: December 21, 2011, 02:48:17 PM by modern algebra »

**
Rep:
Level 72
RMRK Junior
 ;D
This is exactly what I wanted. Thanks so much for this script modern_algebra.

**
Rep: +0/-0Level 74
RMRK Junior
Wow! good script x)

***
Rep:
Level 74
I'm baaack!
this is pretty good! good job modern algebra  :ghost: