RPGツクール2000/マップイベント
■自生する薬草
(更新:2011/01/15)


自生する薬草イベントを作成します。


自生する薬草とは?
マップ上に置かれた薬草を調べます
と、薬草を取得する事ができます。

薬草は取得しますと消えてしまい
ますが、一定時間が過ぎますと、
再び薬草が取れるようになります。 
薬草を取得!
一定時間が経つと薬草が復活!
取得したので薬草が消える

基本的に何度も実行(取得)する事ができるイベントになっていますので、
アイデア次第で様々なイベントを作る事ができるでしょう。
例えば、木の実が落ちているニワトリが卵を産んでいるなどのイベントです。
フィールド上を歩いている敵キャラを倒しても、
一定時間後に敵キャラが復活するイベントなども作る事ができます。



薬草が復活する時間の設定には、変数を使います。
変数は薬草イベント1つにつき1個の変数を使います。
自生する薬草イベントを複数作る時には、
使用する変数の番号は0101〜0120番などの連番にした方が良いでしょう。
変数の番号を連番にする事で、
全ての薬草を復活させるなどの設定が簡単に行えます。
※このページの設定例では、
 変数0101〜0120番に薬草が復活する時間を設定しています。




☆2種類のイベントを設定
イベントの設定は、
復活時間を処理する「時間経過イベント」と、
薬草画像を表示する「薬草イベント」の2種類を設定します。



時間経過イベントはゲーム全体で使用するイベントなので、
コモンイベントに設定してください。

■コモンイベント「時間経過」
イベント開始条件:定期的に並列処理する
◆変数の操作:[0101〜0120]加算,1
◆ウェイト:0.0秒

※30分の1秒単位で変数の値が加算されます。



薬草イベントを設定します。

■マップイベント「薬草01」
イベント開始条件:変数[0101:薬草01]が0以上<この薬草の変数番号を設定
グラフィック:薬草の画像
◆文章:薬草を手に入れた。
◆アイテムの増減:薬草を1増やす
◆変数の操作:[0101:薬草01]代入,-36000<この薬草の変数番号に復活時間を設定


復活時間は約20分後になっています。
※復活時間の設定については下記の☆復活時間の設定についてをご覧ください。

複数の薬草イベントを設定する場合は、
マップイベント「薬草01」コピー&貼り付けして、
薬草イベントの変数番号を変えて(変数0101→変数0102など)設定してください。

複数の薬草イベントの変数番号が同じ変数番号のままですと、
1つの薬草を取るだけで全ての薬草が消えてしまい、
次に薬草が取れるのが20分後になります。

逆に「どの薬草を取っても、次に薬草が取れるのは20分後」が良い場合は、
同じ変数番号のままで薬草イベントを設定してください。

但し、同じ画面上に複数の薬草イベントがありますと薬草を取った時に、
取っていない薬草も含めて一気に画面上から消えてしまいます。
これが不自然に思える場合は、
画面上に1つの薬草しか表示されないような薬草の配置を行ってください。



☆復活時間の設定について
薬草イベントの変数の設定で「-36000」と言った設定を行っていますが、
これは約20分後に復活すると言った設定になっています。

復活時間の設定はマイナス値で行い、-301秒の時間になります。
もしも約1分で復活させる場合は、-30×60秒=-1800の設定になります。
約10分で復活させる場合は、-1800×10分=-18000の設定になり、
約1時間で復活させる場合は、-1800×60分=-108000の設定になります。
最大値である-999999にしますと、約9時間15分33秒後の復活になります。

時間の設定では、約20分と言った感じに必ず「」が付きます。
これはコモンイベント「時間経過」が、
メニュー画面や戦闘画面が表示されている間は動作しないために、
必ず20分後に薬草が復活と言う訳にはいかないからです。

またパソコンの処理能力などによっても多少の誤差が出ますので、
メニュー画面や戦闘画面を表示しなくても、
必ず20分後に復活!と言ったイベントの設定は難しいです。

20〜30分で復活と言った感じに、
復活する時間設定に幅(ランダム性)を持たせたい時には、
乱数を使うと良いでしょう。
もしも20〜30分で復活としたい時には、
◆変数の操作:[0101]代入,乱数[-36000〜-54000]
と設定してください。



☆薬草が生えてくる演出を追加
薬草を取得して何も無くなったマスから、
徐々に薬草が生えてくる演出を追加設定します。
▼動作イメージ


