じ☆ve冰风 发表于 2026-8-2 17:23:55

GE Game Adapter

This script works with Gamepad Extender by Lone Wolf to make the default scripts work well with a controller. It does not break things for keyboard users, so players using whatever they desire should be able to play with optimal controls.


    To use this script, copy and paste it into your game under materials and above main, but Gamepad Extender must also be in the game under materials and above GE Game Adapter. You can get it here: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015


Spoiler: 1.1                Code:       
#==============================================================================
# Gamepad Extender Game Adapter
# by Jono99
#------------------------------------------------------------------------------
# This allows the game commands to be handled in a way more friendly to controller
# input. Based off Gamepad Extender by Lone Wolf and requires Gamepad Extender
# in order to function.
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
#------------------------------------------------------------------------------
# Changelog
# 1.0.0: Initial release
# 1.0.1: Fixed bug where the save menu would not accept input from the analogue stick and the dpad's input would be duplicated (only occured when MenuInput was set to 2)
#==============================================================================
module GEGAOptions
# Use the Start button instead of the B button to pause the game
StartForPause = true

# Determine what input device is used for the menus.
# 0 for just the dpad
# 1 for just the left analogue stick
# 2 for both
MenuInput = 2

# Determine what input device is used for moving around the map.
# 0 for just the dpad
# 1 for just the left analogue stick
# 2 for both
MoveInput = 2
end






#==============================================================================
# DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING!
#==============================================================================
if defined?(WolfPad) == nil
msgbox("WARNING: GamePad Extender is either missing or executes sometime after this. To avoid issues, GE Game Adapter will not execute!")
elsif GEGAOptions::StartForPause.class != TrueClass
msgbox("WARNING: StartForPause doesn't have a valid value. It must be true or false. To avoid issues, GE Game Adapter will not execute!")
elsif GEGAOptions::MenuInput.class != Fixnum || GEGAOptions::MenuInput > 2
msgbox("WARNING: MenuInput doesn't have a valid value. It must be 0, 1, or 2. To avoid issues, GE Game Adapter will not execute!")
elsif GEGAOptions::MoveInput.class != Fixnum || GEGAOptions::MoveInput > 2
msgbox("WARNING: MoveInput doesn't have a valid value. It must be 0, 1, or 2. To avoid issues, GE Game Adapter will not execute!")
else
module WolfPad
    def self.dird4(p_i = 0)
      if press?(:UP, p_i)
       8
      elsif press?(:RIGHT, p_i)
       6
      elsif press?(:LEFT, p_i)
       4
      elsif press?(:DOWN, p_i)
       2
      else
       0
      end
    end
    def self.dird8(p_i = 0)
      if press?(:UP, p_i) and press?(:LEFT, p_i)
       7
      elsif press?(:UP, p_i) and press?(:RIGHT, p_i)
       9
      elsif press?(:DOWN, p_i) and press?(:LEFT, p_i)
       1
      elsif press?(:DOWN, p_i) and press?(:RIGHT, p_i)
       3
   else
       dird4(p_i)
      end
    end
end
class Game_Player
    #--------------------------------------------------------------------------
    # * Determine if Dashing
    #--------------------------------------------------------------------------
    def dash?
      return false if @move_route_forcing
      return false if $game_map.disable_dash?
      return false if vehicle
      return Input.press?(PadConfig.dash)
    end
    #--------------------------------------------------------------------------
    # * Processing of Movement via Input from Directional Buttons
    #--------------------------------------------------------------------------
    def move_by_input
      return if !movable? || $game_map.interpreter.running?
      if WolfPad.plugged_in? == false
      gega_move_by_input_input(Input.dir4)
      else
      gega_move_by_input_input(WolfPad.dird4) if GEGAOptions::MoveInput == 0 || GEGAOptions::MoveInput == 2
      gega_move_by_input_input(WolfPad.lstick4) if GEGAOptions::MoveInput > 0
      end
    end
    def gega_move_by_input_input(dir4)
      move_straight(dir4) if dir4 > 0
    end
    #--------------------------------------------------------------------------
    # * Processing When Not Moving
    #   last_moving : Was it moving previously?
    #--------------------------------------------------------------------------
    def update_nonmoving(last_moving)
      return if $game_map.interpreter.running?
      if last_moving
      $game_party.on_player_walk
      return if check_touch_event
      end
      if movable? && Input.trigger?(PadConfig.confirm)
      return if get_on_off_vehicle
      return if check_action_event
      end
      update_encounter if last_moving
    end
end
class Window_Selectable
    #--------------------------------------------------------------------------
    # * Cursor Movement Processing
    #--------------------------------------------------------------------------
    def process_cursor_move
      return unless cursor_movable?
      last_index = @index
      if WolfPad.plugged_in?
      gega_process_cursor_move_input(:UP, :DOWN, :LEFT, :RIGHT) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_process_cursor_move_input(:L_UP, :L_DOWN, :L_LEFT, :L_RIGHT) if GEGAOptions::MenuInput > 0
      else
      gega_process_cursor_move_input(:UP, :DOWN, :LEFT, :RIGHT)
      end
      cursor_pagedown   if !handle?(:pagedown) && Input.trigger?(PadConfig.page_down)
      cursor_pageup   if !handle?(:pageup)   && Input.trigger?(PadConfig.page_up)
      Sound.play_cursor if @index != last_index
    end
    def gega_process_cursor_move_input(up, down, left, right)
      cursor_down (Input.trigger?(down)) if Input.repeat?(down)
      cursor_up   (Input.trigger?(up))    if Input.repeat?(up)
      cursor_right(Input.trigger?(right)) if Input.repeat?(right)
      cursor_left (Input.trigger?(left))if Input.repeat?(left)
    end
    #--------------------------------------------------------------------------
    # * Handling Processing for OK and Cancel Etc.
    #--------------------------------------------------------------------------
    def process_handling
      return unless open? && active
      return process_ok       if ok_enabled?      && Input.trigger?(PadConfig.confirm)
      return process_cancel   if cancel_enabled?    && Input.trigger?(PadConfig.cancel)
      return process_pagedown if handle?(:pagedown) && Input.trigger?(PadConfig.page_down)
      return process_pageup   if handle?(:pageup)   && Input.trigger?(PadConfig.page_up)
    end
