瞬駈天魔のツクール素材製作所

月額支援サイトファンティアを追加しました!
是非、無料ファンでも励みになりますので宜しくお願い致します!m(__)m

[ツクールMVスクリプト] アイテムを所持していない時の条件分岐

2019年02月21日 15時43分32秒 | ツクール日記

さて、クイズゲーム東洋医学編でも
任務で獲得アイテムを後から追加しよう!ってことになって、
よくよく見たら…
「条件分岐に指定するアイテムがない時の条件分岐がないじゃん!」
ってなりました。

さぁ、ここからスクリプトです!!

なんと…これも検索してもヒットしなかったので…
あげてしまいましょうか。

アイテムの所持を考えると変数で割り出せば
確かに「指定アイテム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まではある程度はいけたのですけどね…)

プラグインエラーは一番解釈し辛いとこですね…(´-∀-`;)
(競合してる箇所が割り出しにくかったりとかね…)


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。