CS2服务器 - 满十&跑图&道具练习(Linux MatchZy)
KOFXIII
编辑于 2026年02月28日 18:19
收录于文集
共7篇

1 前言

1.1 插件介绍

搭建过 csgo 和 l4d2 服务器的玩家应该都用过 MetaMod + SourceMod 插件,因为CS2换用了起源2引擎,目前主流的是 MetaMod + CounterStrikeSharp 插件组合,其中大多数插件是基于 CounterStrikeSharp 实现功能的,少量插件以及 CounterStrikeSharp 插件是基于MetaMod 实现功能的

3个插件之间的依赖关系图

本文要用到的插件是来自github大佬Shobhit Pathak制作的 MatchZy,插件版本为 v0.7.8,可实现的功能有:

① 组织一场CS2竞技比赛,包含热身、刀局、加时赛等环节

② 为CT、T阵营设置战队名称;设置教练席

③ 普通暂停、战术暂停、技术故障暂停;恢复到指定的回合数

④ 每回合结束后聊天框显示本回合的伤害统计信息;比赛完成后自动生成各项数据的统计表;默认使用配置好的SQLite数据库,也可修改配置换成MySQL数据库

⑤ 管理员功能:强制开始&暂停&重开比赛、白名单、管理员发言等功能。同时弥补了CS2缺失的rcon功能

⑥ 跑图、练习模式:可在所有官方地图中跑图、放置bot、练习道具。聊天框可实时显示武器伤害值、道具伤害值、闪光致盲时间,还有计时器功能

⑦ 可制作道具练习脚本。能存储道具点位信息,方便其他人学习道具,类似于完美、5E的道具练习模式,只是界面比较简陋

