[VXA]CDR - Guide Script.. Left and right problem

OffeNDer

Veteran
Veteran
Joined
Jan 15, 2013
Messages
80
Reaction score
2
Primarily Uses
Hello,

i am using Ceodore script (Guide 1.0)

and i have problem ...  both Right and left not working .... any one know the solution for that?

everything work except 

:RIGHT -> Forces right key
:LEFT -> Forces left key

The script

Code:
=begin================================================================================ CDR - Guide 1.0 ------------------------------------------------------------------------------- Author: Ceodore Mail: ceodore@email.com https://ceodoremaker.wordpress.com===============================Change log=======================================  16/03/2013 - 1.0 release.  ===============================Description======================================  This implementation is meant to provide a way to guide the user on a scene. It  was made to allow in-game tutorials, like menu or battle tutorials. =================================License========================================  You may freely use and modify this script as long as you do not change the  original author information. If you use this on your game, include the author  on the credits.=========================Instalation & Compatibility============================     Insert this script above main. Currently, only menu scenes, shop scenes and   battle scenes were tested.===================================Use==========================================  You just need to follow the examples and create your sequences. To enable a   guide on the list, call a script event command and paste this line:    GuideManager.enable(x)    Where x is the guide id/switch.    Alternatively, you can enable the guide by turning it's Switch ON. In this  case, the guide will start automatically once when you enter the scene, but   this feature is still experimental, you may use it at your own risk.  You can use wathever tags you would use on a message, just don't forget to   escape code characters, for example, \C[1] must be put as \\C[1]. This  happens because the strings on this script are not treated as your regular   message strings, where the \ character is automatically escaped.=================================Commands=======================================  The guide will follow a list of commands, wich can be a key input or a   message, this is the list of currently supported commands:    ## Show Message ##  [:msg, "string", {:face_name => string,                     :face_index => int,                     :background => int,                     :position => int}]  This will display the string on a message window. The values on the  dictionary are all optional, If you are not using any options, you can just  use this format:  [:msg, string]  :face_name stands for the face file name placed on the Graphics/Faces dir  :face_index stands for the face index inside the image, if you define a              face name, you MUST define a face index.    The :background and :position have specific values, explained below:    :background     0 -> Normal Window    1 -> Dim Background    2 -> Transparent    :position    0 -> Top of the screen    1 -> Middle of the screen    2 -> Bottom of the screen     ## Show Message (Battle) ##   [:msg, {:wait => int}]   For the sake of compatibility with various battle scripts, the guide messages   are displayed in the battle log on battle scenes, instead of a normal   message window. You can use pretty much all message codes, like display    icons, change colors, an all... but there are obvious limitations:   1. The battle log works with a line at a time. You can pile then in       sequence, but it will hardly look like a default message window.   2. The battle log will not accept default message window options, like      face, position or background.   The big advantage is that the battle log window can be displayed at any    moment without closing any window, so the guide flux will not be stopped to   show a message.   The :wait option stands for the time before the message closes automatically.   It's optional, default is 10.    ## Change Switch ##  [:sw, number, boolean]  Specifies a switch to be turned on or off.    ## Change Variable ##  [:var, number, string]  The string can contain a number or any expression wich could be processed by   the eval() method, like "1 * 2" or "$game_variables[2]", the generated value   will be assigned to the specified variable.    ## Input Key ##  [:key, input, times]  This will force a key input. It supports any inputable character the RPG   Maker accepts. Here are the main ones for menus:    :DOWN  -> Forces down key    :UP    -> Forces up key    :RIGHT -> Forces right key    :LEFT  -> Forces left key    :R     -> Forces page down key    :L     -> Forces page up key    :C     -> Forces confirm key    :B     -> Forces cancel key  The times parameter is optional and stands for the number of times this   command will repeat. When no times attribute is found, it will execute the   command once.    ## Change Rate ##  [:rate, number]  Changes the update rate to this number, the update rate will be restored to   default value at the guide's end.=================================================================================end$imported = {} if $imported.nil?$imported['CDR-Rows'] = truemodule CDR_GUIDE  # This defines the interval between commands, in frames. Smaller the value,  # higher the speed  DEFAULT_UPDATE_RATE = 40    # This defines if the Guide List menu item will be added. This new item  # will be placed below End Game and can access the guide list scene.  ADD_MENU_ITEM = true    # This defines the index of the icon wich will be displayed as the file  # icon for each available guide on the Guide_Scene.  GUIDE_FILE_ICON = 286    # The menu item name  MENU_ITEM_NAME = "Guide List"    # The string for unread guides on guide list  NEW_STRING = "NEW"    # The string for the help window on the guide list scene  HELP_WINDOW_TEXT = "Select a Guide"    # The color for unread guides on guide list  NEW_COLOR = 6    # The bgm to be played when you are on a guide. Set as nil if you do not wish   # a specific BGM.  #           [file name, {options}]  GUIDE_BGM = ["Field2",{:volume=>100, :pitch=>100, :pos=>0}]    # The bgm to be played when you are on a shop guide. Set as nil if you do not   # wish  a specific BGM.  #           [file name, {options}]  SHOP_GUIDE_BGM = ["Field2"]    # The bgm to be played when you are on a battle guide. Set as nil if you  # do not wish a specific BGM.  #           [file name, {options}]  BATTLE_GUIDE_BGM = ["Battle2"]    #=============================================================================  # MOCK_PARTY_DATA  #=============================================================================     # Here is the list of fake parties for guide purposes. It can be realy useful  # if your guide depends on the selection of a specific party member, or a  # specific party state, like certain item available on top of the item list,  # a member with depleted HP or high TP. After the guide stops, the original  # party will be automatically restored as it was. The dictionary key is for  # reference only, but must be unique for each mock party.  MOCK_PARTY_DATA = {     1 => { # Optional, the party member's ids            :members => [1,2],            # Optional, the weapons on the party inventory            :weapon => [# [id, quantity]                          [61,1]                        ],            # Optional, the armor's id's on the party inventory#~             :armor => [# [id, quantity]#~                          [1,1],#~                          [2,1]#~                       ],            # Optional, the item's id's on the party inventory#~             :item => [# [id, quantity]#~                         [1,1]#~                       ],            # Optional, the party gold amount            :gold => 100,            # Actor setup, here you can define default values for each actor#~              :setup => [#~               # [actor_id, {options}]#~                 [1, {:tp => 20}],             #~               ]          }, #end of example mock party  }#end of mock party data    #=============================================================================  # GUIDE_DATA  #=============================================================================  # This is the dictionary of guides, please follow the example to create one,  # please read the comments carefully.  # The ID of the guide (the key for the dictionary item) references for a   # game SWITCH, so the guide will be ready to start every time the switch is  # turned on and you are on the guide's scene.  GUIDE_DATA = {    # Example of menu guide. This will guide the player to the status scene.     1 =>   {# The guide type can be either :menu or :battle, a menu guide will            # aways start from the main menu.            :scene => Scene_Status,            # The mock party id, this is optional, when no :party attribute is            # defined, the current party will be used.            :party => 1,            # The guide name to be displayed on the guide list.            :name => "How to Use the Status Screen",             # An array containing this guide's commands            :commands =>  [                 # Notice how the message is placed on this example. When you                # break a line on the editor, the line break will be considered                # on the message, however, the spaces from the left corner too,                # so unless you intent to leave spaces on the line's left, lean                 # the line on the left corner. Another thing to notice are the                 # escaped characters, let's say you would put a message                 # code \C[1], instead you MUST put the extra \ before it, so it                 # becomes \\C[1]. If you don't, it will display an error.                [:msg, "This is the Status screen. Here you can seethe hero details. You can switch between heroes using \\c[4]Q\\c[0] and \\c[4]W\\c[0] keys on your keyboard. ", {:background => 1, :position => 1}],                [:key, :R, 3],                [:msg, "Now you know how to use the Status screen!",                                         {:background => 1, :position => 1}],           ]}, #end of example guide      # Example of shop guide      2 => {          :scene => Scene_Shop,          :name => "How to Buy an Item",          :party => 1,          :goods => { # Optional, this will define the goods the shop will sell                      :item => [1,2,3]                    },          :commands => [                [:msg, "Select the Buy option."],                [:key, :C],                [:msg, "Now you select an item."],                [:key, :C],                [:msg, "Select the quantity."],                [:key, :RIGHT, 2],                [:msg, "Now, confirm the buy."],                [:key, :C],                [:msg, "Now you know how to buy!"],              ]},                     # Example of shop guide# just unused copy       99 => {          :scene => Scene_Shop,          :name => "How to Buy an Item",          :party => 1,          :goods => { # Optional, this will define the goods the shop will sell                      :weapon => [1,2,3],                      :armor => [1,2,3],                      :item => [1,2,3]                    },          :commands => [                [:msg, "Select the Buy option."],                [:key, :C],                [:msg, "Now you select an item."],                [:key, :C],                [:msg, "Select the quantity."],                [:key, :RIGHT, 2],                [:msg, "Now, confirm the buy."],                [:key, :C],                [:msg, "Now you know how to buy!"],              ]      },  }  #end of guide dataend#==============================================================================# DO NOT CHANGE beyond this point, unless you know what you're doing.#==============================================================================# Input module duplicate to use the original methods.SuperInput = Input.dup#==============================================================================# ** Input#==============================================================================module Input  # Flag that defines the currently forced key.  @force_key = :NONE    # Flag that defines if player input is halted.  @halt_player_input = false    # Flag that indicates if the key to be forced was used  @pending_key = false    #--------------------------------------------------------------------------  # * method rewrite: adds key forcing logics  #--------------------------------------------------------------------------  def self.repeat?(input)    return true if @force_key == input    return false if @force_key != :NONE    return SuperInput.repeat?(input) if !@halt_player_input    return false  end    #--------------------------------------------------------------------------  # * method rewrite: adds key forcing logics  #--------------------------------------------------------------------------  def self.trigger?(input)    if @force_key == input      @force_key = :NONE      return true    end    return SuperInput.trigger?(input) if !@halt_player_input    return false  end  #--------------------------------------------------------------------------  # * method rewrite: adds key forcing logics  #--------------------------------------------------------------------------  def self.press?(input)    return true if @force_key == input      return false if @force_key != :NONE    return SuperInput.press?(input) if !@halt_player_input    return false  end    #--------------------------------------------------------------------------  # * new method: defines the key to be forced  #--------------------------------------------------------------------------  def self.force_key(input)    @force_key = input  end      #--------------------------------------------------------------------------  # * new method: returns true if a key is being forced  #--------------------------------------------------------------------------  def self.force_key?    return @force_key != :NONE  end    #--------------------------------------------------------------------------  # * new method: halts player input  #--------------------------------------------------------------------------  def self.halt    @halt_player_input = true  end    #--------------------------------------------------------------------------  # * new method: releases player input  #--------------------------------------------------------------------------  def self.release    @halt_player_input = false  endend#==============================================================================# ** Sound#==============================================================================module Sound  #--------------------------------------------------------------------------  # * new method: plays the guide default bgm  #--------------------------------------------------------------------------  def self.play_guide_bgm    play_bgm(CDR_GUIDE::GUIDE_BGM) if CDR_GUIDE::GUIDE_BGM  end  #--------------------------------------------------------------------------  # * new method: plays the battle guide default bgm  #--------------------------------------------------------------------------  def self.play_battle_guide_bgm    play_bgm(CDR_GUIDE::BATTLE_GUIDE_BGM) if CDR_GUIDE::BATTLE_GUIDE_BGM  end  #--------------------------------------------------------------------------  # * new method: plays the shop guide default bgm  #--------------------------------------------------------------------------  def self.play_shop_guide_bgm    play_bgm(CDR_GUIDE::SHOP_GUIDE_BGM) if CDR_GUIDE::SHOP_GUIDE_BGM  end  #--------------------------------------------------------------------------  # * new method: plays a guide bgm  #--------------------------------------------------------------------------  def self.play_bgm(guide_bgm)    volume = 100    pitch = 100    pos = 0    if guide_bgm[1]            volume = guide_bgm[1][:volume] if guide_bgm[1][:volume]          pitch = guide_bgm[1][:pitch] if guide_bgm[1][:pitch]      pos = guide_bgm[1][:pos] if guide_bgm[1][:pos]    end    Audio.bgm_play(sprintf('Audio/BGM/%s', guide_bgm[0]), volume, pitch, pos)    Audio.bgs_stop  endend#==============================================================================# ** Input#==============================================================================module GuideManager  @memory = []  @read = []  @commands = []  @index = 0  @repeat_count = 0  @last_command = false    @current_key = 0  @type = nil  @update_rate = CDR_GUIDE::DEFAULT_UPDATE_RATE  #--------------------------------------------------------------------------  # * new method: defines the guide to be followed  #--------------------------------------------------------------------------  def self.guide(key, guide)      @current_key = key    @memory.push(key)    @memory.compact!    @memory.uniq!    @memory.sort!    @commands = guide[:commands]    @scene = guide[:scene]    return if !guide[:party]    mock_party = CDR_GUIDE::MOCK_PARTY_DATA[guide[:party]]    $party_backup = $game_party unless $game_party.mock_party?    $game_party = Game_MockParty.new    if mock_party[:members]      mock_party[:members].each{|actor_id| $game_party.add_actor(actor_id)}    end    if mock_party[:weapon]      mock_party[:weapon].each{|item|       $game_party.gain_item($data_weapons[item[0]], item[1])       }    end    if mock_party[:armor]      mock_party[:armor].each{|item|       $game_party.gain_item($data_armors[item[0]], item[1])       }      end    if mock_party[:item]      mock_party[:item].each{|item|       $game_party.gain_item($data_items[item[0]], item[1])       }          end    if mock_party[:gold]      $game_party.gain_gold(mock_party[:gold])    end    if mock_party[:setup]      mock_party[:setup].each{|change|        actor = $game_actors[change[0]]        options = change[1]        actor.set_hp(options[:hp]) if options[:hp]        actor.set_tp(options[:tp]) if options[:tp]        actor.set_mp(options[:mp]) if options[:mp]      }    end  end  #--------------------------------------------------------------------------  # * new method: enabled a guide in the Guide_Scene  #--------------------------------------------------------------------------  def self.enable(key)      @memory.push(key)    @memory.compact!    @memory.uniq!    @memory.sort!  end  #--------------------------------------------------------------------------  # * new method: returns true if guide variable is an empty array  #--------------------------------------------------------------------------  def self.disable(key)      @memory.remove(key)    @memory.sort!  end  #--------------------------------------------------------------------------  # * new method: enabled a guide in the Guide_Scene  #--------------------------------------------------------------------------  def self.mark_as_read      return if @current_key == 0    @read.push(@current_key)    @read.compact!    @read.uniq!    @read.sort!  end  #--------------------------------------------------------------------------  # * new method: returns true if guide variable is an empty array  #--------------------------------------------------------------------------  def self.read?(key)      @read.include?(key)      end  #--------------------------------------------------------------------------  # * new method: clears the guide sequence and control variables  #--------------------------------------------------------------------------  def self.clear      mark_as_read    self.replay_bgm_and_bgs    @last_command = false        @current_key = 0    @commands = []    @index = 0    @repeat_count = 0     @scene = nil    @update_rate = CDR_GUIDE::DEFAULT_UPDATE_RATE    $game_party = $party_backup if $game_party.mock_party?      $game_player.refresh    $game_map.need_refresh = true    SceneManager.return  end   #--------------------------------------------------------------------------  # * new method: returns true if guide variable is an empty array  #--------------------------------------------------------------------------  def self.empty?    @commands.empty?  end   #--------------------------------------------------------------------------  # * new method: defines a new list of guide commands  #--------------------------------------------------------------------------  def self.commands=(commands)    @commands = commands  end   #--------------------------------------------------------------------------  # * new method: defines a new update rate  #--------------------------------------------------------------------------  def self.update_rate=(update_rate)    @update_rate = update_rate  end  #--------------------------------------------------------------------------  # * new method: access the current update rate  #--------------------------------------------------------------------------  def self.update_rate    [@update_rate,1].max  end  #--------------------------------------------------------------------------  # * new method: returns true if guide variable is an empty array  #--------------------------------------------------------------------------  def self.guide_list    named = []    @memory.each{|switch|      if !CDR_GUIDE::GUIDE_DATA[switch][:name].nil?        named.push(switch)      end    }    return named  end   #--------------------------------------------------------------------------  # * new method: returns true if guide variable is an empty array  #--------------------------------------------------------------------------  def self.battle_guide?      CDR_GUIDE::GUIDE_DATA[@current_key][:scene] == Scene_Battle     end  #--------------------------------------------------------------------------  # * new method: defines a new value for guide index  #--------------------------------------------------------------------------  def self.index=(index)    @index = index  end   #--------------------------------------------------------------------------  # * new method: defines a new value for repetition counter  #--------------------------------------------------------------------------  def self.repeat_count=(count)    @repeat_count = count-1  end     #--------------------------------------------------------------------------  # * new method: decreases the repetition count  #--------------------------------------------------------------------------  def self.decrease_count    @repeat_count -= 1 if counting?  end   #--------------------------------------------------------------------------  # * new method: returns true if the repeat count is bigger than zero  #--------------------------------------------------------------------------  def self.counting?    @repeat_count > 0  end   #--------------------------------------------------------------------------  # * new method: returns the current guide command being processed  #--------------------------------------------------------------------------  def self.current_command    @last_command = !next_command?    @commands[@index]  end  #--------------------------------------------------------------------------  # * new method: steps to the next command  #--------------------------------------------------------------------------  def self.next_command        @index += 1   end    #--------------------------------------------------------------------------  # * new method: return true if the are any commands left to process  #--------------------------------------------------------------------------  def self.next_command?    return !@commands[@index+1].nil?  end  #--------------------------------------------------------------------------  # * new method: returns true if a guide command is running  #--------------------------------------------------------------------------  def self.running?    return (counting? or next_command?)  end    #--------------------------------------------------------------------------  # * Save BGM and BGS  #--------------------------------------------------------------------------  def self.save_bgm_and_bgs    @map_bgm = RPG::BGM.last    @map_bgs = RPG::BGS.last  end  #--------------------------------------------------------------------------  # * Resume BGM and BGS  #--------------------------------------------------------------------------  def self.replay_bgm_and_bgs    @map_bgm.replay unless @map_bgm.nil?    @map_bgs.replay unless @map_bgs.nil?  endend#==============================================================================# ** Game_Party#==============================================================================class Game_Party < Game_Unit  #--------------------------------------------------------------------------  # * new method: identifies as a mock party  #--------------------------------------------------------------------------  def mock_party?    false  endend#==============================================================================# ** Game_Actor#==============================================================================class Game_Actor < Game_Battler  #--------------------------------------------------------------------------  # * new method: changes the actor's hp value  #--------------------------------------------------------------------------  def set_hp(hp)    self.hp = hp  end  #--------------------------------------------------------------------------  # * new method: changes the actor's mp value  #--------------------------------------------------------------------------  def set_mp(mp)    self.mp = mp  end  #--------------------------------------------------------------------------  # * new method: changes the actor's tp value  #--------------------------------------------------------------------------  def set_tp(tp)    self.tp = tp  end  end#==============================================================================# ** Game_MockParty#==============================================================================class Game_MockParty < Game_Party  #--------------------------------------------------------------------------  # * new method: identifies as a mock party  #--------------------------------------------------------------------------  def mock_party?    true  endend#==============================================================================# ** Scene_Base#==============================================================================class Scene_Base    #--------------------------------------------------------------------------  # * method alias: creates the guide message window  #--------------------------------------------------------------------------  alias cdr_guide_start start  def start    Input.halt                  $game_message.visible = false    if (!self.is_a?(Scene_Map))      create_message_window      CDR_GUIDE::GUIDE_DATA.each{ |switch, guide|          if($game_switches[switch] and self.is_a?(guide[:scene]))                  $game_switches[switch] = false          GuideManager.guide(switch, guide)          break        end      }    end    cdr_guide_start        Input.release    end    #--------------------------------------------------------------------------  # * new method: creates the message window  #--------------------------------------------------------------------------  def create_message_window    @message_window = Window_Message.new    @message_window.z = @message_window.z+100  end    #--------------------------------------------------------------------------  # * method alias: fires the guide process  #--------------------------------------------------------------------------  alias cdr_guide_update update   def update      update_guide      cdr_guide_update  end    #--------------------------------------------------------------------------  # * new method: process guide logic  #--------------------------------------------------------------------------  def wait_for_message    @message_window.update    update_for_wait while $game_message.visible  end    #--------------------------------------------------------------------------  # * new method: process guide logic  #--------------------------------------------------------------------------  def update_guide     return if skip_guide_update?    if GuideManager.current_command.nil?      GuideManager.clear      return    end     Input.halt    return if Graphics.frame_count%GuideManager.update_rate != 0         process_guide_command(GuideManager.current_command)  end     #--------------------------------------------------------------------------  # * new method: returns true if a guide update must be skipped  #--------------------------------------------------------------------------  def skip_guide_update?    return true if GuideManager.empty?  end  #--------------------------------------------------------------------------  # * new method: returns true if a guide update must be skipped  #--------------------------------------------------------------------------  def process_guide_command(command)    case command[0]      when :key         Input.force_key(command[1])        if GuideManager.counting?          GuideManager.decrease_count          else          GuideManager.repeat_count = command[2] if !command[2].nil?        end        GuideManager.next_command if !GuideManager.counting?      when :msg           process_message(command)               GuideManager.next_command      when :sw        $game_switches[command[1]] = command[2]        GuideManager.next_command      when :var        $game_variables[command[1]] = eval(command[2])        GuideManager.next_command      when :rate        GuideManager.update_rate = command[1]        GuideManager.next_command    end             end  #--------------------------------------------------------------------------  # * new method: process the current message command  #--------------------------------------------------------------------------  def process_message(command)    $game_message.add(command[1])    if !command[2].nil?      options = command[2]      $game_message.face_name = options[:face_name] if options[:face_name]      $game_message.face_index = options[:face_index] if options[:face_index]      $game_message.background = options[:background] if options[:background]      $game_message.position = options[:position] if options[:position]    end    Input.release    wait_for_message    Input.halt  end  #--------------------------------------------------------------------------  # * new method: generic method to wait for message proessing  #--------------------------------------------------------------------------  def update_for_wait    update_basic  end   #--------------------------------------------------------------------------  # * new method, disposes message window  #--------------------------------------------------------------------------  alias cdr_guide_dispose_all_windows dispose_all_windows  def dispose_all_windows    cdr_guide_dispose_all_windows    @message_window.dispose  endendclass Scene_Battle < Scene_Base  alias cdr_guide_process_message process_message  def process_message(command)        if GuideManager.battle_guide?      wait = 10      wait = command[2][:wait] if command[2] and command[2][:wait]            @log_window.add_text(command[1])      wait.times do @log_window.wait end      @log_window.back_one    else      cdr_guide_process_message(command)    end  end  #--------------------------------------------------------------------------  # * new method: returns true if a guide update must be skipped  #--------------------------------------------------------------------------  alias cdr_guide_battle_skip_guide_update? skip_guide_update?  def skip_guide_update?    return true if cdr_guide_battle_skip_guide_update?    return false if @item_window.active    return false if @skill_window.active    return false if @party_command_window.active    return false if @actor_command_window.active    return false if @status_window.active    return false if @enemy_window.active    return true  endendclass Window_Selectable < Window_Base    #--------------------------------------------------------------------------  # * alias: can only process handlers when not locked  #--------------------------------------------------------------------------  alias cdr_guide_process_handling process_handling  def process_handling    wm = self.is_a?(Window_Message)    return if (!wm and $game_message.busy? and GuideManager.running?)    cdr_guide_process_handling  end    #--------------------------------------------------------------------------  # * alias: can only process cursor moves when not locked  #--------------------------------------------------------------------------  alias cdr_guide_process_cursor_move process_cursor_move  def process_cursor_move    wm = self.is_a?(Window_Message)    return if (!wm and $game_message.busy? and GuideManager.running?)    cdr_guide_process_cursor_move  endend#==============================================================================# ** Scene_Guide#==============================================================================class Scene_Guide < Scene_Base  #--------------------------------------------------------------------------  # * Start Processing  #--------------------------------------------------------------------------  def start    super    create_help_window    create_guide_window    create_background    @guide_window.set_handler(:ok,   method(:on_guide_ok))    @guide_window.set_handler(:cancel,   method(:return_scene))  end    #--------------------------------------------------------------------------  # * Termination Processing  #--------------------------------------------------------------------------  def terminate    super    dispose_background  end  #--------------------------------------------------------------------------  # * Create Background  #--------------------------------------------------------------------------  def create_background    @background_sprite = Sprite.new    @background_sprite.bitmap = SceneManager.background_bitmap    @background_sprite.color.set(16, 16, 16, 128)  end  #--------------------------------------------------------------------------  # * Free Background  #--------------------------------------------------------------------------  def dispose_background    @background_sprite.dispose  end    def update    super    @guide_window.refresh  end  #--------------------------------------------------------------------------  # * Aquisição do texto da janela de ajuda  #--------------------------------------------------------------------------  def help_window_text    return CDR_GUIDE::HELP_WINDOW_TEXT  end    #--------------------------------------------------------------------------  # * new method: creates each guide window  #--------------------------------------------------------------------------  def create_guide_window    width = Graphics.width    height = Graphics.height - @help_window.height    @guide_window = Window_GuideList.new(0, @help_window.height, width, height)    @guide_window.viewport = @viewport  end  #--------------------------------------------------------------------------  # * new method: call selected guide  #--------------------------------------------------------------------------  def on_guide_ok    $game_switches[@guide_window.item] = true    guide = CDR_GUIDE::GUIDE_DATA[@guide_window.item]    Sound.play_ok    if guide[:scene] == Scene_Battle      call_battle_guide(guide[:troop])    elsif guide[:scene] == Scene_Shop      call_shop_guide(guide[:goods], guide[:sell])    else      GuideManager.save_bgm_and_bgs      Sound.play_guide_bgm      SceneManager.call(guide[:scene])    end           end  #--------------------------------------------------------------------------  # * new method: call a battle guide  #--------------------------------------------------------------------------    def call_battle_guide(troop_id)    if $data_troops[troop_id]      GuideManager.save_bgm_and_bgs      BattleManager.setup(troop_id, false, true)      Sound.play_battle_guide_bgm      Sound.play_battle_start      SceneManager.call(Scene_Battle)    end  end  #--------------------------------------------------------------------------  # * rewrite: call a shop guide  #--------------------------------------------------------------------------  def call_shop_guide(goods_data, sell)    goods = []    types = [:item, :weapon, :armor]    for type in 0..2      if goods_data[types[type]]        goods_data[types[type]].each{|id|          goods.push([type, id, 0])        }      end    end    GuideManager.save_bgm_and_bgs    Sound.play_shop_guide_bgm    SceneManager.call(Scene_Shop)    SceneManager.scene.prepare(goods, !sell)  end  #--------------------------------------------------------------------------  # * Create Help Window  #--------------------------------------------------------------------------  def create_help_window    @help_window = Window_Help.new(1)    @help_window.set_text(help_window_text)    @help_window.viewport = @viewport  endend#==============================================================================# ** Window_GuideList#==============================================================================class Window_GuideList < Window_Selectable  def initialize(x, y, width, height)    super(x, y, width, height)    make_item_list    refresh    @index = 0    self.activate  end  #--------------------------------------------------------------------------  # * Create Item List  #--------------------------------------------------------------------------  def make_item_list    @data = GuideManager.guide_list  end  #--------------------------------------------------------------------------  # * Draw Item  #--------------------------------------------------------------------------  def draw_item(index)    rect = item_rect(index)    draw_icon(CDR_GUIDE::GUIDE_FILE_ICON, 4, rect.y, enabled = true)    change_color(normal_color)    draw_guide_name(index, rect.x+28, rect.y)    contents.font.bold = true    change_color(text_color(CDR_GUIDE::NEW_COLOR))    draw_new_flag(index, rect.x+text_size(guide(index)[:name]).width+24, rect.y)    contents.font.bold = false    change_color(normal_color)      end  #--------------------------------------------------------------------------  # * new method: draw_guide_name  #--------------------------------------------------------------------------  def draw_guide_name(index, x, y)    name = guide(index)[:name]    draw_text(x, y, Graphics.width - 120, line_height, name)  end  #--------------------------------------------------------------------------  # * new method: draw_new_flag  #--------------------------------------------------------------------------  def draw_new_flag(index, x, y)    return if GuideManager.read?(@data[index])    text = CDR_GUIDE::NEW_STRING       draw_text(x, y, 128, line_height, text)  end  #--------------------------------------------------------------------------  # * method rewrite: returns the max number of guides on the list  #--------------------------------------------------------------------------  def item_max    GuideManager.guide_list.size  end  #--------------------------------------------------------------------------  # * new method: returns the guide corresponding to the key  #--------------------------------------------------------------------------  def guide(index)    CDR_GUIDE::GUIDE_DATA[@data[index]]  end  #--------------------------------------------------------------------------  # * method rewrite: returns the selected guide key  #--------------------------------------------------------------------------  def item    @data[@index]  endend#==============================================================================# ** Scene_Menu#==============================================================================class Scene_Menu < Scene_MenuBase   #--------------------------------------------------------------------------  # * alias: adds a guide list accessor to the main menu  #--------------------------------------------------------------------------  alias cdr_guide_create_command_window create_command_window  def create_command_window    cdr_guide_create_command_window    if CDR_GUIDE::ADD_MENU_ITEM      @command_window.set_handler(:guide_list,  method(:command_guide_list))    end  end    #--------------------------------------------------------------------------  # * new method: calls the guide list scene  #--------------------------------------------------------------------------  def command_guide_list    SceneManager.call(Scene_Guide)  endend#==============================================================================# ** Window_MenuCommand#==============================================================================class Window_MenuCommand < Window_Command  #--------------------------------------------------------------------------  # * alias  #--------------------------------------------------------------------------  alias cdr_guide_select_last select_last  def select_last        if GuideManager.running?      select_symbol(nil)       return    end    cdr_guide_select_last  end      #--------------------------------------------------------------------------  # * alias: to add guide command menu item  #--------------------------------------------------------------------------  alias cdr_guide_add_original_commands add_original_commands  def add_original_commands    cdr_guide_add_original_commands    add_guide_list_command if CDR_GUIDE::ADD_MENU_ITEM  end    #--------------------------------------------------------------------------  # * new method: to add guide command menu item  #--------------------------------------------------------------------------  def add_guide_list_command        add_command(CDR_GUIDE::MENU_ITEM_NAME, :guide_list, has_guides?)  end    #--------------------------------------------------------------------------  # * new method: returns true if there is any guides on the list  #--------------------------------------------------------------------------  def has_guides?    !GuideManager.guide_list.empty?  endend
 

