上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
それほど重大な事は書いてありませんが、先に「※素材(?)について」をお読み下さい^^

スクリプトの勉強を始めた時から作りたいと思っていた、リアルタイムを参照するイベントを作る事にようやく成功しましたん♪
スクリプトの勉強のかたわら、素材屋さんのまねごとみたいな事をたま~にやってたりするんですが(いや、文字通り「まねごと」です。今までに公開したような内容で素材屋さんとか言ってたら、本当の素材屋さんに失礼だw)、これはちゃんとお役に立てるかも知れない!

てことで、1日1回とか、1時間に1回とか、リアルタイムを参照して、一定時間が経過しなければ再度発生しないイベントを作ってみました~。

「ゲーム内の時間」ではなく、「実際の時間」を参照するイベントスクリプトです。ご注意下さい。

お手軽さ:2
根気:2
スクリプトを弄る必要性:有

必要なもの
変数:8つ

○前提
・一度イベントが発生したら、一定時間経過するまでイベントは発生しなくなる。

このイベントは、スクリプトを使用する必要はありますが、スクリプトエディタをいじる必要はない、比較的初歩的なイベントスクリプトで作る事ができますから、スクリプトなんて分からない! という人でも安心してご利用いただけます。
(そもそも勉強中のおいらに、複雑なRGSS3を操る力はありません)

スクリプトの勉強を志してからというもの、たびたびヘルプの中にあるスクリプトリファレンスを読んで、文法を勉強していまして……その中に、「Timeのクラス」というものがあります。
これを使うと、リアルタイムを変数に代入したりできるようになります。

今回はこれを使い、例として「1日に1回だけプレゼントをくれる子供」というイベントを作成いたしました。

①イベントコマンドの3ページ目の右下隅に「スクリプト」という項目があります。これをクリックして、まずは以下のように記述します。

t = Time.now
$game_variables[1] = t.year
$game_variables[2] = t.month
$game_variables[3] = t.day
$game_variables[4] = t.wday
$game_variables[5] = t.hour
$game_variables[6] = t.min
$game_variables[7] = t.sec

method22.png
こんな感じ。

これは、実行内容の最初に必ず記述しなければなりません。
これを最初に記述する事で、変数1に「年」、変数2に「月」、変数3に「日」、変数4に「曜日」、変数5に「時」、変数6に「分」、変数7に「秒」がそれぞれ代入されます。
これを記述する事で、初めてリアルタイムをゲーム変数として使用する事が可能になるのです。

②次に、子供に話しかけたら、アイテムをくれるようにイベントを作りましょう。
これについては、別に何も難しい事はないので、割愛します。
そして、このイベントの最後に、変数8に変数3「日」を代入する事だけは忘れないようにして下さい。

③最後に条件分岐。
変数8が変数3「日」と同じ値である場合は、アイテムがもらえないようにイベントを分岐させます。
先ほど、アイテムをもらった後に変数8に変数3「日」を代入しましたから、これで2回目以降はアイテムがもらえなくなるはずなのです。
そして、翌日になった時、変数8と変数3は同じ値ではなくなりますから、また一度だけアイテムをもらう事ができます。

method23.png
できあがったのがこちら。「1日に1回だけ、フルポーションをくれる子供」です。なんて気前がいいのでしょうか。
テストしてみましょう。



method24.png



話しかけると、子供からフルポーションをもらう事ができました。
続けて話しかけてみると……。



method25.png



ちゃんと(?)断られました。
実際の日付が変わって翌日になったら、またフルポーションをもらう事ができます。

変数8に代入する変数を2「月」にすれば月に1回だけのイベント、1「年」にすれば年に1回だけのイベントも作れます(年1回のイベントとか、めちゃくちゃレアですねw)。
4「曜日」なら週1回のイベント、5「時間」なら1時間に1回限定のイベントとなります。
応用すれば、プレイヤーの誕生日限定のイベントなんかも作る事ができそうですし、何かと応用が利くのではないかと思います^^

ただ、5「時」を使って、1時間に1回限定のイベントを作る時には気をつけて下さい。
誤解されやすいのですが、一度発生したら「1時間イベントが発生しない」のではなく、「同じ時間(例えば12時なら12時である間だけ)はイベントが発生しない」なので、極端な話、12時59分にイベントが発生した場合、1分後に13時になると、再度イベントが発生します。
また、0時台の場合、初めてであってもイベントが発生しません
なぜなら、変数は何も設定しなければ、初期状態は0だからです。
変数8と変数5「時」が同じ値だとイベントが発生しないよう条件分岐を作っていますから、0時台だと、イベントが発生しなくなってしまうんですよw
この場合は、ゲームを開始した瞬間に、変数8に「25」とかあり得ない数値を代入しておくと、これを避ける事ができます。

なにげに汎用性が高そうなので、おいら自身への備忘録も兼ねて、ここに紹介いたしました♪
スクリプト素材を配布されている素材屋さんはたくさんあるんですが、イベントコマンドで使えるスクリプトを紹介しているサイトさんって、少ないんですよね。おいらが見つけられていないだけかも知れないですけどw

おいらと同じく、いろんな方々の助けを借りながら、少しでも楽しいゲームを作れるように日々頑張っているゲーム仲間の方々へ、少しでも恩返しになればいいなと思います♪

検索ワード:RPGツクール VX ACE ace ツクール スクリプト RGSS3 イベント イベントコマンド イベントスクリプト 限定 1日 1回 リアルタイム 実際 時間 時 回数 制限 素材
スポンサーサイト
Secret

TrackBackURL
→http://inumochi.blog.fc2.com/tb.php/68-058e5f38
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。