Autorun common event that calls a script when a switch gets turned off?

Shion Kreth

White Knight
Veteran
Joined
Jan 28, 2013
Messages
281
Reaction score
47
First Language
English
Primarily Uses
Can such a thing be done? I'm trying to have an option in the menu which turns a switch on and makes a script call to change the resolution, but then turning the switch off won't revert it back to the original resolution; I need to make another script call and can't figure out how to accomplish this without having some parallel process event present on every map (which I really don't want).
 

Bloodmorphed

Dungeon Fanatic
Veteran
Joined
Sep 17, 2012
Messages
1,466
Reaction score
144
First Language
English
Primarily Uses
Not too sure you want to do this but this might work?

case $game_variables[100] #use this for your re-sizing the resolution when 0  Graphics.resize_screen(544, 416) #default size when 1  Graphics.resize_screen(640, 480) #max sizeend
Keep in mind I don't know if this will work, I'm not near the editor to test. 
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
How are you adding this to the menu? If you're modifying the menu script, then you don't need to use events or common events at all (or switches or variables) - you just put the call to resize the screen wherever the option is being processed.


Or are you doing an evented menu? I assumed, from your other post, that the switch was being changed by events, not by scripts/options menus.


And how are you changing the resolution? Just with the Graphics.resize_screen command shown above, or are you using someone's script to do it? If the latter, please include a link to the script.
 

Shion Kreth

White Knight
Veteran
Joined
Jan 28, 2013
Messages
281
Reaction score
47
First Language
English
Primarily Uses
How are you adding this to the menu? If you're modifying the menu script, then you don't need to use events or common events at all (or switches or variables) - you just put the call to resize the screen wherever the option is being processed.

Or are you doing an evented menu? I assumed, from your other post, that the switch was being changed by events, not by scripts/options menus.

