sourcemod autochangemap plugin

今まで特に考えなしにsrcdsはsteamの純正のものを使っていたが、 今回 Mani's Admin Plugin からたどって、 SourceMod Pack 1.2 for CS:S を入れてみた。 おめあては AutoChangeMap plugin 1.1 というものだが、 他の勝手についてくる機能もなかなか楽しくて良い。 例えばQuake Soundsとか(笑)。 Head Shot、Double Kill、Triple Killなど音声で教えてくれる。 Portal人工知能の合成音声などもしかするとQuakeに由来するのかしれん。

counter-strikeというやつは、原則的には時間切れ引き分けというものがない。 人質救出マップの場合、ラウンドの規程の時間が過ぎると、普通は人質救出に失敗したことになり、 テロリストの勝ちになる。 爆弾解除マップの場合は、目標の破壊に失敗したことになり、テロリストの負けになる。 いずれにしても勝負が付いて次のラウンドに進む。 勝負が付かずに次のラウンドに進むことはあり得ない。 server.cfgでmp_timemlimitなど設定してもまったく効かない。

ところが今回中間課題で学生に作らせたマップは、 人質救出でも爆弾解除でもなくただ単に敵味方分かれて打ち合うマップだったので、 どちらかが全滅しないと勝負が決しない。 ところが例えばボットだけ生き残った状態で両者おかしな箇所に行き詰まったりするといつまでたっても次のマップに進めない、 ということになる。 学生に作らせたマップは40以上あり、さくさくレビューしないと大混乱になる。  そもそも半自動的にサーバに公開したりできない。 そこで半強制的に時間切れにして次の マップに進むプラグインが必要になったというわけだ。

このautochangemapの設定だが、 特段難しいわけではないが、 autochangemap_client_limitの値は1000くらいにしておいた。 つまりこの値よりもログインしているクライアント数が少ないとautochangemapが有効になるわけだが、 常に有効にしておきたいので、大きめの値にしておいたというわけ。 デフォルト値の1だと、誰もログインしていないときだけ勝手にマップが切り替わることになる。

autochangemap_time_limit、これは5にした。 つまり5分経過すると強制的に次のマップに進む。

autochangemap_mode、 デフォルトでは0だが、1にする。 1だとnextmapという別のpluginが必要になるが、 nextmapは通常sourcemod packに含まれており、 デフォルト設定では既存のmapcycle.txtを使ってマップを切り替えてくれるだけなので、 都合が良い。 使ってみた感想だが、 まさにWorks perfectly. Good job. Thank you.だった。満足してる。 こういうプラグインの作り方もそのうちヒマになったら調べてみたい。

学生作品はとりあえず、すべて動くようにしてサーバに置いておいた。 けっこう大変だった(笑)。 半分ネタだが、 CS:S NG集 というものを書いた。 列挙してたらずいぶん長くなってしまった。