薬草イベントのページ数を3ページに増やしてください。
1ページ目:成長の第1段階(10分以内に取得可能)を表示。
2ページ目:成長の第2段階(5分以内に取得可能)を表示。
3ページ目:成長が完了した状態を表示します。


■マップイベント「薬草01」
▼1ページ目
イベント開始条件:変数[0101]が-18000以上<成長完了まで10分以内
グラフィック:成長の第1段階の薬草の画像
◆文章:まだ取得できません。


▼2ページ目
イベント開始条件:変数[0101]が-9000以上<成長完了まで5分以内
グラフィック:成長の第2段階の薬草の画像
◆文章:まだ取得できません。


▼3ページ目
イベント開始条件:変数[0101]が0以上
グラフィック:成長が完了した薬草の画像
◆文章:薬草を手に入れた。
◆アイテムの増減:薬草を1増やす
◆変数の操作:[0101]代入,-36000




1〜2ページ目の設定を以下のように変えれば、
成長が完了するまでの時間を分単位で表示する事ができます。
◆変数の操作:[0001:残り時間表示]代入,変数[0101]の値
◆変数の操作:[0001:残り時間表示]除算,-1800
◆変数の操作:[0001:残り時間表示]加算,1
◆文章:まだ取得できません。
:  :取得可能まであと\V[1]分ほどかかります。




☆薬草を99個持っている時には取得しない
薬草を99個持っている時に薬草イベントを調べますと、
画面上では薬草の画像が消えて、薬草を取得した事になりますが、
実際には取得していない(取得できない)事になります。

このような矛盾が気になる方は、
薬草イベントのイベント実行内容を以下のように変えてください。
◆変数の操作:[0001:薬草の数]代入,薬草の所持数
◆条件分岐:変数[0001:薬草の数]が99(オプション:ON)<所有数が99個である時
 ◆文章:これ以上薬草は持てません。
 ◆
:それ以外の場合<所有数が99個未満である時
 ◆文章:薬草を手に入れた。
 ◆アイテムの増減:薬草を1増やす
 ◆変数の操作:[0101]代入,-36000
 ◆
:分岐終了

※変数0001番は使っていない変数番号を自由に割り当ててください。
 なお、変数0001番は他の薬草イベントで、
 同じ変数0001番を設定しても問題ありません。




☆歩数によって薬草が復活する
コモンイベントに設定した時間経過のイベントは、
何も移動しなくても時間が過ぎて薬草が復活します。

もしも主人公が移動した歩数で復活時間を設定したい時には、
コモンイベント「時間経過」歩くと実行するイベントを設定してください。

■コモンイベント「時間経過」
◆変数の操作:[0002:現在のXY]代入,主人公のX座標
◆変数の操作:[0002:現在のXY]乗算,1000
◆変数の操作:[0002:現在のXY]加算,主人公のY座標
◆条件分岐:変数[0003:前のXY]がV[0001]以外<異なる座標になった(移動した)
 ◆変数の操作:[0003:前のXY]代入,変数[0001]の値
 ◆変数の操作:[0101〜0120]加算,1
 ◆
:分岐終了

※変数0002、0003番は、使っていない変数番号を自由に割り当ててください。

この歩数によって薬草の復活時間が変わるように設定した場合、
薬草イベントに設定する変数のマイナス値は、
薬草が復活するまでの歩数になります。
例えば、
◆変数の操作:[0101]代入,-200
を設定しますと、200歩歩きますと薬草が復活します。



☆補足
薬草が復活する時間の設定を、
薬草が生えている場所によって変えるのも面白いかもしれません。
例えば、屋外(日の当たる場所)では20〜30分で、
屋内(洞窟内)は30分〜60分と言った感じです。
また川辺に薬草が生えている事が多い(成長が早い)
○○の敵がいる所にはよく生えているなど、
薬草が発生しやすい条件を決めてプレイヤーに伝えておくと、
プレイヤーが薬草を探しやすくなるでしょう。



宿屋に泊まったら、薬草の復活時間を10分短くする場合は、
◆宿屋の処理:宿泊料金1
:宿泊した場合
 ◆変数の操作:[0101〜0120]加算,18000
 ◆
:宿泊しない場合
 ◆
:分岐終了

と設定してください。



全ての薬草を復活させたい時には、
◆変数の操作:[0101〜0120]代入,0
を設定してください。



◎関連ページ
 ●畑イベント
 ●時間イベント
 ●歩くと実行するイベント


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール