戦闘中に1度しか使えないアイテムを作り方。

高原鈴
記事: 113
登録日時: 2016年4月16日(土) 15:43

戦闘中に1度しか使えないアイテムを作り方。

投稿記事by 高原鈴 » 2016年8月14日(日) 21:16

こんばんは。毎度頼りにさせて頂いてます。
戦闘中に1度使うともうその戦闘では使えなくなるが、アイテムはなくならない。
次の戦闘ではまた使える。そういうのを作りたいんですが、方法があれば教えて頂けないですか?

アバター
ムイエバ
記事: 8
登録日時: 2016年8月08日(月) 05:27

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by ムイエバ » 2016年8月15日(月) 07:17

 あまり良い方法とは思えないので、他の方からもっといいアドバイスが来なかった時に試す程度にどうぞ。^^;

 とりあえず使用するアイテム名を薬草ということで話を進めていきますね。
 アイテムの基本設定としては、消耗は「「しない」に設定しておきます。
 まず、コモンイベントで「変数の操作」から「ゲームデータ」を選びます。
 その中から「アイテム」を選んで「薬草」を選択します。
 これで薬草の所持数が変数に代入されました。
 次に、「アイテムの増減」で「薬草」を先ほどの変数の数だけ減らします。
 この地点でアイテムの所持数が0になるため、その戦闘では使えなくなります。
 アイテムを減らした処理の際に、「薬草を使った」的なスイッチを設定してONにします。



 あとは戦闘終了後に「アイテムの増減」で薬草の所持数を代入している変数分だけ薬草を増やせば元に戻ります。
 こういう流れならば、戦闘中に1度しか使えないアイテムは生成可能にはなります。
 問題は戦闘終了後にアイテムを増やす方法ですが、これがちょっと面倒な作業となってしまいます。



 マップに並列処理でイベントを配置し、出現条件のスイッチを「薬草を使った」スイッチをON設定にしておきます。
 内容としてはアイテムの増減と、増減後に「薬草を使った」スイッチのOFF設定となります。



 一応、これで戦闘終了時にアイテムは元に戻りますが、全てのマップにこのイベントを配置しないといけないので効率が悪い方法といえます。
 他に戦闘終了時にいい処理方法をご存じなのであれば上記の方法で全然問題なくいけるとは思います。
高原鈴
記事: 113
登録日時: 2016年4月16日(土) 15:43

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by 高原鈴 » 2016年8月15日(月) 11:58

アイディアありがとうございます。
ただ並列処理はあまり使用しなくないもので
出来ればプラグインを他の方から提供して頂けたらなと。
すみません。
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by まっつUP » 2016年8月15日(月) 15:10

高原鈴様
プラグインを作成いたしましたのでお試しください。
このプラグインはYEP系のプラグインより下に置いてください。

使用制限かつ使用した戦闘後の復活が必要なアイテムの
設定を以下のようにしてください。
消耗は「しない」
下記の内容の使用効果「コモンイベント」を入れる。

実行内容(以下スクリプトコマンド)
if ($gameParty.inBattle()){
var i = $gameVariables._data[12][0]
var j = $gameParty.numItems($dataItems[i])
$gameVariables._data[12][i] = j
$gameParty.loseItem($dataItems[i], j)
}
//お手数ですが12はReVariableと同じ使う変数のIDを入れておいてください。
追記 戦闘中のそのターン中に異なるアイテムを選択し使用していても
使ったアイテムのIDが配列の0番目に入るようにしています。

特に規約はありませんが、あなたがゲーム公開時に同梱するreadmeにまっつUPの記述を
入れてもらえるとありがたいです。
何か問題ありましたらまた返信くださいませ。
添付ファイル
Reunion.js
(2.29 KiB) ダウンロード数: 19 回
最後に編集したユーザー まっつUP on 2016年8月15日(月) 16:19 [ 編集 1 回目 ]
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
高原鈴
記事: 113
登録日時: 2016年4月16日(土) 15:43

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by 高原鈴 » 2016年8月15日(月) 15:39

どうもです。さっそくそのプラグインを使用してみたのですが、
戦闘中に何回も使用出来てしまうのですが・・・どういうことでしょう?
添付ファイル
sss.png
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by まっつUP » 2016年8月15日(月) 15:53

使用制限かつ使用した戦闘後の復活が必要なアイテムが何回も使用できるというのは

使用効果がそのターン中何回でも使えるということでしょうか。
それともアクターコマンドで複数人のコマンド入力でそれぞれ選択できてしまうということでしょうか。

後者の場合は、ツクールのアイテムの仕様に準拠したものなので
この仕様を変更していない現段階のプラグインでは対応しておりません。
この場合一回効果を発動したアイテムは所持しないので誰も使わず、アクションを行いません。

前者が起こる場合はやはりバグになってしまいますね。
こちらの場合は詳しい状況をご教授いただきたいです。
考えられるのはスクリプトコマンド中の変数のID(defaultは12)を
プラグイン設定のパラメータと同じにしていないことでしょうか。
お手数ですがここの変数のIDはパラメータのIDと一緒にしてもらいたいですね。
多分競合もそんなにしないとは思うんですけどねえ・・・
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by まっつUP » 2016年8月15日(月) 16:20

申し訳ございません。
戦闘を一回も行っていないとマップ上での全てのアイテムの使用でエラーが起こってしまうのを修正しました。
再度上のプラグインをダウンロードしてください。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
高原鈴
記事: 113
登録日時: 2016年4月16日(土) 15:43

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by 高原鈴 » 2016年8月15日(月) 16:54

駄目でした。やはり何度も使えてしまいます。

>使用効果がそのターン中何回でも使えるということでしょうか。
>それともアクターコマンドで複数人のコマンド入力でそれぞれ選択できてしまうということでしょうか。

これもありますが、次のターンでも何度も無制限に使えてしまうんです。
どうなってるんでしょうか?
高原鈴
記事: 113
登録日時: 2016年4月16日(土) 15:43

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by 高原鈴 » 2016年8月15日(月) 16:59

なおスクリプトコマンドではこう書いてあります

if ($gameParty.inBattle()){
var i = $gameVariables._data[17][0]
var j = $gameParty.numItems($dataItems[i])
$gameVariables._data[17][i] = j
$gameParty.loseItem($dataItems[i], j)
}

変数は17に設定してあります。
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 戦闘中に1度しか使えないアイテムを作り方。

投稿記事by まっつUP » 2016年8月15日(月) 17:22

アイテムの減少の処理が正常に行われていないんでしょうね。
このプラグインよりもしたに別のアイテムの使用に関する変更や機能追加を行っている
プラグインを置いていますか?
またはスキルの使用に関する変更や機能追加を行っているプラグインを置いていますか?
Game_Battler.prototype.useItemが直接書き換えられていると機能しないんですよね。

一応YEP_BEC,YEP_ItemCore,aftermath二種を上に置いて正常に動いているのですが。
最後に編集したユーザー まっつUP on 2016年8月15日(月) 17:27 [ 編集 1 回目 ]
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ

“MV:質問” へ戻る