最強ヘッドセット? A50 X発表

BF2042:「VIPモード」を作ってみよう!世界一わかりやすいルールエディターの使い方

  • URLをコピーしました!

ルールエディターの基本:Ifブロック

ゲーム開始時に両チームのランダムなプレイヤーを自動でVIP指名するシステムは出来上がりましたが、接続が遅かったり、片方のチームにしかプレイヤーが居なかったり、サーバーの調子が悪かったりなどのバグでVIPが選ばれなかったら、ゲームルールが破綻したまま試合が始まってしまいます。

それを防ぐために、「もし試合開始時にVIPが居なかったら、VIPが居ないと報告してくれる」システムを作っておきましょう。こういう時にはその名の通り、「もし」でコードを動かすことができるIfブロックが便利です。

BF2042:「VIPモード」を作ってみよう!世界一わかりやすいルールエディターの使い方 image 1 6
BF2042:「VIPモード」を作ってみよう!世界一わかりやすいルールエディターの使い方 4
  • イコール文で「チーム1にVIPが居る場合」という条件を作る。
  • 条件が合っていた場合、「チーム1」の「VIPCheck」を1にする。

これで「もしチーム1にVIPが居るなら、チーム1のVIPCheckが1になる」という命令文ができました。あとはチーム2の分も作ってからスタートルールに組み込んで、最後にVIPの出撃拒否による詰みを防止するために「全員強制出撃」を組み込んでおきましょう。

BF2042:「VIPモード」を作ってみよう!世界一わかりやすいルールエディターの使い方 image 1 7
もし「全プレイヤーの出撃を強制」を組み込まないと、VIPに選ばれたプレイヤーが出撃を渋るだけでゲームが詰んでしまう。バグを回避するために、わざとルールを少し不便にしなくてはいけないのも、ゲーム制作の醍醐味だろう。

ルールエディターの基本:イベントプレイヤー

「VIPが居ないことを報告してくれる」システムを作ったところで、その報告に対処するシステムも考えなくてはいけません。解決方法は数種類かありますが、ここは雑に「そのチームにVIPが居ない場合、出撃したプレイヤーをそのままVIPにする」線で行ってみましょう。

ここで便利なのが「イベントプレイヤー」というブロックで、そのルールを動かしたプレイヤーをそのまま指定することができます。例えばルールのイベントが「プレイヤー出撃時」だった場合、「イベントプレイヤー」は出撃したプレイヤーその人を指定することになります。早速組み合わせてみましょう。

BF2042:「VIPモード」を作ってみよう!世界一わかりやすいルールエディターの使い方 image 1 9
BF2042:「VIPモード」を作ってみよう!世界一わかりやすいルールエディターの使い方 5
  • 条件は「もし出撃したプレイヤーのチームのVIPCheckが0人だった場合」。
  • 出撃したプレイヤーを、そのチームのVIPに指定する。
  • そのチームのVIPCheckを1にする。

これで「チームのVIPCheckが0だった場合、そのチームから最初に出撃したプレイヤーがVIPになる」というシステムが出来上がりました。ルールエディタは基本的にイベントベースでシステムが動くので、「イベントプレイヤー」はさまざまなケースで使うことになります。

1 2 3 4 5
BF2042:「VIPモード」を作ってみよう!世界一わかりやすいルールエディターの使い方 アイキャッチ

FOLLOW EAA!!

SHARE
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (13件)

  • こういう風にルールに処理書きまくると、可読性悪すぎて、後で見たときに、何やってるかわからなくなるから、処理ごとにサブルーチン作ったほうがいいぞ。
    動けばいいって思想でコード書くのは危険。
    可読性が悪かったり、処理の分離ができてないと、バグが発生したときにどこでバグが起きてるのか追うのが大変になる。
    こういうコードはアンチパターンって覚えておいたほうがいいよ、いわゆるスパゲッティコードだから。

  • クリスマスにすら必死にアンチコメしてるの悲しすぎだろ

    • オワコンにしがみついてるアホに効いてて草

    • 聖夜に批判してることについて言ってるだけの人に噛みついてて草
      哀れすぎる

    • コメ主に対してブーメランって言いたいんやろか
      BF擁護もしてないのにキレ散らかしてるのはよっぽど悔しかったんかな

  • 機能は凝ってるのに本体が機能してないのもったいないよな

    • どうやらApexでも弱いみたいですね。

コメントする

CONTENTS