いつもお世話になっております。
表題の件でご助力お願いします。
アイテム
スキル
装備
ステータス
並び替え
セーブ
ゲーム終了
通常このようなメニューコマンドを
アイテム
スキルタイプ①
スキルタイプ②
装備
ステータス
並び替え
セーブ
ゲーム終了
のようにしたいのですが方法があれば教えて頂きたいです。
ちなみにメニューコマンド関連のスクリプトでレーネ様のメニューコマンドソート RGSS3というコマンドを並び替える機能のものを利用しています。
【解決済】 メニューコマンドでスキルタイプを分けて表示
【解決済】 メニューコマンドでスキルタイプを分けて表示
最後に編集したユーザー しろう [ 2021年2月26日(金) 20:40 ], 累計 1 回
Re: メニューコマンドでスキルタイプを分けて表示
どうもこんにちは
そのくらい簡単、と思ったら思いっきり競合しそうなスクリプト入れてますね
同順の場合不定なので確実を期す為にその辺も考慮しときましょうか
ソート指定には:skillの代わりに:skill1,:skill2を使用してください
スクリプトセクションの差し込み位置はどこでも良いけど強いて言うなら下の方が良いですかね
一応、スキルタイプに合わせて初期位置を変更程度の事はしていますけどこんなもんですか
そのくらい簡単、と思ったら思いっきり競合しそうなスクリプト入れてますね
同順の場合不定なので確実を期す為にその辺も考慮しときましょうか
ソート指定には:skillの代わりに:skill1,:skill2を使用してください
スクリプトセクションの差し込み位置はどこでも良いけど強いて言うなら下の方が良いですかね
一応、スキルタイプに合わせて初期位置を変更程度の事はしていますけどこんなもんですか
コード: 全て選択
#==============================================================================
# ■ メニューコマンドでスキルタイプを分けて表示
#------------------------------------------------------------------------------
#
#==============================================================================
module Frog
MENU_STYPE_ID_1 = 1
MENU_STYPE_ID_2 = 2
end
class Window_MenuCommand < Window_Command
#--------------------------------------------------------------------------
# ○ 主要コマンドをリストに追加
#--------------------------------------------------------------------------
def add_main_commands
add_command(Vocab::item, :item, main_commands_enabled)
add_command($data_system.skill_types[Frog::MENU_STYPE_ID_1], :skill1, main_commands_enabled, Frog::MENU_STYPE_ID_1)
add_command($data_system.skill_types[Frog::MENU_STYPE_ID_2], :skill2, main_commands_enabled, Frog::MENU_STYPE_ID_2)
add_command(Vocab::equip, :equip, main_commands_enabled)
add_command(Vocab::status, :status, main_commands_enabled)
end
end
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# ○ コマンドウィンドウの作成
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_MenuCommand.new
@command_window.set_handler(:item, method(:command_item))
@command_window.set_handler(:skill1, method(:command_personal))
@command_window.set_handler(:skill2, method(:command_personal))
@command_window.set_handler(:equip, method(:command_personal))
@command_window.set_handler(:status, method(:command_personal))
@command_window.set_handler(:formation, method(:command_formation))
@command_window.set_handler(:save, method(:command_save))
@command_window.set_handler(:game_end, method(:command_game_end))
@command_window.set_handler(:cancel, method(:return_scene))
end
#--------------------------------------------------------------------------
# ○ 個人コマンド[決定]
#--------------------------------------------------------------------------
def on_personal_ok
case @command_window.current_symbol
when :skill1, :skill2
SceneManager.call(Scene_Skill)
SceneManager.scene.prepare(@command_window.current_ext)
when :equip
SceneManager.call(Scene_Equip)
when :status
SceneManager.call(Scene_Status)
end
end
end
class Scene_Skill < Scene_ItemBase
#--------------------------------------------------------------------------
# ● 準備処理
#--------------------------------------------------------------------------
def prepare(stype_id)
@init_stype_id = stype_id
end
#--------------------------------------------------------------------------
# ○ 開始処理
#--------------------------------------------------------------------------
alias :_old_start :start
def start
_old_start
@command_window.select_ext(@init_stype_id)
@command_window.deactivate
command_skill
end
end
Re: メニューコマンドでスキルタイプを分けて表示
名無し蛙さま、早速のご対応ありがとうございます。
ひとつ疑問なのですが
スキル①
スキル②
↑でスキル①を選択するとその先のコマンドもスキル①とスキル②があるのですがこれをスキル①一覧にする事は可能でしょうか?
ひとつ疑問なのですが
スキル①
スキル②
↑でスキル①を選択するとその先のコマンドもスキル①とスキル②があるのですがこれをスキル①一覧にする事は可能でしょうか?
Re: メニューコマンドでスキルタイプを分けて表示
ああ。やっぱりそっちもですか
仕様上スキル画面とメニュー画面は連続していなくて
リクエストの範疇に無いスキル画面を過分に弄るのもどうかと思ったんですけど
まぁ、自分も中途半端だなと感じていたのでそこまで改造しておきましょうか
上記のコードはスクリプト素材に拠りスキル画面が改造済の場合もある程度考慮していましたが
下記の物は完全に度外視しています
仕様上スキル画面とメニュー画面は連続していなくて
リクエストの範疇に無いスキル画面を過分に弄るのもどうかと思ったんですけど
まぁ、自分も中途半端だなと感じていたのでそこまで改造しておきましょうか
上記のコードはスクリプト素材に拠りスキル画面が改造済の場合もある程度考慮していましたが
下記の物は完全に度外視しています
コード: 全て選択
#==============================================================================
# ■ メニューコマンドでスキルタイプを分けて表示
#------------------------------------------------------------------------------
#
#==============================================================================
module Frog
MENU_STYPE_ID_1 = 1
MENU_STYPE_ID_2 = 2
end
class Window_MenuCommand < Window_Command
#--------------------------------------------------------------------------
# ○ 主要コマンドをリストに追加
#--------------------------------------------------------------------------
def add_main_commands
add_command(Vocab::item, :item, main_commands_enabled)
add_command($data_system.skill_types[Frog::MENU_STYPE_ID_1], :skill1, main_commands_enabled, Frog::MENU_STYPE_ID_1)
add_command($data_system.skill_types[Frog::MENU_STYPE_ID_2], :skill2, main_commands_enabled, Frog::MENU_STYPE_ID_2)
add_command(Vocab::equip, :equip, main_commands_enabled)
add_command(Vocab::status, :status, main_commands_enabled)
end
end
class Window_SkillStatus < Window_Base
#--------------------------------------------------------------------------
# ○ ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
Graphics.width
end
end
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# ○ コマンドウィンドウの作成
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_MenuCommand.new
@command_window.set_handler(:item, method(:command_item))
@command_window.set_handler(:skill1, method(:command_personal))
@command_window.set_handler(:skill2, method(:command_personal))
@command_window.set_handler(:equip, method(:command_personal))
@command_window.set_handler(:status, method(:command_personal))
@command_window.set_handler(:formation, method(:command_formation))
@command_window.set_handler(:save, method(:command_save))
@command_window.set_handler(:game_end, method(:command_game_end))
@command_window.set_handler(:cancel, method(:return_scene))
end
#--------------------------------------------------------------------------
# ○ 個人コマンド[決定]
#--------------------------------------------------------------------------
def on_personal_ok
case @command_window.current_symbol
when :skill1, :skill2
SceneManager.call(Scene_Skill)
SceneManager.scene.prepare(@command_window.current_ext)
when :equip
SceneManager.call(Scene_Equip)
when :status
SceneManager.call(Scene_Status)
end
end
end
class Scene_Skill < Scene_ItemBase
#--------------------------------------------------------------------------
# ● 準備処理
#--------------------------------------------------------------------------
def prepare(stype_id)
@stype_id = stype_id
end
#--------------------------------------------------------------------------
# ○ 開始処理
#--------------------------------------------------------------------------
def start
super
create_help_window
create_status_window
create_item_window
end
#--------------------------------------------------------------------------
# ○ ステータスウィンドウの作成
#--------------------------------------------------------------------------
def create_status_window
y = @help_window.height
@status_window = Window_SkillStatus.new(0, y)
@status_window.viewport = @viewport
@status_window.actor = @actor
end
#--------------------------------------------------------------------------
# ○ アイテムウィンドウの作成
#--------------------------------------------------------------------------
def create_item_window
wx = 0
wy = @status_window.y + @status_window.height
ww = Graphics.width
wh = Graphics.height - wy
@item_window = Window_SkillList.new(wx, wy, ww, wh)
@item_window.actor = @actor
@item_window.viewport = @viewport
@item_window.help_window = @help_window
@item_window.set_handler(:ok, method(:on_item_ok))
@item_window.set_handler(:cancel, method(:return_scene))
@item_window.set_handler(:pagedown, method(:next_actor))
@item_window.set_handler(:pageup, method(:prev_actor))
@item_window.stype_id = @stype_id
@item_window.select(0)
@item_window.activate
end
#--------------------------------------------------------------------------
# ○ アクターの切り替え
#--------------------------------------------------------------------------
def on_actor_change
@status_window.actor = @actor
@item_window.actor = @actor
@item_window.activate
end
end
Re: メニューコマンドでスキルタイプを分けて表示
ありがとうございます。
希望通りの構成になりました!
解決済とさせていただきます。
希望通りの構成になりました!
解決済とさせていただきます。