从零开始的CSGO服务器教程(三):实战1 您所在的位置:网站首页 余家安死于什么 从零开始的CSGO服务器教程(三):实战1

从零开始的CSGO服务器教程(三):实战1

2023-08-01 04:03| 来源: 网络整理| 查看: 265

1.那些你所需要知道的

从现在开始,我们要接触的大多为国外论坛上的插件,你需要

一些基础的英文阅读能力或灵活使用translate.google.cn

一颗认真仔细的心用来观察你对服务器做的每一步,以便在遇到麻烦时回滚

适时备份addons和cfg文件夹

适当做一些笔记,记录你的每一步或命令,以便后来参考

原本说第一个实战是搭建回防服务器的,但是想了想服务器更新还是一个比较关键的问题,很多人只能手动更新,而不知道如何实现自动更新。

2.认识拓展/插件

首先我们要有一个概念:

什么是拓展和插件?

首先我们大概说下服务器那么多功能实现的原理:起源引擎是允许模组的,也就是addons文件夹,我们安装时的Metamod:Source是一种模组,但它更重要的则是一种起源引擎API管理器,简单来说MM把游戏数据以一种方便的形式提供给它的插件以供调用、查询或更改,而我们实现核心功能的Sourcemod就是以MM的插件形式存在的,你可以理解成Metamod:Source是地基,地基上建了Sourcemod这个房子,至于这个房子里可以干什么事,那就是插件和拓展的活了。

拓展:Extension 或简称ext,属于Sourcemod的部分,你可以把它理解成Sourcemod这个大房子需要的管线,比如这个房间需要互联网,那我就得将网线布进这个房子。具体到实际环境,如后期插件等需要数据同步,那么肯定就需要一个统一的数据库,一般来说Sourcemod无法直接连接MySQL数据库,所以他就需要一个拓展:dbi.mysql.ext,调用这个拓展连接至数据库,不过这个拓展已经自带在Sourcemod里了,不用担心。而拓展以当前平台的二进制文件存在,如Windows的是dll而Linux下是so。采用C++编写。

默认拓展目录在[服务器安装目录]/csgo/addons/sourcemod/extensions

插件:Plugins/Plug-in,是可以直接对游戏产生直接关系的Sourcemod插件。它就是我们一般接触最多的东西,它属于上层建筑,通过简单的调用、查询或更改,就能对游戏产生很大的影响,而它的功能来源基本就是拓展和Sourcemod本身,采用Sourcepawn编写,后缀名均为smx。

默认插件目录在[服务器安装目录]/csgo/addons/sourcemod/plugins

3.自动更新插件的安装与配置

下载以下所需插件/拓展:

Automatic Steam Update (SteamWorks) 插件 https://forums.alliedmods.net/showthread.php?p=2238058

SteamWorks.ext Update Check 插件 https://forums.alliedmods.net/showthread.php?p=2331846

SteamWorks 拓展 https://github.com/KyleSanderson/SteamWorks/releases/latest

基本原理:首先SteamWorks拓展,提供了一个查询接口,可以让SteamWorks.ext Update Check插件查询当前服务器版本是否过期,过期则触发SteamWorks_RestartRequested这一重启请求,接着Automatic Steam Update插件就会在向游戏内发送自定义通知,然后在设置时间内让服务器重启。

那你可能要问了,光重启有什么用啊!别急我们先把三个东西装上配置一下。

我们会得到这样三个文件,其中smx文件均为插件,而那个tgz是压缩过SteamWorks拓展。

解压,Linux下压缩,tgz一般会和tar组合,所以有2层

一路点进去,到Sourcemod文件夹下,我们会发现有两个文件夹,通过前面的知识我们可以知道核心就是这个extensions文件夹,里面的就是拓展的二进制文件。

那么这个scripting文件夹是做什么的呢?scripting一般是用来存放插件源代码的,而这个不是插件,是拓展,所以它在这里提供的是插件所需要的inc文件,也就是如果一个插件需要调用SteamWorks拓展,就需要在编译时用到SteamWorks的include文件(后缀名inc),但是我们在这里并不需要做开发或编译,所以不需要理睬scripting文件夹。scripting文件夹是无法对游戏服务器造成任何影响的。

一个调用SteamWorks的插件代码

接下来打开WinSCP把两个smx拖进plugins文件夹,而extensions文件夹同理,也只要把SteamWorks.ext.so放进服务器相应的文件夹即可。

至于如何配置插件在更新时,向服务器内发送的信息以及重启倒计时时间等,你只需要等到一会重新启动服务器后,到[服务器安装目录]/csgo/cfg/sourcemod目录下打开plugin.autosteamupdate.cfg文件进行编辑即可,里面有详细的英文注释。

3.自动更新启动项配置

接下来就是重头戏了,我们已经通过插件让游戏服务器知道,它要更新了,需要重启,但是服务器并不知道,它应该去哪里更新。

从哪里来的就从哪里更,肯定是需要Steamcmd来更新,首先我们需要创建一个文件。

WinSCP进入到和Steamcmd.sh同级的目录中,右键新建文件,随便起个名字.txt,比如update.txt

输入以下内容

login anonymous

force_install_dir ./csgo/

app_update 740

quit

force_install_dir ./csgo/ 这行以你实际安装目录为准,只要定位到你CSGO服务器安装目录即可

保存退出

接下来右键复制steamcmd.sh并原地粘贴为steam.sh

接下来打开steam.sh

找到第八行的

STEAMEXE="${STEAMROOT}/linux32/${STEAMCMD}"

改成

STEAMEXE="[steamcmd.sh所在路径]/linux32/steamcmd"

保存退出,接下来同时选中steamcmd.sh和steam.sh右键属性,将权限改为0744

接下来我们在原有的游戏启动项上加上

-autoupdate -steam_dir "[steam.sh所在路径]" -steamcmd_script "/[steam.sh所在路径]/xxxxx.txt"

路径和txt名称按照实际情况填写按照之前的方法启动游戏,就大功告成了!

下一篇就是回防服部署实战啦,记得关注哦。

如有疑问欢迎到我的博客RoyZ.top留言!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有