end
class Window_ShopNumber
    #--------------------------------------------------------------------------
    # * Update Quantity
    #--------------------------------------------------------------------------
    def update_number
      if WolfPad.plugged_in?
      gega_update_number_input(:RIGHT, :LEFT, :UP, :DOWN) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_update_number_input(:L_RIGHT, :L_LEFT, :L_UP, :L_DOWN) if GEGAOptions::MenuInput > 0
      else
      gega_update_number_input(:RIGHT, :LEFT, :UP, :DOWN)
      end
    end
end
def gega_update_number_input(right, left, up, down)
    change_number(1)   if Input.repeat?(right)
    change_number(-1)if Input.repeat?(left)
    change_number(10)if Input.repeat?(up)
    change_number(-10) if Input.repeat?(down)
end
class Window_NameInput
    #--------------------------------------------------------------------------
    # * Handling Processing for OK and Cancel Etc.
    #--------------------------------------------------------------------------
    def process_handling
      return unless open? && active
      process_jump if Input.trigger?(:A) && WolfPad.plugged_in? == false
      process_back if Input.repeat?(PadConfig.cancel)
      process_ok   if Input.trigger?(PadConfig.confirm)
    end
end
class Window_NumberInput
    #--------------------------------------------------------------------------
    # * Cursor Movement Processing
    #--------------------------------------------------------------------------
    def process_cursor_move
      return unless active
      last_index = @index
      if WolfPad.plugged_in?
      gega_process_cursor_move_input(:LEFT, :RIGHT) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_process_cursor_move_input(:L_LEFT, :L_RIGHT) if GEGAOptions::MenuInput > 0
      else
      gega_process_cursor_move_input(:LEFT, :RIGHT)
      end
      Sound.play_cursor if @index != last_index
    end
    def gega_process_cursor_move_input(left, right)
      cursor_right(Input.trigger?(right)) if Input.repeat?(right)
      cursor_left (Input.trigger?(left))if Input.repeat?(left)
    end
    #--------------------------------------------------------------------------
    # * Change Processing for Digits
    #--------------------------------------------------------------------------
    def process_digit_change
      return unless active
      if WolfPad.plugged_in?
      gega_process_digit_change_input(:UP, :DOWN) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_process_digit_change_input(:L_UP, :L_DOWN) if GEGAOptions::MenuInput > 0
      else
      gega_process_digit_change_input(:UP, :DOWN)
      end
    end
    def gega_process_digit_change_input(up, down)
      if Input.repeat?(up) || Input.repeat?(down)
      Sound.play_cursor
      place = 10 ** (@digits_max - 1 - @index)
      n = @number / place % 10
      @number -= n * place
      n = (n + 1) % 10 if Input.repeat?(up)
      n = (n + 9) % 10 if Input.repeat?(down)
      @number += n * place
      refresh
      end
    end
    #--------------------------------------------------------------------------
    # * Handling Processing for OK and Cancel
    #--------------------------------------------------------------------------
    def process_handling
      return unless active
      return process_ok   if Input.trigger?(PadConfig.confirm)
      return process_cancel if Input.trigger?(PadConfig.cancel)
    end
end
class Window_Message
    #--------------------------------------------------------------------------
    # * Update Fast Forward Flag
    #--------------------------------------------------------------------------
    def update_show_fast
      @show_fast = true if Input.trigger?(PadConfig.confirm)
    end
    #--------------------------------------------------------------------------
    # * Input Pause Processing
    #--------------------------------------------------------------------------
    def input_pause
      self.pause = true
      wait(10)
      Fiber.yield until Input.trigger?(PadConfig.cancel) || Input.trigger?(PadConfig.confirm)
      Input.update
      self.pause = false
    end
end
class Window_ScrollText
    #--------------------------------------------------------------------------
    # * Determine if Fast Forward
    #--------------------------------------------------------------------------
    def show_fast?
      !$game_message.scroll_no_fast && (Input.press?(PadConfig.dash) || Input.press?(PadConfig.confirm))
    end
end
class Scene_Map
    #--------------------------------------------------------------------------
    # * Determine if Menu is Called due to Cancel Button
    #--------------------------------------------------------------------------
    def update_call_menu
      if $game_system.menu_disabled || $game_map.interpreter.running?
      @menu_calling = false
      else
      if WolfPad.plugged_in? && GEGAOptions::StartForPause
          @menu_calling ||= Input.trigger?(:START)
      else
          @menu_calling ||= Input.trigger?(:B)
      end
      call_menu if @menu_calling && !$game_player.moving?
      end
    end
end
class Scene_File
    #--------------------------------------------------------------------------
    # * Update Save File Selection
    #--------------------------------------------------------------------------
    def update_savefile_selection
      return on_savefile_ok   if Input.trigger?(PadConfig.confirm)
      return on_savefile_cancel if Input.trigger?(PadConfig.cancel)
      update_cursor
    end
    #--------------------------------------------------------------------------
    # * Update Cursor
    #--------------------------------------------------------------------------
    def update_cursor
      last_index = @index
      if WolfPad.plugged_in?
      gega_update_cursor_input(:UP, :DOWN) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_update_cursor_input(:L_UP, :L_DOWN) if GEGAOptions::MenuInput > 0
      else
      gega_update_cursor_input(:UP, :DOWN)
      end
      cursor_pagedown   if Input.trigger?(PadConfig.page_down)
      cursor_pageup   if Input.trigger?(PadConfig.page_up)
      if @index != last_index
      Sound.play_cursor
      @savefile_windows.selected = false
      @savefile_windows[@index].selected = true
      end
    end
end
def gega_update_cursor_input(up, down)
    cursor_down (Input.trigger?(down))if Input.repeat?(down)
    cursor_up   (Input.trigger?(up))    if Input.repeat?(up)
end
class Scene_Gameover
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
      super
      goto_title if Input.trigger?(PadConfig.confirm)
    end
end
end


