【解決済み】使い切っても所持数0で鞄に残せるアイテムを作りたい

motimoti3
記事: 26
登録日時: 2023年7月24日(月) 15:35

【解決済み】使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by motimoti3 »

お世話になっております。

ダークソウルのいわゆるエスト瓶のようなアイテムを作成したいのですが、
タイトルの通り、そのアイテムをすべて使用しきった時に失うのではなく、
0個表記で使用不可状態にしたいのです。

何かいい方法や、それを再現可能なプラグインはありますでしょうか……?
もしもあれば教えてくださるとうれしいです。
最後に編集したユーザー motimoti3 [ 2024年11月07日(木) 19:38 ], 累計 1 回
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
motimoti3 さんが書きました:お世話になっております。

ダークソウルのいわゆるエスト瓶のようなアイテムを作成したいのですが、
タイトルの通り、そのアイテムをすべて使用しきった時に失うのではなく、
0個表記で使用不可状態にしたいのです。

何かいい方法や、それを再現可能なプラグインはありますでしょうか……?
もしもあれば教えてくださるとうれしいです。
下記コードをプラグイン化して導入し、
所持数 0 で表示させたいアイテムのメモ欄に、
<AllowZeroQuantity>
と入力して、動作を確認してください。

コード: 全て選択

(()=>{
    'use strict';

    Game_Party.prototype.gainItem = function(item, amount, includeEquip) {
        const container = this.itemContainer(item);
        if (container) {
            const lastNumber = this.numItems(item);
            const newNumber = lastNumber + amount;
            container[item.id] = newNumber.clamp(0, this.maxItems(item));
            if (container[item.id] === 0 && !item.meta['AllowZeroQuantity']) {
                delete container[item.id];
            }
            if (includeEquip && newNumber < 0) {
                this.discardMembersEquip(item, -newNumber);
            }
            $gameMap.requestRefresh();
        }
    };    
})();
1回もアイテムを手にしていない時は、表示されません。

以上、ご確認お願いします。
motimoti3
記事: 26
登録日時: 2023年7月24日(月) 15:35

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by motimoti3 »

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

頂いたプログインを試してみたところ、正常に起動し、思う通りの挙動をしてくれました!
本当にありがとうございます……!!

親切心に付けこむようで申し訳ないのですが、この場を借りてもうひとつだけ質問させてください……、
こちらのメモタグを追加したアイテムを、さらにアイテム欄から完全に削除する方法があれば、アイテム欄を無駄に増やさずエスト瓶の種類を増やせて便利だなと思ったのですが、
そのようなスクリプトやコマンドはあったりするのでしょうか。

$gameParty.allMembers().forEach(member => member.clearEquipments());
$gameParty.initAllItems();

こちらのスクリプト 
viewtopic.php?t=12173 
を見つけたのでお借りして試してみたところ、アイテム欄から消えているのは確認できたので、
IDを指定してアイテムそのものを削除するようなコマンドがあれば……と思って探してみたのですが、
見つけられませんでした……。

もしこちらもご助力いただけましたら、とても幸せな気持ちになります……。
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
motimoti3 さんが書きました:ecf5DTTzl6h6lJj02 さま、いつもお世話になっております。

頂いたプログインを試してみたところ、正常に起動し、思う通りの挙動をしてくれました!
本当にありがとうございます……!!

親切心に付けこむようで申し訳ないのですが、この場を借りてもうひとつだけ質問させてください……、
こちらのメモタグを追加したアイテムを、さらにアイテム欄から完全に削除する方法があれば、アイテム欄を無駄に増やさずエスト瓶の種類を増やせて便利だなと思ったのですが、
そのようなスクリプトやコマンドはあったりするのでしょうか。

$gameParty.allMembers().forEach(member => member.clearEquipments());
$gameParty.initAllItems();

こちらのスクリプト 
viewtopic.php?t=12173 
を見つけたのでお借りして試してみたところ、アイテム欄から消えているのは確認できたので、
IDを指定してアイテムそのものを削除するようなコマンドがあれば……と思って探してみたのですが、
見つけられませんでした……。