⑧ 自动将比赛demo并上传到 URL(前提是已用tv_enable 1命令开启CS2自带的demo录制功能;可以参考我另一篇专栏,点击跳转​

⑨ 在v0.6.0版本支持了Get5 Panel功能,这个很可能是未来MatchZy插件的核心功能,但个人认为学习成本较高就放弃了,且当前面板所提供的功能还有待完善,本文不介绍相关内容,请自行从插件的自述文档中了解其用法

【声明】插件来源于github,由插件造成的服务器崩溃、插件功能故障等情况本人概不负责,如有bug或改进建议请自行到github反馈给原作者

另外本文是以Debian12系统为基础搭建CS2服务器的,安装的插件也都是适用于Linux系统的,可以参考我的其他专栏

【注意】如果你的linux服务器仅用于CS2游戏,请不要使用CentOS_7以及更早的版本,因为随着CS2的不断更新,以后必定会出现软件依赖库不兼容、版本过旧等问题,且已知CentOS_7版本在安装MetaMod dev版本时会有某些依赖库缺失的问题,需要一些linux基础才能解决

=======================================

本专栏最后更新于 2026年01月10日

主要是说一下目前debian13系统下CounterStrikeSharp插件无法运行的问题,解决方法放在另一篇专栏里,点击跳转​

目前matchzy插件已更新到0.8.15版本,请自行体验新版本的功能,以后本专栏只更新插件安装、运行方面的问题

=======================================

1.2 目录

  • 1.1 ==> 介绍MatchZy插件的各种功能

  • 2.x ==> 下载和安装MetaMod

  • 3.x ==> 下载和安装CounterStrikeSharp、MatchZy

  • 3.4 ==> MatchZy切换简体中文

  • 4.x ==> 组织一场CS2竞技比赛

  • 5.x ==> 练习模式介绍

  • 6.x ==> 制作道具练习脚本

  • 7.x  ==> 故障排查方法

2 下载和安装MetaMod

2.1 下载MetaMod

目前开发版(Dev Builds)的MetaMod支持CS2游戏,需下载最新版的Linux版的MetaMod插件,下载网址:https://www.metamodsource.net/downloads.php?branch=dev

下载metamod

2.2 安装MetaMod

【示例】以1271版本为例,下载得到的压缩包为 mmsource-2.0.0-git1271-linux.tar.gz,先在windows系统里进行解压,得到一个 addons 文件夹

打开ssh终端连接到自己的linux服务器。根据我的个人习惯,这里以debian12系统作为CS2服务器,以FinalShell作为ssh终端软件,cs2服务器的文件目录为:/home/aaa/Steam/cs2-ds

在FinalShell中打开目录 /cs2-ds/game/csgo/,然后将刚才解压得到的addons文件夹整个拖动复制到csgo文件夹里,最终效果如下图所示

addons的安装位置

2.3 启用MetaMod插件

依旧是 /cs2-ds/game/csgo/ 这个目录,找到 gameinfo.gi 这个文件,鼠标双击打开进行编辑,写入一行文字:Game csgo/addons/metamod

然后键盘按Ctrl+S保存,效果如下图所示

编辑gameinfo.gi文件

至此,MetaMod已完成安装

以后如需更新MetaMod版本,用新版本解压后的addons文件夹直接覆盖到CS2服务器里的addons即可,然后重新编辑gameinfo.gi文件即可完成版本更新

【 !!!注意!!!】

以后遇到插件无法使用的情况,首先要检查gameinfo.gi文件是否正确

因为CS2服务器文件更新后有时候会自动校验文件完整性,然后自动还原gameinfo.gi文件,导致所有插件失效

2.4 验证MetaMod是否已启用

在启动CS2服务器后,在ssh终端直接输入 meta 即可调出MetaMod的菜单,如下图所示

验证metamod是否已启用

3 下载和安装CounterStrikeSharp、MatchZy

3.1 下载CounterStrikeSharp和MatchZy

CounterStrikeSharp下载网址为:https://github.com/roflmuffin/CounterStrikeSharp/releases

保险起见,应下载带有runtime的linux版本,例如:counterstrikesharp-with-runtime-linux-1.0.363

MatchZy下载网址:https://github.com/shobhit-pathak/MatchZy/releases

由于MatchZy更新频率很低,不建议选择带cssharp的组合包,应选择单独的MatchZy插件压缩包,例如图中的MatchZy-0.8.15.zip

【注意】后续需要单独更新MatchZy插件时,应提前备份个人配置文件,例如admins.json、道具点位savednades.json和各种自定义cfg,以免被新版本覆盖

3.2 安装CounterStrikeSharp和MatchZy

与安装MetaMod的方法相同,本质就是将插件复制到相应的目录中

【步骤1】在windows系统中分别解压两个插件的压缩包

【步骤2】先安装CounterStrikeSharp,将解压得到的addons文件夹通过FinalShall终端软件传输到debian系统的 /home/aaa/Steam/cs2-ds/game/csgo目录中,即可完成安装

【步骤3】再安装MatchZy,将解压得到的addons和cfg两个文件夹通过FinalShall终端软件传输到debian系统的 /home/aaa/Steam/cs2-ds/game/csgo目录中,即可完成安装。

【步骤4】检查一下是否安装正确,在debian系统中打开路径 /home/aaa/Steam/cs2-ds/game/csgo/addons/counterstrikesharp/plugins后,应能看到MatchZy文件夹。在debian系统中打开路径 /home/aaa/Steam/cs2-ds/game/csgo/cfg后,也应该能看到MatchZy文件夹

3.3 验证插件是否安装成功

首先,在CS2服务器启动完成后,输入:meta list,查看MetaMod已加载的所有插件

已成功加载CounterStrikeSharp

然后,继续输入:css_plugins list,会列出CounterStrikeSharp已加载的所有插件

已成功加载MatchZy

【注意】因为CS2及其插件更新频繁,本专栏又经过多次修改,导致文字和配图中的插件版本号非常混乱,请以实际最新版本号为准

如果验证插件未成功加载,请参考本文7.2章节

3.4 切换简体中文

/addons/counterstrikesharp/plugins/MatchZy/lang 路径下可以看到MatchZy已加入简体中文翻译文件 zh-Hans.json ,打开此文件可以查看所有的中文翻译文本

切换中文的方法是打开路径 /addons/counterstrikesharp/configs ,编辑 core.json 文件,将 "ServerLanguage": "en" 改成 "ServerLanguage": "zh-Hans"

如果找不到 core.json ,是因为你从未运行过 MatchZy 插件,可以编辑 core.example.json 文件,等运行过一次MatchZy插件后,其中的配置会自动转移到 core.json 中

4 组织一场CS2竞技比赛

4.1 设置MatchZy的管理员

【注意】未特别说明时,本文所说的管理员和管理员权限,均指的是MatchZy这个插件里设置的管理员,而不是CS2服务器的管理员

要将自己的steam账号设为MatchZy插件的管理员,首先要获取64位steamid,最简单的方法是windows下打开steam软件,然后打开个人资料页面,上方的网址里就有自己的64位steamid,如下图所示

获取steamid

如果网址栏末尾不是一串数字,可能是你曾经自定义过URL,需要打开个人资料的修改页面,如下图所示

只是临时删掉自定义URL来查看被隐藏的64位steamID,不要点击此页面右下角的保存按钮,毕竟这个自定义URL可能是你精心设计的,在steam全平台具有唯一性,每个steam玩家的URL不能重复

同理,查看其他人的steam个人资料页面也可以获取他们的steamid

获取64位steamid后,在FinalShell终端打开目录:/cs2-ds/game/csgo/cfg/MatchZy,双击打开admins.json文件,将steamid填进去即可设置为管理员。如果有多个管理员,记得用英文逗号分隔,否则无法获得管理员权限

添加管理员id

另外MatchZy也提供了细化管理员权限的方法,具体用法请自行查看插件的自述文件,用法比较简单,这里就不多说了,网址:https://github.com/shobhit-pathak/MatchZy

管理员权限分配

4.2 切换地图

【示例】管理员在聊天框输入:.map de_dust2

官方地图名称:

远古遗迹 —— de_ancient

阿努比斯 —— de_anubis

炙热沙城2 —— de_dust2

炼狱小镇 —— de_inferno

荒漠迷城 —— de_mirage

核子危机 —— de_nuke

死亡游乐园 —— de_overpass

殒命大厦 —— de_vertigo

意大利小镇 —— cs_italy

办公室 —— cs_office

行李仓库 —— ar_baggage

山林小寨 —— ar_shoots

4.3 切换游戏模式

MatchZy插件提供四种模式(我很少玩社区服,不确定这些模式的翻译是否正确)

pug mode  默认模式:已进入CS2服务器的玩家可自由组队进行一场竞技比赛   

practice mode  练习模式:参考第5、6章节。还包含一个dry-run模式

scrim mode  训练模式:即开启 .playout 功能(参考4.4章节)后的竞技模式。方便两个队伍在竞技模式的规则下组织练习,且不用担心有一方拿到13分而被迫结束比赛

match mode 匹配模式:定制的比赛。需提前将参赛的玩家信息、队伍信息、教练信息、选图等比赛规则写入一个json文件,然后用命令(参考4.13章节最后一个命令)加载这个json文件,且服务器会自动踢出与比赛无关的玩家。未加载比赛json时,pug mode和match mode的游戏界面以及玩法都是相同的


当CS2服务器加载MatchZy插件后,默认是 pug mode

可通过编辑cfg文件夹里的config.cfg文件来指定默认运行的游戏模式

也可由管理员按Y在聊天框输入:.prac 或 .exitprac 或 .match 或 .tactics 在match mode和practice mode之间切换

当竞技比赛开始后不允许切换到练习模式,可以使用 .restart 命令回到热身环节,然后再切换到练习模式

当前为pug或match模式

当前为practice模式

4.4 查看当前游戏规则

管理员在聊天框输入:.settings

当前游戏规则

Knife:Enabled  代表:已开启拼刀局

Minimum Ready Required:2 代表:至少需要2名玩家输入.ready才能开始竞技比赛

Playout:Disabled 代表:有限的回合数,即默认的MR12

以上三条规则对应的管理员命令(需在聊天框输入)为:

.roundknife  开启/关闭 拼刀局,可简写为 .rk

.readyrequired   设置开始比赛所需的已准备人数,输入 .readyrequired 0 代表需所有玩家输入.ready才能开始竞技比赛

.playout  以MR12为例,启用(Enabled)此功能后,比赛双方打满24回合后自动结束比赛,俗称打训练赛(可再次输入 .playout 禁用此规则,即Disabled状态)

4.5 设置双方战队名称

【示例】管理员在聊天框输入:.team1 描边大师队

设置CT战队名

效果如下图所示

设置CT战队名

同理,设置T战队名称的管理员命令是:.team2 xxx队

4.6 设置教练

【示例】如果有玩家要当CT方的教练,则需在聊天框输入:.coach ct

目前教练功能还在不断完善中。在竞技比赛开始后,教练会固定在空中,当开局18秒冻结时间结束后,教练会自动切换到死亡视角来观察CT方的玩家。已修复旧版本插件中教练能拥有雷包和武器的bug

教练角色默认出生点位在空中

4.7 玩家准备开始竞技比赛

参与比赛的玩家需要在聊天框输入:.ready

达到规定人数后比赛才会正式开始,否则聊天框会一直提示让玩家准备

管理员可以强制开始比赛,需要在聊天框输入:.start

这样无论玩家是否准备好,竞技比赛都会立即开始

同理,管理员也可以强制重开比赛,命令为:.restart

在match mode或Get5面板中进行的比赛,可以强制玩家团体做准备,命令:.forceready

【补充1】在MatchZy v0.7.1版本中新增一个命令:.skipveto 我搞不清该怎么翻译这个命令,经过测试它相当于“一票否决权”,例如有玩家输入 .ready 确认已准备,管理员再输入 .skipveto 就会重置所有玩家的准备状态

【补充2】在MatchZy v0.7.8版本中新增 .force.forcestart 两个命令,也可以强制开始比赛

4.8 拼刀局

如果有拼刀局,获胜规则为:存活人数多者胜,人数相同情况下血量多者胜,血量相同情况下则由系统随机指定胜者

拼刀局获胜队伍需要在聊天框输入:.stay.switch 来选择是否换边

.stay  留在当前阵营,即不换边

.switch  切换到对方阵营,即换边

.solid 切换是否能穿过队友的身体(参数在0和1直接切换)

【补充】.solid这个命令对应的控制台命令是 mp_solid_teammates 1 ,参数为1时代表不可穿过队友身体;参数改为0时代表可以完全穿过队友身体,不会产生身体碰撞;参数为2时代表可以穿过队友身体并且可以站在队友头顶。这个命令与“是否开启友伤”并不冲突

4.9 各种比赛暂停

.pause 由玩家发起暂停,不限时间

.unpause 由暂停发起方队伍来解除暂停

.forcepause 由管理员发起强制暂停,可简写为 .fp

.forceunpause 由管理员解除强制暂停,可简写为 .fup

.tech 发起技术暂停,默认时长300秒

.tac 由玩家发起战术暂停,时长30秒

4.10 恢复功能

.stop 恢复当前回合的备份,需两队都输入.stop

.restore 恢复到指定的回合数。例如输入 .restore 11 ,则已结束的前10回合数据不变,直接进行第11回合比赛

4.11 比赛结果统计表

一场竞技比赛结束后,MatchZy插件会自动生成数据表 

在FinalShell中打开目录:/cs2-ds/game/csgo/MatchZy_Stats

此文件夹保存的csv表格文件记录了玩家的比赛数据,可根据表格的修改时间来区分比赛场次

【注意】非正常情况下结束的比赛可能不会生成比赛数据统计表,比如CS2服务器突然崩溃,也无法通过.restore来恢复指定回合数

比赛数据表

4.12 关于友伤

玩过5E、完美平台的玩家应该知道,这些平台的“关闭友伤”是不能免除道具伤害的,而我们常用的 mp_friendlyfire 0 是关闭一切来自友军的伤害

以下是一些关于友伤的控制台命令:

mp_friendlyfire 0  关闭友伤

mp_teammates_are_enemies  将队友当做敌人,类似于死竞模式下所有玩家都是敌人

ff_damage_decoy_explosion 0 默认关闭诱饵弹爆炸产生的伤害

ff_damage_bullet_penetration 0  这个似乎是调整友军子弹的穿透力,避免一枪打伤两个队友

ff_damage_reduction_bullets 0.33  友军子弹的伤害衰减(参数为1时代表等同于敌军收到的伤害)

ff_damage_reduction_grenade 0.85 友军道具的伤害衰减(参数为1时代表等同于敌军收到的伤害)

ff_damage_reduction_grenade_self 1 玩家自己的道具对自己产生的伤害(参数为1时代表等同于敌军收到的伤害)

ff_damage_reduction_other 0.4  减少子弹和手榴弹以外的东西对队友造成的伤害(参数为1时代表等同于敌军收到的伤害)

【总结】要达到5E、完美等平台的效果,应该先开启友伤,命令:mp_friendlyfire 1 然后关闭友军子弹伤害,命令:ff_damage_reduction_bullets 0

4.13 其他游戏配置

如果MatchZy插件提供的功能满足要求,也可以直接使用CS2控制台指令来改变游戏规则

【方法一】直接用FinalShell终端向CS2服务器发送控制台指令

【方法二】使用rcon方式向CS2服务器发送控制台指令。不过目前CS2的rcon功能还未启用,MatchZy插件内的rcon使用方式为:!rcon 。也可用fake-rcon插件来解决,网址:https://github.com/Salvatore-Als/cs2-fake-rcon

【方法三】在FinalShell中打开目录:/cs2-ds/game/csgo/cfg/MatchZy,找到warmup.cfg、knife.cfg、live.cfg、prac.cfg这四个文件,它们分别在热身环节、拼刀环节、比赛环节、练习模式里生效,可根据个人需求进行修改

【方法四】在FinalShell中打开目录:/cs2-ds/game/csgo/cfg/MatchZy,找到config.cfg,其内容是MatchZy的默认规则,目前有如下几个选项:

matchzy_whitelist_enabled_default false  默认禁用白名单功能

matchzy_knife_enabled_default true  默认开启拼刀局

matchzy_minimum_ready_required 2  开启竞技比赛至少需2人输入 .ready

matchzy_demo_path MatchZy/  默认将demo保存在MatchZy文件夹内

matchzy_demo_name_format  可自定义demo的文件名格式

matchzy_stop_command_available false  默认不允许使用.stop命令

matchzy_use_pause_command_for_tactical_pause false  玩家使用的 .pause 命令属于普通暂停(与战术暂停.tac进行区分)

matchzy_enable_tech_pause true 默认允许使用技术暂停

matchzy_tech_pause_duration 300 默认技术暂停时长为300秒,参数改为-1代表无限时长

matchzy_max_tech_pauses_allowed 2 默认最多2次技术暂停

matchzy_pause_after_restore true  默认在恢复指定的回合数之后自动进入暂停环节

matchzy_chat_prefix [{Green}MatchZy{Default}]  每次MatchZy向玩家发信息时前缀为绿色

matchzy_admin_chat_prefix [{Red}ADMIN{Default}]  每次管理员向玩家发消息时前缀为红色

matchzy_chat_messages_timer_delay 13  MatchZy插件发送消息的间隔默认为13秒

matchzy_playout_enabled_default false  默认不开启 .playout 功能

matchzy_reset_cvars_on_series_end true  默认在比赛结束后将比赛规则参数恢复为默认值

matchzy_demo_upload_url ""  默认在比赛结束后将demo上传到指定url

matchzy_save_nades_as_global_enabled false  默认玩家保存的nade是私有的,别人不能调用这些私有的nade

matchzy_autostart_mode 1  MatchZy插件启动时默认开启竞技模式;参数2代表练习模式,参数0代表两个模式均不开启

matchzy_allow_force_ready true 默认允许使用 .forceready 命令

matchzy_max_saved_last_grenades 512 默认最多保存512条道具记录

matchzy_everyone_is_admin false 默认关闭“所有玩家拥有MatchZy管理员权限”

matchzy_kick_when_no_match_loaded false  默认在match mode且没有加载json文件时,不会踢出所有玩家(如果是开启状态,则需使用matchzy_loadmatch  或 matchzy_loadmatch_url ""命令加载指定的json文件,从而进行一场定制的竞技比赛,作者也给出了一个示例文件,网址:https://shobhit-pathak.github.io/MatchZy/match_setup/ )

【注意】以上翻译属于我的个人理解,可能有不准确的地方,可以参考MatchZy插件的作者编写的英文版解释文档,网址:https://shobhit-pathak.github.io/MatchZy/configuration/

5 练习模式介绍

5.1 切换到练习模式

同本文4.3章节,需管理员在聊天框输入:.prac .tactics

退出练习模式,命令:.exitprac

5.2 默认出生点位

有三个命令:.spawn 、.ctspawn 、tspawn

【示例】在聊天框输入:.ctspawn 5 ,则自己会传送到CT阵营的5号默认出生点位上

每张官方地图都有固定的几个出生点位,这个命令就可以快捷的模拟正式比赛中的各种情况,比如测试CT和T的抢点速度、某些出生点位有特殊的道具投掷方法等等

5.3 切换阵营

.ct  加入CT阵营

.t  加入T阵营

.spec  加入观察者

.fas  强制其他非bot玩家加入观察者

.watchme  强制其他非bot玩家加入观察者视角并观察自己

5.4 放置bot

.bot  在玩家当前位置生成一个bot

.cbot 在玩家当前位置生成一个蹲姿bot

.crouchbot  在玩家当前位置生成一个下蹲状态的bot

.nobots 踢出所有bot

.boost  在玩家脚下放置一个站立状态的bot

.crouchboost  在玩家脚下放置一个下蹲状态的bot,与 .crouchbot 的区别是不能重新跳到bot头上???

【玩法一】生成bot可以保留玩家的位置坐标和视角方向,可以用来测试闪光弹是否能致盲特定的点位、道具是否能对特定位置的玩家造成伤害、练习peek、练习预瞄等等

【玩法二】玩家可以利用双架来到达平时跳不上去的位置,也可以模拟在烟雾弹后面双架来获取视野

【玩法三】目前在玩家脚下生成的bot并不会自主跑动,也就无法帮玩家练习runboost,此功能有待完善。但可以脱离MatchZy插件,自建一个本地的练习房,使用bot_mimic 1 (参数0 1 -1分别代表:不模仿、模仿、仅bot可行动 三种状态)和 bot_mimic_yaw_offset 360 这两个控制台指令搭配进行练习,也可以使用指令绑定键盘H键为一键切换bot站立/蹲姿 bind "h" "toggle bot_crouch 0 1" ,再绑定键盘K键为bot是否模仿玩家行为 bind "k" "toggle bot_mimic 0 1 -1;bot_mimic_yaw_offset 360"

5.5 数据展示

【枪械伤害数据展示】【闪光致盲时长展示】

MatchZy插件的练习模式在聊天框实时显示闪光弹的致盲时间、道具造成的伤害、枪械造成的伤害等信息,方便玩家进行道具练习、穿点测试

数据展示

【道具滞空时长】

可用于寻找烟雾弹、闪光弹的最优投掷方式

道具飞行时间

【计时器功能】

可用来计算从A点跑到B点所需时间

计时器

5.5 道具相关命令

.traj 是否显示道具投掷预览小窗口

!rethrow  重投上一个道具

!last  传送到上一次投掷道具的位置

【示例】你无意中丢出一个很厉害的烟雾弹,就可以用 !last 这个命令恢复到之前的站位和投掷角度,然后在控制台用 getpos 命令获取并记录下相关的坐标数据

!back 根据道具投掷记录,传送到指定投掷记录编号的位置

【示例】想要回到投掷第3个道具时的位置,就在聊天框输入:!back 3

!delay   给上一次投掷的道具设置一个延迟时间

【示例】先投掷一个闪光弹,然后给它加2秒延迟,命令:!delay 2 然后使用 !rethrow 命令复现这颗闪光弹时就会有2秒的延迟

!throwindex   根据道具投掷记录,依次重投指定的道具。如果投掷时设置了延迟时间,则复现时也会保留延迟时间

【示例1】想要复现第5次投掷的道具,就在聊天框输入:!throwindex 5 

【示例2】想要复现第2、3、6、7次投掷的道具,就在聊天框输入:!throwindex 2 3 6 7

!lastindex  显示上次投掷的道具在投掷记录里的编号

查询投掷道具的编号

!rethrowsmoke  重投上一个烟雾弹

!rethrownade  重投上一个高爆手雷

!rethrowflash  重投上一个闪光弹

!rethrowmolotov  重投上一个燃烧瓶(插件作者似乎忘了燃烧弹……)

!rethrowdecoy  重投上一个诱饵弹

5.6 其他命令

.god 无敌模式,把生命值调成巨大,防止烧死、摔死等情况

.clear 清除烟雾、燃烧效果,方便练习道具

.impacts 切换是否显示弹着点

.noblind 开关闪光弹的致盲效果

.fastforward 将服务器时间快进20秒。例如可以缩短C4引爆的等待时间

.break  打破地图内所有易碎的实体,如玻璃窗、木板、通风口等

.asay  在聊天框中以管理员身份发言

.reload_admins 从admins.json重新加载管理员

.whitelist 玩家白名单,存储目录:cfg/MatchZy/whitelist.cfg

.dryrun  我个人将其翻译为演习模式,效果是在练习模式下临时进入竞技模式,且只维持1个回合

还有几个命令可以用来制作道具练习脚本,就放在第6章节来介绍

6 制作道具练习脚本

6.1 使用插件保存玩家的位置和方向信息

.savenade 保存当前玩家的位置和方向数据

【示例】在聊天框输入:.savenade 点位1 需要跳投

这里第一个参数就是“点位1”,第二个参数就是“需要跳投”,第二个参数只是备注作用,可不写

保存一个xbox烟点位

当然,第二个参数可以备注此道具的用法,当加载此点位时游戏中会有横幅提示,如下图所示

此点位的Desc信息

然后在FinalShell中打开目录:/cs2-ds/game/csgo/cfg/,找到savednades.json文件,新增的点位就保存在这个文件中

保存点位的文件

如上图所示,不同管理员保存的点位会根据steamid进行区分,点位的name如果是中文就会保存为字符编码,还能保存此点位适用哪个地图,以及切换出指定的道具

MatchZy的作者也在文档里写了一些适用于nuke的点位,不需要的话可以删掉

6.2 手动保存玩家的位置和方向信息

.importnade 手动保存name、pos、ang到新nade

【示例】以dust2的警家烟为例,在练习模式,玩家站到需要丢烟的位置并用准星瞄好点,然后打开控制台,输入:getpos

getpos

获取到坐标信息后,接下来在聊天框输入:.importnade xbox -275.029419 1345.431152 -58.407829 -10.670014 129.621689 0.000000

【注意】各个参数之间只能有1个空格,多余的空格会导致保存点位失败

手动导入点位

同样的,也可以到savednades.json文件中查看此点位信息,也可以补充上Desc、Map、Type等信息

以下为道具type名称:

Molly  燃烧弹/燃烧瓶】  【HE  手雷】

Smoke  烟雾弹】  【Flash  闪光弹】

Decoy  诱饵弹】

6.3 加载指定的点位

.loadnade  加载指定的位置和方向数据

【示例】在聊天框输入:.loadnade xbox 

即可将玩家移动到上一章节中手动保存的点位

【注意1】如果要加载的点位不适用于当前地图,则不会加载此点位并在聊天框进行提示

【注意2】如果加载的点位name不存在,或是别的管理员保存的点位,也不会加载此点位

【注意3】此功能不止可以练习道具,也可用于练习旋转跳身法

6.4 管理点位

.delnade 根据点位name来删除指定的点位信息

.listnades 列出玩家自己保存的点位,无Map参数的点位则不会被列出

.listnades 可添加参数来筛选点位信息

6.5 公用的点位

.globalnades  切换保存为私人/公共点位

打开savednades.json文件,首先看到的就是 default 分类,与玩家的64位steamid分类不同,在这个分类下的点位信息是可以被所有管理员调用的,如果公用的点位name与玩家私有的点位name相同,则会加载玩家私有的点位

因此,如果要制作道具练习脚本给其他玩家使用,就需要将点位信息保存在 default 这个分类里,既可以使用 .globalnades 命令来切换,也可以手动编辑savednades.json文件,将点位信息写入到 default 这个分类

6.6 用控制台来发送MatchZy插件的命令

熟悉控制台指令的玩家都知道,使用 say 指令可以代替“在聊天框内输入”的操作

【示例】如果需要切换游戏模式,正常情况下需要管理员按Y打开聊天框,然后输入:.prac

而另一种方法就是管理员打开控制台,输入:say .prac

两种方法最终效果是相同的,因为在控制台里可以使用键盘上下方向键快捷的调用最近使用的指令,因此要比在聊天框里手动打字便捷

【注意1】更规范的控制台使用方法是给参数加英文的双引号,例如:say ".prac",因为在MatchZy旧版本中,有些命令不加双引号则无法生效,当前新版本中则可以不加引号。例如保存点位信息在控制台中有三种写法 say .savenade1say ".savenade 1"say ".savenade1"

【注意2】目前say命令后的两个参数之间不能有空格,例如:say .loadnade xbox 是不生效的,需要修改为:say .loadnadexbox

6.7 使用Alias简化操作

如果制作道具练习脚本给别人使用,别人需要在控制台输入.loadnade之类的命令,太麻烦。因此可以给每条命令设置一个别名

【示例】在控制台输入:alias x1 "say .loadnadexbox",就是用 x1 这两个字来代替 say .loadnadexbox 这一长串命令,以后玩家只需在控制台输入:x1 即可加载此点位

6.8 制作道具练习脚本

通过6.6和6.7章节的介绍,你已经知道如何快捷的加载点位

当有多个点位时,可以制作一个cfg文件来帮助玩家更方便的选择点位

【示例】比如你已经在CS2服务器的savednades.json里保存了一些点位,点位name分别为xbox、bus-flash、ct-smoke,然后你需要创建一个cfg文件,假设文件名为daoju.cfg,然后写入以下内容(蓝色字体部分)

alias x1 "say .loadnadexbox"

alias a1 "say .loadnadebus-flash"

alias a2 "say .loadnadect-smoke"

echo =========================

echo --------【道具教学】--------

echo 练习 从xbox丢警家烟,左键跳投。请在控制台输入 x1

echo 练习 A大蓝车自助闪光,左键直接投掷。请在控制台输入 a1  

echo 练习 A大丢警家烟,左键直接投掷。请在控制台输入 a2

echo =========================

然后将这个test.cfg文件发送给要练习道具的玩家,将cfg保存在他的游戏目录的cfg文件夹中,每次他想学道具时,先连接到CS2服务器,切换到练习模式,然后再控制台输入:exec daoju

控制台就会列出所有的道具点位,如下图所示

加载道具教学脚本

7 故障排查方法

7.1 有些命令不生效

排查方向:

① 首先确保CS2服务器是正常运行状态,保证玩家能进入服务器。如果玩家不能进入服务器,则先将 addons 文件夹重命名为 add,这样CS2服务器就无法加载所有的CS2插件,通过控制变量来排除插件造成的CS2服务器故障

② 检查MatchZy插件是否运行,参考2.4和3.3章节;如有新版本,可尝试使用新版本MatchZy,注意请提前备份admins.json、savednades.json等配置文件

③ 检查当前游戏模式,参考4.3章节

④ 当前玩家steam账号是否是MatchZy插件的管理员,参考4.1章节

⑤ 检查命令是否有拼写错误;命令的参数之间是否有多余的空格

⑥ 在聊天框输入命令和在控制台输入命令是有区别的,参考6.6章节

⑦ 检查CS2服务器端是否有新版本需要更新

7.2 CounterStrikeSharp插件加载失败

【案例一】

目前在MetaMod 1271版本和MatchZy-0.4.3-with-cssharp版本组合中发现此问题。当CS2服务器启动完成后,MetaMod正常运行,但MatchZy没有运行,使用命令:meta list 发现是CounterStrikeSharp插件未加载

在FinalShell终端输入 :meta load counterstrikesharp ,则会报错:

Failed to load plugin addons/counterstrikesharp/bin/win64/counterstrikesharp (File not found: /home/aaa/Steam/cs2-ds/game/csgo/addons/counterstrikesharp/bin/win64/counterstrikesharp.so).

如下图所示

CounterStrikeSharp插件加载失败

正常情况下,MetaMod插件应该从/addons/counterstrikesharp/bin/linuxsteamrt64路径中去找counterstrikesharp.so,不知为何它要从win64文件夹中去寻找,所以导致插件加载失败

解决办法也很简单,从linuxsteamrt64文件夹中把counterstrikesharp.so文件复制到win64文件夹中即可,这样MetaMod就能正常加载CounterStrikeSharp插件,MatchZy也能正常使用

【案例二】

在安装MatchZy v0.7.8版本后,启动CS2服务器后使用 meta list 查看已运行插件,发现cssharp没有运行,如案例一所示手动加载cssharp插件,报错:Failed to load plugin counterstrikesharp (File not found: /counterstrikesharp.so).

经排查故障原因是CS2服务器文件未更新到最新版本,更新后可正常运行插件

【案例三】

涉及debian13系统特性,参考另一篇专栏:【CS2】+【Debian13】+【CounterStrikeSharp】​

8 总结

MatchZy插件以及CS2游戏生态正在逐步完善,本文仅针对MatchZy v0.7.8版本进行介绍,如遇到个别命令未生效,请查看插件作者的官方更新文档是否有改动

再推荐一个网页,是国外论坛作者PEDROTSKI总结的CS2当前可用插件列表,网址:https://www.ghostcap.com/cs2-plugins-list/