Spoiler: 1.2                Code:       
#==============================================================================
# Gamepad Extender Game Adapter
# by Jono99
#------------------------------------------------------------------------------
# This allows the game commands to be handled in a way more friendly to controller
# input. Based off Gamepad Extender by Lone Wolf and requires Gamepad Extender
# in order to function.
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
#------------------------------------------------------------------------------
# Changelog
# 1.0.0: Initial release
# 1.0.1: Fixed bug where the save menu would not accept input from the analogue stick and the dpad's input would be duplicated (only occured when MenuInput was set to 2)
# 1.0.2: Removed checks to see if values in GEGAOptions are acceptable values (they caused a problem where the script would not run in StartForPause was set to false)
#==============================================================================
module GEGAOptions
# Use the Start button instead of the B button to pause the game
StartForPause = true

# Determine what input device is used for the menus.
# 0 for just the dpad
# 1 for just the left analogue stick
# 2 for both
MenuInput = 2

# Determine what input device is used for moving around the map.
# 0 for just the dpad
# 1 for just the left analogue stick
# 2 for both
MoveInput = 2
end






#==============================================================================
# DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING!
#==============================================================================
if defined?(WolfPad) == nil
msgbox("WARNING: GamePad Extender is either missing or executes sometime after this. To avoid issues, GE Game Adapter will not execute!")
else
module WolfPad
    def self.dird4(p_i = 0)
      if press?(:UP, p_i)
       8
      elsif press?(:RIGHT, p_i)
       6
      elsif press?(:LEFT, p_i)
       4
      elsif press?(:DOWN, p_i)
       2
      else
       0
      end
    end
    def self.dird8(p_i = 0)
      if press?(:UP, p_i) and press?(:LEFT, p_i)
       7
      elsif press?(:UP, p_i) and press?(:RIGHT, p_i)
       9
      elsif press?(:DOWN, p_i) and press?(:LEFT, p_i)
       1
      elsif press?(:DOWN, p_i) and press?(:RIGHT, p_i)
       3
   else
       dird4(p_i)
      end
    end
end
class Game_Player
    #--------------------------------------------------------------------------
    # * Determine if Dashing
    #--------------------------------------------------------------------------
    def dash?
      return false if @move_route_forcing
      return false if $game_map.disable_dash?
      return false if vehicle
      return Input.press?(PadConfig.dash)
    end
    #--------------------------------------------------------------------------
    # * Processing of Movement via Input from Directional Buttons
    #--------------------------------------------------------------------------
    def move_by_input
      return if !movable? || $game_map.interpreter.running?
      if WolfPad.plugged_in? == false
      gega_move_by_input_input(Input.dir4)
      else
      gega_move_by_input_input(WolfPad.dird4) if GEGAOptions::MoveInput == 0 || GEGAOptions::MoveInput == 2
      gega_move_by_input_input(WolfPad.lstick4) if GEGAOptions::MoveInput > 0
      end
    end
    def gega_move_by_input_input(dir4)
      move_straight(dir4) if dir4 > 0
    end
    #--------------------------------------------------------------------------
    # * Processing When Not Moving
    #   last_moving : Was it moving previously?
    #--------------------------------------------------------------------------
    def update_nonmoving(last_moving)
      return if $game_map.interpreter.running?
      if last_moving
      $game_party.on_player_walk
      return if check_touch_event
      end
      if movable? && Input.trigger?(PadConfig.confirm)
      return if get_on_off_vehicle
      return if check_action_event
      end
      update_encounter if last_moving
    end
end
class Window_Selectable
    #--------------------------------------------------------------------------
    # * Cursor Movement Processing
    #--------------------------------------------------------------------------
    def process_cursor_move
      return unless cursor_movable?
      last_index = @index
      if WolfPad.plugged_in?
      gega_process_cursor_move_input(:UP, :DOWN, :LEFT, :RIGHT) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_process_cursor_move_input(:L_UP, :L_DOWN, :L_LEFT, :L_RIGHT) if GEGAOptions::MenuInput > 0
      else
      gega_process_cursor_move_input(:UP, :DOWN, :LEFT, :RIGHT)
      end
      cursor_pagedown   if !handle?(:pagedown) && Input.trigger?(PadConfig.page_down)
      cursor_pageup   if !handle?(:pageup)   && Input.trigger?(PadConfig.page_up)
      Sound.play_cursor if @index != last_index
    end
    def gega_process_cursor_move_input(up, down, left, right)
      cursor_down (Input.trigger?(down)) if Input.repeat?(down)
      cursor_up   (Input.trigger?(up))    if Input.repeat?(up)
      cursor_right(Input.trigger?(right)) if Input.repeat?(right)
      cursor_left (Input.trigger?(left))if Input.repeat?(left)
    end
    #--------------------------------------------------------------------------
    # * Handling Processing for OK and Cancel Etc.
    #--------------------------------------------------------------------------
    def process_handling
      return unless open? && active
      return process_ok       if ok_enabled?      && Input.trigger?(PadConfig.confirm)
      return process_cancel   if cancel_enabled?    && Input.trigger?(PadConfig.cancel)
      return process_pagedown if handle?(:pagedown) && Input.trigger?(PadConfig.page_down)
      return process_pageup   if handle?(:pageup)   && Input.trigger?(PadConfig.page_up)
    end
end
class Window_ShopNumber
    #--------------------------------------------------------------------------
    # * Update Quantity
    #--------------------------------------------------------------------------
    def update_number
      if WolfPad.plugged_in?
      gega_update_number_input(:RIGHT, :LEFT, :UP, :DOWN) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_update_number_input(:L_RIGHT, :L_LEFT, :L_UP, :L_DOWN) if GEGAOptions::MenuInput > 0
      else
      gega_update_number_input(:RIGHT, :LEFT, :UP, :DOWN)
      end
    end
end
def gega_update_number_input(right, left, up, down)
    change_number(1)   if Input.repeat?(right)
    change_number(-1)if Input.repeat?(left)
    change_number(10)if Input.repeat?(up)
    change_number(-10) if Input.repeat?(down)
end
class Window_NameInput
    #--------------------------------------------------------------------------
    # * Handling Processing for OK and Cancel Etc.
    #--------------------------------------------------------------------------
    def process_handling
      return unless open? && active
      process_jump if Input.trigger?(:A) && WolfPad.plugged_in? == false
      process_back if Input.repeat?(PadConfig.cancel)
      process_ok   if Input.trigger?(PadConfig.confirm)
    end