EctoWarrior

Villager
Member
Joined
Jul 24, 2013
Messages
26
Reaction score
3
First Language
English
Primarily Uses
I'm having this problem and I've seen others have this problem, I think it's either a bug in the script or an incompatibility with another common script. I would like to know if there is a solution to this as well.
 

OffeNDer

Veteran
Veteran
Joined
Jan 15, 2013
Messages
80
Reaction score
2
Primarily Uses
I'm having this problem and I've seen others have this problem, I think it's either a bug in the script or an incompatibility with another common script. I would like to know if there is a solution to this as well.
maybe it is a bug as you said, or we are required 1 more script to improve the moving keys or something like that....

still waiting for some one to help..
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,365
Reaction score
7,676
First Language
German
Primarily Uses
RMMV
I haven't checked the script myself, but at first glance that error (left and right not working) is a bit too obvious to be missed as a bug on release.

Have you checked if the script works standalone in a new project? (can test that because my NB with Ace just died and I haven't installed it yet on my other computers).

If it works standalone in a new project, then you should probably compare what other scripts you're using to find out which other script is incompatible to it.
 

EctoWarrior

Villager
Member
Joined
Jul 24, 2013
Messages
26
Reaction score
3
First Language
English
Primarily Uses
I haven't checked the script myself, but at first glance that error (left and right not working) is a bit too obvious to be missed as a bug on release.

Have you checked if the script works standalone in a new project? (can test that because my NB with Ace just died and I haven't installed it yet on my other computers).

If it works standalone in a new project, then you should probably compare what other scripts you're using to find out which other script is incompatible to it.
You're right, the left and right keys do work in a blank project. I figured they did, I just didn't get around to actually testing it until now. 
Hello,

i am using Ceodore script (Guide 1.0)

and i have problem ...  both Right and left not working .... any one know the solution for that?

everything work except 

:RIGHT -> Forces right key

:LEFT -> Forces left key

The script

=begin================================================================================ CDR - Guide 1.0 ------------------------------------------------------------------------------- Author: Ceodore Mail: ceodore@email.com https://ceodoremaker.wordpress.com===============================Change log======================================= 16/03/2013 - 1.0 release. ===============================Description====================================== This implementation is meant to provide a way to guide the user on a scene. It was made to allow in-game tutorials, like menu or battle tutorials. =================================License======================================== You may freely use and modify this script as long as you do not change the original author information. If you use this on your game, include the author on the credits.=========================Instalation & Compatibility============================ Insert this script above main. Currently, only menu scenes, shop scenes and battle scenes were tested.===================================Use========================================== You just need to follow the examples and create your sequences. To enable a guide on the list, call a script event command and paste this line: GuideManager.enable(x) Where x is the guide id/switch. Alternatively, you can enable the guide by turning it's Switch ON. In this case, the guide will start automatically once when you enter the scene, but this feature is still experimental, you may use it at your own risk. You can use wathever tags you would use on a message, just don't forget to escape code characters, for example, \C[1] must be put as \\C[1]. This happens because the strings on this script are not treated as your regular message strings, where the \ character is automatically escaped.=================================Commands======================================= The guide will follow a list of commands, wich can be a key input or a message, this is the list of currently supported commands: ## Show Message ## [:msg, "string", {:face_name => string, :face_index => int, :background => int, :position => int}] This will display the string on a message window. The values on the dictionary are all optional, If you are not using any options, you can just use this format: [:msg, string] :face_name stands for the face file name placed on the Graphics/Faces dir :face_index stands for the face index inside the image, if you define a face name, you MUST define a face index. The :background and :position have specific values, explained below: :background 0 -> Normal Window 1 -> Dim Background 2 -> Transparent :position 0 -> Top of the screen 1 -> Middle of the screen 2 -> Bottom of the screen ## Show Message (Battle) ## [:msg, {:wait => int}] For the sake of compatibility with various battle scripts, the guide messages are displayed in the battle log on battle scenes, instead of a normal message window. You can use pretty much all message codes, like display icons, change colors, an all... but there are obvious limitations: 1. The battle log works with a line at a time. You can pile then in sequence, but it will hardly look like a default message window. 2. The battle log will not accept default message window options, like face, position or background. The big advantage is that the battle log window can be displayed at any moment without closing any window, so the guide flux will not be stopped to show a message. The :wait option stands for the time before the message closes automatically. It's optional, default is 10. ## Change Switch ## [:sw, number, boolean] Specifies a switch to be turned on or off. ## Change Variable ## [:var, number, string] The string can contain a number or any expression wich could be processed by the eval() method, like "1 * 2" or "$game_variables[2]", the generated value will be assigned to the specified variable. ## Input Key ## [:key, input, times] This will force a key input. It supports any inputable character the RPG Maker accepts. Here are the main ones for menus: :DOWN -> Forces down key :UP -> Forces up key :RIGHT -> Forces right key :LEFT -> Forces left key :R -> Forces page down key :L -> Forces page up key :C -> Forces confirm key :B -> Forces cancel key The times parameter is optional and stands for the number of times this command will repeat. When no times attribute is found, it will execute the command once. ## Change Rate ## [:rate, number] Changes the update rate to this number, the update rate will be restored to default value at the guide's end.=================================================================================end$imported = {} if $imported.nil?$imported['CDR-Rows'] = truemodule CDR_GUIDE # This defines the interval between commands, in frames. Smaller the value, # higher the speed DEFAULT_UPDATE_RATE = 40 # This defines if the Guide List menu item will be added. This new item # will be placed below End Game and can access the guide list scene. ADD_MENU_ITEM = true # This defines the index of the icon wich will be displayed as the file # icon for each available guide on the Guide_Scene. GUIDE_FILE_ICON = 286 # The menu item name MENU_ITEM_NAME = "Guide List" # The string for unread guides on guide list NEW_STRING = "NEW" # The string for the help window on the guide list scene HELP_WINDOW_TEXT = "Select a Guide" # The color for unread guides on guide list NEW_COLOR = 6 # The bgm to be played when you are on a guide. Set as nil if you do not wish # a specific BGM. # [file name, {options}] GUIDE_BGM = ["Field2",{:volume=>100, :pitch=>100, :pos=>0}] # The bgm to be played when you are on a shop guide. Set as nil if you do not # wish a specific BGM. # [file name, {options}] SHOP_GUIDE_BGM = ["Field2"] # The bgm to be played when you are on a battle guide. Set as nil if you # do not wish a specific BGM. # [file name, {options}] BATTLE_GUIDE_BGM = ["Battle2"] #============================================================================= # MOCK_PARTY_DATA #============================================================================= # Here is the list of fake parties for guide purposes. It can be realy useful # if your guide depends on the selection of a specific party member, or a # specific party state, like certain item available on top of the item list, # a member with depleted HP or high TP. After the guide stops, the original # party will be automatically restored as it was. The dictionary key is for # reference only, but must be unique for each mock party. MOCK_PARTY_DATA = { 1 => { # Optional, the party member's ids :members => [1,2], # Optional, the weapons on the party inventory :weapon => [# [id, quantity] [61,1] ], # Optional, the armor's id's on the party inventory#~ :armor => [# [id, quantity]#~ [1,1],#~ [2,1]#~ ], # Optional, the item's id's on the party inventory#~ :item => [# [id, quantity]#~ [1,1]#~ ], # Optional, the party gold amount :gold => 100, # Actor setup, here you can define default values for each actor#~ :setup => [#~ # [actor_id, {options}]#~ [1, {:tp => 20}], #~ ] }, #end of example mock party }#end of mock party data #============================================================================= # GUIDE_DATA #============================================================================= # This is the dictionary of guides, please follow the example to create one, # please read the comments carefully. # The ID of the guide (the key for the dictionary item) references for a # game SWITCH, so the guide will be ready to start every time the switch is # turned on and you are on the guide's scene. GUIDE_DATA = { # Example of menu guide. This will guide the player to the status scene. 1 => {# The guide type can be either :menu or :battle, a menu guide will # aways start from the main menu. :scene => Scene_Status, # The mock party id, this is optional, when no :party attribute is # defined, the current party will be used. :party => 1, # The guide name to be displayed on the guide list. :name => "How to Use the Status Screen", # An array containing this guide's commands :commands => [ # Notice how the message is placed on this example. When you # break a line on the editor, the line break will be considered # on the message, however, the spaces from the left corner too, # so unless you intent to leave spaces on the line's left, lean # the line on the left corner. Another thing to notice are the # escaped characters, let's say you would put a message # code \C[1], instead you MUST put the extra \ before it, so it # becomes \\C[1]. If you don't, it will display an error. [:msg, "This is the Status screen. Here you can seethe hero details. You can switch between heroes using \\c[4]Q\\c[0] and \\c[4]W\\c[0] keys on your keyboard. ", {:background => 1, :position => 1}], [:key, :R, 3], [:msg, "Now you know how to use the Status screen!", {:background => 1, :position => 1}], ]}, #end of example guide # Example of shop guide 2 => { :scene => Scene_Shop, :name => "How to Buy an Item", :party => 1, :goods => { # Optional, this will define the goods the shop will sell :item => [1,2,3] }, :commands => [ [:msg, "Select the Buy option."], [:key, :C], [:msg, "Now you select an item."], [:key, :C], [:msg, "Select the quantity."], [:key, :RIGHT, 2], [:msg, "Now, confirm the buy."], [:key, :C], [:msg, "Now you know how to buy!"], ]}, # Example of shop guide# just unused copy 99 => { :scene => Scene_Shop, :name => "How to Buy an Item", :party => 1, :goods => { # Optional, this will define the goods the shop will sell :weapon => [1,2,3], :armor => [1,2,3], :item => [1,2,3] }, :commands => [ [:msg, "Select the Buy option."], [:key, :C], [:msg, "Now you select an item."], [:key, :C], [:msg, "Select the quantity."], [:key, :RIGHT, 2], [:msg, "Now, confirm the buy."], [:key, :C], [:msg, "Now you know how to buy!"], ] }, } #end of guide dataend#==============================================================================# DO NOT CHANGE beyond this point, unless you know what you're doing.#==============================================================================# Input module duplicate to use the original methods.SuperInput = Input.dup#==============================================================================# ** Input#==============================================================================module Input # Flag that defines the currently forced key. @force_key = :NONE # Flag that defines if player input is halted. @halt_player_input = false # Flag that indicates if the key to be forced was used @pending_key = false #-------------------------------------------------------------------------- # * method rewrite: adds key forcing logics #-------------------------------------------------------------------------- def self.repeat?(input) return true if @force_key == input return false if @force_key != :NONE return SuperInput.repeat?(input) if !@halt_player_input return false end #-------------------------------------------------------------------------- # * method rewrite: adds key forcing logics #-------------------------------------------------------------------------- def self.trigger?(input) if @force_key == input @force_key = :NONE return true end return SuperInput.trigger?(input) if !@halt_player_input return false end #-------------------------------------------------------------------------- # * method rewrite: adds key forcing logics #-------------------------------------------------------------------------- def self.press?(input) return true if @force_key == input return false if @force_key != :NONE return SuperInput.press?(input) if !@halt_player_input return false end #-------------------------------------------------------------------------- # * new method: defines the key to be forced #-------------------------------------------------------------------------- def self.force_key(input) @force_key = input end #-------------------------------------------------------------------------- # * new method: returns true if a key is being forced #-------------------------------------------------------------------------- def self.force_key? return @force_key != :NONE end #-------------------------------------------------------------------------- # * new method: halts player input #-------------------------------------------------------------------------- def self.halt @halt_player_input = true end #-------------------------------------------------------------------------- # * new method: releases player input #-------------------------------------------------------------------------- def self.release @halt_player_input = false endend#==============================================================================# ** Sound#==============================================================================module Sound #-------------------------------------------------------------------------- # * new method: plays the guide default bgm #-------------------------------------------------------------------------- def self.play_guide_bgm play_bgm(CDR_GUIDE::GUIDE_BGM) if CDR_GUIDE::GUIDE_BGM end #-------------------------------------------------------------------------- # * new method: plays the battle guide default bgm #-------------------------------------------------------------------------- def self.play_battle_guide_bgm play_bgm(CDR_GUIDE::BATTLE_GUIDE_BGM) if CDR_GUIDE::BATTLE_GUIDE_BGM end #-------------------------------------------------------------------------- # * new method: plays the shop guide default bgm #-------------------------------------------------------------------------- def self.play_shop_guide_bgm play_bgm(CDR_GUIDE::SHOP_GUIDE_BGM) if CDR_GUIDE::SHOP_GUIDE_BGM end #-------------------------------------------------------------------------- # * new method: plays a guide bgm #-------------------------------------------------------------------------- def self.play_bgm(guide_bgm) volume = 100 pitch = 100 pos = 0 if guide_bgm[1] volume = guide_bgm[1][:volume] if guide_bgm[1][:volume] pitch = guide_bgm[1][:pitch] if guide_bgm[1][:pitch] pos = guide_bgm[1][:pos] if guide_bgm[1][:pos] end Audio.bgm_play(sprintf('Audio/BGM/%s', guide_bgm[0]), volume, pitch, pos) Audio.bgs_stop endend#==============================================================================# ** Input#==============================================================================module GuideManager @memory = [] @read = [] @commands = [] @index = 0 @repeat_count = 0 @last_command = false @current_key = 0 @type = nil @update_rate = CDR_GUIDE::DEFAULT_UPDATE_RATE #-------------------------------------------------------------------------- # * new method: defines the guide to be followed #-------------------------------------------------------------------------- def self.guide(key, guide) @current_key = key @memory.push(key) @memory.compact! @memory.uniq! @memory.sort! @commands = guide[:commands] @scene = guide[:scene] return if !guide[:party] mock_party = CDR_GUIDE::MOCK_PARTY_DATA[guide[:party]] $party_backup = $game_party unless $game_party.mock_party? $game_party = Game_MockParty.new if mock_party[:members] mock_party[:members].each{|actor_id| $game_party.add_actor(actor_id)} end if mock_party[:weapon] mock_party[:weapon].each{|item| $game_party.gain_item($data_weapons[item[0]], item[1]) } end if mock_party[:armor] mock_party[:armor].each{|item| $game_party.gain_item($data_armors[item[0]], item[1]) } end if mock_party[:item] mock_party[:item].each{|item| $game_party.gain_item($data_items[item[0]], item[1]) } end if mock_party[:gold] $game_party.gain_gold(mock_party[:gold]) end if mock_party[:setup] mock_party[:setup].each{|change| actor = $game_actors[change[0]] options = change[1] actor.set_hp(options[:hp]) if options[:hp] actor.set_tp(options[:tp]) if options[:tp] actor.set_mp(options[:mp]) if options[:mp] } end end #-------------------------------------------------------------------------- # * new method: enabled a guide in the Guide_Scene #-------------------------------------------------------------------------- def self.enable(key) @memory.push(key) @memory.compact! @memory.uniq! @memory.sort! end #-------------------------------------------------------------------------- # * new method: returns true if guide variable is an empty array #-------------------------------------------------------------------------- def self.disable(key) @memory.remove(key) @memory.sort! end #-------------------------------------------------------------------------- # * new method: enabled a guide in the Guide_Scene #-------------------------------------------------------------------------- def self.mark_as_read return if @current_key == 0 @read.push(@current_key) @read.compact! @read.uniq! @read.sort! end #-------------------------------------------------------------------------- # * new method: returns true if guide variable is an empty array #-------------------------------------------------------------------------- def self.read?(key) @read.include?(key) end #-------------------------------------------------------------------------- # * new method: clears the guide sequence and control variables #-------------------------------------------------------------------------- def self.clear mark_as_read self.replay_bgm_and_bgs @last_command = false @current_key = 0 @commands = [] @index = 0 @repeat_count = 0 @scene = nil @update_rate = CDR_GUIDE::DEFAULT_UPDATE_RATE $game_party = $party_backup if $game_party.mock_party? $game_player.refresh $game_map.need_refresh = true SceneManager.return end #-------------------------------------------------------------------------- # * new method: returns true if guide variable is an empty array #-------------------------------------------------------------------------- def self.empty? @commands.empty? end #-------------------------------------------------------------------------- # * new method: defines a new list of guide commands #-------------------------------------------------------------------------- def self.commands=(commands) @commands = commands end #-------------------------------------------------------------------------- # * new method: defines a new update rate #-------------------------------------------------------------------------- def self.update_rate=(update_rate) @update_rate = update_rate end #-------------------------------------------------------------------------- # * new method: access the current update rate #-------------------------------------------------------------------------- def self.update_rate [@update_rate,1].max end #-------------------------------------------------------------------------- # * new method: returns true if guide variable is an empty array #-------------------------------------------------------------------------- def self.guide_list named = [] @memory.each{|switch| if !CDR_GUIDE::GUIDE_DATA[switch][:name].nil? named.push(switch) end } return named end #-------------------------------------------------------------------------- # * new method: returns true if guide variable is an empty array #-------------------------------------------------------------------------- def self.battle_guide? CDR_GUIDE::GUIDE_DATA[@current_key][:scene] == Scene_Battle end #-------------------------------------------------------------------------- # * new method: defines a new value for guide index #-------------------------------------------------------------------------- def self.index=(index) @index = index end #-------------------------------------------------------------------------- # * new method: defines a new value for repetition counter #-------------------------------------------------------------------------- def self.repeat_count=(count) @repeat_count = count-1 end #-------------------------------------------------------------------------- # * new method: decreases the repetition count #-------------------------------------------------------------------------- def self.decrease_count @repeat_count -= 1 if counting? end #-------------------------------------------------------------------------- # * new method: returns true if the repeat count is bigger than zero #-------------------------------------------------------------------------- def self.counting? @repeat_count > 0 end #-------------------------------------------------------------------------- # * new method: returns the current guide command being processed #-------------------------------------------------------------------------- def self.current_command @last_command = !next_command? @commands[@index] end #-------------------------------------------------------------------------- # * new method: steps to the next command #-------------------------------------------------------------------------- def self.next_command @index += 1 end #-------------------------------------------------------------------------- # * new method: return true if the are any commands left to process #-------------------------------------------------------------------------- def self.next_command? return !@commands[@index+1].nil? end #-------------------------------------------------------------------------- # * new method: returns true if a guide command is running #-------------------------------------------------------------------------- def self.running? return (counting? or next_command?) end #-------------------------------------------------------------------------- # * Save BGM and BGS #-------------------------------------------------------------------------- def self.save_bgm_and_bgs @map_bgm = RPG::BGM.last @map_bgs = RPG::BGS.last end #-------------------------------------------------------------------------- # * Resume BGM and BGS #-------------------------------------------------------------------------- def self.replay_bgm_and_bgs @map_bgm.replay unless @map_bgm.nil? @map_bgs.replay unless @map_bgs.nil? endend#==============================================================================# ** Game_Party#==============================================================================class Game_Party < Game_Unit #-------------------------------------------------------------------------- # * new method: identifies as a mock party #-------------------------------------------------------------------------- def mock_party? false endend#==============================================================================# ** Game_Actor#==============================================================================class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * new method: changes the actor's hp value #-------------------------------------------------------------------------- def set_hp(hp) self.hp = hp end #-------------------------------------------------------------------------- # * new method: changes the actor's mp value #-------------------------------------------------------------------------- def set_mp(mp) self.mp = mp end #-------------------------------------------------------------------------- # * new method: changes the actor's tp value #-------------------------------------------------------------------------- def set_tp(tp) self.tp = tp end end#==============================================================================# ** Game_MockParty#==============================================================================class Game_MockParty < Game_Party #-------------------------------------------------------------------------- # * new method: identifies as a mock party #-------------------------------------------------------------------------- def mock_party? true endend#==============================================================================# ** Scene_Base#==============================================================================class Scene_Base #-------------------------------------------------------------------------- # * method alias: creates the guide message window #-------------------------------------------------------------------------- alias cdr_guide_start start def start Input.halt $game_message.visible = false if (!self.is_a?(Scene_Map)) create_message_window CDR_GUIDE::GUIDE_DATA.each{ |switch, guide| if($game_switches[switch] and self.is_a?(guide[:scene])) $game_switches[switch] = false GuideManager.guide(switch, guide) break end } end cdr_guide_start Input.release end #-------------------------------------------------------------------------- # * new method: creates the message window #-------------------------------------------------------------------------- def create_message_window @message_window = Window_Message.new @message_window.z = @message_window.z+100 end #-------------------------------------------------------------------------- # * method alias: fires the guide process #-------------------------------------------------------------------------- alias cdr_guide_update update def update update_guide cdr_guide_update end #-------------------------------------------------------------------------- # * new method: process guide logic #-------------------------------------------------------------------------- def wait_for_message @message_window.update update_for_wait while $game_message.visible end #-------------------------------------------------------------------------- # * new method: process guide logic #-------------------------------------------------------------------------- def update_guide return if skip_guide_update? if GuideManager.current_command.nil? GuideManager.clear return end Input.halt return if Graphics.frame_count%GuideManager.update_rate != 0 process_guide_command(GuideManager.current_command) end #-------------------------------------------------------------------------- # * new method: returns true if a guide update must be skipped #-------------------------------------------------------------------------- def skip_guide_update? return true if GuideManager.empty? end #-------------------------------------------------------------------------- # * new method: returns true if a guide update must be skipped #-------------------------------------------------------------------------- def process_guide_command(command) case command[0] when :key Input.force_key(command[1]) if GuideManager.counting? GuideManager.decrease_count else GuideManager.repeat_count = command[2] if !command[2].nil? end GuideManager.next_command if !GuideManager.counting? when :msg process_message(command) GuideManager.next_command when :sw $game_switches[command[1]] = command[2] GuideManager.next_command when :var $game_variables[command[1]] = eval(command[2]) GuideManager.next_command when :rate GuideManager.update_rate = command[1] GuideManager.next_command end end #-------------------------------------------------------------------------- # * new method: process the current message command #-------------------------------------------------------------------------- def process_message(command) $game_message.add(command[1]) if !command[2].nil? options = command[2] $game_message.face_name = options[:face_name] if options[:face_name] $game_message.face_index = options[:face_index] if options[:face_index] $game_message.background = options[:background] if options[:background] $game_message.position = options[:position] if options[:position] end Input.release wait_for_message Input.halt end #-------------------------------------------------------------------------- # * new method: generic method to wait for message proessing #-------------------------------------------------------------------------- def update_for_wait update_basic end #-------------------------------------------------------------------------- # * new method, disposes message window #-------------------------------------------------------------------------- alias cdr_guide_dispose_all_windows dispose_all_windows def dispose_all_windows cdr_guide_dispose_all_windows @message_window.dispose endendclass Scene_Battle < Scene_Base alias cdr_guide_process_message process_message def process_message(command) if GuideManager.battle_guide? wait = 10 wait = command[2][:wait] if command[2] and command[2][:wait] @log_window.add_text(command[1]) wait.times do @log_window.wait end @log_window.back_one else cdr_guide_process_message(command) end end #-------------------------------------------------------------------------- # * new method: returns true if a guide update must be skipped #-------------------------------------------------------------------------- alias cdr_guide_battle_skip_guide_update? skip_guide_update? def skip_guide_update? return true if cdr_guide_battle_skip_guide_update? return false if @item_window.active return false if @skill_window.active return false if @party_command_window.active return false if @actor_command_window.active return false if @status_window.active return false if @enemy_window.active return true endendclass Window_Selectable < Window_Base #-------------------------------------------------------------------------- # * alias: can only process handlers when not locked #-------------------------------------------------------------------------- alias cdr_guide_process_handling process_handling def process_handling wm = self.is_a?(Window_Message) return if (!wm and $game_message.busy? and GuideManager.running?) cdr_guide_process_handling end #-------------------------------------------------------------------------- # * alias: can only process cursor moves when not locked #-------------------------------------------------------------------------- alias cdr_guide_process_cursor_move process_cursor_move def process_cursor_move wm = self.is_a?(Window_Message) return if (!wm and $game_message.busy? and GuideManager.running?) cdr_guide_process_cursor_move endend#==============================================================================# ** Scene_Guide#==============================================================================class Scene_Guide < Scene_Base #-------------------------------------------------------------------------- # * Start Processing #-------------------------------------------------------------------------- def start super create_help_window create_guide_window create_background @guide_window.set_handler:)ok, method:)on_guide_ok)) @guide_window.set_handler:)cancel, method:)return_scene)) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_background end #-------------------------------------------------------------------------- # * Create Background #-------------------------------------------------------------------------- def create_background @background_sprite = Sprite.new @background_sprite.bitmap = SceneManager.background_bitmap @background_sprite.color.set(16, 16, 16, 128) end #-------------------------------------------------------------------------- # * Free Background #-------------------------------------------------------------------------- def dispose_background @background_sprite.dispose end def update super @guide_window.refresh end #-------------------------------------------------------------------------- # * Aquisição do texto da janela de ajuda #-------------------------------------------------------------------------- def help_window_text return CDR_GUIDE::HELP_WINDOW_TEXT end #-------------------------------------------------------------------------- # * new method: creates each guide window #-------------------------------------------------------------------------- def create_guide_window width = Graphics.width height = Graphics.height - @help_window.height @guide_window = Window_GuideList.new(0, @help_window.height, width, height) @guide_window.viewport = @viewport end #-------------------------------------------------------------------------- # * new method: call selected guide #-------------------------------------------------------------------------- def on_guide_ok $game_switches[@guide_window.item] = true guide = CDR_GUIDE::GUIDE_DATA[@guide_window.item] Sound.play_ok if guide[:scene] == Scene_Battle call_battle_guide(guide[:troop]) elsif guide[:scene] == Scene_Shop call_shop_guide(guide[:goods], guide[:sell]) else GuideManager.save_bgm_and_bgs Sound.play_guide_bgm SceneManager.call(guide[:scene]) end end #-------------------------------------------------------------------------- # * new method: call a battle guide #-------------------------------------------------------------------------- def call_battle_guide(troop_id) if $data_troops[troop_id] GuideManager.save_bgm_and_bgs BattleManager.setup(troop_id, false, true) Sound.play_battle_guide_bgm Sound.play_battle_start SceneManager.call(Scene_Battle) end end #-------------------------------------------------------------------------- # * rewrite: call a shop guide #-------------------------------------------------------------------------- def call_shop_guide(goods_data, sell) goods = [] types = [:item, :weapon, :armor] for type in 0..2 if goods_data[types[type]] goods_data[types[type]].each{|id| goods.push([type, id, 0]) } end end GuideManager.save_bgm_and_bgs Sound.play_shop_guide_bgm SceneManager.call(Scene_Shop) SceneManager.scene.prepare(goods, !sell) end #-------------------------------------------------------------------------- # * Create Help Window #-------------------------------------------------------------------------- def create_help_window @help_window = Window_Help.new(1) @help_window.set_text(help_window_text) @help_window.viewport = @viewport endend#==============================================================================# ** Window_GuideList#==============================================================================class Window_GuideList < Window_Selectable def initialize(x, y, width, height) super(x, y, width, height) make_item_list refresh @index = 0 self.activate end #-------------------------------------------------------------------------- # * Create Item List #-------------------------------------------------------------------------- def make_item_list @data = GuideManager.guide_list end #-------------------------------------------------------------------------- # * Draw Item #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) draw_icon(CDR_GUIDE::GUIDE_FILE_ICON, 4, rect.y, enabled = true) change_color(normal_color) draw_guide_name(index, rect.x+28, rect.y) contents.font.bold = true change_color(text_color(CDR_GUIDE::NEW_COLOR)) draw_new_flag(index, rect.x+text_size(guide(index)[:name]).width+24, rect.y) contents.font.bold = false change_color(normal_color) end #-------------------------------------------------------------------------- # * new method: draw_guide_name #-------------------------------------------------------------------------- def draw_guide_name(index, x, y) name = guide(index)[:name] draw_text(x, y, Graphics.width - 120, line_height, name) end #-------------------------------------------------------------------------- # * new method: draw_new_flag #-------------------------------------------------------------------------- def draw_new_flag(index, x, y) return if GuideManager.read?(@data[index]) text = CDR_GUIDE::NEW_STRING draw_text(x, y, 128, line_height, text) end #-------------------------------------------------------------------------- # * method rewrite: returns the max number of guides on the list #-------------------------------------------------------------------------- def item_max GuideManager.guide_list.size end #-------------------------------------------------------------------------- # * new method: returns the guide corresponding to the key #-------------------------------------------------------------------------- def guide(index) CDR_GUIDE::GUIDE_DATA[@data[index]] end #-------------------------------------------------------------------------- # * method rewrite: returns the selected guide key #-------------------------------------------------------------------------- def item @data[@index] endend#==============================================================================# ** Scene_Menu#==============================================================================class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # * alias: adds a guide list accessor to the main menu #-------------------------------------------------------------------------- alias cdr_guide_create_command_window create_command_window def create_command_window cdr_guide_create_command_window if CDR_GUIDE::ADD_MENU_ITEM @command_window.set_handler:)guide_list, method:)command_guide_list)) end end #-------------------------------------------------------------------------- # * new method: calls the guide list scene #-------------------------------------------------------------------------- def command_guide_list SceneManager.call(Scene_Guide) endend#==============================================================================# ** Window_MenuCommand#==============================================================================class Window_MenuCommand < Window_Command #-------------------------------------------------------------------------- # * alias #-------------------------------------------------------------------------- alias cdr_guide_select_last select_last def select_last if GuideManager.running? select_symbol(nil) return end cdr_guide_select_last end #-------------------------------------------------------------------------- # * alias: to add guide command menu item #-------------------------------------------------------------------------- alias cdr_guide_add_original_commands add_original_commands def add_original_commands cdr_guide_add_original_commands add_guide_list_command if CDR_GUIDE::ADD_MENU_ITEM end #-------------------------------------------------------------------------- # * new method: to add guide command menu item #-------------------------------------------------------------------------- def add_guide_list_command add_command(CDR_GUIDE::MENU_ITEM_NAME, :guide_list, has_guides?) end #-------------------------------------------------------------------------- # * new method: returns true if there is any guides on the list #-------------------------------------------------------------------------- def has_guides? !GuideManager.guide_list.empty? endend
What other scripts are you using? If you list them and we have some in common, I can probably figure out which is causing the problem.
EDIT: I found the problem! At least, for me anyway. If you're using the XaiL Core, then the problem lies here:

#==============================================================================## ** Window_Selectable#------------------------------------------------------------------------------# Adding support for pageleft and pageright for window selectable.#==============================================================================#class Window_Selectable < Window_Base def cursor_pageright ; end def cursor_pageleft ; end alias xail_core_winselect_process_cursor_move process_cursor_move def process_cursor_move(*args, &block) # // Method to process cursor movement. xail_core_winselect_process_cursor_move(*args, &block) cursor_pageright if !handle?:)pageright) && Input.trigger?:)RIGHT) cursor_pageright if !handle?:)pageleft) && Input.trigger?:)LEFT) end alias xail_core_winselect_process_handling process_handling def process_handling(*args, &block) # // Method to process handling. xail_core_winselect_process_handling(*args, &block) return process_pageright if handle?:)pageright) && Input.trigger?:)RIGHT) return process_pageleft if handle?:)pageleft) && Input.trigger?:)LEFT) end def process_pageright # // Method to process page right. Sound.play_cursor Input.update deactivate call_handler:)pageright) end def process_pageleft # // Method to process page left. Sound.play_cursor Input.update deactivate call_handler:)pageleft) end end
If you just remove this from the code, it will work. I don't really know what pageleft and pageright even do, so I don't think their essential. If anyone wants to tell me what they do, that'd be nice.
 
Last edited by a moderator:

OffeNDer

Veteran
Veteran
Joined
Jan 15, 2013
Messages
80
Reaction score
2
Primarily Uses
You're right, the left and right keys do work in a blank project. I figured they did, I just didn't get around to actually testing it until now. 

What other scripts are you using? If you list them and we have some in common, I can probably figure out which is causing the problem.
i just checked my scripts and i found out that

Mini Game:

 PiNG™   By Dekita

 

was the reason because when i open it i find this 

     # Player 1 Controls :

     # Move Left

     C[:player_1][:Left]  = :LEFT

     # Move Right

     C[:player_1][:Right] = :RIGHT

     # Hit Ball Straight

     C[:player_1][:Str8]  = :UP

     # Move Fast

     C[:player_1][:Speed] = :SHIFT 




i really would like to keep the Mini game....

can you give me the list of keys?

i mean X  is  A Key

Z  D Key

i want the other key if possible... so i can change the controls in Ping mini games
 

EctoWarrior

Villager
Member
Joined
Jul 24, 2013
Messages
26
Reaction score
3
First Language
English
Primarily Uses
Gamepad button => Keyboard button


A => Shift


B => Esc/X/Num0


C => Space/Enter/Z


X => A


Y => S


Z => D


L => Q


R => W
 
Last edited by a moderator:

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
I don't understand why dekita's mini-game would affect the guide script.


The minigame keys should only be active when you're actually playing the game and it should not affect anything outside of that.


If this is a bug on dekita's end you'll have to ask him to fix it.
 
Last edited by a moderator:

EctoWarrior

Villager
Member
Joined
Jul 24, 2013
Messages
26
Reaction score
3
First Language
English
Primarily Uses
See if you're using XaiL Core, because I know that's a popular script and as I said in my edit it causes problems. Refer to my edit for the fix.
 

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

Latest Threads

Latest Posts

Latest Profile Posts

so hopefully tomorrow i get to go home from the hospital i've been here for 5 days already and it's driving me mad. I miss my family like crazy but at least I get to use my own toiletries and my own clothes. My mom is coming to visit soon i can't wait to see her cause i miss her the most. :kaojoy:
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

Forum statistics

Threads
105,868
Messages
1,017,078
Members
137,580
Latest member
Snavi
Top