6

《反恐精英:全球攻势》搭建 CSGO服务器

 1 year ago
source link: https://uzbox.com/game/csgo.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
首页游戏《反恐精英:全球攻势》搭建 CSGO服务器

《反恐精英:全球攻势》搭建 CSGO服务器

如何搭建 CSGO服务器 《反恐精英:全球攻势》服务器搭建

搭建 CSGO服务器 ,《反恐精英全球攻势》,简称为CSGO。 是一款由Valve与密道娱乐合作开发的第一人称射击游戏。 游戏可在Mircrosoft Windows和macOS、PlayStation 3以及Xbox 360等平台运行。下载并安装 SteamCMD,搭建私人 CSGO服务器!

下面概述了设置和运行《反恐精英:全球攻势》专用服务器的基础知识。

如何搭建 CSGO服务器 《反恐精英:全球攻势》服务器搭建

下载 CSGO服务器

更新 CSGO服务器 的方法。每次游戏更新时都需要执行这些步骤。若想在未来自动执行此步骤,请参见:自动执行Steam

下载并安装 SteamCMD

CSGO服务器 Steam 控制台客户端SteamCMD)是一个命令行版本的 Steam 客户端。它的主要用途是在一个命令行界面的 Steam 客户端上安装及更新各种可用的专用服务端。它适用于使用 SteamPipe 内容分发系统的游戏。所有游戏已经从旧的 半条命专用服务器更新工具迁移到了 SteamCMD。

Windows

1. 创建一个为 SteamCMD 准备的文件夹。

C:\steamcmd
C:\steamcmd

2. 下载适用于 Windows 系统的 SteamCMD:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip

3. 提取 zip 中的文件至文件夹。

Linux

创建一个名为 steam 的用户帐户以安全地运行 SteamCMD,并将其与操作系统的其余部分隔离。以 root 用户身份登录时请勿运行 steamcmd——这样做会带来安全风险。

1. 以 root 用户身份创建 steam 用户:

useradd -m steam
useradd -m steam

2. 进入其主文件夹:

cd /home/steam
cd /home/steam

安装来自软件仓库的软件包

1. 建议从您的分发软件仓库安装 SteamCMD 软件包(如果有):

Ubuntu/Debian
sudo apt install steamcmd
sudo apt install steamcmd

Note.png Note: 如果您使用的是64位计算机,则需要添加 multiverse

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc1 steamcmd
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc1 steamcmd
RedHat/CentOS
yum install steamcmd
yum install steamcmd
Arch Linux
git clone https://aur.archlinux.org/steamcmd.git
cd steamcmd
makepkg -si
git clone https://aur.archlinux.org/steamcmd.git
cd steamcmd
makepkg -si

2. 链接 steamcmd 可执行文件:

ln -s /usr/games/steamcmd steamcmd
ln -s /usr/games/steamcmd steamcmd

Docker

如果你的服务器正在运行 Docker,您可以简单地使用:

docker run -it --name=steamcmd cm2network/steamcmd bash
docker run -it --name=steamcmd cm2network/steamcmd bash

steamcmd.sh location: /home/steam/steamcmd

该映像可用作基于Steam的专用服务器的基础映像。 例如: https://hub.docker.com/r/cm2network/csgo/

您可以在此处找到相关的 Docker Hub 页面: https://hub.docker.com/r/cm2network/steamcmd/

1. 在开始之前,您必须先安装运行 SteamCMD 所需的依赖项:

Ubuntu/Debian 64-Bit
sudo apt-get install lib32gcc1
sudo apt-get install lib32gcc1
RedHat/CentOS
yum install glibc libstdc++
yum install glibc libstdc++
RedHat/CentOS 64-Bit
yum install glibc.i686 libstdc++.i686
yum install glibc.i686 libstdc++.i686

2. 以 root 用户身份升级至 steam 用户:

su - steam
su - steam

如果您不是以 root 用户身份登录,而是使用sudo来行使管理权限,请以如下所示来升级至 steam 用户:

sudo -iu steam
sudo -iu steam