end
class Window_NumberInput
    #--------------------------------------------------------------------------
    # * Cursor Movement Processing
    #--------------------------------------------------------------------------
    def process_cursor_move
      return unless active
      last_index = @index
      if WolfPad.plugged_in?
      gega_process_cursor_move_input(:LEFT, :RIGHT) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_process_cursor_move_input(:L_LEFT, :L_RIGHT) if GEGAOptions::MenuInput > 0
      else
      gega_process_cursor_move_input(:LEFT, :RIGHT)
      end
      Sound.play_cursor if @index != last_index
    end
    def gega_process_cursor_move_input(left, right)
      cursor_right(Input.trigger?(right)) if Input.repeat?(right)
      cursor_left (Input.trigger?(left))if Input.repeat?(left)
    end
    #--------------------------------------------------------------------------
    # * Change Processing for Digits
    #--------------------------------------------------------------------------
    def process_digit_change
      return unless active
      if WolfPad.plugged_in?
      gega_process_digit_change_input(:UP, :DOWN) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_process_digit_change_input(:L_UP, :L_DOWN) if GEGAOptions::MenuInput > 0
      else
      gega_process_digit_change_input(:UP, :DOWN)
      end
    end
    def gega_process_digit_change_input(up, down)
      if Input.repeat?(up) || Input.repeat?(down)
      Sound.play_cursor
      place = 10 ** (@digits_max - 1 - @index)
      n = @number / place % 10
      @number -= n * place
      n = (n + 1) % 10 if Input.repeat?(up)
      n = (n + 9) % 10 if Input.repeat?(down)
      @number += n * place
      refresh
      end
    end
    #--------------------------------------------------------------------------
    # * Handling Processing for OK and Cancel
    #--------------------------------------------------------------------------
    def process_handling
      return unless active
      return process_ok   if Input.trigger?(PadConfig.confirm)
      return process_cancel if Input.trigger?(PadConfig.cancel)
    end
end
class Window_Message
    #--------------------------------------------------------------------------
    # * Update Fast Forward Flag
    #--------------------------------------------------------------------------
    def update_show_fast
      @show_fast = true if Input.trigger?(PadConfig.confirm)
    end
    #--------------------------------------------------------------------------
    # * Input Pause Processing
    #--------------------------------------------------------------------------
    def input_pause
      self.pause = true
      wait(10)
      Fiber.yield until Input.trigger?(PadConfig.cancel) || Input.trigger?(PadConfig.confirm)
      Input.update
      self.pause = false
    end
end
class Window_ScrollText
    #--------------------------------------------------------------------------
    # * Determine if Fast Forward
    #--------------------------------------------------------------------------
    def show_fast?
      !$game_message.scroll_no_fast && (Input.press?(PadConfig.dash) || Input.press?(PadConfig.confirm))
    end
end
class Scene_Map
    #--------------------------------------------------------------------------
    # * Determine if Menu is Called due to Cancel Button
    #--------------------------------------------------------------------------
    def update_call_menu
      if $game_system.menu_disabled || $game_map.interpreter.running?
      @menu_calling = false
      else
      if WolfPad.plugged_in? && GEGAOptions::StartForPause
          @menu_calling ||= Input.trigger?(:START)
      else
          @menu_calling ||= Input.trigger?(:B)
      end
      call_menu if @menu_calling && !$game_player.moving?
      end
    end
end
class Scene_File
    #--------------------------------------------------------------------------
    # * Update Save File Selection
    #--------------------------------------------------------------------------
    def update_savefile_selection
      return on_savefile_ok   if Input.trigger?(PadConfig.confirm)
      return on_savefile_cancel if Input.trigger?(PadConfig.cancel)
      update_cursor
    end
    #--------------------------------------------------------------------------
    # * Update Cursor
    #--------------------------------------------------------------------------
    def update_cursor
      last_index = @index
      if WolfPad.plugged_in?
      gega_update_cursor_input(:UP, :DOWN) if GEGAOptions::MenuInput == 0 || GEGAOptions::MenuInput == 2
      gega_update_cursor_input(:L_UP, :L_DOWN) if GEGAOptions::MenuInput > 0
      else
      gega_update_cursor_input(:UP, :DOWN)
      end
      cursor_pagedown   if Input.trigger?(PadConfig.page_down)
      cursor_pageup   if Input.trigger?(PadConfig.page_up)
      if @index != last_index
      Sound.play_cursor
      @savefile_windows.selected = false
      @savefile_windows[@index].selected = true
      end
    end
end
def gega_update_cursor_input(up, down)
    cursor_down (Input.trigger?(down))if Input.repeat?(down)
    cursor_up   (Input.trigger?(up))    if Input.repeat?(up)
end
class Scene_Gameover
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def update
      super
      goto_title if Input.trigger?(PadConfig.confirm)
    end
end
end


