玩过许多RM的游戏
我发现许多"单一主角"的游戏都有一些通病
RM的选单差不多都长这样:
╭──╮╭──────╮
│物品││主角 hp▂▂ │
│技能││ mp▂▂ │
│状态││以下空白... │
│装备││ │
│存盘││ │
╰──╯│ │
│ │
╰──────╯
若是只有一位主角的话
Window_MenuStatus就会显得很空虚
不过这不是重点 而是选单的逻辑问题
在默认的情况 就算只有一位主角
在技能状态装备这三个选项仍会呼叫Window_MenuStatus
并且要你再按下一次确认键 很多余
所以要改的是Scene_Menu这个类别23~25行
@command_window.set_handler(:skill, method(:command_personal))
@command_window.set_handler(:equip, method(:command_personal))
@command_window.set_handler(:status, method(:command_personal))
改成
@command_window.set_handler(:item, method(:command_item))
@command_window.set_handler(:skill, method(:command_skill))
@command_window.set_handler(:equip, method(:command_equip))
其实只要三个不一样就可以...
并在下面定义这三个方法
def command_item
clear_stand
$game_party.menu_actor = $game_actors[1]
SceneManager.call(Scene_Item)
end
def command_skill
clear_stand
$game_party.menu_actor = $game_actors[1]
SceneManager.call(Scene_Skill)
end
def command_equip
clear_stand
$game_party.menu_actor = $game_actors[1]
SceneManager.call(Scene_Equip)
end
因为主角只有一个所以$game_actors[]的index是1
这样就不用再多按一次了!
等等 还没完呢
记得Window_MenuStatus还会在哪出现吗
就是在使用道具的时候!
Scene_ItemBase的79行开始
def determine_item
if item.for_friend?
show_sub_window(@actor_window)
@actor_window.select_for_item(item)
else
use_item
activate_item_window
end
end
改成:
def determine_item
if item_usable?
use_item
activate_item_window
else
Sound.play_buzzer
activate_item_window
end
end
这样应该就行了!
行云流水无障碍的选单不是让人心灵舒畅吗~
很多作品有剧情 有画面 有可玩性 UI也是美美的
但就是有那么一点小瑕疵 蛮可惜的
2016/04/01
发现当满血却想喝药水时
BUG Sound.play_buzzer 跟Sound.play_ok会同时执行
于是修改Window_ItemList 及 Window_SkillList
这两个都继承Window_Selectable
复制Window_Selectable内以下几行
def process_ok
if current_item_enabled?
Sound.play_ok
Input.update
deactivate
call_ok_handler
else
Sound.play_buzzer
end
end
把Sound.play_ok去掉并加入Window_ItemList与Window_SkillList里就行