さて、クイズゲーム東洋医学編でも
任務で獲得アイテムを後から追加しよう!ってことになって、
よくよく見たら…
「条件分岐に指定するアイテムがない時の条件分岐がないじゃん!」
ってなりました。
さぁ、ここからスクリプトです!!
なんと…これも検索してもヒットしなかったので…
あげてしまいましょうか。
アイテムの所持を考えると変数で割り出せば
確かに「指定アイテム0の時」という設定が可能ではあります。
しかし、そうすると変数を無駄に使ってしまいますよね。
オンラインゲームとするなら、やはり無駄に変数を使うのは避けたいです。
まず、スクリプトで考えるなら
アイテムはパーティー全員が共有してる必要がありますね。
という訳で…『$gameParty.』が絡んできますね。
次にアイテムを所持しているか?ということなので
持っていると英語で『have』。
複数のアイテムを持っているかの確認も考えると『hasItem』が成立します。
ここで!まだ指定するアイテムが謎です!!
『 ($dataItems[1]) 』にすると
アイテムID1のアイテムを指定したことになり、
これを繋げると『$gameParty.hasItem($dataItems[1])』。
はい、ここまではまだ
条件分岐中の『アイテムID1を持っているとき』と同じになります。
さぁ、ここからどうするのかというと…
以上や以下を設定するだけじゃないですかー!( ´∀` )
ってな訳で…アイテム所持を0の時にしたい場合は
『<= 0』という感じで割と簡単!!
日本語に直すと変な感じになりますが…
『アイテムID1を持っているときでそれは0以下のとき』
というような感じに…。
(うん…まともな日本語になってないが…)
これを全文繋げたスクリプトとしては
『$gameParty.hasItem($dataItems[1]) <= 0』となります。
これなら、無駄に変数は使いませんね!!
変数の場合なら
まず、変数の操作で
『変数ID1(アイテムの数) =(代入) アイテムID1(指定するアイテム)』
で変数を指定し、
条件分岐で
『変数ID1(アイテムの数)=0のとき』または
『変数ID1(アイテムの数)<=0のとき』とすれば可能ですが、
もし、変数の操作が複数あると、これがまともに機能しない場合があります。
そのため、
一つのイベントで複数の各アイテムを0の時に獲得できるようにしたい場合は
スクリプトがお勧めです。
スクリプトが分からなければ、
全文繋げたスクリプトの箇所をコピーして
条件分岐のスクリプトに貼り付けたら、
[1]の箇所を指定したいアイテムIDにするだけです!
ちなみに…
のようにすると、
何か任務が達成してスイッチがONになったときで
ID213のアイテムを所持していない時、
ID213のアイテムを獲得するという条件分岐となっています。
もし、アイテムをキャラごとでの所有なら…
『$gameActors.actor(1).hasItem($dataItems[1]) <= 0』
になるんじゃないでしょうかね?
(これは未確認ですが…)
この場合だと、
アクターID1を指定してる形で
アイテムID1が0以下所持してるときという指定になりますね。
以前あげた
指定レベルで任務達成させる条件分岐スクリプトの応用…?ですね。
ただ、ゲームアイテムはほぼ共有的なので
これでうまくいくかは分かりませんが…(・_・;)
自身はプラグインいじるのもまだ駆出しレベルなので
そこは手慣れている方がいつかは挙げてくれることを信じ…。
(おい!!)
ま…まぁ、スクリプトは割と英語さえ何となく分かれば
ある程度はいじくれます!!
プラグインは…どうでしょね…
翻訳しても分からないことも…(´-∀-`;)
(RGSS3まではある程度はいけたのですけどね…)
プラグインエラーは一番解釈し辛いとこですね…(´-∀-`;)
(競合してる箇所が割り出しにくかったりとかね…)