There are also scripts out there that will overwrite this script. For this reason, I am taking requests for extension scripts that will add this functionality back in when another script overwrites it (one for GubiD's Tactical Battle System is in the works right now). If you find a script that doesn't work with the base version, post about it in this thread detailing what script conflicts with GE Game Adapter and provide a link to the script, but please test this in a brand new project before posting. I will check the script myself and create an extension script if I encounter the problem or message you telling you that I could not find any conflict.

Spoiler: Sapphire Action System IV - Khas                Code:       
#==============================================================================
# Gamepad Extender Game Adapter - Sapphire Action System IV
# by Jono99
#------------------------------------------------------------------------------
# This allows the game commands in SASIV by Khas Arcthunder to be handled in a
# more controller friendly way. It also adds the ability to scroll backwards
# through your skills
#
# Based off of Gamepad Extender by Lone Wolf, GE Game Adapter by Jono99 and
# SASIV by Khas Arcthunder and requires all of the above scripts to function.
#
# It is also recommended that you have the scripts laid out in a specific order:
# Gamepad Extender, GE Game Adapter, SASIV then GEGA - SASIV (this script).
#
# WARNING: This script changes the select skill key for keyboard users. It is
# changed from D to Q and W to scroll back and forth.
#
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
# Link to download GE Game Adapter: http://forums.rpgmakerweb.com/index.php?/topic/69589-ge-game-adapter/
# Link to download Sapphire Action System IV: http://www.mediafire.com/file/1exy8cl0np2ycts/Sapphire+Action+System+IV+v4.4en.rar
#==============================================================================
# NOTE: This script forces StartForPause to true to avoid problems with other
# settings.
module GEGASAS4Options
# The button that you press to attack
AttackButton = :X

# The button that casts a skill
CastButton = :B
end







if defined?(WolfPad) == nil
msgbox("WARNING: GamePad Extender is either missing or executes sometime after this. To avoid issues, GEGA - SASIV will not execute!")
elsif defined?(GEGAOptions) == nil
msgbox("WARNING: GE Game Adapter is either missing or executes sometime after this. To avoid issues, GEGA - SASIV will not execute!")
elsif defined?(Sapphire_Core) == nil
msgbox("WARNING: Sapphire Action System IV is either missing or executes sometime after this. To avoid issues, GEGA - SASIV will not execute!")
else
module PadConfig
    def self.dash
      WolfPad.plugged_in? ? :Y : :A
    end
end
class Game_Player
    def move_by_input
      return if !movable? || $game_map.interpreter.running?
      gegasas4_dir8 = 0
      if WolfPad.plugged_in?
      if GEGAOptions::MoveInput == 0
          gegasas4_dir8 = WolfPad.dird8
      elsif GEGAOptions::MoveInput == 1
          gegasas4_dir8 = WolfPad.lstick8
      elsif GEGAOptions::MoveInput == 2
          gegasas4_dir8 = WolfPad.dird8
          gegasas4_dir8 = WolfPad.lstick8 if gegasas4_dir8 == 0
      end
      else
      gegasas4_dir8 = Input.dir8
      end
      case gegasas4_dir8
      when 1; move_dpixel(4,2)
      when 2; move_pixel(2,true)
      when 3; move_dpixel(6,2)
      when 4; move_pixel(4,true)
      when 6; move_pixel(6,true)
      when 7; move_dpixel(4,8)
      when 8; move_pixel(8,true)
      when 9; move_dpixel(6,8)
      end
    end
end
class Game_Map
    def update_action_system
      if WolfPad.plugged_in?
      gegasas4_update_action_system_input(GEGASAS4Options::AttackButton, GEGASAS4Options::CastButton)
      else
      gegasas4_update_action_system_input(Input::X, Input::Y)
      end
    end
    def gegasas4_update_action_system_input(abutton, cbutton)
      if Input.trigger?(abutton)
      $game_player.attack
      elsif Input.trigger?(cbutton)
      $game_player.cast_skill
      elsif Input.trigger?(PadConfig.page_down)
      $game_player.next_skill
      elsif Input.trigger?(PadConfig.page_up)
      $game_player.prev_skill
      end
    end
end
class Game_Player
    def prev_skill
      unless @current_skill.nil?
      @current_skill = nil
      end
      skills = $game_party.members.skills
      if skills.empty?
      @current_skill =
      else
      ns = 0
      unless @current_skill.nil?
          max = skills.size-1
          for id in 0..max
            ns = (id == 0 ? max : id - 1) if skills == @current_skill
          end
      end
      skills.set_recover
      @current_skill = ,skills.particle]
      $game_map.sas_hud.refresh_base
      end
    end
end
end


Spoiler: Khas Pixel Movement - Khas                Code:       
#==============================================================================
# Gamepad Extender Game Adapter - Khas Pixel Movement
# by Jono99
#------------------------------------------------------------------------------
# This allows the Khas Pixel Movement by Khas Arcthunder to be comfortable for
# controller users.
#
# Based off of Gamepad Extender by Lone Wolf, GE Game Adapter by Jono99 and
# Khas Pixel Movement by Khas Arcthunder and requires all of the above scripts
# to function.
#
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
# Link to download GE Game Adapter: http://forums.rpgmakerweb.com/index.php?/topic/69589-ge-game-adapter/
# Link to download Khas Pixel Movement: http://www.mediafire.com/file/x5pxqmvw59be3zh/%5BACE%5D%5BEN%5D+Khas+Pixel+Movement+1.2.rar
#==============================================================================
if defined?(WolfPad) == nil
msgbox("WARNING: GamePad Extender is either missing or executes sometime after this. To avoid issues, GEGA - Khas Pixel movement will not execute!")
elsif defined?(GEGAOptions) == nil
msgbox("WARNING: GE Game Adapter is either missing or executes sometime after this. To avoid issues, GEGA - Khas Pixel movement will not execute!")
elsif defined?(Pixel_Core) == nil
msgbox("WARNING: Khas Pixel Movement is either missing or executes sometime after this. To avoid issues, GEGA - Khas Pixel movement will not execute!")
else
class Game_Player
    def pixel_move_by_input
      return if !movable? || $game_map.interpreter.running?
      gegakpm_dir8 = 0
      if WolfPad.plugged_in?
      if GEGAOptions::MoveInput == 0
          gegakpm_dir8 = WolfPad.dird8
      elsif GEGAOptions::MoveInput == 1
          gegakpm_dir8 = WolfPad.lstick8
      elsif GEGAOptions::MoveInput == 2
          gegakpm_dir8 = WolfPad.lstick8
          gegakpm_dir8 = WolfPad.dird8 if gegakpm_dir8 == 5
      end
      else
      gegakpm_dir8 = Input.dir8
      end
      case gegakpm_dir8
      when 1; move_dpixel(4,2)
      when 2; move_pixel(2,true)
      when 3; move_dpixel(6,2)
      when 4; move_pixel(4,true)
      when 6; move_pixel(6,true)
      when 7; move_dpixel(4,8)
      when 8; move_pixel(8,true)
      when 9; move_dpixel(6,8)
      end
    end
end
end


Spoiler: Arc Engine - Khas                Code:       
#==============================================================================
# Gamepad Extender Game Adapter - Arc Engine
# by Jono99
#------------------------------------------------------------------------------
# This allows the game commands in Arc Engine by Khas Arcthunder to be handled
# in a more controller friendly way.
#
# Based off of Gamepad Extender by Lone Wolf, GE Game Adapter by Jono99 and
# Arc Engine by Khas Arcthunder and requires all of the above scripts to function.
#
# It is reommended that you do not have a controller plugged in until you reach
# the title screen while testing as the menu that pops up before that does not
# play nice with controllers.
#
# It is also recommended that you have the scripts laid out in a specific order:
# Gamepad Extender, GE Game Adapter, Arc Engine then GEGA - Arc Engine (this script).
#
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
# Link to download GE Game Adapter:
# Link to download Arc Engine: http://www.mediafire.com/?b1x1b18637b1wk2
#==============================================================================

module GEGAACOptions
def self.jump
    WolfPad.plugged_in? ? :A : :X
end
EventInteract = :C
end
module PadConfig
def self.dash
    WolfPad.plugged_in? ? :L2 : :A
end
end





if defined?(WolfPad) == nil
msgbox("WARNING: GamePad Extender is either missing or executes sometime after this. To avoid issues, GEGA Arc Engine will not execute!")
elsif defined?(GEGAOptions) == nil
msgbox("WARNING: GE Game Adapter is either missing or executes sometime after this. To avoid issues, GEGA Arc Engine will not execute!")
elsif defined?(Arc_Core) == nil
msgbox("WARNING: Arc Engine is either missing or executes sometime after this. To avoid issues, GEGA Arc Engine will not execute!")
else
# Put GEGA - Arc Engine code here
class Game_Player
    def gegaac_groundpound_input(down)
      if Input.trigger?(down)
      if !jump_enabled? && !@groundpound
          stop
          apply_yforce(-Jump_Impulse)
          @groundpound = true
      end
      end
    end
    def arc_update
      try_event if Input.trigger?(GEGAACOptions::EventInteract)
      @wait_c -= 1 if @wait_c > 0
      unless @grab_stair
      if WolfPad.plugged_in?
          gegaac_groundpound_input(:DOWN) if GEGAOptions::MoveInput == 0 || GEGAOptions::MoveInput == 2
          gegaac_groundpound_input(:L_DOWN) if GEGAOptions::MoveInput > 0
      else
          gegaac_groundpound_input(:DOWN)
      end
      @vy += Gravity
      @vy -= Air_Resistance*@vy*@vy/(@wg*Meter_Size) if @vy > Insignificant
      end
      if @tx != nil
      @tx > 0 ? @tx -= 1 : reset_vx
      end
      if @ty != nil
      @ty > 0 ? @ty -= 1 : reset_vy
      end
      if @move_route_forcing
      arc_move
      check_move_route
      else
      update_arcinput
      arc_move
      check_ungrab
      end
      kill if @ay > $game_map.y_limit
      if @vx.abs > Insignificant
      et = event_below_type
      if (@grab_stair || surface_below? || et == 0x01)
          refresh_animation
      elsif et == 0x02
          @pattern = 1
      else
          @pattern = 0
      end
      elsif @grab_stair && @vy.abs > Insignificant
      stair_animation
      else
      @pattern = 1 unless @move_route_forcing
      @atimer = 13
      end
    end
    def update_arcinput
      return if $game_map.interpreter.running? || $game_message.busy? || $game_message.visible
      if WolfPad.plugged_in?
      if GEGAOptions::MoveInput == 0 || GEGAOptions::MoveInput == 2
          try_grab if Input.trigger?(:UP)
      end
      if GEGAOptions::MoveInput > 0
          try_grab if Input.trigger?(:L_UP)
      end
      else
      try_grab if Input.trigger?(:UP)
      end
      if @grab_stair
      gegaac_dir8 = 0
      if WolfPad.plugged_in?
          if GEGAOptions::MoveInput == 0
            gegaac_dir8 = WolfPad.dird8
          elsif GEGAOptions::MoveInput == 1
            gegaac_dir8 = WolfPad.lstick8
          elsif GEGAOptions::MoveInput == 2
            gegaac_dir8 = WolfPad.dird8
            gegaac_dir8 = WolfPad.lstick8 if gegaac_dir8 == 0
          end
      else
          gegaac_dir8 = Input.dir8
      end
      case gegaac_dir8
      when 1
          move_x(-Stair_Speed)
          move_y(Stair_Speed)
      when 2
          reset_vx
          move_y(Stair_Speed)
      when 3
          move_x(Stair_Speed)
          move_y(Stair_Speed)
      when 4
          move_x(-Stair_Speed)
          reset_vy
      when 6
          move_x(Stair_Speed)
          reset_vy
      when 7
          move_x(-Stair_Speed)
          move_y(-Stair_Speed)
      when 8
          reset_vx
          move_y(-Stair_Speed)
      when 9
          move_x(Stair_Speed)
          move_y(-Stair_Speed)
      else
          reset_vx
          reset_vy
      end
      if Input.trigger?(:X)
          apply_yforce(Jump_Impulse)
          Arc_Sound.jump
          @grab_stair = false
          set_direction(@vx > 0 ? 6 : 4)
      end
      else
      gegaac_dir4 = 0
      if WolfPad.plugged_in?
          if GEGAOptions::MoveInput == 0
            gegaac_dir4 = WolfPad.dird4
          elsif GEGAOptions::MoveInput == 1
            gegaac_dir4 = WolfPad.lstick4
          elsif GEGAOptions::MoveInput == 2
            gegaac_dir4 = WolfPad.dird4
            gegaac_dir4 = WolfPad.lstick4 if gegaac_dir4 == 0
          end
      else
          gegaac_dir4 = Input.dir4
      end
      case gegaac_dir4
      when 4
          @vx -= @key_acc
          set_direction(4)
          @deny_resistance = false
          r = (Input.press?(PadConfig.dash) ? Running_Resistance : Body_Resistance)
      when 6
          @vx += @key_acc
          set_direction(6)
          @deny_resistance = false
          r = (Input.press?(PadConfig.dash) ? Running_Resistance : Body_Resistance)
      else
          r = (@wallkick ? Body_Resistance : Stop_Resistance)
      end
      if Input.trigger?(GEGAACOptions.jump)
          if jump_enabled?
            apply_yforce(Jump_Impulse + Jump_RBonus*@vx.abs)
            Arc_Sound.jump
          elsif wkick_left?
            stop
            @wk_pos = [@ax,@ay]
            @wallkick = true
            @deny_resistance = true
            apply_xforce(WKick_XImpulse)
            apply_yforce(WKick_YImpulse)
            Arc_Sound.jump
          elsif wkick_right?
            stop
            @wk_pos = [@ax,@ay]
            @wallkick = true
            @deny_resistance = true
            apply_xforce(-WKick_XImpulse)
            apply_yforce(WKick_YImpulse)
            Arc_Sound.jump
          end
      end
      if @deny_resistance
          @deny_resistance = false
      else
          if @vx.abs > Insignificant
            rb = r*@vx*@vx/@res_coef
            @vx += (@vx > 0 ? -rb : rb)
          end
      end
      end
    end
