Insurgency 大栓服服务器开设指北:其三

前面都是基本服务器的搭建过程,现在开始把服务器改造成我们想要的亚子:拉大栓!

完整的过程写出来会很长,这里假设你下载了我以前服务器的文件。你可以在我的 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]找到。安装方法也可以在页面中找到:

20231006112622

然后编辑 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/configscfg/sourcemod 目录下,可以直接编辑修改。

测试服务器

做改动后最好测试下工作是否正常。参照第一篇指北的内容停止服务器,修改 server.cfg 为服务器添加一个密码以防无辜路人加入。

如果涉及到文件的修改,最好删掉自己电脑上的原来的文件。想得到纯净客户端的话,删除自己电脑上 Insurgency 安装目录下 materials models resource scripts sound 5个文件夹就可以,加入服务器会自己重新下载。

再提醒一次,smdownloader 插件功能比较简单,不会比较文件是否相同,如果有相同文件名会被跳过。所以更新文件请添加新文件而不是修改原来的!

正因为这个原因,你无法要求加入的玩家删除本地文件,所以只有添加新的文件让他们下载。

测试完成后,修改 server.cfg 文件将密码留空,重启服务器就可以。

PS:重启服务器时服务器可能不支持 mod ,进去换个图就好了(管理员可以使用 !map 指令)


  1. https://gitcode.net/ooyole/insurgencydl ↩︎ ↩︎

  2. https://gitcode.net/ooyole/insurgencyserverbackup ↩︎ ↩︎

  3. https://forums.alliedmods.net/showthread.php?p=602270 ↩︎

  4. https://steamcommunity.com/sharedfiles/filedetails/?id=424392708 ↩︎

  5. https://forums.alliedmods.net/index.php ↩︎

  6. https://www.sourcemod.net/plugins.php ↩︎

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注