And how are you changing the resolution? Just with the Graphics.resize_screen command shown above, or are you using someone's script to do it? If the latter, please include a link to the script.
It's being done through two scripts, a simple window resizer which I don't THINK will affect anything; a script call changes the resolution to what i define in said script call and that's all it does. The switch itself is being changed through yanfly's system option script, which allows for the use of a few custom commands related to switching a single switch on or off. My custom option is simply labeled window size: small | large, so when I select large it turns the switch on which calls the script(through an autorun common event and changes the resolution, but of course turning that switch off doesn't do anything, I'm just hoping to figure out a way to make another script call when turning that same switch off; since i have two options (small and large) and the script has two options (switch x on and switch x off)and  I was hoping someone would have a fancy way to make use of that. I have no ruby know-how to alter any scripts and wasn't planning to, the script turns a switch on or off and I'm trying to work with that unless it can't be done.

If you tell me I'm on the wrong board again after directing me here, Shaz, I am going to take it personally.

I'm not sure they were do anything for anyone but the scripts involved:

Yanfly's system options(including my settings under custom switches):

#==============================================================================



# ▼ Yanfly Engine Ace - System Options v1.00

# -- Last Updated: 2012.01.01

# -- Level: Normal

# -- Requires: n/a



#==============================================================================

 

$imported = {} if $imported.nil?

$imported["YEA-SystemOptions"] = true

 

#==============================================================================

# ▼ Updates

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# 2012.01.01 - Started Script and Finished.



#==============================================================================

# ▼ Introduction

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# This script replaces the "Game End" option in the Main Menu with a "System"

# menu where the player can adjust various settings in the game. Of them, the

# player can change the window colour, the volume for BGM, BGS, SFX, set

# automatic dashing, message text to display instantly, and speed up battles by

# hiding battle animations.



#==============================================================================

# ▼ Instructions

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# To install this script, open up your script editor and copy/paste this script

# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.



# -----------------------------------------------------------------------------

# Script Calls - These commands are used with script calls.

# -----------------------------------------------------------------------------

# $game_system.volume_change:)bgm, x)

# $game_system.volume_change:)bgs, x)

# $game_system.volume_change:)sfx, x)

# Unlike the previous Yanfly Engines, this version does not bind volume to a

# variable. Use the script call to change the bgm, bgs, or sfx sound rate by

# x increment. Use a negative value to lower the volume.



# $game_system.set_autodash(true)

# $game_system.set_autodash(false)

# Turns autodash on (true) or off (false).



# $game_system.set_instantmsg(true)

# $game_system.set_instantmsg(false)

# Turns instant messages on (true) or off (false).



# $game_system.set_animations(true)

# $game_system.set_animations(false)

# Turns battle animations on (true) or off (false).



#==============================================================================

# ▼ Compatibility

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that

# it will run with RPG Maker VX without adjusting.



#==============================================================================

 

module YEA

  module SYSTEM

    

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # - General Setting -

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # These are the general settings that govern the System settings. This will

    # change the "Game End" vocab, and disable or enable autodash, instant

    # messages, or animations by default.

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    COMMAND_NAME = "System"      # Command name used to replace Game End.

    DEFAULT_AUTODASH   = false    # Enable automatic dashing by default?

    DEFAULT_INSTANTMSG = false   # Enable instant message text by default?

    DEFAULT_ANIMATIONS = true    # Enable battle animations by default?

    

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # - Command Settings -

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # These settings adjust the commands shown in the command list. Add, remove

    # or rearrange the commands as you see fit. Here's a list of which commands

    # do what:

    # 

    # -------------------------------------------------------------------------

    # :command         Description

    # -------------------------------------------------------------------------

    # :blank           Inserts an empty blank space.

    # 

    # :window_red      Changes the red tone for all windows.

    # :window_grn      Changes the green tone for all windows.

    # :window_blu      Changes the blue tone for all windows.

    # 

    # :volume_bgm      Changes the BGM volume used.

    # :volume_bgs      Changes the BGS volume used.

    # :volume_sfx      Changes the SFX volume used.

    # 

    # :autodash        Sets the player to automatically dash.

    # :instantmsg      Sets message text to appear instantly.

    # :animations      Enables battle animations or disables them.

    # 

    # :to_title        Returns to the title screen.

    # :shutdown        Shuts down the game.

    # 

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    COMMANDS =[

      :window_red,   # Changes the red tone for all windows.

      :window_grn,   # Changes the green tone for all windows.

      :window_blu,   # Changes the blue tone for all windows.

      :volume_bgm,   # Changes the BGM volume used.

      :volume_bgs,   # Changes the BGS volume used.

      :volume_sfx,   # Changes the SFX volume used.

      :blank,

      :autodash,     # Sets the player to automatically dash.

      :instantmsg,   # Sets message text to appear instantly.

      :animations,   # Enables battle animations or disables them.

      :switch_1,     # Custom Switch 1. Adjust settings below.

      :switch_2,     # Custom Switch 2. Adjust settings below.

      :switch_3,

    # :variable_1,   # Custom Variable 1. Adjust settings below.

    # :variable_2,   # Custom Variable 2. Adjust settings below.

      :blank,

      :to_title,     # Returns to the title screen.

      :shutdown,     # Shuts down the game.

    ] # Do not remove this.

    

    #--------------------------------------------------------------------------

    # - Custom Switches -

    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    # If you want your game to have system options other than just the ones

    # listed above, you can insert custom switches here to produce such an

    # effect. Adjust the settings here as you see fit.

    #--------------------------------------------------------------------------

    CUSTOM_SWITCHES ={

    # -------------------------------------------------------------------------

    # :switch    => [switch, Name, Off Text, On Text, 

    #                Help Window Description

    #               ], # Do not remove this.

    # -------------------------------------------------------------------------

      :switch_1  => [ 1, "Difficulty", "Normal", "Casual",

                     "Help description used for custom switch 1."

                    ],

    # -------------------------------------------------------------------------

      :switch_2  => [ 2, "Window Size", "Small", "Large",

                     "Help description used for custom switch 2."

                    ],

    # -------------------------------------------------------------------------

      :switch_3  => [ 3, "Fullscreen", "Off", "On",

                     "Help description used for custom switch 3."

                    ],

    # -------------------------------------------------------------------------

    } # Do not remove this.

    

    #--------------------------------------------------------------------------

    # - Custom Variables -

    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    # If you want your game to have system options other than just the ones

    # listed above, you can insert custom variables here to produce such an

    # effect. Adjust the settings here as you see fit.

    #--------------------------------------------------------------------------

    CUSTOM_VARIABLES ={

    # -------------------------------------------------------------------------

    # :variable   => [switch, Name, Colour1, Colour2, Min, Max,

    #                 Help Window Description

    #                ], # Do not remove this.

    # -------------------------------------------------------------------------

      :variable_1 => [ 1, "Custom Variable 1", 9, 1, -100, 100,

                      "Help description used for custom variable 1."

                     ],

    # -------------------------------------------------------------------------

      :variable_2 => [ 2, "Custom Variable 2", 10, 2, -10, 10,

                      "Help description used for custom variable 2."

                     ],

    # -------------------------------------------------------------------------

    } # Do not remove this.

    

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # - Vocab Settings -

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # This hash adjusts the vocab used for both the commands and the help

    # description that appears above the command window. Note that for the

    # command help descriptions, you may use text codes. Use \n to linebreak.

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    COMMAND_VOCAB ={

    # -------------------------------------------------------------------------

    # :command    => [Command Name, Option1, Option2

    #                 Help Window Description,

    #                ], # Do not remove this.

    # -------------------------------------------------------------------------

      :blank      => ["", "None", "None",

                      "Blah"

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :window_red => ["Window Red", "None", "None",

                      "Change the red colour tone for windows.\n" +

                      "Hold SHIFT to change increment by 10."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :window_grn => ["Window Green", "None", "None",

                      "Change the green colour tone for windows.\n" +

                      "Hold SHIFT to change increment by 10."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :window_blu => ["Window Blue", "None", "None",

                      "Change the blue colour tone for windows.\n" +

                      "Hold SHIFT to change increment by 10."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :volume_bgm => ["BGM Volume", 12, 4, # Options 1 & 2 are Gauge Colours.

                      "Change the volume used for background music.\n" +

                      "Hold SHIFT to change increment by 10."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :volume_bgs => ["BGS Volume", 13, 5, # Options 1 & 2 are Gauge Colours.

                      "Change the volume used for background sound.\n" +

                      "Hold SHIFT to change increment by 10."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :volume_sfx => ["SFX Volume", 14, 6, # Options 1 & 2 are Gauge Colours.

                      "Change the volume used for sound effects.\n" +

                      "Hold SHIFT to change increment by 10."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :autodash   => ["Auto-Dash", "Walk", "Dash",

                      "Automatically dash without holding the run button."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :instantmsg => ["Instant Text", "Normal", "Instant",

                      "Set message text to appear one-by-one or instantly."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :animations => ["Battle Animations", "Hide", "Show",

                      "Hide animations during battle to speed up battles?"

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :to_title   => ["Return to Title Screen", "None", "None",

                      "Go back to the title screen."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

      :shutdown   => ["Shutdown Game", "None", "None",

                      "Turns off the game."

                     ], # Do not remove this.

    # -------------------------------------------------------------------------

    } # Do not remove this.

    

  end # SYSTEM

end # YEA

 

#==============================================================================

# ▼ Editting anything past this point may potentially result in causing

# computer damage, incontinence, explosion of user's head, coma, death, and/or

# halitosis so edit at your own risk.

#==============================================================================

 

#==============================================================================

# ■ Vocab

#==============================================================================

 

module Vocab

  

  #--------------------------------------------------------------------------

  # overwrite method: self.game_end

  #--------------------------------------------------------------------------

  def self.game_end

    return YEA::SYSTEM::COMMAND_NAME

  end

  

end # Vocab

 

#==============================================================================

# ■ RPG::BGM

#==============================================================================

 

class RPG::BGM < RPG::AudioFile

  

  #--------------------------------------------------------------------------

  # overwrite method: play

  #--------------------------------------------------------------------------

  def play(pos = 0)

    if @name.empty?

      Audio.bgm_stop

      @@last = RPG::BGM.new

    else

      volume = @volume

      volume *= $game_system.volume:)bgm) * 0.01 unless $game_system.nil?

      Audio.bgm_play('Audio/BGM/' + @name, volume, @pitch, pos)

      @@last = self.clone

    end

  end

  

end # RPG::BGM

 

#==============================================================================

# ■ RPG::ME

#==============================================================================

 

class RPG::ME < RPG::AudioFile

  

  #--------------------------------------------------------------------------

  # overwrite method: play

  #--------------------------------------------------------------------------

  def play

    if @name.empty?

      Audio.me_stop

    else

      volume = @volume

      volume *= $game_system.volume:)bgm) * 0.01 unless $game_system.nil?

      Audio.me_play('Audio/ME/' + @name, volume, @pitch)

    end

  end

  

end # RPG::ME

 

#==============================================================================

# ■ RPG::BGS

#==============================================================================

 

class RPG::BGS < RPG::AudioFile

  

  #--------------------------------------------------------------------------

  # overwrite method: play

  #--------------------------------------------------------------------------

  def play(pos = 0)

    if @name.empty?

      Audio.bgs_stop

      @@last = RPG::BGS.new

    else

      volume = @volume

      volume *= $game_system.volume:)bgs) * 0.01 unless $game_system.nil?

      Audio.bgs_play('Audio/BGS/' + @name, volume, @pitch, pos)

      @@last = self.clone

    end

  end

  

end # RPG::BGS

 

#==============================================================================

# ■ RPG::SE

#==============================================================================

 

class RPG::SE < RPG::AudioFile

  

  #--------------------------------------------------------------------------

  # overwrite method: play

  #--------------------------------------------------------------------------

  def play

    unless @name.empty?

      volume = @volume

      volume *= $game_system.volume:)sfx) * 0.01 unless $game_system.nil?

      Audio.se_play('Audio/SE/' + @name, volume, @pitch)

    end

  end

  

end # RPG::SE

 

#==============================================================================

# ■ Game_System

#==============================================================================

 

class Game_System

  

  #--------------------------------------------------------------------------

  # alias method: initialize

  #--------------------------------------------------------------------------

  alias game_system_initialize_so initialize

  def initialize

    game_system_initialize_so

    init_volume_control

    init_autodash

    init_instantmsg

    init_animations

  end

  

  #--------------------------------------------------------------------------

  # new method: init_volume_control

  #--------------------------------------------------------------------------

  def init_volume_control

    @volume = {}

    @volume[:bgm] = 100

    @volume[:bgs] = 100

    @volume[:sfx] = 100

  end

  

  #--------------------------------------------------------------------------

  # new method: volume

  #--------------------------------------------------------------------------

  def volume(type)

    init_volume_control if @volume.nil?

    return [[@volume[type], 0].max, 100].min

  end

  

  #--------------------------------------------------------------------------

  # new method: volume_change

  #--------------------------------------------------------------------------

  def volume_change(type, increment)

    init_volume_control if @volume.nil?

    @volume[type] += increment

    @volume[type] = [[@volume[type], 0].max, 100].min

  end

  

  #--------------------------------------------------------------------------

  # new method: init_autodash

  #--------------------------------------------------------------------------

  def init_autodash

    @autodash = YEA::SYSTEM::DEFAULT_AUTODASH

  end

  

  #--------------------------------------------------------------------------

  # new method: autodash?

  #--------------------------------------------------------------------------

  def autodash?

    init_autodash if @autodash.nil?

    return @autodash

  end

  

  #--------------------------------------------------------------------------

  # new method: set_autodash

  #--------------------------------------------------------------------------

  def set_autodash(value)

    @autodash = value

  end

  

  #--------------------------------------------------------------------------

  # new method: init_instantmsg

  #--------------------------------------------------------------------------

  def init_instantmsg

    @instantmsg = YEA::SYSTEM::DEFAULT_INSTANTMSG

  end

  

  #--------------------------------------------------------------------------

  # new method: instantmsg?

  #--------------------------------------------------------------------------

  def instantmsg?

    init_instantmsg if @instantmsg.nil?

    return @instantmsg

  end

  

  #--------------------------------------------------------------------------

  # new method: set_instantmsg

  #--------------------------------------------------------------------------

  def set_instantmsg(value)

    @instantmsg = value

  end

  

  #--------------------------------------------------------------------------

  # new method: init_animations

  #--------------------------------------------------------------------------

  def init_animations

    @animations = YEA::SYSTEM::DEFAULT_ANIMATIONS

  end

  

  #--------------------------------------------------------------------------

  # new method: animations?

  #--------------------------------------------------------------------------

  def animations?

    init_animations if @animations.nil?

    return @animations

  end

  

  #--------------------------------------------------------------------------

  # new method: set_animations

  #--------------------------------------------------------------------------

  def set_animations(value)

    @animations = value

  end

  

end # Game_System

 

#==============================================================================

# ■ Game_Player

#==============================================================================

 

class Game_Player < Game_Character

  

  #--------------------------------------------------------------------------

  # alias method: dash?

  #--------------------------------------------------------------------------

  alias game_player_dash_so dash?

  def dash?

    if $game_system.autodash?

      return false if @move_route_forcing

      return false if $game_map.disable_dash?

      return false if vehicle

      return !Input.press?:)A)

    else

      return game_player_dash_so

    end

  end

  

end # Game_Player

 

#==============================================================================

# ■ Scene_Battle

#==============================================================================

 

class Scene_Battle < Scene_Base

  

  #--------------------------------------------------------------------------

  # alias method: show_fast?

  #--------------------------------------------------------------------------

  alias scene_battle_show_fast_so show_fast?

  def show_fast?

    return true unless $game_system.animations?

    return scene_battle_show_fast_so

  end

  

  #--------------------------------------------------------------------------

  # alias method: show_normal_animation

  #--------------------------------------------------------------------------

  alias scene_battle_show_normal_animation_so show_normal_animation

  def show_normal_animation(targets, animation_id, mirror = false)

    return unless $game_system.animations?

    scene_battle_show_normal_animation_so(targets, animation_id, mirror)

  end

  

end # Scene_Battle

 

#==============================================================================

# ■ Window_Message

#==============================================================================

 

class Window_Message < Window_Base

  

  #--------------------------------------------------------------------------

  # alias method: clear_flags

  #--------------------------------------------------------------------------

  alias window_message_clear_flags_so clear_flags

  def clear_flags

    window_message_clear_flags_so

    @show_fast = true if $game_system.instantmsg?

  end

  

end # Window_Message

 

#==============================================================================

# ■ Window_SystemOptions

#==============================================================================

 

class Window_SystemOptions < Window_Command

  

  #--------------------------------------------------------------------------

  # initialize

  #--------------------------------------------------------------------------

  def initialize(help_window)

    @help_window = help_window

    super(0, @help_window.height)

    refresh

  end

  

  #--------------------------------------------------------------------------

  # window_width

  #--------------------------------------------------------------------------

  def window_width; return Graphics.width; end

  

  #--------------------------------------------------------------------------

  # window_height

  #--------------------------------------------------------------------------

  def window_height; return Graphics.height - @help_window.height; end

  

  #--------------------------------------------------------------------------

  # update_help

  #--------------------------------------------------------------------------

  def update_help

    if current_symbol == :custom_switch || current_symbol == :custom_variable

      text = @help_descriptions[current_ext]

    else

      text = @help_descriptions[current_symbol]

    end

    text = "" if text.nil?

    @help_window.set_text(text)

  end

  

  #--------------------------------------------------------------------------

  # ok_enabled?

  #--------------------------------------------------------------------------

  def ok_enabled?

    return true if [:to_title, :shutdown].include?(current_symbol)

    return false

  end

  

  #--------------------------------------------------------------------------

  # make_command_list

  #--------------------------------------------------------------------------

  def make_command_list

    @help_descriptions = {}

    for command in YEA::SYSTEM::COMMANDS

      case command

      when :blank

        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)

        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]

      when :window_red, :window_grn, :window_blu

        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)

        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]

      when :volume_bgm, :volume_bgs, :volume_sfx

        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)

        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]

      when :autodash, :instantmsg, :animations

        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)

        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]

      when :to_title, :shutdown

        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)

        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]

      else

        process_custom_switch(command)

        process_custom_variable(command)

      end

    end

  end

  

  #--------------------------------------------------------------------------

  # process_custom_switch

  #--------------------------------------------------------------------------

  def process_custom_switch(command)

    return unless YEA::SYSTEM::CUSTOM_SWITCHES.include?(command)

    name = YEA::SYSTEM::CUSTOM_SWITCHES[command][1]

    add_command(name, :custom_switch, true, command)

    @help_descriptions[command] = YEA::SYSTEM::CUSTOM_SWITCHES[command][4]

  end

  

  #--------------------------------------------------------------------------

  # process_custom_variable

  #--------------------------------------------------------------------------

  def process_custom_variable(command)

    return unless YEA::SYSTEM::CUSTOM_VARIABLES.include?(command)

    name = YEA::SYSTEM::CUSTOM_VARIABLES[command][1]

    add_command(name, :custom_variable, true, command)

    @help_descriptions[command] = YEA::SYSTEM::CUSTOM_VARIABLES[command][6]

  end

  

  #--------------------------------------------------------------------------

  # draw_item

  #--------------------------------------------------------------------------

  def draw_item(index)

    reset_font_settings

    rect = item_rect(index)

    contents.clear_rect(rect)

    case @list[index][:symbol]

    when :window_red, :window_grn, :window_blu

      draw_window_tone(rect, index, @list[index][:symbol])

    when :volume_bgm, :volume_bgs, :volume_sfx

      draw_volume(rect, index, @list[index][:symbol])

    when :autodash, :instantmsg, :animations

      draw_toggle(rect, index, @list[index][:symbol])

    when :to_title, :shutdown

      draw_text(item_rect_for_text(index), command_name(index), 1)

    when :custom_switch

      draw_custom_switch(rect, index, @list[index][:ext])

    when :custom_variable

      draw_custom_variable(rect, index, @list[index][:ext])

    end

  end

  

  #--------------------------------------------------------------------------

  # draw_window_tone

  #--------------------------------------------------------------------------

  def draw_window_tone(rect, index, symbol)

    name = @list[index][:name]

    draw_text(0, rect.y, contents.width/2, line_height, name, 1)

    #---

    dx = contents.width / 2

    tone = $game_system.window_tone

    case symbol

    when :window_red

      rate = (tone.red + 255.0) / 510.0

      colour1 = Color.new(128, 0, 0)

      colour2 = Color.new(255, 0, 0)

      value = tone.red.to_i

    when :window_grn

      rate = (tone.green + 255.0) / 510.0

      colour1 = Color.new(0, 128, 0)

      colour2 = Color.new(0, 255, 0)

      value = tone.green.to_i

    when :window_blu

      rate = (tone.blue + 255.0) / 510.0

      colour1 = Color.new(0, 0, 128)

      colour2 = Color.new(0, 0, 255)

      value = tone.blue.to_i

    end

    draw_gauge(dx, rect.y, contents.width - dx - 48, rate, colour1, colour2)

    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)

  end

  

  #--------------------------------------------------------------------------

  # draw_volume

  #--------------------------------------------------------------------------

  def draw_volume(rect, index, symbol)

    name = @list[index][:name]

    draw_text(0, rect.y, contents.width/2, line_height, name, 1)

    #---

    dx = contents.width / 2

    case symbol

    when :volume_bgm

      rate = $game_system.volume:)bgm)

    when :volume_bgs

      rate = $game_system.volume:)bgs)

    when :volume_sfx

      rate = $game_system.volume:)sfx)

    end

    colour1 = text_color(YEA::SYSTEM::COMMAND_VOCAB[symbol][1])

    colour2 = text_color(YEA::SYSTEM::COMMAND_VOCAB[symbol][2])

    value = sprintf("%d%%", rate)

    rate *= 0.01

    draw_gauge(dx, rect.y, contents.width - dx - 48, rate, colour1, colour2)

    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)

  end

  

  #--------------------------------------------------------------------------

  # draw_toggle

  #--------------------------------------------------------------------------

  def draw_toggle(rect, index, symbol)

    name = @list[index][:name]

    draw_text(0, rect.y, contents.width/2, line_height, name, 1)

    #---

    dx = contents.width / 2

    case symbol

    when :autodash

      enabled = $game_system.autodash?

    when :instantmsg

      enabled = $game_system.instantmsg?

    when :animations

      enabled = $game_system.animations?

    end

    dx = contents.width/2

    change_color(normal_color, !enabled)

    option1 = YEA::SYSTEM::COMMAND_VOCAB[symbol][1]

    draw_text(dx, rect.y, contents.width/4, line_height, option1, 1)

    dx += contents.width/4

    change_color(normal_color, enabled)

    option2 = YEA::SYSTEM::COMMAND_VOCAB[symbol][2]

    draw_text(dx, rect.y, contents.width/4, line_height, option2, 1)

  end

  

  #--------------------------------------------------------------------------

  # cursor_right

  #--------------------------------------------------------------------------

  def draw_custom_switch(rect, index, ext)

    name = @list[index][:name]

    draw_text(0, rect.y, contents.width/2, line_height, name, 1)

    #---

    dx = contents.width / 2

    enabled = $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]]

    dx = contents.width/2

    change_color(normal_color, !enabled)

    option1 = YEA::SYSTEM::CUSTOM_SWITCHES[ext][2]

    draw_text(dx, rect.y, contents.width/4, line_height, option1, 1)

    dx += contents.width/4

    change_color(normal_color, enabled)

    option2 = YEA::SYSTEM::CUSTOM_SWITCHES[ext][3]

    draw_text(dx, rect.y, contents.width/4, line_height, option2, 1)

  end

  

  #--------------------------------------------------------------------------

  # draw_custom_variable

  #--------------------------------------------------------------------------

  def draw_custom_variable(rect, index, ext)

    name = @list[index][:name]

    draw_text(0, rect.y, contents.width/2, line_height, name, 1)

    #---

    dx = contents.width / 2

    value = $game_variables[YEA::SYSTEM::CUSTOM_VARIABLES[ext][0]]

    colour1 = text_color(YEA::SYSTEM::CUSTOM_VARIABLES[ext][2])

    colour2 = text_color(YEA::SYSTEM::CUSTOM_VARIABLES[ext][3])

    minimum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][4]

    maximum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][5]

    rate = (value - minimum).to_f / [(maximum - minimum).to_f, 0.01].max

    dx = contents.width/2

    draw_gauge(dx, rect.y, contents.width - dx - 48, rate, colour1, colour2)

    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)

  end

  

  #--------------------------------------------------------------------------

  # cursor_right

  #--------------------------------------------------------------------------

  def cursor_right(wrap = false)

    cursor_change:)right)

    super(wrap)

  end

  

  #--------------------------------------------------------------------------

  # cursor_left

  #--------------------------------------------------------------------------

  def cursor_left(wrap = false)

    cursor_change:)left)

    super(wrap)

  end

  

  #--------------------------------------------------------------------------

  # cursor_change

  #--------------------------------------------------------------------------

  def cursor_change(direction)

    case current_symbol

    when :window_red, :window_blu, :window_grn

      change_window_tone(direction)

    when :volume_bgm, :volume_bgs, :volume_sfx

      change_volume(direction)

    when :autodash, :instantmsg, :animations

      change_toggle(direction)

    when :custom_switch

      change_custom_switch(direction)

    when :custom_variable

      change_custom_variables(direction)

    end

  end

  

  #--------------------------------------------------------------------------

  # change_window_tone

  #--------------------------------------------------------------------------

  def change_window_tone(direction)

    Sound.play_cursor

    value = direction == :left ? -1 : 1

    value *= 10 if Input.press?:)A)

    tone = $game_system.window_tone.clone

    case current_symbol

    when :window_red; tone.red += value

    when :window_grn; tone.green += value

    when :window_blu; tone.blue += value

    end

    $game_system.window_tone = tone

    draw_item(index)

  end

  

  #--------------------------------------------------------------------------

  # change_window_tone

  #--------------------------------------------------------------------------

  def change_volume(direction)

    Sound.play_cursor

    value = direction == :left ? -1 : 1

    value *= 10 if Input.press?:)A)

    case current_symbol

    when :volume_bgm

      $game_system.volume_change:)bgm, value)

      RPG::BGM::last.play

    when :volume_bgs

      $game_system.volume_change:)bgs, value)

      RPG::BGS::last.play

    when :volume_sfx

      $game_system.volume_change:)sfx, value)

    end

    draw_item(index)

  end

  

  #--------------------------------------------------------------------------

  # change_toggle

  #--------------------------------------------------------------------------

  def change_toggle(direction)

    value = direction == :left ? false : true

    case current_symbol

    when :autodash

      current_case = $game_system.autodash?

      $game_system.set_autodash(value)

    when :instantmsg

      current_case = $game_system.instantmsg?

      $game_system.set_instantmsg(value)

    when :animations

      current_case = $game_system.animations?

      $game_system.set_animations(value)

    end

    Sound.play_cursor if value != current_case

    draw_item(index)

  end

  

  #--------------------------------------------------------------------------

  # change_custom_switch

  #--------------------------------------------------------------------------

  def change_custom_switch(direction)

    value = direction == :left ? false : true

    ext = current_ext

    current_case = $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]]

    $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]] = value

    Sound.play_cursor if value != current_case

    draw_item(index)

  end

  

  #--------------------------------------------------------------------------

  # change_custom_variables

  #--------------------------------------------------------------------------

  def change_custom_variables(direction)

    Sound.play_cursor

    value = direction == :left ? -1 : 1

    value *= 10 if Input.press?:)A)

    ext = current_ext

    var = YEA::SYSTEM::CUSTOM_VARIABLES[ext][0]

    minimum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][4]

    maximum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][5]

    $game_variables[var] += value

    $game_variables[var] = [[$game_variables[var], minimum].max, maximum].min

    draw_item(index)

  end

  