end
end


Spoiler: FPLE - MGC                Code:       
#==============================================================================
# GEGA - FPLE
# by Jono99
#------------------------------------------------------------------------------
# This allows the movement to work when using GE Game Adapter by Jono99 and FPLE
# by MGC.
#
# This script is based off of Gamepad Extender by Lone Wolf, GE Game Adapter by
# Jono99 and FPLE by MGC and requires all three scripts in order to function.
#
# It is recommended that you have the scripts inserted in this order:
# Gamepad Extender, GE Game Adapter, FPLE then GEGA - FPLE (this script)
# (The placement of the FPLE Addons shouldn't matter.)
#
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
# Link to download GE Game Adapter: http://forums.rpgmakerweb.com/index.php?/topic/69589-ge-game-adapter/
# Link to download FPLE: http://www.rgss-factory.net/2013/09/10/ace-fple-ace-first-person-labyrinth-explorer/
#==============================================================================
module GEGAFPLEOptions
# false: Left and right turn while LB and RB strafe.
# true: LB and RB turn while left and right strafe.
AlternateControlStyle = false
end






#==============================================================================
# DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING!
#==============================================================================
if defined?(WolfPad) == nil
msgbox("WARNING: Gamepad Extender is either missing or executes sometime after this. To avoid issues, GEGA - FPLE will not execute!")
elsif defined?(GEGAOptions) == nil
msgbox("WARNING: GE Game Adapter is either missing or executes sometime after this. To avoid issues, GEGA - FPLE will not execute!")
elsif defined?(FPLE) == nil
msgbox("WARNING: FPLE is either missing or executes sometime after this. To avoid issues, GEGA - FPLE will not execute!")
else
class Game_Player
    #--------------------------------------------------------------------------
    # * Processing of Movement via input from the Directional Buttons
    #--------------------------------------------------------------------------
    def move_by_input
      if $game_system.fple
      if !movable? || $game_map.interpreter.running? then return end
      if Input.press?(PadConfig.page_up)
          gegafple_on_lb
      elsif Input.press?(PadConfig.page_down)
          gegafple_on_rb
      else
          gegafple_dir4 = 0
          if WolfPad.plugged_in?
            if GEGAOptions::MoveInput == 0
            gegafple_dir4 = WolfPad.dird4
            elsif GEGAOptions::MoveInput == 1
            gegafple_dir4 = WolfPad.lstick4
            elsif GEGAOptions::MoveInput == 2
            gegafple_dir4 = WolfPad.lstick4
            gegafple_dir4 = WolfPad.dird4 if gegafple_dir4 == 0 || gegafple_dir4 == 5
            end
          else
            gegafple_dir4 = Input.dir4
          end
          case gegafple_dir4
          when 2; go_backward
          when 4; gegafple_on_left
          when 6; gegafple_on_right
          when 8; go_forward
          end
      end
      else
      move_by_input_fple_game_player
      end
    end
    def gegafple_on_left
      WolfPad.plugged_in? && GEGAFPLEOptions::AlternateControlStyle ? strafe_left : turn_left_90
    end
    def gegafple_on_right
      WolfPad.plugged_in? && GEGAFPLEOptions::AlternateControlStyle ? strafe_right : turn_right_90
    end
    def gegafple_on_lb
      WolfPad.plugged_in? && GEGAFPLEOptions::AlternateControlStyle ? turn_left_90 : strafe_left
    end
    def gegafple_on_rb
      WolfPad.plugged_in? && GEGAFPLEOptions::AlternateControlStyle ? turn_right_90 : strafe_right
    end
end
end


Spoiler:ISO - MGC                Code:       
#==============================================================================
# GEGA - ISO
# by Jono99
#------------------------------------------------------------------------------
# This allows the movement to work when using GE Game Adapter by Jono99 and ISO
# by MGC.
#
# This script is based off of Gamepad Extender by Lone Wolf, GE Game Adapter by
# Jono99 and ISO by MGC and requires all three scripts in order to function.
#
# It is recommended that you have the scripts inserted in this order:
# Gamepad Extender, GE Game Adapter, ISO then GEGA - ISO (this script)
#
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
# Link to download GE Game Adapter: http://forums.rpgmakerweb.com/index.php?/topic/69589-ge-game-adapter/
# Link to download ISO: http://www.rgss-factory.net/2012/04/07/xpvxace-mgc-iso-engine/
#==============================================================================
module GEGAISOOptions
# If true, up, right, down and left will move you up-right, down-right,
# down-left, and up-left respectively.
# If false, up, down, left and right will do nothing on their own and will
# instead require multiple directions to be pressed.
SideDirections = false
end






