マッパー向けコラムです。
チームロックの仕組み
ObjectSpawnTemplates.conのObjectSpawnerにObjectTemplate.teamOnVehicle 1を指定するとチームロックが掛かり、その陣営の兵士しか乗り込めなくなります。
ObjectTemplate.create ObjectSpawner kingtiger_spawner
ObjectTemplate.setObjectTemplate 1 kingtiger
ObjectTemplate.setObjectTemplate 2
ObjectTemplate.MinSpawnDelay 40
ObjectTemplate.MaxSpawnDelay 60
ObjectTemplate.SpawnDelayAtStart 0
ObjectTemplate.TimeToLive 45
ObjectTemplate.Distance 40
ObjectTemplate.DamageWhenLost 0
ObjectTemplate.teamOnVehicle 1 ←これ
カウンタースポン
連合が攻撃側、枢軸が防御側のマップを考えます。
マップにある拠点(ID:3)を連合が奪取した場合、増援として枢軸のベースにkingtigerを沸かせてみましょう。
ObjectTemplate.create ObjectSpawner cnsp_kingtiger_spawner
ObjectTemplate.setObjectTemplate 1
ObjectTemplate.setObjectTemplate 2 kingtiger
ObjectTemplate.MinSpawnDelay 40
ObjectTemplate.MaxSpawnDelay 60
ObjectTemplate.SpawnDelayAtStart 0
ObjectTemplate.TimeToLive 45
ObjectTemplate.Distance 40
ObjectTemplate.DamageWhenLost 0
ObjectTemplate.teamOnVehicle 1
kingtigerが沸く座標は枢軸のベースとし、ObjectSpawns.conで指定します。
Object.create cnsp_kingtiger_spawner
Object.absolutePosition 100/25/100
Object.rotation 90/0/0
Object.setOSId 3
枢軸の兵士はkingtigerへ乗り込もうとしますが、チームロックが掛かってしまい乗ることができません。setObjectTemplate 2でkingtigerを指定しているため、連合の乗り物扱いでkingtigerがスポンしています。
チームロックを外してみましょう。
ObjectTemplate.create ObjectSpawner cnsp_kingtiger_spawner
ObjectTemplate.setObjectTemplate 1
ObjectTemplate.setObjectTemplate 2 kingtiger
ObjectTemplate.MinSpawnDelay 40
ObjectTemplate.MaxSpawnDelay 60
ObjectTemplate.SpawnDelayAtStart 0
ObjectTemplate.TimeToLive 45
ObjectTemplate.Distance 40
ObjectTemplate.DamageWhenLost 0
ObjectTemplate.teamOnVehicle 0 ←この行自体を削除でも同じ
これで枢軸の兵士はkingtigerに乗り込むことができました。しかし、前線でkingtigerが乗り捨てられた場合、連合の兵士はkingtigerに乗り込むことができてしまいます。どうしても盗まれたくない場合は、どのように設定すれば良いのでしょうか。
解決策
実は車両自体の設定を変更し、最初に乗り込んだ兵士の陣営に対してチームロックを掛けることができます。車両をマップに埋め込んで設定を変更しても良いのですが、チームロックを掛けるのみであれば、weapontweakを使うことをお勧めします。
ObjectTemplate.Activeでkingtigerを指定し、その後にdontClearTeamOnExit 1を追加します。
ObjectTemplate.Active Kingtiger
ObjectTemplate.dontClearTeamOnExit 1
ObjectTemplate.create ObjectSpawner cnsp_kingtiger_spawner
ObjectTemplate.setObjectTemplate 1
ObjectTemplate.setObjectTemplate 2 kingtiger
ObjectTemplate.MinSpawnDelay 40
ObjectTemplate.MaxSpawnDelay 60
ObjectTemplate.SpawnDelayAtStart 0
ObjectTemplate.TimeToLive 45
ObjectTemplate.Distance 40
ObjectTemplate.DamageWhenLost 0
ObjectTemplate.teamOnVehicle 0
これでカウンタースポンするkingtigerに対してチームロックを掛けることができました。ただし、ベースに忍び込んでいる連合の兵士に最初に乗られてしまうと、連合としてチームロックが掛かってしまいます。そのため、ベースキラーの範囲内でkingtigerを沸かせるようにしましょう。また、全てのkingtigerがdontClearTeamOnExit 1の設定を持ってしまうので、両陣営で鹵獲を許す車両とそうでない車両を混在させたい場合は注意しましょう。