BF4でPUBG?! by ProconRulz
昨年あたりからPUBG、FORTNITE等のバトルロイヤルゲームが流行ってますね!BF4でも出来ないかなと思ったりしませんか?
そんなあなたにお勧めのゲームモード・・・「デヒューズ」
とは、流石になりませんよね。そこで、ProconRulzを使ってそれっぽく出来るか試したいと思います。(電磁パルス、ストームの再現は無理なので勘弁)
(ソロモードはいろいろあって無理なので32v32のチーム戦・・・FORTNITEで50v50のイベント楽しかったし別に良いでしょ)
- 前提条件 プレイヤースロット64、アンランクorプライベートサーバー
- 推奨 コンクエストラージ、歩兵のみ、低チケット、制限時間30以下、ハードコア風な設定
1 2 3 4 5 6 7 |
#サンプル On Spawn;ServerFirst;Set %ini_team_players[1]% 0;Set %ini_team_players[2]% 0;Set %ini_team_full[1]% 0;Set %ini_team_full[2]% 0; On Spawn;PlayerFirst;Set %ini_player_spawn[%p%]% 0;If %ini_team_full[%ptk%]% != 1;Incr %ini_team_players[%ptk%]%;If %ini_team_players[%ptk%]% == 32;Set %ini_team_full[%ptk%]% 1; On Spawn; If %ini_player_spawn[%p%]% == 1;Kill 100;PlayerBoth %p% YOU ARE DIED...; If %ini_team_full[%ptk%]% == 1;Kill 100;PlayerBoth %p% The team has reached its capacity; If %ini_team_players[%ptk%]% <= 32;Set %ini_player_spawn[%p%]% 1; |
解説
BF4でバトルロワイヤルを再現するため、死んだら復活出来ないようにしました。
1 2 |
#1行目 On Spawn;ServerFirst;Set %ini_team_players[1]% 0;Set %ini_team_players[2]% 0;Set %ini_team_full[1]% 0;Set %ini_team_full[2]% 0; |
この行は設定のリセットになります。
トリガーは「On Spawn」、状態は「ServerFirst」(ラウンド中、サーバー内で最初のトリガーイベントで)。アクションは「Set」で変数%ini_team_players[1]%、%ini_team_players[2]%、%ini_team_full[1]%、Set %ini_team_full[2]%に0を代入し、リセットします。
この変数名の中にある[]の中の数字(1と2)はチームキーです。
1 2 |
#2行目 On Spawn;PlayerFirst;Set %ini_player_spawn[%p%]% 0;If %ini_team_full[%ptk%]% != 1;Incr %ini_team_players[%ptk%]%;If %ini_team_players[%ptk%]% == 32;Set %ini_team_full[%ptk%]% 1; |
この行はプレイヤーの最初のスポーン時にチームの人数を取得するためにあります。「%ts1%」「%ts2%」だと詳しい情報が得らえないため、トリガーは「On Spawn」、状態は「PlayerFirst」(ラウンド中、プレイヤーが最初のトリガーイベントで)。
アクションは「Set」で変数「%ini_player_spawn[%p%]%」(プレイヤーがスポーンしたかどうかを確認するため)に0を代入→「If」で「%ini_team_full[%ptk%]%」([]内の%ptk%はチームキーです)チームの上限人数か確認します。上限に達していたらここの行はここで終わります。→上限に達していない場合、「Incr」で「%ini_team_players[%ptk%]%」(現在のチームの人数)に加算します。→「If」で先ほど加算した「%ini_team_players[%ptk%]%」が上限32に達したかを確認し、達した場合に満員ということを「Set」を使い「%ini_team_full[%ptk%]%」に1を代入します。
1 2 3 4 5 |
#3行目以降 On Spawn; If %ini_player_spawn[%p%]% == 1;Kill 100;PlayerBoth %p% YOU ARE DIED...; If %ini_team_full[%ptk%]% == 1;Kill 100;PlayerBoth %p% The team has reached its capacity; If %ini_team_players[%ptk%]% <= 32;Set %ini_player_spawn[%p%]% 1; |
トリガーは「On Spawn」以下の3行は条件により上から実行されます。
「%ini_player_spawn[%p%]%」既にスポーンしたプレイヤーに対して管理者キルを実行
「%ini_team_full[%ptk%]%」チームの上限人数に達していた場合に管理者キルを実行
「%ini_team_players[%ptk%]%」チームの上限人数に達していない場合は、スポーンしたことを「%ini_player_spawn[%p%]%」に1を代入し記録。ここでこれをするのは最初にスポーンしたチームで上限人数に達していた場合、チームを移りプレイ可能にするためです。
注意! 自動でラウンド終了しないため、最後まで生き残ったプレイヤーが拠点を取ってチケットを0にするか、管理者が手動で終わらせて下さい!あと、テストを行っていないので自己責任でお願いします。
・・・書いてて思うんですが、楽しいんですかね?
おまけ
1 |
On RoundOver;Say -;Say -;Say -;Say -;Say -;Say -;Say - WINNIER WINNER CHICKEN DINNER!; |