ゲーム内イベントを作る

この記事は、「基本編」の内容を前提に記述しています。
先に、「基本編」を読んでください。

育成ゲーム内で起こる様々なイベントを作ってみます。

ただ、イベントの形は、かなりケースバイケースなところがあるので、ちょっとわかりづらいかもしれません。

イベントのタイミング

そのイベントが起こるタイミングごとに、イベントの内容を記載する場所が異なります。

ターン開始時のイベント

ターンの開始時にイベントを発生させたい場合は、育成画面のラベルの上に記載します。

この時、イベントの内容を直接、記載してもよいですが、行数が増えると見づらくなってしまう為、ファイルを分けることを推奨します。

また、イベントの終了時には、必ず育成画面のラベルに戻ってくるようにしてください。

なお、複数のファイルを利用する場合は、次に読み込むファイルの上にラベルを記載し、その前のファイルのイベントの最後で、そのラベルにジャンプするようにします。

言葉で説明するとわかりづらいですが…、実際は、こんな感じになると思います。

[eval exp="f.行動回数 = 5" ]

[jump  storage="event1.ks"  ]

*イベント2
[jump  storage="event2.ks"  ]

*育成画面

「event1.ks」で記載したイベントの最後では、「*イベント2」にジャンプするように、「event2.ks」で記載したイベントの最後では、「*育成画面」にジャンプするようにします。

ターン終了時のイベント

ターンの終了時にイベントを発生させたい場合は、「ターン終了処理」のラベルより下、「[jump]」より上に記載します。

つまり、ターン終了処理の中に組み込むわけです。

終了処理には、ターン終了を伝えるメッセージなど、色々と記載されていると思いますが、そのイベントを発生させたい任意の場所に記載してください。

ただし、ターン数を「+1」する処理と、「[jump]」の処理は、必ず行われるようにしてください。

場合によっては、ラベルを増やすなどの工夫も必要になるかと思います。

もっとも、タイミング的には、「ターン開始時」と大差ないので、こだわりがない場合は、そっちで実装するとよいでしょう。

コマンド実行後のイベント

これも、上のやり方と基本的には同じです。

コマンドの最後にイベントの内容を記載します。

もちろん、ここでもコマンド実行後の基本的な処理は、必ず行われるようにしてください。

育成画面のラベルに戻るのは必須として、行動回数制のゲームであれば、行動回数を「-1」する処理など。

イベントの発生条件

イベントが発生する条件の定義方法を紹介します。

基本的には、「if」の条件を変えるだけです。

「~~イベント内容~~」には、メッセージの表示なり、ステータスの増減なり、好きなものを書いてください。

ランダムに発生するイベント

基本的には、以下の記事を見ればわかると思います。

[getrand var="f.イベント発生確率" min="1" max="5"]
[if  exp="f.イベント発生確率 <= 2" ]

~~イベント内容~~

[else]

[endif]

[jump storage="ikusei.ks" target ="*育成画面" ]

「2/5の確率で、イベントが起こり、そうでなければ、何も起こらず、最後に育成画面のラベルに戻る」というもの。

特定のターンで発生するイベント

[if exp="f.ターン == 1"]

~~イベント内容~~

[else]

[endif]

[jump storage="ikusei.ks" target ="*育成画面" ]

「ターン1の時に、イベントが起こり、そうでなければ、何も起こらず、最後に育成画面のラベルに戻る」というもの。

特定のステータスに達すると起こるイベント

[if exp="f.パワー >= 70" ]

~~イベント内容~~

[else]

[endif]

[jump storage="ikusei.ks" target ="*育成画面" ]

「パワーが70以上なら、イベントが起こり、そうでなければ、何も起こらず、最後に育成画面のラベルに戻る」というもの。

順番に発生するイベント(連続イベント)

例えば、ランダムに発生する複数のイベントに、順序を持たせてみます。

[getrand var="f.イベント発生確率" min="1" max="5"]
[if  exp="f.イベント発生確率 <= 2" ]

~~イベント内容~~
[eval exp="f.連続イベント = 1"]

[else]

[endif]

[jump storage="ikusei.ks" target ="*育成画面" ]
[getrand var="f.イベント発生確率" min="1" max="5"]
[if  exp="f.イベント発生確率 <= 2 && f.連続イベント == 1"]

~~イベント内容~~
[eval exp="f.連続イベント = 0"]

[else]

[endif]

[jump storage="ikusei.ks" target ="*育成画面" ]

2/5の確率で1回目のイベントが発生し、変数「連続イベント」の数値が「1」になります。その後、2/5の確率で、2回目のイベントが発生するというものです。

イベント発生後に、変数「連続イベント」の数値を「1」以外にしておかないと、何度もイベントが発生してしまします。

過去の選択によって発生するイベント

プレイヤーの選択によって、将来、イベントが発生するどうかを決定します。いわば、イベントの予約機能のようなものです。

ターン3に、イベント1を発生させますか?[r]
[link target="*イベント1はい"]【1】はい[endlink]
[link target="*イベントいいえ"]【2】いいえ[endlink]
[s]

*イベント1はい
[cm]

[eval exp="f.イベント1 = 1"]

[jump storage="ikusei.ks" target ="*育成画面" ]


*イベントいいえ

[jump storage="ikusei.ks" target ="*育成画面" ]
[if exp="f.ターン == 3 && f.イベント1 == 1"]

~~イベント内容~~

[else]

[endif]

[jump storage="ikusei.ks" target ="*育成画面" ]

上のようなコードを、それぞれ任意の箇所に記載してください。

プレイヤーが、「【1】はい」のボタンを押すと、変数「イベント1」の数値が「1」になります。その上で、ターンが3になれば、イベントが発生するというものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です