【RGSS3】装備メニューの『最強装備』を『初期装備』に

せくもん
記事: 72
登録日時: 2018年6月09日(土) 21:48

【RGSS3】装備メニューの『最強装備』を『初期装備』に

投稿記事by せくもん » 2022年3月28日(月) 11:30

いつもお世話になっております。

RPGツクールVXaceのメニュー画面の装備メニューの中に
『最強装備』というコマンドがあります。
デフォルトでは、手持ちの装備品の中で最も能力値の上昇が大きい物と
現在の装備品を武器から装飾品まで一括で変更するという仕様になっていますが
これを、データベース上で設定した初期装備に変更する仕様に替えたい場合には
どの様にスクリプトを記述すれば良いでしょうか?

『初期装備に戻す』という方式だと、既に売ってしまっていたり
他のパーティメンバーが装備していて、変更出来ないはずの装備品が
増殖してしまう可能性があるので
通常の最強装備と同様に、手持ちに無い部位は変更しない方式にしたいです。

奈々(なな)
記事: 103
登録日時: 2016年11月06日(日) 16:57

Re: 【RGSS3】装備メニューの『最強装備』を『初期装備』に

投稿記事by 奈々(なな) » 2022年3月30日(水) 16:12

RGSS3_最強装備拡張
http://heptanas.mamagoto.com/Entry/148/

こちらのスクリプトで最強装備の基準を変更できますので
これで初期装備の評価を100に指定、それ以外には評価を付けないか0として
初期設定を0にすれば要望の仕様になるかと思います。

アクターや職業毎に別のものを指定することも可能です。
------------------------------------------------------------------------------------
へぷたなすくろーる
http://heptanas.mamagoto.com/

VXAceのスクリプト素材及びイベント講座などをやっています。
------------------------------------------------------------------------------------
せくもん
記事: 72
登録日時: 2018年6月09日(土) 21:48

Re: 【RGSS3】装備メニューの『最強装備』を『初期装備』に

投稿記事by せくもん » 2022年4月03日(日) 13:18

奈々(なな)様、ご返答ありがとうございます。

ご紹介いただいたスクリプトを導入して試してみたところ
パーティが初期装備を所持している時は問題なく動作するのですが
初期装備を売ってしまっていたり他のパーティメンバーが装備していて
手持ちに存在しない場合は、『最強装備』のコマンドを選択した際に
現在装備中の物が外れてしまうみたいです。

じゃあ、初期装備以外の評価を全て1にすれば良いのではないかと思ったのですが
今度は『全て外す』のコマンドを選んでから『最強装備』を選択すると
初期装備とは無関係のIDが最も小さい装備品を装備してしまいます。

サイトの説明文によると

>評価が0の装備は、装備可能であっても最強装備で選ばれません。
>これは呪い装備などを再現するためのものです。

との事ですが、手持ちの装備品が評価0の物しか無い場合
『最強装備』を選択すると現在装備中の物が外れるというのは
このスクリプトの仕様通りの挙動なのでしょうか?
それとも他のスクリプトとの競合の可能性があるのでしょうか?
TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 【RGSS3】装備メニューの『最強装備』を『初期装備』に

投稿記事by TOMO » 2022年4月03日(日) 14:42

多分こんな感じ?

コード: 全て選択

class Game_Actor
  #--------------------------------------------------------------------------
  # ● 最強装備
  #--------------------------------------------------------------------------
  def optimize_equipments
    clear_equipments
    actor.equips.each_with_index do |item_id, slot_id|
      change_equip_by_id(slot_id, item_id)
    end
  end
end
単純に「最強装備」で、所持してるそのキャラの初期装備に変更するだけのスクリプトです
せくもん
記事: 72
登録日時: 2018年6月09日(土) 21:48

Re: 【RGSS3】装備メニューの『最強装備』を『初期装備』に

投稿記事by せくもん » 2022年4月03日(日) 16:50

TOMO様、ご返答ありがとうございます。

教えていただいたスクリプトを試してみたところ
やはり奈々(なな)様のスクリプトと同じように
初期装備を所持していない場合、現在装備中の物が外れてしまうみたいです。

理想としては、ミスリルシールドを装備したエリックが『最強装備』を選択した場合

①ウッドシールドを持っている → ウッドシールドに付け替える

②ウッドシールドを売ってしまっている → 初期装備を持っていないので、何も変更しない

という形にしたいのですが、①の部分はどちらのスクリプトでも可能なのですが
②の部分がどうしても上手くいきません。
奈々(なな)
記事: 103
登録日時: 2016年11月06日(日) 16:57

Re: 【RGSS3】装備メニューの『最強装備』を『初期装備』に

投稿記事by 奈々(なな) » 2022年4月03日(日) 20:02

ご確認ありがとうございます。

手持ちの装備品が評価0の物しか無い場合
『最強装備』を選択すると現在装備中の物が外れるというのは
このスクリプトの仕様通りの挙動なのでしょうか?
それとも他のスクリプトとの競合の可能性があるのでしょうか?

失礼しました。競合ではなく、スクリプト自体がそういう処理になっています。
ですがこれは仕様というより想定外の挙動です。

そもそも、スクリプトの目的からすると、せくもんさんの要望と同じく
「現装備と同じ評価のものしかなければ装備は変えない」ようにすべきなので
お時間を頂ければ、本件に関わらず、こちらのスクリプトの素材は修正致します。

宜しくお願いします。
------------------------------------------------------------------------------------
へぷたなすくろーる
http://heptanas.mamagoto.com/

VXAceのスクリプト素材及びイベント講座などをやっています。
------------------------------------------------------------------------------------
TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 【RGSS3】装備メニューの『最強装備』を『初期装備』に

投稿記事by TOMO » 2022年4月04日(月) 15:47

ならこんな感じかな?

コード: 全て選択

class Game_Actor
  #--------------------------------------------------------------------------
  # ● 最強装備
  #--------------------------------------------------------------------------
  def optimize_equipments
    actor.equips.each_with_index do |item_id, slot_id|
      etype_id = equip_slots[slot_id]
      item = etype_id == 0 ? $data_weapons[item_id] : $data_armors[item_id]
      change_equip(slot_id, item) if $game_party.has_item?(item)
    end
  end
end
※デフォルトだと「装備タイプ:0が武器、それ以外が防具」となってるので、
スクリプト等でその辺を変更している場合は改造して使って下さい
(私の作ったアイテムを装備するスクリプトとか)
せくもん
記事: 72
登録日時: 2018年6月09日(土) 21:48

Re: 【RGSS3】装備メニューの『最強装備』を『初期装備』に

投稿記事by せくもん » 2022年4月05日(火) 19:22

奈々(なな)様、TOMO様、ご返答ありがとうございます。

教えていただいたスクリプトを試してみたところ
無事に想定通りの挙動を確認できました。
また、奈々(なな)様に関しましても素材への修正を
ご検討との事で感謝致します。

自分のゲームではアクターの『最大HP』『最大MP』『戦闘中のスキル』が全て装備品依存であり
高威力の攻撃スキルを使える装備は最大HPが5しか上がらない等
単純にパラメーターの数字の大小で最強装備を判定する事が難しい為
それならば、突出した強さは無いが攻撃スキルから回復スキルまで一通り揃っている
初期装備に一旦リセット出来るコマンドがあった方が利便性が高いと感じたので
今回、この様な質問をさせていただきました。

お二方とも、どうもありがとうございました。

“VX / Ace:質問” へ戻る