【解決済】RGSSスクリプト倉庫 様の「PT編集用画面」をカスタマイズしたい

返信する
しりす
記事: 4
登録日時: 2025年3月17日(月) 00:57

【解決済】RGSSスクリプト倉庫 様の「PT編集用画面」をカスタマイズしたい

投稿記事 by しりす »

RGSS3 PT編集用画面 Ver2.12-β12
http://blog.livedoor.jp/kuremente-rgsss ... 12834.html

上記サイト様のPT編集用画面を使用させていただいております。
待機メンバーが増えた際に「パーティから外す」コマンドまでカーソルをあわせるのが億劫になると考え、
「パーティから外す」コマンドを先頭に配置したいと考えております。
その方法をご存知の方がいらっしゃいましたらご教授いただけると幸いです。

他スクリプト導入状況は以下のようになっております。
・併用化ベーススクリプト:未導入
・コスト制追加オプションスクリプト:導入済

何卒、よろしくお願いいたします!
最後に編集したユーザー しりす [ 2025年3月20日(木) 15:11 ], 累計 1 回
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

Re: RGSSスクリプト倉庫 様の「PT編集用画面」をカスタマイズしたい

投稿記事 by 名無し蛙 »

要はコマンドリストの末尾を削除して、先頭に挿入すれば良いので
RGSS3 PT編集用画面の直下のセクションに

コード: 全て選択

class Window_WaitMember_List < Window_Command
  alias :_old_make_command_list :make_command_list
  def make_command_list
    _old_make_command_list
    @list.unshift @list.pop
  end
end
と書けば良いと思います
しりす
記事: 4
登録日時: 2025年3月17日(月) 00:57

Re: RGSSスクリプト倉庫 様の「PT編集用画面」をカスタマイズしたい

投稿記事 by しりす »

名無し蛙様
ご回答ありがとうございます!
しかし、いただいたスクリプトを配置したところ、
添付画像のようにキャラクターの名前が一つずれるのみで選択対象は変わらないままとなりました。
添付画像の例だと「外す」を選択するとエリックが入れ替えられて「イザベル」を選択するとパーティから外れる挙動となっております。
もう一つ考慮が必要そうですね…。
添付ファイル
test.jpg
test.jpg (243.79 KiB) 閲覧された回数 2974 回
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

Re: RGSSスクリプト倉庫 様の「PT編集用画面」をカスタマイズしたい

投稿記事 by 名無し蛙 »

すみません。実行環境を揃えるのが億劫でコードだけ眺めて回答しました
なるほど、簡易ステータスウィンドウは選択内容と同期している訳ではないんですね
しかし元のコードがかなり柔軟性に欠けるので
ここから帳尻合わせようとするとがっつり改造する必要がありそうです

そこで目的が
>待機メンバーが増えた際に「パーティから外す」コマンドまでカーソルをあわせるのが億劫になると考え、
であるのならば初期カーソル位置を「パーティから外す」(選択肢末尾)に固定する事を提案します。
これでカーソル合わせは解決しますがどうですかね?

コード: 全て選択

class Scene_PartyEdit < Scene_MenuBase
  def waitm_w_set
    @waitmember_window.active = true
    @ptmember_window.active = false
    $k_edit_party_last_selection = @ptmember_window.index
    # @waitmember_window.index = 0
    @waitmember_window.index = @waitmember_window.item_max - 1
    #項目再描画
    @waitmember_window.refresh
    @ptmember_window.refresh
    if $k_wait_member_list[0] != nil
      @status_window_1.actor = $game_actors[$k_wait_member_list[0]]
    else
      @status_window_1.actor = nil
    end    
    @status_window_1.refresh
  end
end
前回のコードを消してこのコードに書き換えてください。
コアスクリプトを踏襲しているようであまり踏襲していない
独特な処理体系をしているので触るのは必要最小限に留めたいです。
しりす
記事: 4
登録日時: 2025年3月17日(月) 00:57

Re: RGSSスクリプト倉庫 様の「PT編集用画面」をカスタマイズしたい

投稿記事 by しりす »

名無し蛙様
ご回答ありがとうございます!
たしかに、初期カーソルを外すに合わせることでも満たしそうですね。
いただいたスクリプトを配置したところ、「外す」のウィンドウに先頭キャラクターの情報が表示されてしまうといった現象が発生してしまいました。(パーティから外す動作は機能しております)
おっしゃる通り、元のコードとの兼ね合いに一癖ありそうです…。

以下の動作を実装でも代用できないかとも考えたのですが、やはり改造難度が高くなってしまうでしょうか?

パーティキャラクターにカーソルを合わせた状態、
または入れ替えるキャラクターを選択する状態から
ワンボタン入力(SHIFTキー押下など)でパーティから外すを実行
添付ファイル
test.jpg
test.jpg (249.15 KiB) 閲覧された回数 2885 回
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

Re: RGSSスクリプト倉庫 様の「PT編集用画面」をカスタマイズしたい

投稿記事 by 名無し蛙 »

しりす さんが書きました:パーティキャラクターにカーソルを合わせた状態、
または入れ替えるキャラクターを選択する状態から
ワンボタン入力(SHIFTキー押下など)でパーティから外すを実行
こんな感じですかね

コード: 全て選択

class Window_PartyMember_List < Window_Command
  #--------------------------------------------------------------------------
  # ● 決定やキャンセルなどのハンドリング処理
  #--------------------------------------------------------------------------
  def process_handling
    super
    call_handler(:shift) if handle?(:shift) && Input.trigger?(:SHIFT)
  end
end

class Scene_PartyEdit < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ○ パーティーメンバーウィンドウの作成
  #--------------------------------------------------------------------------
  alias :_old_create_ptmember_window :create_ptmember_window
  def create_ptmember_window
    _old_create_ptmember_window
    @ptmember_window.set_handler(:shift, method(:on_ptm_shift))
  end  
  #--------------------------------------------------------------------------
  # ● パーティウィンドウのシフト処理
  #--------------------------------------------------------------------------
  def on_ptm_shift
    @edit_flag = 1
    Sound.play_equip
    $k_edit_party_list[$k_edit_party_last_selection] = nil
    @waitmember_window.refresh
    @ptmember_window.refresh
    @status_window_1.actor = nil
  end
  #--------------------------------------------------------------------------
  # ○ 待機メンバーウィンドウのアクティブ処理
  #--------------------------------------------------------------------------
  def waitm_w_set
    @waitmember_window.active = true
    @ptmember_window.active = false
    $k_edit_party_last_selection = @ptmember_window.index
    # @waitmember_window.index = 0
    @waitmember_window.index = @waitmember_window.item_max - 1
    #項目再描画
    @waitmember_window.refresh
    @ptmember_window.refresh
    if $k_wait_member_list[0] != nil
      @status_window_1.actor = $game_actors[$k_wait_member_list[0]]
    else
      @status_window_1.actor = nil
    end    
    @status_window_1.refresh
  end
end
処理の改造よりも追加の方がまだ楽ではあるんですけど
レアケースもカバーし切れているかはあまり自信ないです
しりす
記事: 4
登録日時: 2025年3月17日(月) 00:57

Re: RGSSスクリプト倉庫 様の「PT編集用画面」をカスタマイズしたい

投稿記事 by しりす »

名無し蛙 様
動かしてみた所、想定した通りの動作となりました!
これでスムーズなパーティ編成ができるようになったかと思われます!
ありがとうございました!
返信する

“VX / Ace:質問”に戻る