[閒聊] 個人關於選單的一點小執著VXACE

作者: snegi (  ̄灬 ̄)   2016-03-29 05:31:39
玩過許多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裡就行
作者: w60241 (小羽)   2016-03-29 11:35:00
推推
作者: dd830611 (歐拉歐拉)   2016-04-03 21:08:00
推,改天試試看

Links booklink

Contact Us: admin [ a t ] ucptt.com