マッピング:ウェーブ
nmsマップは、マップ名(ファイル名)が「nms_」で始まっていなければならない。
ポイントエンティティoverlord_wave_controllerを1個作成する。
これはマップ内の何処に置いても問題無い。
Initial Spawn Count |
ウェーブ1のゾンビスポーン数 |
Zombie Increment |
ウェーブ毎のゾンビ増加数 |
Resupply Freq. |
物資投下の頻度(ウェーブ) |
NG Freq. |
(未実装) |
Ending Wave |
このウェーブ終了でマップクリア カスタムクリアシナリオを使う場合は後述 |
First Runner Wave |
Runner初登場ウェーブ |
First Child Wave |
Kid初登場ウェーブ |
Custom Win Scenario |
NoならばEnding Wave終了でクリア カスタムクリアシナリオを使う場合はYesにする |
例:
Initial Spawn Countが50,Zombie Incrementが10の場合、
ウェーブ15のゾンビスポーン数は (50) + ((15 - 1) * 10 ) = 190 となる。
注意 |
Resupply Freq.は2以上でなければならない。2に設定すると毎ウェーブ物資が来るようになる。3だと2ウェーブ毎、4だと3ウェーブ毎といった風になっている?(未検証) |
First Child WaveはFirst Runner Wave以上の数値を設定しなければならない?(未検証) |
特定のウェーブ開始時に出力を発生させるには
ポイントエンティティmath_counterを出力を発生させたいウェーブの個数だけ作成する。
そしてKeyvaluesを以下のように設定する。
Start Disabled |
No |
Initial Value |
0 |
Minimum Legal Value |
0 |
Maximum Legal Value |
開始時に出力を発生させたいウェーブ |
そしてこのmath_counterに、overlord_wave_controllerから以下のような出力を送るように設定する。
My output |
OnNewWave |
Via this input |
Add |
With a parameter override |
1 |
こうすることにより、各ウェーブ(ウェーブ1を含む)の開始時にカウンターが1ずつ加算されていくようになる。
あとは言うまでも無く、math_counterにMy outputがOnHitMaxの出力をさせればいいだけ。
カスタムクリアシナリオを使う場合
まず上記のCustom Win ScenarioをYesにする。
overload_wave_controllerがEnding Waveのウェーブ終了時にOnCustomWinBeginの出力を
送るようになる?(未検証)ので、この出力でシナリオを開始させる。
注意 |
OnCustomWinBeginの出力が発生するのは最終ウェーブ終了時で、次ウェーブは開始しないのでカスタムシナリオの間ゾンビがほぼいないことになる。ゾンビがいる状態でカスタムクリアシナリオを行わせたい場合は、「特定のウェーブ開始時に出力を発生させるには」の方法を使用すること。 現在のバージョンではOnCustomWinBeginだけで大丈夫な気がする。未検証。 |
最後にシナリオ終了時に、overlord_wave_controllerに対して以下の出力を送るようにする。
シナリオ成功=クリアの時 |
InputCustomWinComplete |
シナリオ失敗=ゲームオーバーの時 |
InputCustomWinFailed |
脱出地点型のクリアシナリオを使う場合
カスタムクリアシナリオとして、通常nmoマップで使用する
nmrih_extract_point(範囲内に入ったプレイヤーはクリア)を使用することもできる。
これについては
マッピング:オブジェクティブ
を参照。
まず
nmrih_extract_pointに対して、脱出を有効化するタイミングで
Startの出力を送る。
するとnmo同様に
nmrih_extract_previewが
Hold Timeの間プレイヤーの視界をジャックする。
しかしこのままでは全員が脱出してもクリアにならず、また
Extraction Lengthが過ぎても(時間切れになっても)ゲームオーバーにならない。
これをしっかり機能させるには、
nmrih_extract_pointから
overlord_wave_controllerに対して、以下のように出力を送る。
|
クリア |
ゲームオーバー |
My output |
OnAllPlayersExtracted |
OnExtractionExpired |
Via this input |
InputCustomWinComplete |
InputCustomWinFailed |
もちろん、InputCustomWinFailedは制限時間ではなく、別の方法で(別のエンティティから)送っても良い。
その場合はExtraction Lengthを0にする?(未検証)のを忘れないこと。(0でダメだった場合は逆に大きな値にしてみてください)
ちなみにOnExtractionExpired:InputCustomWinFailedの出力にDelayを設定すると、
その秒数は「ゲームオーバーは確定したが脱出はできない」という時間になる。
最後にヘリが飛んでいくような凝ったギミックを作るときは、このDelayを設定して、脱出し損ねたプレイヤーに悲壮感を味わわせてやろう。
最終更新:2013年11月07日 07:37