end # Window_SystemOptions

 

#==============================================================================

# ■ Scene_Menu

#==============================================================================

 

class Scene_Menu < Scene_MenuBase

  

  #--------------------------------------------------------------------------

  # overwrite method: command_game_end

  #--------------------------------------------------------------------------

  def command_game_end

    SceneManager.call(Scene_System)

  end

  

end # Scene_Menu

 

#==============================================================================

# ■ Scene_System

#==============================================================================

 

class Scene_System < Scene_MenuBase

  

  #--------------------------------------------------------------------------

  # start

  #--------------------------------------------------------------------------

  def start

    super

    create_help_window

    create_command_window

  end

  

  #--------------------------------------------------------------------------

  # create_command_window

  #--------------------------------------------------------------------------

  def create_command_window

    @command_window = Window_SystemOptions.new(@help_window)

    @command_window.set_handler:)cancel, method:)return_scene))

    @command_window.set_handler:)to_title, method:)command_to_title))

    @command_window.set_handler:)shutdown, method:)command_shutdown))

  end

  

  #--------------------------------------------------------------------------

  # command_to_title

  #--------------------------------------------------------------------------

  def command_to_title

    fadeout_all

    SceneManager.goto(Scene_Title)

  end

  

  #--------------------------------------------------------------------------

  # command_shutdown

  #--------------------------------------------------------------------------

  def command_shutdown

    fadeout_all

    SceneManager.exit

  end

  

