本帖最后由 芯☆淡茹水 于 2013-4-30 20:23 编辑
复制该脚本,插入到 main 前。
#============================================================================== class Scene_Map def call_menu # 清除菜单调用标志 $game_temp.menu_calling = false # 已经设置了菜单 SE 演奏标志的情况下 if $game_temp.menu_beep # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 清除菜单演奏 SE 标志 $game_temp.menu_beep = false end # 矫正主角姿势 $game_player.straighten # 切换到菜单画面 $scene = Scene_Item.new end end #============================================================================== class Scene_Item def update_item # 按下 B 键的情况下 if Input.trigger?(Input::B) # 演奏取消 SE $game_system.se_play($data_system.cancel_se) # 切换到菜单画面 $scene = Scene_Map.new return end # 按下 C 键的情况下 if Input.trigger?(Input::C) # 获取物品窗口当前选中的物品数据 @item = @item_window.item # 不使用物品的情况下 unless @item.is_a?(RPG::Item) # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 不能使用的情况下 unless $game_party.item_can_use?(@item.id) # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 效果范围是我方的情况下 if @item.scope >= 3 # 激活目标窗口 @item_window.active = false @target_window.x = (@item_window.index + 1) % 2 * 304 @target_window.visible = true @target_window.active = true # 设置效果范围 (单体/全体) 的对应光标位置 if @item.scope == 4 || @item.scope == 6 @target_window.index = -1 else @target_window.index = 0 end # 效果在我方以外的情况下 else # 公共事件 ID 有效的情况下 if @item.common_event_id > 0 # 预约调用公共事件 $game_temp.common_event_id = @item.common_event_id # 演奏物品使用时的 SE $game_system.se_play(@item.menu_se) # 消耗品的情况下 if @item.consumable # 使用的物品数减 1 $game_party.lose_item(@item.id, 1) # 再描绘物品窗口的项目 @item_window.draw_item(@item_window.index) end # 切换到地图画面 $scene = Scene_Map.new return end end return end end end #==============================================================================
#==============================================================================
class Scene_Map
def call_menu
# 清除菜单调用标志
$game_temp.menu_calling = false
# 已经设置了菜单 SE 演奏标志的情况下
if $game_temp.menu_beep
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 清除菜单演奏 SE 标志
$game_temp.menu_beep = false
end
# 矫正主角姿势
$game_player.straighten
# 切换到菜单画面
$scene = Scene_Item.new
end
end
#==============================================================================
class Scene_Item
def update_item
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 切换到菜单画面
$scene = Scene_Map.new
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 获取物品窗口当前选中的物品数据
@item = @item_window.item
# 不使用物品的情况下
unless @item.is_a?(RPG::Item)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 不能使用的情况下
unless $game_party.item_can_use?(@item.id)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 效果范围是我方的情况下
if @item.scope >= 3
# 激活目标窗口
@item_window.active = false
@target_window.x = (@item_window.index + 1) % 2 * 304
@target_window.visible = true
@target_window.active = true
# 设置效果范围 (单体/全体) 的对应光标位置
if @item.scope == 4 || @item.scope == 6
@target_window.index = -1
else
@target_window.index = 0
end
# 效果在我方以外的情况下
else
# 公共事件 ID 有效的情况下
if @item.common_event_id > 0
# 预约调用公共事件
$game_temp.common_event_id = @item.common_event_id
# 演奏物品使用时的 SE
$game_system.se_play(@item.menu_se)
# 消耗品的情况下
if @item.consumable
# 使用的物品数减 1
$game_party.lose_item(@item.id, 1)
# 再描绘物品窗口的项目
@item_window.draw_item(@item_window.index)
end
# 切换到地图画面
$scene = Scene_Map.new
return
end
end
return
end
end
end
#==============================================================================
|