[解決済]薬の知識をメニュー画面で適用させたくない。

RPG作るマン
記事: 14
登録日時: 2021年11月14日(日) 01:42

[解決済]薬の知識をメニュー画面で適用させたくない。

投稿記事by RPG作るマン » 2023年7月17日(月) 01:19

こんにちは!
パラメータの中でも影の薄い【薬の知識】ですが、戦闘中とメニュー画面で仕様が異なると思います。

●戦闘中にアイテム使用時
 アイテムを使用したアクターの薬の知識のパラメーターを参照し、回復量を設定。
●メニュー画面でアイテム使用時
 パーティの中で最も高い薬の知識を持つアクターのパラメーターを参照し、回復量を設定。

この仕様を、

●戦闘中にアイテム使用時
⇒変更なし。
●メニュー画面でアイテム使用時
⇒パーティメンバーのパラメーターによらず、常にデータベースで設定した値(100%)を適用。

と変更したく考えてます。
プラグインの作成、もしくはコアスクリプト内の修正箇所を教えてください。
どうぞよろしくお願いいたします。
最後に編集したユーザー RPG作るマン on 2023年7月17日(月) 19:18 [ 編集 1 回目 ]

名無し蛙
記事: 310
登録日時: 2015年11月23日(月) 02:46

Re: 薬の知識をメニュー画面で適用させたくない。

投稿記事by 名無し蛙 » 2023年7月17日(月) 07:50

アイテムを使用する為には「行動可能なアクター」の存在が不可欠です。
「行動可能」とは行動制約「行動できない」が設定されたステートが一つも付与されていない事ですね。
メニュー時のアイテム使用も厳密にはパーティ最大のphaを取得している訳ではなく
パーティの中の行動可能アクターの中からphaが最大値のアクターを取得しています。
これがどういう事かというとphaが最も高いアクターが戦闘不能の場合、次点のアクターが選出され
パーティ全員が睡眠になっていた場合はアイテムの使用が不可能になる、という事です。(ツクールの仕様)

これを踏まえた上で無難な改造はメニュー時アイテム使用専用のダミーアクターを用意する事だと思います。
rpg_scenes.jsの1258行目の処理がメニュー時アイテム使用アクターの選出処理になるので
ここにゲーム中に使用しないアクターを適当に割り当てれば良いのでないでしょうか。
プラグイン化するならこんな感じですか。
ついでにパーティ全員が行動不能でもアイテムが使用出来るように解除しておきます。
動作検証はしてません。
当然、データベースには対応するダミー用アクターのデータを用意してください。

コード: 全て選択

(() => {
    'use strict'

    Game_Party.prototype.canUse = function(item) {
        return $gameActors.actor(適当なアクターID).canUse(item);
    };

    Scene_Item.prototype.user = function() {
        return $gameActors.actor(適当なアクターID);
    };
})();
RPG作るマン
記事: 14
登録日時: 2021年11月14日(日) 01:42

Re: 薬の知識をメニュー画面で適用させたくない。

投稿記事by RPG作るマン » 2023年7月17日(月) 19:18

コードをプラグインとして読み込んでみました。

希望通り、メニュー画面の回復量が薬の知識に依存しない値になりました。
また、仕様についても詳しく解説いただきありがとうございます!

トピックは解決済にさせていただきます。

“MV:質問” へ戻る