3. 为 SteamCMD 创建目录并切换至该目录。

mkdir ~/Steam && cd ~/Steam
mkdir ~/Steam && cd ~/Steam

4. 下载并解压缩适用于 Linux 的 SteamCMD。

curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

中国内地用户可使用以下命令以使用内地节点:

curl -sqL "https://media.st.dl.bscstorage.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
curl -sqL "https://media.st.dl.bscstorage.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

5. 安装tmux 和/或 screen 以简化服务器管理

sudo apt-get install tmux screen -y;
sudo apt-get install tmux screen -y;

macOS

1.打开终端并创建一个为 SteamCMD 准备的目录。

mkdir ~/steamcmd && cd ~/steamcmd
mkdir ~/steamcmd && cd ~/steamcmd

2. 下载并解压缩适用于 macOS 的 SteamCMD。

curl -sqL ' https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -
curl -sqL ' https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -

中国内地用户可使用以下命令以使用内地节点:

curl -sqL ' https://media.st.dl.bscstorage.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -
curl -sqL ' https://media.st.dl.bscstorage.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -

CSGO服务器 运行 SteamCMD

在第一次运行 SteamCMD 时将自动更新并显示一个Steam>的输入提示。输入help来获取更多信息。

Windows

打开一个命令行窗口并启动 SteamCMD。

cd C:\steamcmd steamcmd
cd C:\steamcmd steamcmd

Linux/macOS

打开一个终端并启动 SteamCMD.

如果您是通过软件仓库中的软件包安装的:

steamcmd
cd ~
steamcmd

如果您是手动安装的:

cd ~/Steam
./steamcmd.sh
cd ~/Steam
./steamcmd.sh

CSGO服务器 登录 SteamCMD

下载大多数游戏服务端,你可以选择匿名登录。

login anonymous
login anonymous

使用 Steam 帐户登录

一些服务端需要你使用一个 Steam 帐户来登录。
为了安全起见建议您创建一个服务端专用的 Steam 帐户。
一个用户同时只能在一处登录(无论是在图形界面客户端还是在 SteamCMD 登录)。

login
login 

下一步请输入您的密码。

如果 Steam 令牌已经在用户帐户上激活,查看你电子邮箱中的 Steam 令牌验证码并输入它。这仅仅只是第一次登录时需要(以及当你删除了 SteamCMD 用于存储登录信息文件的时候)。

如果你已经成功登录了你的帐户,你应该会看到一条消息。

下载一个应用

1. 打开 SteamCMD 并登录它。

2. 设置你的应用安装目录(注意:在 Linux/macOS 下使用正斜杠/,在Windows 下使用反斜杠\)。

force_install_dir
force_install_dir 

例如 一个名叫csgo_ds的在当前目录下的目录:

force_install_dir ./csgo_ds/
force_install_dir ./csgo_ds/

在Windows : force_install_dir .\csgo_ds\

3. 安装或更新应用使用app_update命令(在这里提供Steam 应用 ID)。 要同时校验应用的话,需添加validate到命令里。要下载测试分支的话,使用-beta 选项 – 例如,半条命专用服务器的测试分支名为beta以及起源专用服务器的测试分支名为prerelease。一些测试分支设置了密码;如果要从它那里下载,需同时添加-betapassword 选项。

app_update [-beta ] [-betapassword ] [validate]
app_update  [-beta ] [-betapassword ] [validate]

半条命专用服务器是一个特例:应用 ID 都是90,必须先选择模组。 这是通过设置配置选项mod来请求变量的。

app_set_config
app_set_config   

例如:安装并校验反恐精英:全球攻势专用服务器:

app_update 740 validate
app_update 740 validate

例如:安装并校验军团要塞专用服务器:

app_set_config 90 mod tfc
app_update 90 validate
app_set_config 90 mod tfc
app_update 90 validate
-2 Bug: 半条命专用服务器 (应用 ID 90)需要多次运行app_update命令才能安装完所有所需要的文件。只需运行app_update 90 validate多次直到没有更多的更新内容即可。

例如:安装并校验测试版本的半条命专用服务器(半条命)