end # Scene_System

 

#==============================================================================



# ▼ End of File



#==============================================================================



 

and Vlue's simple menu resizer:

#Basic Window Resizer v1.1 by Vlue

#----------#

#Features: Allows you to resize the window to whatever size you like! (This is not

#            like Graphics.resize, this will scale to fit)

#

#Usage:   Script calls:

#           Window_Resize.r(width, height)     - Self-explanatory

#           Window_Resize.f                    - fits the game window to monitor size

#           Window_Resize.full                 - switches to full screen unless already fullscreened

#           Window_Resize.window               - same as full but opposite

#           Window_Resize.toggle               - toggles between full and window

#

#No Customization

#

#----------#

#-- Script by: V.M of D.T

#

#- Questions or comments can be:

#    posted on the thread for the script

#    given by email: sumptuaryspade@live.ca

#    provided on facebook: http://www.facebook.com/DaimoniousTailsGames

#

#--- Free to use in any project, commercial or non-commercial, with credit given

# - - Though a donation's always a nice way to say thank you~ (I also accept actual thank you's)

 

SWPO = Win32API.new 'user32', 'SetWindowPos', ['l','i','i','i','i','i','p'], 'i'

WINX = Win32API.new 'user32', 'FindWindowEx', ['l','l','p','p'], 'i'