#==============================================================================
# DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING!
#==============================================================================
if defined?(WolfPad) == nil
msgbox("WARNING: Gamepad Extender is either missing or executes sometime after this. To avoid issues, GEGA - ISO will not execute!")
elsif defined?(GEGAOptions) == nil
msgbox("WARNING: GE Game Adapter is either missing or executes sometime after this. To avoid issues, GEGA - ISO will not execute!")
elsif defined?(MGC_ISO_Map) == nil
msgbox("WARNING: ISO is either missing or executes sometime after this. To avoid issues, GEGA - ISO will not execute!")
else
class Game_Player
    #--------------------------------------------------------------------------
    # * Déplacements du joueur
    #--------------------------------------------------------------------------
    def update_directions
      if WolfPad.plugged_in?
      if GEGAOptions::MoveInput == 0
          dir_value = WolfPad.dird8
      elsif GEGAOptions::MoveInput == 1
          dir_value = WolfPad.lstick8
      elsif GEGAOptions::MoveInput == 2
          dir_value = WolfPad.lstick8
          dir_value = WolfPad.dird8 if dir_value == 0 || dir_value == 5
      end
      else
      dir_value = Input.dir8
      end
      if @move_with_parent && dir_value > 0&& dir_value != 5
      restore_moves
      start_emancipate
      end
      case dir_value
      when 1
      move_straight(2)
      when 2
      move_straight(2) if GEGAISOOptions::SideDirections || !WolfPad.plugged_in?
      when 3
      move_straight(6)
      when 4
      move_straight(4) if GEGAISOOptions::SideDirections || !WolfPad.plugged_in?
      when 7
      move_straight(4)
      when 6
      move_straight(6) if GEGAISOOptions::SideDirections || !WolfPad.plugged_in?
      when 8
      move_straight(8) if GEGAISOOptions::SideDirections || !WolfPad.plugged_in?
      when 9
      move_straight(8)
      end
    end
end
end


Spoiler: Layy meta - MGC                Code:       
#==============================================================================
# GEGA - Layy Meta
# by Jono99
#------------------------------------------------------------------------------
# This allows the map rotation to work when using GE Game Adapter by Jono99 and
# Layy by MGC.
#
# This script is based off of Gamepad Extender by Lone Wolf, GE Game Adapter by
# Jono99 and Layy Meta by MGC and requires all three scripts in order to function.
#
# It is recommended that you have the scripts inserted in this order:
# Gamepad Extender, GE Game Adapter, Layy Meta then GEGA - Layy (this script)
#
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
# Link to download GE Game Adapter: http://forums.rpgmakerweb.com/index.php?/topic/69589-ge-game-adapter/
# Link to download Layy Meta: http://www.rgss-factory.net/2013/07/27/ace-layy-meta-engine-editor-3d-isometric-maps/
#==============================================================================






#==============================================================================
# DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING!
#==============================================================================
if defined?(WolfPad) == nil
msgbox("WARNING: Gamepad Extender is either missing or executes sometime after this. To avoid issues, GEGA - Layy will not execute!")
elsif defined?(GEGAOptions) == nil
msgbox("WARNING: GE Game Adapter is either missing or executes sometime after this. To avoid issues, GEGA - Layy will not execute!")
elsif defined?(Layy_Meta) == nil
msgbox("WARNING: Layy Meta is either missing or executes sometime after this. To avoid issues, GEGA - Layy will not execute!")
else
module Layy_Meta
    #--------------------------------------------------------------------------
    # * Frame Update
    #--------------------------------------------------------------------------
    def self.update_input
      if Input.trigger?(PadConfig.page_up)
      rotate_by(90, 15)
      elsif Input.trigger?(PadConfig.page_down)
      rotate_by(-90, 15)
      end
    end
end
end


Spoiler: Mode7 Rotation Airship - MGCFor the record, Mode7 itself doesn't require any sort of extension to work with GE Game Adapter. If you're just using Mode7 on its own without the Rotation Airship, you don't need this GEGA Extension.
                Code:       
#==============================================================================
# GEGA - Mode 7 Rotation Airship
# by Jono99
#------------------------------------------------------------------------------
# This allows the map rotation to work when using GE Game Adapter by Jono99 and
# the Rotation Airship extention for Mode 7 by MGC.
#
# This script is based off of Gamepad Extender by Lone Wolf, GE Game Adapter by
# Jono99, Mode 7 by MGC and Mode 7 addon Rotation Airship by MGC and requires
# all three scripts in order to function.
#
# It is recommended that you have the scripts inserted in this order:
# Gamepad Extender, GE Game Adapter, Mode 7 and its addons,
# then GEGA - Mode 7 Rot Air (this script)
#
# Link to download Gamepad Extender: http://forums.rpgmakerweb.com/index.php?/topic/1284-gamepad-extender-v11-2202015/
# Link to download GE Game Adapter: http://forums.rpgmakerweb.com/index.php?/topic/69589-ge-game-adapter/
# Link to download Mode 7 (addons included): http://www.rgss-factory.net/2012/12/10/ace-mode-7-ace-v-1-3-addon-map-rotation-airship/
#==============================================================================






#==============================================================================
# DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING!
#==============================================================================
class Game_Player
attr_reader :already_aliased_mgc_m7a_addon_airship_rotation
end
if defined?(WolfPad) == nil
msgbox("WARNING: Gamepad Extender is either missing or executes sometime after this. To avoid issues, GEGA - Mode 7 Rot Air will not execute!")
elsif defined?(GEGAOptions) == nil
msgbox("WARNING: GE Game Adapter is either missing or executes sometime after this. To avoid issues, GEGA - Mode 7 Rot Air will not execute!")
else
class Game_Player
    #--------------------------------------------------------------------------
    # * Processing of Movement via Input from Directional Buttons
    #--------------------------------------------------------------------------
    def move_by_input
      unless MGC.mode7_active && in_airship?
      move_by_input_mgc_m7a_addon_airship_rotation
      return
      end
      @moving = false
      return if !movable? || $game_map.interpreter.running? || MGC.effect?
      @direction = 8
      if WolfPad.plugged_in?
      gega_mode_7_rot_air_move_by_input_input(:UP, :DOWN, :LEFT, :RIGHT) if GEGAOptions::MoveInput == 0 || GEGAOptions::MoveInput == 2
      gega_mode_7_rot_air_move_by_input_input(:L_UP, :L_DOWN, :L_LEFT, :L_RIGHT) if GEGAOptions::MoveInput > 0
      else
      gega_mode_7_rot_air_move_by_input_input(:UP, :DOWN, :LEFT, :RIGHT)
      end
    end
    def gega_mode_7_rot_air_move_by_input_input(up, down, left, right)
      if Input.press?(left)
      rotate_left
      elsif Input.press?(right)
      rotate_right
      end
      if Input.press?(up)
      move_forward_m7a
      elsif Input.press?(down)
      move_back_m7a
      end
    end
end
end




本贴来自国际rpgmaker官方论坛作者:Jono99处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/ge-game-adapter.69589/
页: [1]
查看完整版本: GE Game Adapter