app_update 90 -beta beta validate
app_update 90 -beta beta validate

例如:安装并校验测试版本的反恐精英:起源专用服务器:

app_update 232330 -beta prerelease validate
app_update 232330 -beta prerelease validate

例如:安装并校验私人测试版本的物竞天择2专用服务器(测试名称alpha,测试密码natsel):
[测试名称]是私人测试分支的名称
[测试密码]是私人测试分支的密码

app_update 4940 -beta alpha -betapassword natsel validate
app_update 4940 -beta alpha -betapassword natsel validate

3. 完成之后,输入quit从而正确地从 Steam 服务器内注销帐户。

quit
validate
validate

验证是一个命令以用来检查服务端的所有文件以确保他们符合 SteamCMD 所应该下载到本地的文件。如果你认为文件可能已丢失或已损坏,那么此命令将会非常有用。

-1Note: 验证将会覆盖已被更改了的文件。这可能会导致服务端的自定义问题。例如:如果你自定义了mapcycle.txt,此文件将会被覆盖至服务端的默认值。不是默认安装文件一部分的任何文件将不受影响。

建议你只在初次安装时或如果服务端有问题时才使用此命令。

所支持的服务端

已知可使用 SteamCMD 安装的服务端可在专用服务器列表页面查询。需要注意的是额外命令需在 app_update 之前被执行。

CSGO服务器 自动执行 SteamCMD

这里有两个方法来自动执行 SteamCMD 。(在Linux/macOS 下使用./steamcmd.sh来替代steamcmd。)

当在命令行使用-beta选项时,它必须以一种特殊的方式被引用,比如+app_update "90 -beta beta"
如果这不工作尝试将它用"+app_update 90 -beta beta"代替。
在命令行追加命令需要在其前面添加加号,例如:

steamcmd +login anonymous +force_install_dir ./csgo_ds +app_update 740 +quit
steamcmd +login anonymous +force_install_dir ./csgo_ds +app_update 740 +quit

安装半条命的一个特定游戏模组,比如反恐精英:零点行动:

steamcmd +login anonymous +force_install_dir ./czero +app_set_config 90 mod czero +app_update 90 +quit
steamcmd +login anonymous +force_install_dir ./czero +app_set_config 90 mod czero +app_update 90 +quit

安装一个需要登录的游戏,就像杀戮空间:

steamcmd +login +force_install_dir .\KFServer\ +app_update 215350 +quit
steamcmd +login   +force_install_dir .\KFServer\ +app_update 215350 +quit

