ルールエディターの基本:Ifブロック
ゲーム開始時に両チームのランダムなプレイヤーを自動でVIP指名するシステムは出来上がりましたが、接続が遅かったり、片方のチームにしかプレイヤーが居なかったり、サーバーの調子が悪かったりなどのバグでVIPが選ばれなかったら、ゲームルールが破綻したまま試合が始まってしまいます。
それを防ぐために、「もし試合開始時にVIPが居なかったら、VIPが居ないと報告してくれる」システムを作っておきましょう。こういう時にはその名の通り、「もし」でコードを動かすことができるIfブロックが便利です。
- イコール文で「チーム1にVIPが居る場合」という条件を作る。
- 条件が合っていた場合、「チーム1」の「VIPCheck」を1にする。
これで「もしチーム1にVIPが居るなら、チーム1のVIPCheckが1になる」という命令文ができました。あとはチーム2の分も作ってからスタートルールに組み込んで、最後にVIPの出撃拒否による詰みを防止するために「全員強制出撃」を組み込んでおきましょう。
ルールエディターの基本:イベントプレイヤー
「VIPが居ないことを報告してくれる」システムを作ったところで、その報告に対処するシステムも考えなくてはいけません。解決方法は数種類かありますが、ここは雑に「そのチームにVIPが居ない場合、出撃したプレイヤーをそのままVIPにする」線で行ってみましょう。
ここで便利なのが「イベントプレイヤー」というブロックで、そのルールを動かしたプレイヤーをそのまま指定することができます。例えばルールのイベントが「プレイヤー出撃時」だった場合、「イベントプレイヤー」は出撃したプレイヤーその人を指定することになります。早速組み合わせてみましょう。
- 条件は「もし出撃したプレイヤーのチームのVIPCheckが0人だった場合」。
- 出撃したプレイヤーを、そのチームのVIPに指定する。
- そのチームのVIPCheckを1にする。
これで「チームのVIPCheckが0だった場合、そのチームから最初に出撃したプレイヤーがVIPになる」というシステムが出来上がりました。ルールエディタは基本的にイベントベースでシステムが動くので、「イベントプレイヤー」はさまざまなケースで使うことになります。
コメント
コメント一覧 (13件)
こういう風にルールに処理書きまくると、可読性悪すぎて、後で見たときに、何やってるかわからなくなるから、処理ごとにサブルーチン作ったほうがいいぞ。
動けばいいって思想でコード書くのは危険。
可読性が悪かったり、処理の分離ができてないと、バグが発生したときにどこでバグが起きてるのか追うのが大変になる。
こういうコードはアンチパターンって覚えておいたほうがいいよ、いわゆるスパゲッティコードだから。
クリスマスにすら必死にアンチコメしてるの悲しすぎだろ
オワコンにしがみついてるアホに効いてて草
効きすぎて反論しちゃったねぇw
聖夜に批判してることについて言ってるだけの人に噛みついてて草
哀れすぎる
ブーメラン刺さってんねぇw
と寂しいやつが申しております
コメ主に対してブーメランって言いたいんやろか
BF擁護もしてないのにキレ散らかしてるのはよっぽど悔しかったんかな
機能は凝ってるのに本体が機能してないのもったいないよな
なおアンロックは進まん模様
作っても人が来ないぞ
カスタムマッチ以前にこんなゴミゲーやらんて笑
どうやらApexでも弱いみたいですね。