本仓库适用于各国内CSGO各开服服主,收录了各类开服需要用到的插件(均来自alliedmodders,并对某些作者不维护的工程进行了修补),同时提供Linux端的保姆级开服教程,对于插件和教程的问题,欢迎提交issue。(issue回得慢请见谅,在改了)
本教程将使用 Linux game server manager工具 请保持有良好的网络 或是耐心等待
1.如果是标注为内核汉化的插件,此类插件没有写入外部汉化接口,后续的更改请在.sp源码文件中进行,需要安装sourcemod进行重新的编译。
如果是标注为外部汉化的插件,说明sourcemod可以根据json格式来辨别系统使用的语言来为玩家提供不同的显示语言
同时,外部汉化插件只提供其外部汉化文件,源文件请到作者原仓库进行下载。
2.其中一些插件作者已经停止维护插件,某些问题本仓库已经修复并重新编译,不能保证所有插件都修复了历史遗留bug
3.某些插件写入了内外网的命令,标记为LAN的插件是内网专用,请仔细辨别以免影响开服流程
内核汉化文件请将smx拖入addons/sourcemod/plugins文件夹下
外部汉化文件请在原有smx已经安装的情况下将外部汉化文件拖入addons/sourcemod/translations/对应插件目录下
注意:如果插件原有的语言文件下已经有各国语言翻译,可以考虑用编辑器合并
获取一台云服务器(各大运营商)建议使用软件 类似于mobaxterm这种带有SFTP的shell来通过ssh连接到你的服务器
建议新手选择Ubuntu镜像,本教程将以Ubuntu 20.04作为模板,各发行版略有不同
# 首先要更新你的系统
sudo apt update
sudo apt upgrade
# 安装依赖
sudo dpkg --add-architecture i386; sudo apt update; sudo apt install curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux netcat lib32gcc1 lib32stdc++6 libsdl2-2.0-0:i386 steamcmd
# 创建一个新的用户csgoserver,当然也可以是其他的
adduser csgoserver
# 切换到csgoserver用户及其目录下
su - csgoserver
# 获取linux game server manager脚本并赋予其执行权限并执行,如果中途出错可以拆分分步执行
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csgoserver
# 使用该目录下的csgoserver执行程序执行安装,这一步执行完后会要求你填入token,下一步解释
./csgoserver install
# 你需要到 Steam 游戏服务器帐户管理页面进行 服务器令牌 申请操作,获取服务器令牌/token
# 浏览器访问
# https://steamcommunity.com/dev/managegameservers
# 如果你恰逢/刚好/碰巧 跳过了填入token的一步
vim lgsm/config-lgsm/csgoserver/csgoserver.cfg
# 将token填入 gslt=""中
# 在服务器运营商控制面板的防火墙页面,将TCP/UDP 27005与27015 端口开放,这是默认的两个端口
# 开启服务器
./csgoserver start
# 关闭服务器
./csgoserver stop
# 重启服务器
./csgoserver restart
# 进入服务器控制台 注意! 退出的时候不是按ctrl+C 而是 ctrl + b 然后按 d
./csgoserver console
# 服务器的手动更新
./csgoserver update
# 命令列表
./csgoserver
# 自动定时更新
crontab -e
使用编辑器将下面的内容录入crond计划任务中
*/5 * * * * /home/csgoserver/csgoserver monitor > /dev/null 2>&1
*/30 * * * * /home/csgoserver/csgoserver update > /dev/null 2>&1
0 0 * * 0 /home/csgoserver/csgoserver update-lgsm > /dev/null 2>&1
- 如果你是在内网(局域网)架设服务器,请在 /home/csgoserver/serverfiles/csgo/cfg/csgoserver.cfg中修改sv_lan 0 为 sv_lan 1
- 修改 /home/csgoserver/lgsm/config-lgsm/csgoserver/common.cfg 将需要修改的启动项从模板复制到该文件进行修改
- 模板文件位于(不要修改模板文件,它会被初始化覆盖) /home/csgoserver/lgsm/config-lgsm/csgoserver/_default.cfg
/home/csgoserver/lgsm/config-lgsm/csgoserver/csgoserver.cfg
/home/csgoserver/serverfiles/csgo/cfg/csgoserver.cfg
- 其中针对个别模式的设置也在该目录下 /home/csgoserver/serverfiles/csgo/cfg/
- 请检查
/home/csgoserver/lgsm/config-lgsm/csgoserver/csgoserver.cfg
文件中的token 如果token没有正常被读取服务器同样无法启动,回到
https://steamcommunity.com/dev/managegameservers 查看token使用情况
- 请检查服务器配置 通常需要1核2G(比较勉强) 及以上推荐2核4G的轻量服务器
- 这通常是使用非csgoserver用户上传文件导致的权限问题,可以通过有管理员权限的用户对/home/csgoserver下的全部文件进行权限修改
sudo chown -R csgoserver:csgoserver /home/csgoserver
- 更新sourcemod以及metamod
- 使用
./csgoserver install
强制更新验证安装完整性
sourcemod与metamod是插件的基础环境,请在服务器安装好后着手安装
前往sourcemod官网sourcemod下载sourcemod Linux版(stable builds)
前往metamod官网metamod 下载metamod Linux版(stable builds)
强烈建议使用带图形化sftp的命令行工具
例如
mobaxterm
# 不使用图形界面进行推送安装包
sftp csgoserver@服务器ip/域名
put 包名
# 直接在命令行下载
# 注意 以下的命令请以官方下载的本版号为准,解压的时候注意包名
wget https://sm.alliedmods.net/smdrop/1.10/sourcemod-1.10.0-git6503-linux.tar.gz
wget https://mms.alliedmods.net/mmsdrop/1.11/mmsource-1.11.0-git1144-linux.tar.gz
tar zxvf sourcemod-1.10.0-git6503-linux.tar.gz -C serverfiles/csgo/
tar zxvf mmsource-1.11.0-git1144-linux.tar.gz -C serverfiles/csgo/
./csgoserver restart
- 在/home/csgoserver 目录下 (也就是ssh连进去的那个目录)
./csgoserver mods-install
安装
- metamodsource
- sourcemod
- 将编译好的插件本体
.smx
文件放入目录
serverfiles/csgo/addons/sourcemod/plugins
- 其中 某些插件的设置会在 这两个目录下
serverfiles/csgo/addons/sourcemod/configs serverfiles/csgo/cfg/sourcemod
- 插件的设置改变不是实时的 你可以使用全局卸载并重新加载的姿势
sm plugins unload_all
sm plugins refresh
- 或者 对单个插件进行重载
sm plugins reload 插件名
首先前往steamidfinder
获取你的steamID
STEAM_x:x:xxxxxxxx
如果网站对中文ID有偏差 可以使用64位ID进行查询
什么?你不知道如何查询64位ID
将steam客户端设置--界面--当可用时显示网站地址栏勾选上
查看个人资料--并复制url栏的64位ID复制到steamidfinder进行查询
vim serverfiles/csgo/addons/sourcemod/configs/admins_simple.ini
将你的steamID以
STEAM_x:x:xxxxxxxx "99:z"
的格式填入,获取全部权限,重启服务器/重置插件即可拿到 !sm 或者 !admin 权限(聊天框命令)
-
免费10G 如果你有域名 可以参考这篇文章 cloudflare+blaze
-
建好直链仓库后将直链头添加到 位于(serverfiles/csgo/cfg/csgoserver.cfg)
-
sv_downloadurl "仓库直链"
-
该方案正在火急翻译中
-
如果你没有域名 可以简化这个操作--仅使用桶内提供的friendlyURL(去掉文件名)作为你的FASTDL链(当然 这样没有cloudflare CDN的加持)
-
在My Account我的账户--Buckets--Create a Bucket--创建时将private改为public 否则无法实现公共直链
-
单击上传的文件--Friendly URL--将这个url(去掉文件名)填入
serverfiles/csgo/cfg/csgoserver.cfg
-
格式为
sv_downloadurl "url(去掉文件名)"
sv_allowdownload 1
sv_allowupload 1
- 或者Duck不必, 可以将文件挂载在github并使用cdn加速,省去租用额外服务器与带宽的问题。
许多教程中提到了FASTDL,其实就是一个直链的文件池,以下本教程中提出的方案(现在也是我服务器的方案)
来创建一个你服务器专用的仓库吧!
serverfiles/csgo目录下的目录结构有几个主要的资源文件夹
--maps
--materials
--models
--particles
--sound # 注意这个文件夹是没有复数的
将这些文件夹上传到你新建的仓库(如果你熟悉git,当然也可以使用它来进行同步),也可以自己创建这些目录。
如何将服务器外部源指向你的文件池
vim serverfiles/csgo/cfg/csgoserver.cfg
# 访问服务器的全局设置,在此文件中添加
sv_downloadurl "https://cdn.jsdelivr.net/gh/你的用户名/你创建的仓库名"
sv_allowdownload 1
sv_allowupload 1
# 为了保证你服务器能正确指向到文件池,请将文件层级结构保持与服务器内一致方便服务器为客户端引导文件。
# 此外,jsdelivr并不是唯一可用的cdn,此处只是用例。
例如直链一个van darkholme♂的音效
这样就完成了FASTDL的设置(你需要重启服务器或是重载sourcemod)
如何检测你的FASTDL文件池是否正确指向
使用客户端时打开开发者控制台(~)
可以查看文件下载进度
源仓库 prophunt
该插件作者已经停止更新,个人外部汉化。 针对原版CT方红色遮挡问题,已修改为黑色
针对CT蹲下鬼畜的问题,可以将插件设置中的1.5倍速调为正常的1倍速。
源帖 Simple match plugin for CS:GO
该插件作者已经停止更新,个人内核汉化,并对源码的编译问题进行了处理
源仓库 csgo-multi-1v1
该插件自带多国语言翻译,请移步至源仓库
源仓库 playerskin
你可以在gamebanana找到你需要的皮肤/模型,请遵守有关皮肤使用规定。
--教程有待完善
该插件自带多国语言翻译,请移步至源仓库
源仓库 Speaker Icon
和CS起源一样风格的语音图标
前置环境:
该插件即插即用,请移步至源仓库
源仓库 UMC
投票换图插件
根据插件需要,你可能还需要一并安装一个maprate插件,不然UMC可能无法正常启动 该插件过于古早 可能不易搜出 仓库中已在
UMC/
下给出
该插件作者已经停止更新,作者对于停止更新表示遗憾并且做了解释。
个人外部汉化
#将maprate.smx放入plugins中
#将chi文件夹放入translation中
#运行服务器后修改自动生成/原有的umc_mapcycle.txt即可
vim serverfiles/csgo/umc_mapcycle.txt
"umc_mapcycle"
{
"Dungeon" //Name this whatever you like
{
"maps_invote" "20"
"am_anothernuke"
{
"weight" "2"
}
"am_backrooms"
{
"weight" "2"
}
"am_crocodile"
{
"weight" "2"
}
"am_dust2020"
{
"weight" "2"
}
"am_fabrik_sixteen"
{
"weight" "2"
}
"am_impound"
{
"weight" "2"
}
以上是使用的例子,一定要确保该地图在服务器的serverfiles/csgo/maps中并且玩家可以从你自定义的直链服务器中获取地图
不然换图会失败
将 addons models sound文件夹上传到服务器serverfiles/csgo/目录下
将 models sound 文件夹上传到FASTDL文件池仓库
# 重要的设置
# 如果你不想让玩家跳舞的时候通过第三人称观测敌人
vim serverfiles/csgo/cfg/sourcemod/fortnite_emotes_extended.cfg
将sm_emotes_hide_enemies "0"
改为
将sm_emotes_hide_enemies "1"
# 跳舞时隐藏敌人
注意:这款插件中包含比较多的模型和音频文件
- 可能会遇到的bug:服务器开启后首张地图无法触发语音 可能是插件没有正常加载,在控制台使用changelevel2 + 地图名 换图后解决该问题
聊天框输入文字触发全局音效(例如van_stick),多用于娱乐服
将config plugins scripting全部上传到服务器serverfiles/csgo/addons/sourcemod/目录下
在config/SankSounds.cfg中可以设置触发条件
"stick" // chat trigger
{
"file" "sank/van_stick.mp3" // path to your file, withouth sound/
}
上传音频文件到serverfiles/csgo/addons/sourcemod/sank/目录下
并在FASTDL文件池仓库sound/sank上传相应的音频文件
对于该插件还有一些详细的设置
vim serverfiles/csgo/cfg/sourcemod/SankSounds.cfg
# 可以删除该文件中sm_sanksounds_accessflag ""
# ""内的flag,重置插件/重启服务器后即可使该插件不受反垃圾系统(AntiSpam system)制约,可以随意使用聊天语音甚至是刷屏
# 下面还有很多关于触发语音的间隔/冷却时间的设置
// This file was auto-generated by SourceMod
(v1.10.0.6458)
// ConVars for plugin "sanky.smx"
// Access to play sank sounds (limited by AntiSpam system)
// -
// Default: "t"
sm_sanksounds_accessflag ""
// How many sounds can I play in << sm_sanksounds_antispam_time >> time?
// -
// Default: "1"
sm_sanksounds_antispam_soundspertime "1"
// How often I should reset the anti spam timer?
// -
// Default: "90.0"
sm_sanksounds_antispam_time "1.0"
// Access to play sank sounds (no restriction)
// -
// Default: "z"
sm_sanksounds_flagtoavoidantispam "z"
// Time interval to play sounds
// -
// Default: "20.0"
sm_sanksounds_playedsound "3.0"
你可以在游戏聊天框中输入!sank来决定是否启用聊天音效或者是查看可用的音效触发条件
源帖RoundRestore
用于比赛服的回合重置/回滚插件
使管理员拥有时间回溯能力即插即用,个人外部汉化,已向原作者提交了pr
食用方法
安装插件后
sm_restoreround # 控制台 !sm_restoreround # 聊天框
作者仍在更新,插件本身支持中文 支持多颜色
虽然作者提供了很多的公告提示方法,但是某些广播方式会影响玩家更换武器的操作,没有特别需求建议还是使用 chat 作为广播方法(聊天框滚动提示)
食用方法
安装插件后
vim addons/sourcemod/configs/advertisements.txt"Advertisements" { "1" { "chat" "{green}martinwannamaker" } "2" { "chat" "新日暮里" } }
修复插件提示都变成占位符的问题
源帖 源仓库
zombie riot 僵尸暴动
zombie escape 僵尸逃跑 (更偏向于跑) 汉化位于本仓库
- 两个模式玩家感染后都会变成僵尸