前面都是基本服务器的搭建过程,现在开始把服务器改造成我们想要的亚子:拉大栓!
完整的过程写出来会很长,这里假设你下载了我以前服务器的文件。你可以在我的 GitCode 项目[1][2] 上找到这些文件,如果没被删除的话。
给懒人的照搬指北
你可以直接在我的基础上前进。
- 备份
addons/sourcemod/configs/admins_simple.ini
文件,如果你已经按第二篇指北设置过了的话 - 前往 [2:1] 下载我的服务器文件,并解压然后上传到游戏服务器目录(放在
insurgency_server
下)中。也可以在服务器端解压,下载zip
文件放在insurgency_server
目录下(就是有insurgency
文件夹的那个目录),然后
unzip -o insurgency.zip
# 或者不覆盖原有文件(推荐)
unzip -n insurgency.zip
- fork 我的下载服务器仓库[1:1]作为你自己的下载服务器
- 修改
cfg/server.cfg
文件,找到sv_downloadurl
字段,修改为你自己的仓库,修改 rcon 密码(不用设置服务器名称).如果你选择了不覆盖文件,就先手动覆盖server.cfg
再进行必要的修改。 - 修改
addons/sourcemod/advertisements.txt
,这些文字会在聊天框随机轮换发出。或者将addons/sourcemod/plugins/advertisements.smx
文件移到disabled
内禁用这个插件 - 修改
addons/sourcemod/configs/csgo_hostname.ini
文件,改成你的服务器名称(是的,中文名称可以在这里改) - 用备份的
admins_simple.ini
替换目录中的同名文件 - 修改
motd.txt
文件,改成你的欢迎语,会在进入服务器时显示在游戏右下 - 启动游戏服务器(参考第一篇指北),进入游戏查看有无异常
如果按照懒人指示做了,后面的内容可以不用看,或者作为了解浏览下。
准备下载服务器
下载服务器
mod 服务器,显然会有很多 mod 让客户端下载,这些文件通常放在独立的下载服务器里。因为我们没钱去另外租一台服务器,我们可以找一点免费的托管服务来白嫖,我使用的是国内的 GitCode 托管服务器。
GitHub 也可以,但国内网络有可能连接不上,客户端就下不动
在 GitCode 建立一个项目用于存放我们的文件。每一个文件都需要单独压缩成 .bz2
格式,可以用 7zip
软件来做,或其他你喜欢的软件。然后按照目录将文件上传。我不怎么会用,一个一个文件单独上传的,会用的话应该有工具批量上传。
确保所有必须的文件都上传了
游戏服务器配置
在服务器 /cfg
目录下找到 server.cfg
文件,修改或添加下面的内容
// ---------------------------------------------------------------
// Server Download Options 指定下载地址的地方
// ---------------------------------------------------------------
sv_downloadurl "https://gitcode.net/ooyole/insurgencydl/-/raw/master/insurgency" //替换成你自己的下载地址
sv_allowdownload 1 //允许客户端下载(必须)
// sv_allowupload 1 //允许客户端上传(不需要)
下载地址那里,前面是你的仓库的名字,后面是路径。
然后给服务器安装下载插件。我使用的插件叫做 SM File/Folder Downloader and Precacher
可以在这里[3]找到。安装方法也可以在页面中找到:
然后编辑 downloads.ini
文件,在里面加入需要客户端下载/缓存的文件。可以参考我的文件来写。
注意,这个插件功能比较简单,不会比较文件是否相同,如果有相同文件名会被跳过。所以更新文件请添加新文件而不是修改原来的!
导入 mod 武器
mod 武器导入有两种办法:替换原有武器以及添加新的武器。替换原有武器相对比较简单,创意工坊里的 mod 基本都是这样做的,缺点就是灵活性很有限。因为我们有好多把武器要导入,所以选择添加新武器的办法。
一把武器有很多资源文件,分散在不同的地方,以 98k 为例:
- materials/models/weapons/kar98k:武器材质及贴图
- materials/models/vgui/inventory:武器选单的贴图
- models/weapons:武器第一及第三人称模型
- models/weapons/upgrade:武器配件的模型
- sound/weapons:武器音效
- scripts:音效的指定脚本
如果要从头制作一把新的武器,这些文件都要自己生成。不过这远远超过了这篇文章的范畴而且我也不会,这里就只讲讲如何把现有的文件放在服务器上。
首先,把这些文件上传到自己的游戏服务器(不是压缩包,如果拿到的是压缩包请解压)。上传文件推荐使用 WinSCP
,有便利的图形界面。要确保文件没有缺少。
然后将压缩后的文件上传到下载服务器,注意按照目录上传。
最后,编辑 downloads.ini
文件,添加各个文件的路径。
这一步完成后就确保武器文件会被下载到客户端的电脑中,不过要用到这把武器还需要修改 theater
文件。
修改 theater
关于 theater
的修改可以参照这篇文章[4]。这里只简要说明一下:
theater
文件位于 scripts/theaters
文件夹下,定义了游戏使用的装备、武器、队伍等,是自定义游戏绕不过的一环。不过文件的结构还算比较简单,看一看理解起来也不会很难。
如果要把一把武器加入游戏,需要在 theater
文件中定义这把武器。以 98k 为例,可以在文件中搜索 weapon_kr98k
看看它都出现在什么地方,理解它是做什么的。
解包游戏源文件的软件是
GCFScape
,可以打开.vpk
文件。你的 theater 文件也可以从原文件出发修改。
补充
还有两个脚本层面的东西需要修改一下。首先定义武器的音效名称(如果武器使用的游戏原有音效,这一步略过)。
在 scripts/
目录下新建文件 ins_sounds_weapons_name.txt
名字换成武器名字,然后编写武器音效名称。可以参照我的文件。
然后修改 theater
文件,在 precache
节里加一条
"sounds" "scripts/ins_sounds_weapons_name.txt"
最后,如果武器名字不是写在 theater
文件里的话,去 resource
文件夹下修改本地化文件,并包含在 theater
文件中
"localize" "resource/custom_schinese.txt"
游戏插件
需要的游戏插件可以去 AlliedModders[5]或 SourceMod[6] 找,安装方法通常帖子中会写。
插件文件通常位于 addons/sourcemod/plugins/
目录下,将其移到 disabled
目录下可以禁用插件。
插件的配置文件通常在 addons/sourcemod/configs
或 cfg/sourcemod
目录下,可以直接编辑修改。
测试服务器
做改动后最好测试下工作是否正常。参照第一篇指北的内容停止服务器,修改 server.cfg
为服务器添加一个密码以防无辜路人加入。
如果涉及到文件的修改,最好删掉自己电脑上的原来的文件。想得到纯净客户端的话,删除自己电脑上 Insurgency 安装目录下 materials
models
resource
scripts
sound
5个文件夹就可以,加入服务器会自己重新下载。
再提醒一次,smdownloader 插件功能比较简单,不会比较文件是否相同,如果有相同文件名会被跳过。所以更新文件请添加新文件而不是修改原来的!
正因为这个原因,你无法要求加入的玩家删除本地文件,所以只有添加新的文件让他们下载。
测试完成后,修改 server.cfg
文件将密码留空,重启服务器就可以。
PS:重启服务器时服务器可能不支持 mod ,进去换个图就好了(管理员可以使用 !map
指令)