マップローテーション設定

maps.cfgの解説

簡単にsetコマンドの説明をするとset 変数名 "コマンド"と言うことになります。またコマンドの中にセミコロン(;)があると、そこまでで一つの命令として実行されます。

set map1  "vstr obj ; map obj_northport ; set nextmap vstr map2"
set ...
...

上記の場合map1と言う変数に、変数objの内容を実行(ゲームタイプを5に変更)し、mapコマンドでobj_northportを読み込み、変数nextmapに次のマップが定義されている変数をセットしています。なお、nextmap変数はserver.cfgで指定した試合数をこなすと自動的に実行される特別な変数です。

vstr map1

最後に各マップの定義が終わったところで、まだマップを読み込むコマンドが実行されていないので、ここでvstrコマンドを使って変数map1が実行されるわけです。

実例

各マップ毎にシャッフルして攻守の両方やるObjectiveの設定

set map1  "shuffle_teams; map obj_northport;    set nextmap vstr map2"
set map2  "swap_teams;    map_restart;          set nextmap vstr map3"
set map3  "shuffle_teams; map obj_village;      set nextmap vstr map4"
set map4  "swap_teams;    map_restart;          set nextmap vstr map5"
set map5  "shuffle_teams; map obj_railhouse;    set nextmap vstr map6"
set map6  "swap_teams;    map_restart;          set nextmap vstr map7"
set map7  "shuffle_teams; map obj_stadtrand;    set nextmap vstr map8"
set map8  "swap_teams;    map_restart;          set nextmap vstr map9"
set map9  "shuffle_teams; map obj_snow;         set nextmap vstr map10"
set map10 "swap_teams;    map_restart;          set nextmap vstr map11"
set map11 "shuffle_teams; map obj_delta;        set nextmap vstr map12"
set map12 "swap_teams;    map_restart;          set nextmap vstr map1"

vstr map1

マップが変わった時にシャッフルが入り、規定のラウンド数(g_lms_roundlimit)が終わると攻守を交代してやる場合の例です。

最初から全ての武器が使えるBodycount

g_gametype 7
set map1  "shuffle_teams; map obj_northport; g_currentround 3; set nextmap vstr map2"
set map2  "swap_teams; map obj_village;      g_currentround 3; set nextmap vstr map3"
set map3  "swap_teams; map obj_railhouse;    g_currentround 3; set nextmap vstr map4"
set map4  "swap_teams; map obj_stadtrand;    g_currentround 3; set nextmap vstr map5"
set map5  "swap_teams; map obj_snow;         g_currentround 3; set nextmap vstr map6"
set map6  "swap_teams; map obj_delta;        g_currentround 3; set nextmap vstr map1"

vstr map1

この例ではゲームタイプを7(Bodycount)にして最初のnorthportでshuffle_temas(メンバーシャッフル)を入れ次のマップからTerroristsとSpecopsを入れ替えるswap_teamsを実行しています。また、途中にあるg_currentroundは本来はラウンド数を調整するものですが、ここでは強制的にArmament Availabilityを上げるために使用しています。

各マップ毎に制限時間を変更する方法

set map1  "TimeLimit 3; map obj_northport;    set nextmap vstr map2"
set map2  "TimeLimit 4; map obj_village;      set nextmap vstr map3"
set map3  "TimeLimit 5; map obj_railhouse;    set nextmap vstr map4"
set map4  "TimeLimit 6; map obj_stadtrand;    set nextmap vstr map5"
set map5  "TimeLimit 7; map obj_snow;         set nextmap vstr map6"
set map6  "TimeLimit 8; map obj_delta;        set nextmap vstr map1"

vstr map1

こうするとmap1では3分、map2では4分…という制限時間になります。ただしTC:Eの制限として3分未満は設定しても無視されます。