もしこちらもご助力いただけましたら、とても幸せな気持ちになります……。
ご希望の動作を追加したり、色々と動作や体裁を整えて、
きちんとプラグイン化してみました。

※プラグインを更新しました、最新の記事からダウンロードしてください。

詳しい使い方は、プラグインのヘルプをご参照ください。

簡易的なテストしかしておりません。
不具合が発生した場合は、こちらでお知らせください。

以上、ご確認お願いします。
最後に編集したユーザー ecf5DTTzl6h6lJj02 [ 2024年11月06日(水) 05:38 ], 累計 1 回
motimoti3
記事: 26
登録日時: 2023年7月24日(月) 15:35

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by motimoti3 »

ecf5DTTzl6h6lJj02 さま、こんな短時間で……すごいです!
本当にありがとうございます……!
導入してみたところ、望む通りの挙動をしてくれました。

ただ1点だけ、不具合ではないのですが、現在自分が使用しているプラグインとの競合が見つかりました。
https://github.com/futokoro/RPGMaker/bl ... sChange.js
こちらのフトコロ様の変数拡張プラグインなのですが、
可能なら、今回頂いたプラグインと一緒に使用したいのです……。

図々しいお願いであることは百も承知なのですが、
可能であれば、ご対応頂けたりはしませんでしょうか……?
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
motimoti3 さんが書きました:ecf5DTTzl6h6lJj02 さま、こんな短時間で……すごいです!
本当にありがとうございます……!
導入してみたところ、望む通りの挙動をしてくれました。

ただ1点だけ、不具合ではないのですが、現在自分が使用しているプラグインとの競合が見つかりました。
https://github.com/futokoro/RPGMaker/bl ... sChange.js
こちらのフトコロ様の変数拡張プラグインなのですが、
可能なら、今回頂いたプラグインと一緒に使用したいのです……。

図々しいお願いであることは百も承知なのですが、
可能であれば、ご対応頂けたりはしませんでしょうか……?
FTKR_ExVariablesChange.js に対応させてみました。

※2024/11/06 19:30 頃 追記
プラグインを修正しました。
最新の記事からダウンロードし直してください。


プラグインのヘルプにも記載しましたが、
このプラグインが、FTKR_ExVariablesChange よりも下になるように配置してください。

きちんとしたテストをしていません。
不具合が出た場合は、お知らせください。

以上、ご確認お願いします。
最後に編集したユーザー ecf5DTTzl6h6lJj02 [ 2024年11月06日(水) 19:30 ], 累計 1 回
miyomi
記事: 22
登録日時: 2024年10月25日(金) 02:32

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by miyomi »

横から突然失礼します。
この所持数0プラグインはとても使い勝手が良さそうなので、私のゲームでもお借りしたいです。

しかし私の環境ですと下記のプラグインと競合が発生してしまうようで、、、

コード: 全て選択

(()=>{
    'use strict';

    Game_Party.prototype.gainItem = function(item, amount, includeEquip) {
        const container = this.itemContainer(item);
        if (container) {
            const lastNumber = this.numItems(item);
            const newNumber = lastNumber + amount;
            container[item.id] = newNumber.clamp(0, this.maxItems(item));
            if (container[item.id] === 0 && !item.meta['AllowZeroQuantity']) {
                delete container[item.id];
            }
            if (includeEquip && newNumber < 0) {
                this.discardMembersEquip(item, -newNumber);
            }
            $gameMap.requestRefresh();
        }
    };   
})();
つい先日、こちら https://tm.yumineko.com/viewtopic.php?f=23&t=15257 で頂いたものなんですが、
両方のプラグインを導入してこのプラグインでアイテムを装備しようとすると
“coutainer is not defined”
というエラーとともに進行不能になってしまいます。

解答者様が最初に配布された削除コマンドが無いバージョンであれば、
競合はしないようなのですが、
できれば今回の最新版を使わせていただきたいです、

手前勝手なおねがいで申し訳ないですが、こちらも対応していただくことはできますか?
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
miyomi さんが書きました:横から突然失礼します。
この所持数0プラグインはとても使い勝手が良さそうなので、私のゲームでもお借りしたいです。

しかし私の環境ですと下記のプラグインと競合が発生してしまうようで、、、

コード: 全て選択