建议使用 UTF-8 编码保存文本文件。
1. 把你的 SteamCMD 命令放置在文本文件中。(你可以添加注释,只需在其前面添加//。)例如:

// 更新反恐精英:全球攻势专用服务器
@ShutdownOnFailedCommand 1 //如果一次更新多个服务端请设置为0
@NoPromptForPassword 1
login <username> <password>
//一些服务端并不需要登录
//login anonymous
force_install_dir ./csgo_ds
app_update 740 validate
quit</password></username>
// 更新反恐精英:全球攻势专用服务器
//
@ShutdownOnFailedCommand 1 //如果一次更新多个服务端请设置为0
@NoPromptForPassword 1
login 
//一些服务端并不需要登录
//login anonymous 
force_install_dir ./csgo_ds
app_update 740 validate
quit

2. 带着+runscript选项运行 SteamCMD,指向你之前创建的文件。例如:

steamcmd +runscript csgo_ds.txt
steamcmd +runscript csgo_ds.txt

CSGO服务器 跨平台安装

它可以选择下载其他平台里 SteamCMD 所应该下载的文件,即使它不是当前正在运行的平台。 这是使用@sSteamCmdForcePlatformType变量来完成的(是的,在变量名称的开头有两个“s”。)例如:在 Linux 下载 Windows 的反恐精英:全球攻势专用服务器,你可以运行下面的命令:

./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit

或者使用下面的脚本:

@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit

这个变量支持windowsmacoslinux

Windows 软件/脚本

condenser

condenser 是一个用于下载,配置和启动 Steam 专用服务器应用的引导程序。

SteamCMD AutoUpdater

安装和自动更新任何游戏服务端

GitHub仓库: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver

SteamCMD GUI

这个工具可以使用户在 Windows 上不通过命令行或批处理文件来使用 SteamCMD。

GitHub 仓库: https://github.com/DioJoestar/SteamCMD-GUI

SteamCMD Guardian 1.2

在这里查看并下载:http://pastebin.com/BRUbsGQh

CSGO服务器 启动 SteamCMD

在看到 Steam> 提示符后设置你的 CS:GO 专属服务器安装路径。

示例代码:

Windows 操作系统

force_install_dir c:\csgo-ds\
force_install_dir .\csgo-ds\
force_install_dir c:\csgo-ds\
force_install_dir .\csgo-ds\

Linux 操作系统

force_install_dir /full/path/to/csgo-ds/
force_install_dir /full/path/to/csgo-ds/

安装或升级 CS:GO

如果您是第一次安装或需要检查服务器文件的完整性:

app_update 740 validate
app_update 740 validate

如果只是对先有服务器进行更新:

app_update 740
app_update 740

一旦完成安装,请在 Steam> 提示符后输入 quit 命令来退出 Steam 。

注册服务器登录令牌

如果您的服务器没有使用服务器登录令牌(GSLT)登录永久性游戏服务器账号, 则您的 CS:GO 游戏服务器和 GOTV 观战系统将只允许同一局域网内的客户端以 RFC 1918 的 IP 地址连接。

RFC 1918 是指私有网络地址分配,其中包含的 IP 地址范围是:

10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.25
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.25

如果您的服务器有一个公网 IP 地址,并且客户端需要从互联网访问服务器,则需要注册一个服务器登录令牌(GSLT)。

注册服务器登录令牌(GSLT)的过程非常简单,请访问此网站并根据提示注册: https://steamcommunity.com/dev/managegameservers (无需担心,一个合格的账户允许注册1000个服务器令牌)

每个服务器登录令牌(GSLT)只允许在一个游戏服务器示例上使用。这意味着如果您有多台 CS:GO 服务器,则需要为每一台服务器生成一个独一无二的令牌。

令牌在启动服务器时,通过在命令行中添加 +sv_setsteamaccount 来使用。您也可以通过添加 -net_port_try 1 命令来验证令牌的唯一性.

对了,凡是使用了令牌登录的公网服务器都必须严格遵守我们的服务器操作指南: https://blog.counter-strike.net/index.php/server_guidelines/

启动服务器

  • 有关端口转发的信息,请参阅:SRCDS页面;
  • 在 Linux 操作系统下,请将下列代码中最前边的 srcds 替换为 ./srcds_run;
  • 若是公共服务器,还需要添加+sv_setsteamaccount -net_port_try 1命令以使用GSLT(游戏服务器登录令牌)。
srcds -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2
srcds -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2
srcds -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2
srcds -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2

军备竞赛模式

srcds -game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup mg_armsrace +map ar_shoots
srcds -game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup mg_armsrace +map ar_shoots
srcds -game csgo -console -usercon +game_type 1 +game_mode 1 +mapgroup mg_demolition +map de_lake
srcds -game csgo -console -usercon +game_type 1 +game_mode 1 +mapgroup mg_demolition +map de_lake

死亡竞赛模式

srcds -game csgo -console -usercon +game_type 1 +game_mode 2 +mapgroup mg_allclassic +map de_dust
srcds -game csgo -console -usercon +game_type 1 +game_mode 2 +mapgroup mg_allclassic +map de_dust

这里仅列出了常用的游戏模式,请参阅 gamemodes.txt 文件以了解全部游戏模式

CSGOSL 一个跨平台的 CSGO 图形化界面

csgosl 是 Counter Strike Global Offensive 专用服务器(从现在开始是 CSGO 服务器)的图形用户界面。csgosl支持在windows和linux平台(supported platforms)上一键安装、更新、启动和停止服务器。如果您只想立即启动并运行自己的 CSGO 服务器,那么这里就是您的最佳选择。csgosl 支持大多数主流服务器选项。对于高级用户,退出高级模式为几乎所有设置提供支持。

csgosl 特点:

  • 完全自动安装(steamcmd + srcds + metamod/sourcemod/plugins)
  • 服务器更新,自动或手动
  • 启动/监控/停止服务器
  • 仅主机局域网或公共服务器
  • 举办研讨会地图和地图组
  • 使用地图组编辑器管理您的所有地图并创建您自己的地图组
  • 使用地图预览轻松查看和选择所有已安装的地图
  • 使用合理的默认值大大简化了服务器设置
  • 控制狂的高级设置模式(支持所有带有应用程序帮助文本的 cvar)
  • 在一个地方覆盖所有游戏模式/类型的设置
  • 从应用程序轻松访问在线帮助
  • 预装了 sourcemod、metamod 和一些插件

Linux 脚本

csgo-server-launcher

已创建一个简单的脚本来管理服务器。它在 Debian 和 Ubuntu 发行版上进行了测试,它可以创建、启动、停止、重新启动、更新服务器。您还可以通过控制台命令显示控制台。如果您在控制台模式中,请不要忘记按 CTRL+A,然后按 D 以在不停止服务器的情况下停止屏幕。

  • start – 在屏幕中使用 PARAM_START 变量启动服务器。
  • stop – 停止服务器并关闭加载的屏幕。
  • status – 显示服务器的状态(屏幕向下或向上)
  • restart – 重启服务器(停止&&启动)
  • console – 显示服务器控制台,您可以在其中输入命令。
  • update – 根据 PARAM_UPDATE 更新服务器,然后将日志文件保存在 LOG_DIR 中,如果 var 已满,则向
  • LOG_EMAIL 发送电子邮件。
  • create – 创建服务器(必须先配置脚本)。

这个脚本在 GitHub 上可用:csgo-server-launcher

LGSM csgoserver

作为Linux 游戏服务器管理器脚本的一部分,csgoserver是一个命令行工具,用于快速、简单地部署和管理反恐精英:全球攻势 Linux 专用服务器。

  • 服务器安装程序 (SteamCMD)。
  • 大量默认启动参数(包括车间支持)
  • 启动/停止/重启服务器。
  • 服务器控制台。
  • 服务器监控(包括电子邮件通知)。
  • 服务器更新(SteamCMD)。
  • 服务器备份。

Linux 游戏服务器管理器经过测试可在以下 Linux 发行版上运行:

  • 基于 Debian 的发行版(Ubuntu、Mint 等)。
  • 基于 Redhat 的发行版(CentOS、Fedora 等)。

gameservermanagers.com 获取脚本。

获取更多信息:Github Wiki

获得帮助:LGSM Steam 组。

Windows 软件/脚本

SteamCMD 图形用户界面
这个工具可以让用户在 Windows 上使用 SteamCMD 时无需接触命令行与批处理文件。

GitHub 地址: https://github.com/DioJoestar/SteamCMD-GUI.git

pyr0s-csgo-server-launcher
一个简单的脚本来启动 3 种不同的服务器,在任意 4 中游戏模式中可用。 我第一次尝试任何形式的脚本。

网址:https://code.google.com/p/pyr0s-csgo-server-launcher/

CSGO服务器 高级设置

配置你的全新《反恐精英:全球攻势》服务器,区别于服务器管理员所看到的过去的专用服务器。我们会讲到其中的主要区别。

autoexec.cfg

这个文件位于 \csgo\cfg 。

这个文件会在第一张地图被加载之前执行。 valve.rc 执行 autoexec.cfg ,并在下一句命令 stuffcmds ,将从命令行中执行带 + 的参数

在你的 autoexec.cfg 中,你只需要设置一次指令:

log on //这会启用日志记录,别把这个放在 server.cfg 文件中
hostname "Counter-Strike: Global Offensive Dedicated Server" //服务器名称
rcon_password "yourrconpassword" //你的rcon密码(远程管理服务器)
sv_password "" //只有在你打算搭私人服务器时才需要这个选项!
sv_cheats 0 //关闭作弊,这个就应该这么设置,别改
sv_lan 0 //不仅局域网联机,这个就应该这么设置,别改
exec banned_user.cfg //黑名单用户
exec banned_ip.cfg //黑名单IP
log on //这会启用日志记录,别把这个放在 server.cfg 文件中
hostname "Counter-Strike: Global Offensive Dedicated Server" //服务器名称
rcon_password "yourrconpassword" //你的rcon密码(远程管理服务器)
sv_password "" //只有在你打算搭私人服务器时才需要这个选项!
sv_cheats 0 //关闭作弊,这个就应该这么设置,别改
sv_lan 0 //不仅局域网联机,这个就应该这么设置,别改
exec banned_user.cfg //黑名单用户
exec banned_ip.cfg //黑名单IP

server.cfg

server.cfg 文件在 \csgo\cfg 目录下(如果没有就自己新建一个)

这个文件在每次切换地图时加载,并在下面列出的 gamemode 文件之前。 这里是一个非常简单的 server.cfg 文件示例:

mp_autoteambalance 1 //开启队伍平衡
mp_limitteams 1 //队伍最多允许相差人数
writeid //白名单用户
writeip //白名单IP
mp_autoteambalance 1 //开启队伍平衡
mp_limitteams 1 //队伍最多允许相差人数
writeid //白名单用户
writeip //白名单IP

gamemodes.txt

这个文件位于 \csgo\ 文件夹中。

本质上,这个文件是 Valve 定义的标准 “规则” 。例如,在休闲模式会自动为 CT 提供拆弹工具,而在竞技模式中则会像以前的 CS 一样被要求玩家手动购买。您不应该编辑这个文件,因为 Valve 可能会随时决定或更改任何特定模式的规则。如果您自定义了此文件,您的改动将会在服务器更新时被覆盖。

尽管您不应该编辑这个文件,但是对这个文件的修改仍然是有效的。找到您想编辑的部分,您便会看到一组您可以设置的参数。同样,您需要在 gamemodes_server.txt 做出实际修改。

文件的每一个部分由游戏类型分隔。游戏类型包括休闲模式、竞技模式、军备竞赛模式(gungameprogressive)、爆破模式(gungametrbomb)和死亡竞赛。

gamemodes_server.txt

这个文件必须存在,或者生成自 gamemodes_server.txt.example 放在 \csgo\ 文件夹中。 这个文件允许服务器管理员在他们的服务器上自定义每种游戏模式。这将覆盖 Valve 默认的 gamemodes.txt。例如,使用这份文件,您可以修改一场比赛的最大局数或者启用友方火力但降低伤害。

与 gamemodes.txt 文件保持相同的层次结构和语法非常重要!!! 服务器在安装时包含一个 gamemodes_server.txt.example 文件来帮助您学习语法。标准服务器中,一开始并没有 gamemodes_server.txt 这样一个文件。您必须复制、重命名或者创建一个新的 gamemodes_server.txt 文件去应用您的游戏模式。

机器人设置

您可以修改下面的内容,来改变机器人的数量、它们在服务器上的分布、以及它们的聊天程度:

"bot_quota_mode" "fill" // 填充方式:填满空位
"bot_defer_to_human_items" "1"
"bot_defer_to_human_goals" "0"
"bot_difficulty" "1" // 机器人难度:1
"bot_dont_shoot" "0" // 机器人无害:关闭
"bot_chatter" "normal" // 机器人无线电:普通
"bot_autodifficulty_threshold_low" "-2.0" // 机器人自动难度门槛低值:值在 -20.0 到 20.0 之间,(最低人类平均分,低于此分数机器人会提高难度)
"bot_autodifficulty_threshold_high" "0.0" // 机器人自动难度门槛高值:值在 -20.0 到 20.0 之间,(高于人类平均分,超过此分数机器人会降低难度)
"bot_quota_mode" "fill" // 填充方式:填满空位
"bot_defer_to_human_items" "1"
"bot_defer_to_human_goals" "0"
"bot_difficulty" "1" // 机器人难度:1
"bot_dont_shoot" "0" // 机器人无害:关闭
"bot_chatter" "normal" // 机器人无线电:普通
"bot_autodifficulty_threshold_low" "-2.0" // 机器人自动难度门槛低值:值在 -20.0 到 20.0 之间,(最低人类平均分,低于此分数机器人会提高难度)
"bot_autodifficulty_threshold_high" "0.0" // 机器人自动难度门槛高值:值在 -20.0 到 20.0 之间,(高于人类平均分,超过此分数机器人会降低难度)

您可以通过下面的设置来更改每一回合的规则。您可以从回合数改到回合时间限制,修改初始冻结时间,修改玩家死亡后是否可以观察敌人。每个 convar 都是为了每个特殊游戏类型设置的,所以您必须修改每个不同的游戏模式来得到更新。这些或许会被 cfg/gamemode_XXX.cfg 和 cfg/gamemode_XXX_server.cfg 覆盖,详情如下所述。

"mp_afterroundmoney" "0"
"mp_playercashawards" "1"
"mp_teamcashawards" "1"
"mp_maxrounds" "30"
"mp_timelimit" "0"
"mp_roundtime" "2"
"mp_freezetime" "15"
"mp_buytime" "45"
"mp_forcecamera" "1" // Set to 1 for team only spectating.
"mp_defuser_allocation" "0"
"mp_death_drop_gun" "1" // 0=none, 1=best, 2=current or best
"mp_death_drop_grenade" "2" // 0=none, 1=best, 2=current or best
"mp_death_drop_defuser" "1"
"mp_afterroundmoney" "0"
"mp_playercashawards" "1"
"mp_teamcashawards" "1"
"mp_maxrounds" "30"
"mp_timelimit" "0"
"mp_roundtime" "2"
"mp_freezetime" "15"
"mp_buytime" "45"
"mp_forcecamera" "1" // Set to 1 for team only spectating.
"mp_defuser_allocation" "0"
"mp_death_drop_gun" "1" // 0=none, 1=best, 2=current or best
"mp_death_drop_grenade" "2" // 0=none, 1=best, 2=current or best
"mp_death_drop_defuser" "1"

你会发现 convars 可以修改军备竞赛模式服务器的玩家使用什么武器。你可以设置武器顺序和击杀要求,以转移到下一件武器。两个团队使用不同的设置,所以要小心修改以免比赛失衡。

举个例子,这里有一个军备竞赛的武器/击杀需求进程表:

"mp9" { "kills" "1" }
"mac10" { "kills" "1" }
"mp7" { "kills" "1" }
"bizon" { "kills" "1" }
"ump45" { "kills" "1" }
"p90" { "kills" "1" }
"nova" { "kills" "1" }
"mag7" { "kills" "1" }
"xm1014" { "kills" "1" }
"sawedoff" { "kills" "1" }
"galilar" { "kills" "1" }
"famas" { "kills" "1" }
"ak47" { "kills" "1" }
"m4a1" { "kills" "1" }
"sg556" { "kills" "1" }
"aug" { "kills" "1" }
"awp" { "kills" "1" }
"m249" { "kills" "1" }
"negev" { "kills" "1" }
"glock" { "kills" "1" }
"hkp2000" { "kills" "1" }
"tec9" { "kills" "1" }
"p250" { "kills" "1" }
"deagle" { "kills" "1" }
"fiveseven" { "kills" "1" }
"elite" { "kills" "1" }
"knifegg" { "kills" "1" }
"mp9" { "kills" "1" }
"mac10" { "kills" "1" }
"mp7" { "kills" "1" }
"bizon" { "kills" "1" }
"ump45" { "kills" "1" }
"p90" { "kills" "1" }
"nova" { "kills" "1" }
"mag7" { "kills" "1" }
"xm1014" { "kills" "1" }
"sawedoff" { "kills" "1" }
"galilar" { "kills" "1" }
"famas" { "kills" "1" }
"ak47" { "kills" "1" }
"m4a1" { "kills" "1" }
"sg556" { "kills" "1" }
"aug" { "kills" "1" }
"awp" { "kills" "1" }
"m249" { "kills" "1" }
"negev" { "kills" "1" }
"glock" { "kills" "1" }
"hkp2000" { "kills" "1" }
"tec9" { "kills" "1" }
"p250" { "kills" "1" }
"deagle" { "kills" "1" }
"fiveseven" { "kills" "1" }
"elite" { "kills" "1" }
"knifegg" { "kills" "1" }

在举个例子,这里是一个爆破模式的武器/击杀需求进程表:

"m4a1" { "kills" "1" }
"p90" { "kills" "1" }
"ump45" { "kills" "1" }
"deagle" { "kills" "1" }
"nova" { "kills" "1" }
"fiveseven" { "kills" "1" }
"hkp2000" { "kills" "1" }
"ssg08" { "kills" "1" }
"awp" { "kills" "1" }
"Scar20" { "kills" "1" }
"m4a1" { "kills" "1" }
"p90" { "kills" "1" }
"ump45" { "kills" "1" }
"deagle" { "kills" "1" }
"nova" { "kills" "1" }
"fiveseven" { "kills" "1" }
"hkp2000" { "kills" "1" }
"ssg08" { "kills" "1" }
"awp" { "kills" "1" }
"Scar20" { "kills" "1" }

请注意,军备竞赛模式默认使用随机武器,要强制使用自定义列表请将 mp_ggprogressive_use_random_weapons 改成 0 。

gamemode_casual_server.cfg

gamemode_casual_server.cfg 和 gamemode_casual.cfg 文件驻留在 cfg 目录中。后者(gamemode_casual.cfg)由 Valve 设置,并在每一场休闲模式比赛的开始被设置(它们在每次加载地图时应用)。每个游戏模式都有一个对应的文件(把casual替换成合适的模式。 competitive 或者 armsrace)。文件的格式非常简单,就是”convar setting //可选注释”。拿 gamemode_casual.cfg 文件举例:

bot_autodifficulty_threshold_high 0.0 // 值介于 -20.0 到 20.0 之间...
cash_player_bomb_defused 200 // 玩家拆除炸弹奖励
bot_autodifficulty_threshold_high 0.0 // 值介于 -20.0 到 20.0 之间...
cash_player_bomb_defused 200 // 玩家拆除炸弹奖励

管理员不应该修改名为 gamemode_XXX.cfg 的文件。Valve 的命名规则表名,这些文件将可能在未来被修改,然后覆盖您的设置文件。相反,您应该创建以 _server.cfg 结尾的文件。

每一个 gamemode_XXX.cfg 文件应该都有一个对应的 gamemode_XXX_server.cfg 文件放在 cfg 文件夹下。 Valve 的文件命名规定是 _server.cfg 文件将不会被更新覆盖。在 _server.cfg 文件中的任何改动将会覆盖原始配置文件,因为 _server.cfg 文件会在其之后执行。这种组合在 gamemodes.txt 中是可见的

在 gamemode_XXX.cfg 和 gamemode_XXX_server.cfg 中的设置四号覆盖了 gamemodes_server.txt ,和 server.cfg 。此外,由于格式的原因,修改 gamemode_XXX_server.cfg 似乎会更容易。

在修改设置时,变量和属性之间的空格似乎没有数量限制,但是必须要有。注释是 C++ 的单行注释风格,必须放在 // 之后。

一旦您启动了专用服务器,您输入这条指令来启用日志

//这些日志将会存放在您的专用服务器的 csgo 文件夹
cvarlist log cvarlist.txt
//这些日志将会存放在您的专用服务器的 csgo 文件夹
cvarlist log cvarlist.txt

游戏不再使用 maplist.txt 文件,您的游戏现在由地图组控制。服务器必须使用 mapgroup 或者 workshop_collection ,否则地图将无法正常循环。请参阅 gamemodes_server.txt.example 文件的 mapgroup 示例。

快速搭建 CSGO社区服务器


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK