Game Modes
![Icon-delisted.png](/w/images/thumb/6/67/Icon-delisted.png/32px-Icon-delisted.png)
![反恐精英:全球攻势](/w/images/thumb/8/85/Csgo_icon.png/16px-Csgo_icon.png)
在此介绍,供历史和技术参考
以下是关于反恐精英:全球攻势游戏模式和启动这些模式的控制台命令表 反恐精英:全球攻势. 要以所需的游戏模式启动地图,请调整 ConVar s
game_type
,game_mode
,sv_game_mode_flags
andsv_skirmish_id
根据下表,使用 map <mapname>
或 changelevel <mapname>
控制台命令加载地图.
![Warning.png](/w/images/thumb/c/cb/Warning.png/10px-Warning.png)
mp_warmup_start
在官方竞技模式或搭档模式中启动地图来进行比赛.
|
关于 details, 见 #Game Type and Game Mode.
|
关于 details, 见 #Skirmish Modes.
|
加载一张地图
当你加载一张地图时,游戏将会...
- 设置 列入白名单的 ConVar (列在
csgo/bspconvar_whitelist.txt
) 到其默认值, - 执行与当前
game_type
和game_mode
值相关的CFG 文件 (列在csgo/gamemodes.txt
andcsgo/gamemodes_server.txt
), - 执行与
sv_game_mode_flags
当前值相关联的CFG文件, 请参阅below - 执行与
sv_skirmish_id
当前值相关联的CFG文件 (列在csgo/scripts/items/items_game.txt
下的skirmish_modes
), 请参阅below.
如果在加载地图前没有设置这四个 ConVars,地图将以最后一种游戏模式启动.它们的初始值为 0(休闲).
![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
map
命令和changelevel
命令有一个可选的<game mode alias>
参数.例如: map de_dust2 deathmatch
or changelevel myCustomMap coop
.如果给出了这样一个别名参数,并且该参数有效,游戏将调整game_type
与game_mode
并以相关的游戏模式启动地图.请参阅请参见下表中的地图命令别名列。![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
map <mapname> default
或map <mapname> auto
. 请参阅#Map default.![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
+game_type <number> +game_mode <number> +map <mapname>
![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
alias MyMapRetake "game_type 0; game_mode 0; sv_skirmish_id 12; map MyMap"
. 最适用于 autoexec s 可在正确的游戏模式下快速启动和测试自定义地图.![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
bot_quota_mode
没被设置为competitive
, 因为这会导致它们停止运行.
![Tip.png](/w/images/thumb/4/45/Tip.png/10px-Tip.png)
gamemode_competitive_server.cfg
(见下文) 以自动设置 bot_quota
和bot_quota_mode
每当您在 竞技模式 中加载地图时,都会在本地服务器上安装机器人。.![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
![🖿](/w/images/thumb/1/11/Icon-gnome-folder_alt.png/15px-Icon-gnome-folder_alt.png)
csgo/materials/panorama/images/icons/ui/<internal mode name>.svg
. 如果 sv_skirmish_id
的值不为0,使用的是小规模战斗模式的内部名称。如果游戏中没有该文件,可以在该处放置自定义文件。游戏类型与游戏模式
game_type
与game_mode
是一种 控制台变量 这决定了下一个地图加载时的初始化方式, 包括 exec 但不限于 CFG 文件, 用于设置控制游戏规则无数的的 ConVars,例如mp_roundtime
, mp_t_default_secondary
, sv_deadtalk
等等.
除此以外,还有其他游戏规则或设置也会在当前比赛中检查 game_type
与 game_mode
的值.例如,所有玩家的用户界面、weapon_c4
被安装或拆除时发生的事件 item_heavyassaultsuit
是否会导致屏幕着色、玩家是否可以拾取武器 weapon_axe
等实验性武器,
下表列出了所有可用的 游戏模式 的值以及他们对应的 game_type
和 game_mode
, 他们的准确名称及别名 地图
命令, 它们的最大 玩家 数, 在这种游戏模式下启动地图时执行的CFG文件,以及描述.
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
_offline.cfg
结尾的 CFG 文件只有在服务器通过主菜单中的 Practice with Bots 启动时才会被执行。Valve 使用它们在离线竞技中启用机器人,因为机器人在竞技中已被默认禁用, 请参阅 bot_quota
. 默认情况下,本地不存在以
_server.cfg
结尾的 CFG 文件。您可以创建这些文件,并在其中写入命令,这些命令将在每次本地启动相应游戏模式时执行。
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
![🖿](/w/images/thumb/1/11/Icon-gnome-folder_alt.png/15px-Icon-gnome-folder_alt.png)
csgo/gamemodes.txt
. ![](/w/images/5/53/Cpp-16px.png)
GameTypes::GetGameTypeAndModeFromAlias
列在 gametypes.cpp
.
游戏模式 | type | mode | 内部名称 | 地图 命令 别名 |
最大玩家数 | 执行的CFG,如有 | 描述 | |
---|---|---|---|---|---|---|---|---|
![]() |
Casual (default) | casual | casual | 20 | gamemode_casual.cfg, gamemode_casual_server.cfg |
Like Competitive but with fewer rounds, shorter freezetime per round, no friendly fire, no team collision, free armor and free defuse kit /cutters . | ||
![]() |
Competitive | competitive | competitive, comp | 10 | gamemode_competitive.cfg, gamemode_competitive_offline.cfg (!) gamemode_competitive_server.cfg |
The classic game mode, usually made for 5v5. Best of 30 rounds, teams are switched at halftime, friendly fire is on. Round-ending objectives are elimination, bomb explosion, bomb defusal, hostage rescue and timeout. | ||
![]() |
Wingman | scrimcomp2v2 | scrimcomp2v2 | 4 | gamemode_competitive2v2.cfg, gamemode_competitive2v2_offline.cfg (!) gamemode_competitive2v2_server.cfg |
Like Competitive, but adjusted for 2v2 and for a smaller map or a map section. Best of 16 rounds. Also, each round is shorter. | ||
Weapons Expert | scrimcomp5v5 | scrimcomp5v5 | 10 | gamemode_competitive.cfg, gamemode_competitive_offline.cfg (!) op08_weapons_expert.cfg, gamemode_competitive_server.cfg |
Like Competitive but every player can buy each weapon at most once per match. The freezetime is a bit longer. | |||
![]() |
Arms Race | gungameprogressive | armsrace, arms, gungame, gg, gungameprogressive |
10 | gamemode_armsrace.cfg, gamemode_armsrace_server.cfg |
The game is one perpetual round where killed players respawn at the default spawns. A weapon progression (a number of guns and their order) is defined where players win by making a specified number of kills with each of these weapons. | ||
![]() |
Demolition | gungametrbomb | demolition, demo, gungametrbomb |
10 | gamemode_demolition.cfg, gamemode_demolition_server.cfg |
A mixture of Casual with Armsrace. Best of 20 rounds. Each player is given a fixed weapon for each round, depending on their individual progress. Each player can progress one gun per round by making at least one kill. | ||
![]() |
Deathmatch | deathmatch | deathmatch, dm | 16 | gamemode_deathmatch.cfg, gamemode_deathmatch_server.cfg |
Like Armsrace but with free weapon choice and respawns across the map. Kills grant points, depending on the weapon type and if it is currently the bonus weapon. A player wins by scoring the highest after the round's time limit. | ||
![]() |
Training | training | training | 1 | gamemode_training.cfg, gamemode_training_server.cfg |
Assigns clients to CT with no weapon. No round limit, no time limit, no freezetime, minimal HUD. Good for singleplayer maps, used on CS:GO's Training Course. | ||
Custom | custom | custom | 100 | gamemode_custom.cfg, gamemode_custom_server.cfg |
Like Undefined, see below. This is an "empty" game mode allowing mapmakers to implement any map-specific custom game mode, if they wish to. If sv_autoexec_mapname_cfg is not 0 (which however it its default value), the CFG file ![]() csgo/maps/cfg/<mapname>.cfg is executed with whitelist .
| |||
![]() |
Guardian | cooperative | guardian, guard, cooperative |
20 | gamemode_competitive.cfg, gamemode_cooperative.cfg, gamemode_cooperative_server.cfg |
Two human players must defend a bombsite as CT or hostages as T against rushing bots. Maps must support this mode to work as intended. | ||
![]() |
Co-op Strike | coopmission | coop, coopstrike, coopmission |
10 | gamemode_competitive.cfg, gamemode_coopmission.cfg, gamemode_coopmission_server.cfg |
Usually a custom mission for two human players on a custom map that is designed primarily for this mode. | ||
![]() |
War Games | skirmish | skirmish | 12 | - | Like Undefined, see below. ![]() | ||
![]() |
Danger Zone | survival | survival | 16 | gamemode_survival.cfg, gamemode_survival_server.cfg |
A Battle Royale mode for big maps where players win by being the last man (or team) standing. Maps must be designed for this mode to work as intended. | ||
Map default | description |
- | default, auto | depends | depends | This is not a game mode itself, rather a "redirect". The game picks game_type and game_mode from the map's default_game_type and default_game_mode values, defined in either ![]() csgo/maps/<mapname>.kv , ![]() csgo/gamemodes.txt (under maps/<mapname>/ ) or ![]() csgo/gamemodes_server.txt . If they are defined in more than one of these files, the latter of the named files overrides the former. If they are not defined in any of these, the current type and mode are kept. All official maps use this appropriately (just that competitive maps use Casual).
![]()
| ||
Undefined | the above |
- | - | ? | - | No CFG file is executed, only the whitelisted ConVars are set to their default value. By default this results in game rules like Casual but with no round limit, instead with a time limit of 5 minutes for the game and map. mp_roundtime is also set to 5 minutes.
|
Game Mode Flags
The ConVar sv_game_mode_flags
is used for game mode variations. It can determine more CFG files that will be executed after the game mode CFG files when a map is launched.
Its value is read bitwise, meaning that adding values of the following table together results in all associated CFG files being executed.
Value | CFG file executed, if existent |
---|---|
4 | gamemode_<internal game mode name>_tmm.cfg
|
32 | gamemode_<internal game mode name>_short.cfg
|
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
_short
CFG is executed before a _tmm
CFG.![PlacementTip.png](/w/images/thumb/c/cc/PlacementTip.png/14px-PlacementTip.png)
- If set to 32 and a map is launched in Wingman, it will cause the execution of the CFG file
gamemode_scrimcomp2v2_short.cfg
. - If set to 36 and a map is launched in Wingman, it will cause the execution of the CFG files
gamemode_scrimcomp2v2_short.cfg
andgamemode_scrimcomp2v2_tmm.cfg
, in this order.
Valve currently uses this to implement game mode variations without touching sv_skirmish_id
.
Game Mode | Flags Value | |||
---|---|---|---|---|
0 | 4 | 32 | ||
![]() |
Competitive | default | Short Match | |
![]() |
Deathmatch | default | Team vs Team | Free For All |
![PlacementTip.png](/w/images/thumb/c/cc/PlacementTip.png/14px-PlacementTip.png)
game_type 1; game_mode 2; sv_game_mode_flags 4; map <mapname>
, or shorter: sv_game_mode_flags 4; map <mapname> dm
.Skirmish Modes
War Games are game mode variations.
The ConVar sv_skirmish_id
determines the War Game that a map will be launched in. Each War Game can have CFG files associated to it that are executed if a map is launched in that War Game, namely if sv_skirmish_id
is set to the ID of that War Game. These CFG files contain only few commands and are executed after the CFG files of a game mode and after the CFG files of the game mode flags. They can be loaded in any game mode, but the intended game mode of a skirimsh CFG file (the ones in the table below) can be found in csgo/scripts/items/items_game.txt
and also in the CFG file itself.
To play one of the following skirmish modes, type sv_skirmish_id <number>
in the console and launch a map with the intended game mode, see above.
Alternatively, one could also do exec <cfg filename>
and mp_restartgame 1
in-game or even write own configs for that matter.
To return to a "pure" game mode found in the above table, set sv_skirmish_id
back to 0, so the game will not load any additional CFG files to a game mode.
![PlacementTip.png](/w/images/thumb/c/cc/PlacementTip.png/14px-PlacementTip.png)
- To launch Stab Stab Zap on
de_dust2
, entersv_skirmish_id 1
andmap de_dust2 casual
. This is equivalent tosv_skirmish_id 1; game_type 0; game_mode 0; map de_dust2
. - To launch Competitive on
de_dust2
after having played a skirmish mode, entersv_skirmish_id 0
andmap de_dust2 comp
. This is equivalent tosv_skirmish_id 0; game_type 0; game_mode 1; map de_dust2
.
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
![🖿](/w/images/thumb/1/11/Icon-gnome-folder_alt.png/15px-Icon-gnome-folder_alt.png)
csgo/cfg/
that have no associated skirmish ID. They are mentioned at the end of the following table.![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
![🖿](/w/images/thumb/1/11/Icon-gnome-folder_alt.png/15px-Icon-gnome-folder_alt.png)
csgo/scripts/items/items_game.txt
under skirmish_modes
.War Game | skirmish _id |
Internal Name | Intended Game Mode | CFG filenames executed with whitelist | Description | |
---|---|---|---|---|---|---|
None (default) | - | - | - | No Skirmish Mode, i.e. the game mode defined by game_type and game_mode .
| ||
Stab Stab Zap | stabstabzap
|
Casual | op08_stab_stab_zap.cfg | Only knives , recharging taser and grenades. | ||
Free For All | dm_freeforall
|
Deathmatch | gamemode_dm_freeforall.cfg | Like Deathmatch, but teammates are enemies. ![]() | ||
![]() |
Flying Scoutsman | flyingscoutsman
|
Casual | op08_flying_scoutsman.cfg | Only scouts and knives , low gravity, high precision. | |
Trigger Discipline | triggerdiscipline
|
Casual | op08_trigger_discipline.cfg | Gunshots that a player does not hit an enemy with damage theirselves down to a minimum of 1 HP . | ||
Boom! Headshot! | headshots
|
Deathmatch | op08_headshots.cfg | Helmets are disabled and bodyshots deal no damage, causing a small spark effect instead of blood. | ||
Hunter-Gatherers | huntergatherers
|
Deathmatch | op08_hunter_gatherers.cfg | Team deathmatch with collecting dogtags : Killed enemies will drop dogtags that anyone can pick up. Collecting dogtags from the enemy team awards victory points. Killing enemies with the Deathmatch bonus weapon makes them drop an extra dogtag. The team with the most victory points at the end of the time limit wins. | ||
Heavy Assault Suit | heavyassaultsuit
|
Casual | op08_heavy_assault_suit.cfg | Heavy armor can be purchased for $6000. ![]() buy heavyarmor , rendering this skirmish mode useless. | ||
![]() |
Arms Race | armsrace
|
Arms Race | - | Equivalent to #Arms Race. | |
Demolition | demolition
|
Demolition | - | Equivalent to #Demolition. | ||
![]() |
Retakes | retakes
|
Casual | gamemode_retakecasual.cfg | Each round, 3 Terrorists spawn on a bomb site with a bomb being planted and 4 CTs spawn at fixed locations around it or on the other bomb spot. Each player can choose a loadout card at round start. ![]() | |
Bloodletter | - | Arms Race | op08_bloodletter.cfg | Dealing damage heals you 100 % of the damage dealt (max 200). Players take non-lethal damage over time while they are alive. | ||
Bounty Hunter | - | Deathmatch | op08_bounty_hunter.cfg | All players are enemies, killed enemies will drop dogtags that anyone can pick up. Killing players awards less points. Collecting dogtags awards additional Deathmatch points. | ||
Team Deathmatch | - | Deathmatch | op08_team_deathmatch.cfg | Killing enemies is worth team victory points, killing enemies with the Deathmatch bonus weapon awards additional victory points. The team with the most victory points at the end of the time limit wins. ![]() |
Game Mode dependent Events
local nType = ScriptGetGameType() // game_type
local nMode = ScriptGetGameMode() // game_mode
if (nType == 0 && nMode == 2)
{
// code executed only in Wingman
EntFire( "spawnpoints.2v2", "SetEnabled", "", 0 )
}
else
{
// code executed only in any other game mode
EntFire( "spawnpoints.2v2", "SetDisabled", "", 0 )
}
![]() nType, nMode are arbitrary. |
In VScript , there are the specific VScript functions
ScriptGetGameType()
and ScriptGetGameMode()
which return the current integer value of game_type
and game_mode
, respectively.
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
sv_skirmish_id
.These allow VScript structures such as the one on the right; If this example code is executed, it will fire an I/O event to entities named spawnpoints.2v2 depending on the current game mode. Code can be executed every round by saving it in a .nut
file under csgo/scripts/vscripts/
and by adding it to the Entity Scripts of any entity in a map. See also: VScript Fundamentals and Squirrel .
With this concept, one can manipulate gameplay depending on the current game mode, which is a really powerful tool to make other game modes such as Co-op Strike work.
![PlacementTip.png](/w/images/thumb/c/cc/PlacementTip.png/14px-PlacementTip.png)
![🖿](/w/images/thumb/1/11/Icon-gnome-folder_alt.png/15px-Icon-gnome-folder_alt.png)
csgo/scripts/vscripts/2v2/2v2_enable.nut
provided by Valve is commonly used to shift player spawn points and activate blockers in ![CS:GO/CS2 Wingman](/w/images/thumb/0/07/Csgo_icon_wingman.png/16px-Csgo_icon_wingman.png)
![Tip.png](/w/images/thumb/4/45/Tip.png/10px-Tip.png)
|
|