(()=>{
    'use strict';

    Game_Party.prototype.gainItem = function(item, amount, includeEquip) {
        const container = this.itemContainer(item);
        if (container) {
            const lastNumber = this.numItems(item);
            const newNumber = lastNumber + amount;
            container[item.id] = newNumber.clamp(0, this.maxItems(item));
            if (container[item.id] === 0 && !item.meta['AllowZeroQuantity']) {
                delete container[item.id];
            }
            if (includeEquip && newNumber < 0) {
                this.discardMembersEquip(item, -newNumber);
            }
            $gameMap.requestRefresh();
        }
    };   
})();
つい先日、こちら https://tm.yumineko.com/viewtopic.php?f=23&t=15257 で頂いたものなんですが、
両方のプラグインを導入してこのプラグインでアイテムを装備しようとすると
“coutainer is not defined”
というエラーとともに進行不能になってしまいます。

解答者様が最初に配布された削除コマンドが無いバージョンであれば、
競合はしないようなのですが、
できれば今回の最新版を使わせていただきたいです、

手前勝手なおねがいで申し訳ないですが、こちらも対応していただくことはできますか?
単純に、私のプラグインの方に Typo(入力ミス) がありエラーになっていました。
(一応、確認したはずなのに、確認後に何かやらかしてるみたいです…)
修正しましたので、差し替えてください。
※2024/11/06 22:30 頃追記
まだ Typo があったので修正しました。
これ以前にダウンロードしている場合はダウンロードし直してください。
AllowZeroQuantity.js
(10.42 KiB) ダウンロード数: 9 回
今回、プラグインのもとにしたコードが競合なく動くとのことなので、
競合対策を行わなくてもおそらく大丈夫ではないかと思っていますが、
競合と思わしき挙動がある場合はご報告ください。

プラグインの配置順を入れ替えることで、競合が解消する場合もあります。
そちらのチェックについては、ご自身でお願いします。

以上、ご確認お願いします。
最後に編集したユーザー ecf5DTTzl6h6lJj02 [ 2024年11月06日(水) 22:28 ], 累計 1 回
miyomi
記事: 22
登録日時: 2024年10月25日(金) 02:32

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by miyomi »

ご丁寧な対応、ありがとうございます。
修正して下さったプラグインを確認しました。

試してみたところ、アイテム装備プラグインでアイテムを装備はできるようになったのですが、
所持数1(装備品のみ)の時にそれを外そうとしたところ、
“gameParty.members.some is not a function”
というエラーが出てしまいました。
(プラグインの並べ替えも試してみましたが、解決しませんでした、、、)
こちらも最初のプラグインでは出なかったので、もしかすると同じような不具合かもしれません。

度々申し訳ありませんが、こちらの対応もお願いできますか、、?
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: 使い切っても所持数0で鞄に残せるアイテムを作りたい

投稿記事 by ecf5DTTzl6h6lJj02 »

miyomi さんが書きました:ご丁寧な対応、ありがとうございます。
修正して下さったプラグインを確認しました。

試してみたところ、アイテム装備プラグインでアイテムを装備はできるようになったのですが、
所持数1(装備品のみ)の時にそれを外そうとしたところ、
“gameParty.members.some is not a function”
というエラーが出てしまいました。
(プラグインの並べ替えも試してみましたが、解決しませんでした、、、)
こちらも最初のプラグインでは出なかったので、もしかすると同じような不具合かもしれません。

度々申し訳ありませんが、こちらの対応もお願いできますか、、?
ご指摘通り、こちらも Typo です。
ちょっと寝起きの変なタイミングで、打ってたのと、
装備品の増減に関して、あんまりきちんとチェックをかけてなかったので、
こんな体たらくになってしまっていて申し訳ないです。
修正して、元の記事の方のファイルを変更しましたので、ダウンロードし直してください。

Typo に関しては、もう大丈夫だと思いたいです。

心配なのは、 プラグインコマンドで所持品から削除する時の挙動ですが、
これが起こった場合は、アイテムを装備するプラグインが、
きちんとファイル化されていない(コードのみの掲載になっている)ので、
ちょっと対応が面倒なことになるかもしれません。
返信する

“MV:質問”に戻る