SMET = Win32API.new 'user32', 'GetSystemMetrics', ['i'], 'i'

 

module Window_Resize

  def self.r(width, height)

    resw = SMET.call(0)

    resh = SMET.call(1)

    window_loc = WINX.call(0,0,"RGSS Player",0)

    width += (SMET.call(5) + SMET.call(45)) * 2

    height += (SMET.call(6) + SMET.call(45)) * 2 + SMET.call(4)

    x = (resw - width) / 2; y = (resh - height) / 2

    y = 0 if y < 0;x = 0 if x < 0

    SWPO.call(window_loc,0,x,y,width,height,0)

  end

  def self.f

    resw = SMET.call(0)

    resh = SMET.call(1)

    window_loc = WINX.call(0,0,"RGSS Player",0)

    SWPO.call(window_loc,0,0,0,resw,resh,0)

  end

  def self.full

    resw = SMET.call(0)

    return unless resw > 640

    toggle

  end

  def self.window

    resw = SMET.call(0)

    return unless resw <= 640

    toggle

  end

  def self.toggle

    keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'

    keybd.call 0xA4, 0, 0, 0

    keybd.call 13, 0, 0, 0

    keybd.call 13, 0, 2, 0

    keybd.call 0xA4, 0, 2, 0

  end

end
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
:) Since I told you to post here, thinking you were after an evented solution, I wouldn't go and say you're on the wrong board again. I'd just move it for you ;)


