#============================================================================
# 调试画面加强版(Ver 1.2) BY : RyanBern
#----------------------------------------------------------------------------
# 系统自带的Scene_Debug可以用于实时调试游戏中的各种对象,数据,但是功能方面
# 过于单一,因此对Scene_Debug作了很多扩充。在这里你可以更改物品/武器/防具的
# 持有数,修改金钱的值,以及角色和队伍的调整。
# Ver 1.1更新:增加了独立开关的更改。
# Ver 1.2更新:增加了脚本直接输入的功能。(其实是在不关闭游戏的条件下利用外
# 部txt文档,手懒没做Text Area)
# 以后我要想到什么会陆续往上加。
#----------------------------------------------------------------------------
# 用法和默认调试画面的一样,在游戏测试模式下按F9可以打开调试画面。
# 如果要使用脚本直接输入功能的话,先进入这个选项,然后会自动在游戏根目录下生
# 成一个叫Debug.txt的文档,输入你想执行的脚本即可。这个不同于事件解释器里面
# 的“脚本”命令,例如不可以用@event_id表示当前事件ID等。如果输入了有错误的
# 代码,为了游戏的稳定,不使用rescue来补救,而是报错之后退出,所以请输入正确
# 的代码。
#----------------------------------------------------------------------------
# 脚本冲突方面,可能和独立装备系统,背包系统,人物仓库系统,多货币系统冲突。
# 说得简单点就是这个调试系统对游戏数据的更改是根据默认系统的方式,如果有别的
# 外挂脚本更改了游戏数据结构,那么这个调试系统就会失效。
#============================================================================
#============================================================================
# Game_Temp
#----------------------------------------------------------------------------
# 追加属性
#============================================================================
class Game_Temp
attr_accessor :debug_command # 调试画面 保存状态用
alias rb_initialize initialize
def initialize
rb_initialize
@debug_command = 0
end
end
#============================================================================
# Window_DebugCommand
#----------------------------------------------------------------------------
# 调试画面的命令窗口(用于选取模式)
#============================================================================
class Window_DebugCommand < Window_Selectable
#--------------------------------------------------------------------------
# 初始化对象
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 320)
self.index = 0
refresh
end
#--------------------------------------------------------------------------
# 刷新
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@item_max = 9
self.contents = Bitmap.new(width - 32, @item_max * 32)
self.contents.draw_text(4, 0, 120, 32, "开关")
self.contents.draw_text(4, 32, 120, 32, "变量")
self.contents.draw_text(4, 64, 120, 32, "物品")
self.contents.draw_text(4, 96, 120, 32, "武器")
self.contents.draw_text(4, 128, 120, 32, "防具")
self.contents.draw_text(4, 160, 120, 32, "金钱")
self.contents.draw_text(4, 192, 120, 32, "角色")
self.contents.draw_text(4, 224, 120, 32, "独立开关")
self.contents.draw_text(4, 256, 120, 32, "输入代码")
end
end
#==============================================================================
# ■ Window_DebugLeft
#------------------------------------------------------------------------------
# 调试画面、指定开关及变量块的窗口。
#==============================================================================
class Window_DebugLeft < Window_Selectable
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(160, 0, 192, 352)
self.active = false
self.index = -1
@mode = 0
@debug_actor_items = ["替换队员", "增减等级", "增减MaxHP", "增减MaxSP",
"增减力量", "增减灵巧", "增减速度", "增减魔力"]
refresh
end
def adjust_cursor
if self.index > @item_max - 1
self.index = @item_max - 1
end
end
def mode=(mode)
if @mode != mode
@mode = mode
refresh
end
end
def real_max
case @mode
when 0
return $data_system.switches.size - 1
when 1
return $data_system.variables.size - 1
when 2
return $data_items.size - 1
when 3
return $data_weapons.size - 1
when 4
return $data_armors.size - 1
when 6
return @debug_actor_items.size
when 7
return @map_info.nil? ? 1 : @map_info.keys.size
else
return 1
end
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
case @mode
# Switches
when 0
@item_max = ($data_system.switches.size - 1 + 9) / 10
# Variables
when 1
@item_max = ($data_system.variables.size - 1 + 9) / 10
# Items
when 2
@item_max = ($data_items.size - 1 + 9) / 10
# Weapons
when 3
@item_max = ($data_weapons.size - 1 + 9) / 10
# Armors
when 4
@item_max = ($data_armors.size - 1 + 9) / 10
# Actors
when 6
@item_max = @debug_actor_items.size
# SelfSwitches
when 7
if @map_info.nil?
@map_info = load_data("Data/MapInfos.rxdata")
@map_id_array = @map_info.keys.sort
end
@item_max = @map_info.keys.size
else
@item_max = 1
end
case @mode
when 5
self.contents = Bitmap.new(width - 32, 32)
self.contents.draw_text(4, 0, width - 36, 32, "点击修改金钱")
when 6
self.contents = Bitmap.new(width - 32, @item_max * 32)
@debug_actor_items.each_with_index do |item, i|
self.contents.draw_text(4, i*32, width - 36, 32, item)
end
when 7
self.contents = Bitmap.new(width - 32, @item_max * 32)
@map_id_array.each_with_index do |id, i|
name = @map_info[id].name
text = sprintf("%03d:%s", id, name)
self.contents.draw_text(4, i*32, width - 36, 32, text)
end
when 8
self.contents = Bitmap.new(width - 32, 32)
self.contents.draw_text(4, 0, width - 36, 32, "点击执行代码")
else
self.contents = Bitmap.new(width - 32, @item_max * 32)
(0...@item_max).each do |i|
text = sprintf("%s [%04d-%04d]", ["S","V","I","W","A"][@mode], i*10+1, [i*10+10,real_max].min)
self.contents.draw_text(4, i*32, width - 36, 32, text)
end
end
end
#--------------------------------------------------------------------------
# ● 获取模式
#--------------------------------------------------------------------------
def mode
@mode
end
#--------------------------------------------------------------------------
# ● 获取开头显示的 ID
#--------------------------------------------------------------------------
def top_id
return self.index * 10 + 1
end
#--------------------------------------------------------------------------
# 获取地图 ID (在模式为7[独立开关]的情况下有效)
#--------------------------------------------------------------------------
def map_id
return @mode == 7 ? @map_id_array[self.index] : 0
end
end
#==============================================================================
# ■ Window_DebugRight
#------------------------------------------------------------------------------
# 调试画面、个别显示开关及变量的窗口。
#==============================================================================
class Window_DebugRight < Window_Selectable
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_reader :mode # 模式
attr_reader :sub_mode # 子模式(角色用)
attr_reader :top_id # 开头显示的 ID
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(160+192, 0, 448-160, 352)
self.index = -1
self.active = false
@item_max = 10
@mode = 0
@sub_mode = -1
@map_id = 0
@map = nil
@top_id = 1
refresh
end
#--------------------------------------------------------------------------
# 获取实际显示最大项目数
# (这个方法是为了解决越界BUG)
#--------------------------------------------------------------------------
def real_max
case @mode
when 0
return $data_system.switches.size - 1
when 1
return $data_system.variables.size - 1
when 2
return $data_items.size - 1
when 3
return $data_weapons.size - 1
when 4
return $data_armors.size - 1
when 6
return $data_actors.size - 1
when 7
return @map.nil? ? 1 : 4 * @map.events.keys.size
when 8
return 3
else
return 1
end
end
#--------------------------------------------------------------------------
# 模式为7[独立开关]的条件下,获取当前开关的主键
#--------------------------------------------------------------------------
def key
return [] if @mode != 7 || @item_max == 0
event_id = @event_id_array[self.index / 4]
tag = ['A', 'B', 'C', 'D'][self.index % 4]
return [@map_id, event_id, tag]
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh(need_reload_map = false)
if self.contents != nil
self.contents.dispose
self.contents = nil
end
if @mode == 7
if @map.nil? || need_reload_map
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
@event_id_array = @map.events.keys.sort
end
end
@item_max = [6,7,8].include?(@mode) ? real_max : [1 + real_max - @top_id, 10].min
return if @item_max == 0
self.contents = Bitmap.new(width - 32, @item_max * 32)
(0...@item_max).each do |i|
case @mode
when 0
name = $data_system.switches[@top_id+i]
status = $game_switches[@top_id+i] ? "[ON]" : "[OFF]"
when 1
name = $data_system.variables[@top_id+i]
status = $game_variables[@top_id+i].to_s
when 2
name = $data_items[@top_id+i].name
status = $game_party.item_number(@top_id+i).to_s
when 3
name = $data_weapons[@top_id+i].name
status = $game_party.weapon_number(@top_id+i).to_s
when 4
name = $data_armors[@top_id+i].name
status = $game_party.armor_number(@top_id+i).to_s
when 5
name = "金钱"
status = $game_party.gold.to_s
when 6
actor = $game_actors[i+1]
name = actor.name
case @sub_mode
when 0
status = $game_party.actors.include?(actor) ? "[IN]" : "[OUT]"
when 1
status = actor.level.to_s
when 2
status = actor.maxhp.to_s
when 3
status = actor.maxsp.to_s
when 4
status = actor.str.to_s
when 5
status = actor.dex.to_s
when 6
status = actor.agi.to_s
when 7
status = actor.int.to_s
else
status = ""
end
when 7
event_id = @event_id_array[i/4]
event = @map.events[event_id]
tag = ['A', 'B', 'C', 'D'][i%4]
name = event.name + " : " + tag
status = $game_self_switches[[@map_id, event_id, tag]] ? "[ON]" : "[OFF]"
else
name = ''
status = ''
end
if name == nil
name = ''
end
if @mode == 5
self.contents.draw_text(4, 0, width - 36, 32, name)
self.contents.draw_text(0 ,0, width - 32, 32, status, 2)
return
end
if @mode == 8
texts = []
texts[0] = "在游戏根目录下的"
texts[1] = "Debug.txt文件内键入"
texts[2] = "代码,点击确认键执行"
texts.each_with_index do |s, i|
self.contents.draw_text(4, 32 * i, width - 36, 32, s)
end
return
end
if @mode == 7
self.contents.draw_text(4, i * 32, 204, 32, name)
self.contents.draw_text(208, i * 32, 48, 32, status, 2)
next
end
id_text = sprintf("%04d:", @mode == 6 ? 1+i : @top_id+i)
self.contents.draw_text(4, i * 32, 60, 32, id_text)
self.contents.draw_text(60, i * 32, 148, 32, name)
self.contents.draw_text(208, i * 32, 48, 32, status, 2)
end
end
#--------------------------------------------------------------------------
# 设置子模式(在主模式为6[角色]的时候有效)
# sub_mode : 新的子模式
#--------------------------------------------------------------------------
def sub_mode=(sub_mode)
if @sub_mode != sub_mode
@sub_mode = sub_mode
refresh
end
end
#--------------------------------------------------------------------------
# 设置要显示的地图(在主模式为7[独立开关]的时候有效)
# map_id : 新的地图 ID
#--------------------------------------------------------------------------
def map_id=(map_id)
if @map_id != (map_id)
@map_id = map_id
refresh(true)
end
end
#--------------------------------------------------------------------------
# ● 设置模式
# mode : 新的模式
#--------------------------------------------------------------------------
def mode=(mode)
if @mode != mode
@mode = mode
refresh if @mode != 7
end
end
#--------------------------------------------------------------------------
# ● 设置开头显示的 ID
# id : 新的 ID
#--------------------------------------------------------------------------
def top_id=(id)
if @top_id != id
@top_id = id
refresh
end
end
end
#==============================================================================
# ■ Scene_Debug
#------------------------------------------------------------------------------
# 处理调试画面的类。
#==============================================================================
class Scene_Debug
#--------------------------------------------------------------------------
# ● 主处理
#--------------------------------------------------------------------------
def main
# 生成窗口
@command_window = Window_DebugCommand.new
@left_window = Window_DebugLeft.new
@right_window = Window_DebugRight.new
@help_window = Window_Base.new(160, 352, 480, 128)
@help_window.contents = Bitmap.new(448, 96)
# 还原为上次选择的项目
@command_window.index = $game_temp.debug_command
@left_window.top_row = $game_temp.debug_top_row
@left_window.index = $game_temp.debug_index
@right_window.mode = @left_window.mode = @command_window.index
@right_window.top_id = @left_window.top_id
# 连按计数
@press_count = 0
# 执行过渡
Graphics.transition
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入情报
Input.update
# 刷新画面
update
# 如果画面被切换的话就中断循环
if $scene != self
break
end
end
# 刷新地图
$game_map.refresh
# 装备过渡
Graphics.freeze
# 释放窗口
@command_window.dispose
@left_window.dispose
@right_window.dispose
@help_window.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
# 刷新窗口
@right_window.mode = @left_window.mode = @command_window.index
@right_window.sub_mode = @left_window.index if @left_window.mode == 6
if @left_window.mode == 7
@right_window.map_id = @left_window.map_id
else
@right_window.map_id = 0
end
@right_window.top_id = @left_window.top_id
@command_window.update
@left_window.update
@right_window.update
# 记忆选择中的项目
$game_temp.debug_command = @command_window.index
$game_temp.debug_top_row = @left_window.top_row
$game_temp.debug_index = @left_window.index
if @command_window.active
update_command
return
end
# 左侧窗口被激活的情况下: 调用 update_left
if @left_window.active
update_left
return
end
# 右侧窗口被激活的情况下: 调用 update_right
if @right_window.active
update_right
return
end
end
def update_command
@left_window.adjust_cursor
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 切换到地图画面
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@left_window.active = true
# 模式为8[执行代码]的情况下,不存在调试文件的,新建之
if @command_window.index == 8
text = "C (Enter) : Execute Code"
@help_window.contents.draw_text(4, 0, 406, 32, text)
unless FileTest.exist?("Debug.txt")
file = File.open("Debug.txt", "w")
file.close
end
end
return
end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (左侧窗口被激活的情况下)
#--------------------------------------------------------------------------
def update_left
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@left_window.active = false
@help_window.contents.clear
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 显示帮助
if @left_window.mode == 0 || @left_window.mode == 7
text1 = "C (Enter) : ON / OFF"
@help_window.contents.draw_text(4, 0, 406, 32, text1)
elsif @left_window.mode == 5
text1 = "← : -100 → : +100 ↑ : +1000 ↓ : -1000"
text2 = "L (Pageup) : -10000"
text3 = "R (Pagedown) : +10000"
@help_window.contents.draw_text(4, 0, 406, 32, text1)
@help_window.contents.draw_text(4, 32, 406, 32, text2)
@help_window.contents.draw_text(4, 64, 406, 32, text3)
elsif @left_window.mode == 6
case @right_window.sub_mode
when 0
text1 = "C (Enter) : IN / OUT"
when 1
text1 = "← : -1 → : +1"
when 2..3
text1 = "← : -10 → : +10"
when 4..7
text1 = "← : -5 → : +5"
end
@help_window.contents.draw_text(4, 0, 406, 32, text1)
elsif @left_window.mode != 8
text1 = "← : -1 → : +1"
text2 = "L (Pageup) : -10"
text3 = "R (Pagedown) : +10"
@help_window.contents.draw_text(4, 0, 406, 32, text1)
@help_window.contents.draw_text(4, 32, 406, 32, text2)
@help_window.contents.draw_text(4, 64, 406, 32, text3)
end
# 模式为8[执行代码]的情况下,直接执行
if @left_window.mode == 8
execute_code
return
end
# 激活右侧窗口
@left_window.active = false
@right_window.active = true
@right_window.index = 0
return
end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (右侧窗口被激活的情况下)
#--------------------------------------------------------------------------
def update_right
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 激活左侧窗口
@left_window.active = true
@right_window.active = false
@right_window.index = -1
# 删除帮助
@help_window.contents.clear
return
end
# 获取被选择的开关 / 变量的 ID
current_id = @right_window.top_id + @right_window.index
case @right_window.mode
# 开关的情况下
when 0
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 逆转 ON / OFF 状态
$game_switches[current_id] = (not $game_switches[current_id])
@right_window.refresh
return
end
# 变量的情况下
when 1
# 按下右键的情况下
if Input.repeat?(Input::RIGHT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 变量加 1
$game_variables[current_id] += 1
# 检查上限
if $game_variables[current_id] > 99999999
$game_variables[current_id] = 99999999
end
@right_window.refresh
return
end
# 按下左键的情况下
if Input.repeat?(Input::LEFT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 变量减 1
$game_variables[current_id] -= 1
# 检查下限
if $game_variables[current_id] < -99999999
$game_variables[current_id] = -99999999
end
@right_window.refresh
return
end
# 按下 R 键的情况下
if Input.repeat?(Input::R)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 变量加 10
$game_variables[current_id] += 10
# 检查上限
if $game_variables[current_id] > 99999999
$game_variables[current_id] = 99999999
end
@right_window.refresh
return
end
# 按下 L 键的情况下
if Input.repeat?(Input::L)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 变量减 10
$game_variables[current_id] -= 10
# 检查下限
if $game_variables[current_id] < -99999999
$game_variables[current_id] = -99999999
end
@right_window.refresh
return
end
# 物品的情况下
when 2
# 按下右键的情况下
if Input.repeat?(Input::RIGHT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 物品数加 1
$game_party.gain_item(current_id, 1)
@right_window.refresh
return
end
# 按下左键的情况下
if Input.repeat?(Input::LEFT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 物品数减 1
$game_party.lose_item(current_id, 1)
@right_window.refresh
return
end
# 按下 R 键的情况下
if Input.repeat?(Input::R)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 物品数加 10
$game_party.gain_item(current_id, 10)
@right_window.refresh
return
end
# 按下 L 键的情况下
if Input.repeat?(Input::L)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 物品数减 10
$game_party.lose_item(current_id, 10)
@right_window.refresh
return
end
# 武器的情况下
when 3
# 按下右键的情况下
if Input.repeat?(Input::RIGHT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 武器数加 1
$game_party.gain_weapon(current_id, 1)
@right_window.refresh
return
end
# 按下左键的情况下
if Input.repeat?(Input::LEFT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 武器数减 1
$game_party.lose_weapon(current_id, 1)
@right_window.refresh
return
end
# 按下 R 键的情况下
if Input.repeat?(Input::R)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 武器数加 10
$game_party.gain_weapon(current_id, 10)
@right_window.refresh
return
end
# 按下 L 键的情况下
if Input.repeat?(Input::L)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 武器数减 10
$game_party.lose_weapon(current_id, 10)
@right_window.refresh
return
end
# 防具的情况下
when 4
# 按下右键的情况下
if Input.repeat?(Input::RIGHT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 防具数加 1
$game_party.gain_armor(current_id, 1)
@right_window.refresh
return
end
# 按下左键的情况下
if Input.repeat?(Input::LEFT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 防具数减 1
$game_party.lose_armor(current_id, 1)
@right_window.refresh
return
end
# 按下 R 键的情况下
if Input.repeat?(Input::R)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 防具数加 10
$game_party.gain_armor(current_id, 10)
@right_window.refresh
return
end
# 按下 L 键的情况下
if Input.repeat?(Input::L)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 防具数减 10
$game_party.lose_armor(current_id, 10)
@right_window.refresh
return
end
# 金钱的情况下
when 5
# 按下右键的情况下
if Input.repeat?(Input::RIGHT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 金钱数加 100
$game_party.gain_gold(100)
@right_window.refresh
return
end
# 按下左键的情况下
if Input.repeat?(Input::LEFT)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 金钱数减 100
$game_party.lose_gold(100)
@right_window.refresh
return
end
if Input.repeat?(Input::UP)
$game_system.se_play($data_system.cursor_se)
$game_party.gain_gold(1000)
@right_window.refresh
return
end
if Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
$game_party.lose_gold(1000)
@right_window.refresh
return
end
# 按下 R 键的情况下
if Input.repeat?(Input::R)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 金钱数加 10000
$game_party.gain_gold(10000)
@right_window.refresh
return
end
# 按下 L 键的情况下
if Input.repeat?(Input::L)
# 演奏光标 SE
$game_system.se_play($data_system.cursor_se)
# 防具数减 10
$game_party.lose_gold(10000)
@right_window.refresh
return
end
# 角色的情况下
when 6
update_debug_actor
# 独立开关的情况下
when 7
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 获取信息
key = @right_window.key
# 无效的情况下
if key == []
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 逆转 ON / OFF 状态
$game_self_switches[key] ^= true
@right_window.refresh
return
end
end
end
def update_debug_actor
# 连按计数(只对左右键有效,这个是为了处理变化过慢的问题)
if Input.press?(Input::LEFT) || Input.press?(Input::RIGHT)
@press_count += 1
else
@press_count = 0
end
actor = $game_actors[@right_window.index+1]
if Input.trigger?(Input::C)
if @right_window.sub_mode == 0
$game_system.se_play($data_system.decision_se)
if $game_party.actors.include?(actor)
$game_party.remove_actor(actor.id)
else
$game_party.add_actor(actor.id)
end
end
return
end
if Input.repeat?(Input::LEFT) && @right_window.sub_mode > 0
if @press_count <= 80
rate = 1
end
if @press_count > 80 && @press_count <=200
rate = 5
end
if @press_count > 200
rate = 10
end
$game_system.se_play($data_system.cursor_se)
case @right_window.sub_mode
when 1
actor.level -= 1 * rate
when 2
actor.maxhp -= 10 * rate
when 3
actor.maxsp -= 10 * rate
when 4
actor.str -= 5 * rate
when 5
actor.dex -= 5 * rate
when 6
actor.agi -= 5 * rate
when 7
actor.int -= 5 * rate
end
return
end
if Input.repeat?(Input::RIGHT) && @right_window.sub_mode > 0
if @press_count <= 80
rate = 1
end
if @press_count > 80 && @press_count <=200
rate = 5
end
if @press_count > 200
rate = 10
end
$game_system.se_play($data_system.cursor_se)
case @right_window.sub_mode
when 1
actor.level += 1 * rate
when 2
actor.maxhp += 10 * rate
when 3
actor.maxsp += 10 * rate
when 4
actor.str += 5 * rate
when 5
actor.dex += 5 * rate
when 6
actor.agi += 5 * rate
when 7
actor.int += 5 * rate
end
return
end
@right_window.refresh
end
def execute_code
if FileTest.exist?("Debug.txt")
file = File.open("Debug.txt", "r")
str = file.read
eval(str)
file.close
print "代码执行完毕!"
else
print '找不到文件"Debug.txt"'
end
end
end