教程
教程来源Azure GPT4.1,以及之前使用Ubuntu搭建cs2server的经验
流程
steamcmd download cs2server
依次输入,下载cs2server版本(其实游戏本体就包含一个cs2server,具体见:https://www.youtube.com/watch?v=1ZrEn0CiMi4,这样只为了好管理,但花费了额外的空间)
cd E:\cs2ServerProject\steamcmd
./steamcmd.exe
force_install_dir E:\cs2server#cs2server的下载地址
login anonymous
app_update 730 validate
#下载时间比较久,如果中断,需要再次进入steamcmd中从force_install_dir开始再重新输入一遍继续下载
quit
下载完成
Test cs2server
Windows cmd/powershell
>cd E:\cs2server\game\bin\win64
>./cs2.exe -dedicated +map de_dust2 +maxplayers 20 +game_type 0 +game_mode 1 -usercon -nographics
打开客户端游戏控制台输入
connect 127.0.0.1
cs2服务器搭建完毕
weaponPaint
下载Windows版本前置依赖以及weaponPaint本体,下载链接和简介如下
meta:https://www.metamodsource.net/downloads.php?branch=dev (choose windows version)
cs2sharp:CounterStrikeSharp
weaponPaint_dependency:
- PlayerSettings - Required by MenuManagerCS2
- AnyBaseLibCS2 - Required by PlayerSettings
- MenuManagerCS2
- MySQL database
weaponPaint:https://github.com/Nereziel/cs2-WeaponPaints
- WeaponPaints
- WeaponPaints-Website
简述一下 关系:meta是cs2sharp的前置依赖,cs2sharp是所有插件的前置依赖,weaponpaint插件的前置依赖还有插件PlayerSettingsCS2,AnyBaseLibCS2,MenuManagerCS2(全都出自作者:NickFox007 (Nick Fox) · GitHub)
具体解释:CS2服务器 - 满十&跑图&道具练习(Linux MatchZy) - 哔哩哔哩
How to use meta and cs2Sharp
metaWindows版本压缩包,移动到csgo文件夹,eg:E:\cs2server\game\csgo,然后“提取到当前位置”
在gameinfo.gi文件中添加路径:Game ./addons/metamod,至此meta配置完成
Test meta
启动cs2server后在控制台输入meta
cs2sharp
同样:CounterStrikeSharp移动到csgo文件夹,eg:E:\cs2server\game\csgo,然后“提取到当前位置”
启动cs2server,在控制台输入meta list,查看MetaMod已加载的所有插件
至此meta和cs2sharp配置完成!
Add plug-in WeaponPaints
本小结配置基于GitHub - Nereziel/cs2-WeaponPaints
先要配置前置依赖,同样PlayerSettings ,AnyBaseLibCS2,MenuManagerCS2移动到csgo文件夹,eg:E:\cs2server\game\csgo,然后“提取到当前位置”
启动cs2server在控制台中输入
meta list
css_plugins list
AnyBaseLibCS2在E:\cs2server\game\csgo\addons\counterstrikesharp\shared\AnyBaseLib中,weaponpaints依赖插件完成
WeaponPaints config
将WeaponPaints中的WeaponPaints.zip复制到E:\cs2server\game\csgo\addons\counterstrikesharp\plugins,解压“提取到当前位置”
(再次运行cs2sharp,weaponpaints会自动创建addons/counterstrikesharp/configs/
plugins/
WeaponPaints/WeaponPaints.json和csgo/gamedata/weaponpaints.json,这里手动创建是不对的)
在addons/counterstrikesharp/configs/
plugins/
文件夹创建WeaponPaints/WeaponPaints.json
修改addons/counterstrikesharp/configs/
plugins/WeaponPaints/WeaponPaints.json
{
"ConfigVersion": 10,
"SkinsLanguage": "zh-CN",
"DatabaseHost": "数据库IP地址",
"DatabasePort": 3306,
"DatabaseUser": "数据库用户名",
"DatabasePassword": "数据库密码",
"DatabaseName": "数据库名",
"CmdRefreshCooldownSeconds": 3,
"Website": "weaponpaints网址",
"Additional": {
"KnifeEnabled": true,
"GloveEnabled": true,
"MusicEnabled": true,
"AgentEnabled": true,
"SkinEnabled": true,
"PinsEnabled": true,
"CommandWpEnabled": true,
"CommandKillEnabled": true,
"CommandKnife": [
"knife"
],
"CommandMusic": [
"music"
],
"CommandPin": [
"pin", "pins", "coin", "coins"
],
"CommandGlove": [
"gloves"
],
"CommandAgent": [
"agents"
],
"CommandStattrak": [
"stattrak", "st"
],
"CommandSkin": [
"ws"
],
"CommandSkinSelection": [
"skins"
],
"CommandRefresh": [
"wp"
],
"CommandKill": [
"kill"
],
"GiveRandomKnife": false,
"GiveRandomSkin": false,
"ShowSkinImage": true
},
"MenuType": "selectable"
}
- In
addons/counterstrikesharp/configs/
core.json
set FollowCS2ServerGuidelines tofalse
- 将core.json中字段FollowCS2ServerGuidelines改成false,与后文Troubleshooting有关
需要配置MySQL数据库,教程链接:https://www.q2019.com/2025/04/18/3571/
补充:csgo/gamedata/weaponpaints.json
{
"ChangeSubclass": {
"signatures": {
"library": "server",
"windows": "48 89 6C 24 ? 56 48 83 EC ? 48 8B EA 48 8B F1 E8 ? ? ? ? 84 C0 0F 84",
"linux": "55 48 89 E5 41 57 41 56 41 55 49 89 F5 41 54 49 89 FC 53 48 81 EC A8 00 00 00"
}
},
"CAttributeList_SetOrAddAttributeValueByName": {
"signatures": {
"library": "server",
"windows": "40 53 41 56 41 57 48 81 EC 90 00 00 00 0F 29 74 24 70",
"linux": "55 48 89 E5 41 57 41 56 49 89 FE 41 55 41 54 49 89 F4 53 48 83 EC 78"
}
},
"CBaseModelEntity_SetBodygroup": {
"signatures": {
"library": "server",
"windows": "48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 41 8B F8 48 8B F2 48 8B D9 E8 ? ? ? ?",
"linux": "55 48 89 E5 41 56 49 89 F6 41 55 41 89 D5 41 54 49 89 FC 48 83 EC 08"
}
}
}
WeaponPaints-Website config
下载php >= 7.4,PHP For Windows: Binaries and sources Releases
选择:php-8.4.7-Win32-vs17-x86.zip
- 任选一种配置(推荐用生产环境),将
php.ini-production
复制一份并重命名为php.ini
搜索并取消注释以下扩展(去掉前面的分号;)
extension_dir = "D:\php-8.4.7\php-8.4.7-Win32-vs17-x86\ext" extension=curl extension=pdo_mysql
使用
php -m
查看扩展文件
修改class/config.php
<?php
define('SKIN_LANGUAGE', 'skins_zh-CN');
define('DB_HOST', '');
define('DB_PORT', '3306');
define('DB_NAME', '');
define('DB_USER', '');
define('DB_PASS', '');
define('WEB_STYLE_DARK', true);
define('STEAM_API_KEY', '随便填一个例如:5EBB0CA931C7347B91E875AC531799F1');
define('STEAM_DOMAIN_NAME', '127.0.0.1');//如果让他人访问使用内网环境地址
//define('STEAM_DOMAIN_NAME', '192.168.137.1');
define('STEAM_LOGOUT_PAGE', '');
define('STEAM_LOGIN_PAGE', '');
在WeaponPaints-Website文件路径下输入
php -S localhost:27075
点击登录steam出现
拒绝访问
修改配置ip,class/config.php和config/WeaponPaints/WeaponPaints.json为内网IP如192.168.31.188
使用命令
php -S 192.168.31.188:80
运行网站
Test WeaponPaints
运行cs2server后报错:
15:25:37 [EROR] (cssharp:PluginManager) Failed to load plugin from E:\cs2server\game\csgo\addons\counterstrikesharp\plugins\WeaponPaints\WeaponPaints.dll
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.TypeInitializationException: The type initializer for 'WeaponPaints.WeaponPaints' threw an exception.
---> System.ArgumentException: Method CAttributeList_SetOrAddAttributeValueByName not found in gamedata.json
在cs2sharp gamedata文件夹中gamedata.json找不到CAttributeList_SetOrAddAttributeValueByName
说明cs2sharp版本与cs2服务器不匹配,或者没有gamedata/gamedata.json(由于直接创建没有生成出现的错误)
退回cs2sharp版本到counterstrikesharp-with-runtime-windows-1.0.316.zip后再次启动cs2server
或创建gamedata/gamedata.json,都不行
- Copy from plugins folder gamedata file
weaponpaints.json
to folderaddons/counterstrikesharp/gamedata/
- 将文件夹gamedata 中weaponpaints.json的内容复制到addons/counterstrikesharp/gamedata/gamedata.json
成功截图
Updata
更新完成cs2server后,gameinfo.gi文件会重置,重新添加Game csgo/addons/metamod路径
Troubleshooting
使用weaponpaints插件不会VAC封禁,不会VAC封禁,不会VAC封禁
可能会GSLT封禁
- 使用您游戏服务器登录令牌的一个服务器已被封禁。 您的帐户现已被永久禁止管理游戏服务器,并且连接游戏服务器时会产生冷却时间。
GSLT详情:steam GSLT封禁
test