And I think I will do this, since I really think keeping it all in the script is a better solution to using one script to change a switch, and then a common event to call the script to resize the screen based on the switch's value.


When you use scripts, can you just provide a link to the original source of the script rather than actually copying/pasting the script into your post? Preferably a blog article or forum post where the script is introduced, as they often have more information from the scripter as well as discussions that might help solve your issue. If you could edit your post and replace the inserted scripts with links, that'd be great.


Moving to RGSSx Script Support
 

Shion Kreth

White Knight
Veteran
Joined
Jan 28, 2013
Messages
281
Reaction score
47
First Language
English
Primarily Uses
:) Since I told you to post here, thinking you were after an evented solution, I wouldn't go and say you're on the wrong board again. I'd just move it for you ;)

And I think I will do this, since I really think keeping it all in the script is a better solution to using one script to change a switch, and then a common event to call the script to resize the screen based on the switch's value.

When you use scripts, can you just provide a link to the original source of the script rather than actually copying/pasting the script into your post? Preferably a blog article or forum post where the script is introduced, as they often have more information from the scripter as well as discussions that might help solve your issue. If you could edit your post and replace the inserted scripts with links, that'd be great.

Moving to RGSSx Script Support
You DO have something against me..!!
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
:) Nah, I was very nice!
 

Shion Kreth

White Knight
Veteran
Joined
Jan 28, 2013
Messages
281
Reaction score
47
First Language
English
Primarily Uses
Not too sure you want to do this but this might work?

case $game_variables[100] #use this for your re-sizing the resolution when 0  Graphics.resize_screen(544, 416) #default size when 1  Graphics.resize_screen(640, 480) #max sizeendKeep in mind I don't know if this will work, I'm not near the editor to test. 
I think I see your premise, but I don't know how to implement that in yanfly's script.. and I'm using another script for more exotic resolutions that requires a script call rather than just using a base system command; what I'd like is that, but preferably through a switch where: if off run script call 1, if on run script call 2. Do you have any idea how to write something like that?
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,867
Messages
1,017,062
Members
137,575
Latest member
akekaphol101
Top