OnStartTouchとOnStartTouchAllの違い
mvm_divergeというマップのリスポンルームのシャッターがどのようにバグっていて、これをどのようにすれば直せるのかをまとめる。
なお、divergeをデコンパイルして、内部の実装を確認し、再びコンパイルするときに処理の高速化のために光源を一切コンパイルしなかったため色合いがおかしい。(光源のコンパイルはめちゃくちゃ遅い)
ダメな例、つまり現状から示す。まず、該当の場所はここ
ここに近づくとシャッターが開く
離れればもとに戻る
BOTをこのシャッターの位置に置いてみる。
botを指定した場所に置くには以下のようにbot_teleportコマンドを使う
bot_teleport "BOTの名前" -482.183899 -2173.773438 -19.968628 18.017992 -165.672302 0.000000
シャッターが当然のように開いた。
この状態でシャッターに近づいてみる
まぁ当然シャッターは開いたままである
今度はシャッターから離れると、
シャッターが閉じてしまった。BOTが近くに居るのにもかかわらず閉じてしまった。
つまりBOTがシャッターの真下にいても閉じてしまうということ。これにより元々居たプレイヤーがシャッターでスタックしてしまっていたのだ。
以上がOnStartTouchで実装していた場合のケース。次はOnStartTouchAllのばあい
BOTをシャッターに近づかせると当然シャッターは開く。ここまでは一緒
この状態でプレイヤーが近づいても当然アイたまま。ここまでも一緒
離れてみる。
今度はシャッターが空いたままになった。BOTが近くにいるから。
このロジックなら他のプレイヤーがスタックすることはない。