キモブロ

Please spy check please, Fucking retard

MvMのTank Bossをプレイヤーを追跡させるように魔改造する方法

ent_fire講座をはじめる前に、ent_fireでどんな面白いことが出来るかというのを撮影してみた。生徒の興味を引くネタで学問への意欲を高める。
(一番最後に書いた☆まとめを先に読むと動作原理を理解しやすいかも)


MvMのTankBossは予め決められたルートしか動けないんだけど、今回はこれをent_fireの力で無理やりプレイヤーを追跡するように魔改造をしてみた。

※最初の14秒はent_rotate 90コマンドの自慢なので意味なし


この動画でやっている手順を文書で書くと

☆Step1: Payloadのカートにエイミングする

☆Step2: ent_removeコマンドでPayloadのカートを消す

2回実行しているのは、2回やらないと完全に消せないから。Payloadのカートは複数のEntityで出来てるため。またent_removeはクロスヘアの位置のentityを消すので方向によっては全然関係ないEntityが消えることも(注意) 実はPayloadのカートにぶつかるとtank_bossが爆発しちゃってめんどいので消してるだけ

ent_remove
ent_remove

☆Step3: 適当に移動して真下を向いてent_teleportを実行

ent_teleportを使うとentityをクロスヘアの場所に移動させることが出来る。

ent_teleport minecart_path_2

つまりこの例だと、minecart_path_2を自分の真下(位置)に移動させるということ。
なお、Step4終わるまでこのコマンドを実行した位置から動いたら駄目です。

☆Step4: minecart_path_2の親をプレイヤーにする

entityの親子関係を設定すると親が動いた時に同じ分だけ子も移動させることが出来るようになる。つまり親をプレイヤーにすればプレイヤーが動いた分だけ子供を移動させることが出来る。

ent_fire minecart_path_2 setparent !player

つまりminecart_path_2を先ほどプレイヤーの位置に移動させたあとで、さらにその親をプレイヤー(自分自身)にすることによって、常にプレイヤーの位置にminecart_path_2を同期させている
(!playerという特殊な文字列でこのコマンドを実行したplayerのentityを参照できる)

☆Step5: TankBossを生成します

ent_create tank_boss

tank_bossはこの世に生み出されたあと、まずminecart_path_1(名前はマップにもよる)に移動し、その後、minecart_path_2に移動するようにプログラムされている。今回はminecart_path_1について一切いじってないので、TankBossはデフォルトのPayloadカートの位置に向かって移動した後、次にプレイヤーの位置に完全に同期されたminecart_path_2めがけて移動をはじめるというわけ。

☆Step6: TankBossの速度を変更

ent_fire tank_boss setspeed 4000

意味なし

☆まとめ

tank_bossはminecart_path_1にまず移動し、次にminecart_path_2に移動し、3に移動しって感じであらかじめ決められた移動経路しか移動できないのだが、ent_teleportとent_fireを組み合わせることで、minecart_path_2を常にプレイヤーの位置に同期させることで、tank_bossをプレイヤーを追尾させることに成功している。ent_fireすごい!


ent_fire講座に続きます(ちょっとずつ書いてる)