CentOS CSGO服務(wù)器教程(3)插件&CFG
前篇

前篇中,我們已經(jīng)在Linux下搭建了一個(gè)簡(jiǎn)單的CSGO服務(wù)器,在配置了基本的啟動(dòng)項(xiàng)參數(shù)后將其啟動(dòng)。本期將介紹CSGO服務(wù)器的插件系統(tǒng)SourceMod&MetaMod并介紹如何將插件完整部署到服務(wù)器中。
1.SourceMod&MetaMod
1.1 歷史
在CS1.6版本,服務(wù)器插件均為.dll格式(動(dòng)態(tài)鏈接庫(kù)),需要使用CS提供的sdk生成.dll,同時(shí)將.vdf放入addons中引導(dǎo).dll生效,實(shí)現(xiàn)插件的自定義功能。由于該部分需要對(duì)sdk及C語(yǔ)言的深入了解,門檻過高。
之后AlliedMod團(tuán)隊(duì)將sdk改寫后,提供了接口供C++語(yǔ)言對(duì)插件的編寫,這個(gè)有接口的sdk平臺(tái)就是MetaMod(準(zhǔn)確的來(lái)說應(yīng)該是MetaMod:Source)。之后為了適配pawn語(yǔ)言又用同樣的方法構(gòu)建了SourceMod平臺(tái)。
可以說SourceMod和MetaMod是CS這個(gè)系列插件的重要支撐與基石,在部署了SourceMod&MetaMod之后,我們便可以裝載插件,實(shí)現(xiàn)自定義功能了。
SourceMod官網(wǎng)
https://www.sourcemod.net
MetaMod官網(wǎng)
www.metamodsource.net
1.2 部署
利用PuTTY以csgoserver身份登錄至云服務(wù)器
進(jìn)入csgo目錄下
我們需要將SourceMod與MetaMod下載并解壓,在官網(wǎng)找到Linux穩(wěn)定版后,開始下載
下載之后解壓縮
刪除安裝包
接下來(lái)配置服務(wù)器的參數(shù),配置文件為csgoserver.cfg,位于
目錄下。注意:該文件與/lgsm下的csgoserver.cfg作用不同,不可混淆!
1.3 配置csgoserver.cfg
如果在該目錄下不存在csgoserver.cfg文件,請(qǐng)新建一個(gè),如果存在一個(gè)名稱為server.cfg的文件或存在csgoserver.cfg,將其重命名后按照下面的樣例進(jìn)行修改。
這里我提供一份樣例,僅供參考。具體詳情請(qǐng)閱讀文件中的注釋了解。
如上設(shè)置完成后,重啟服務(wù)器并從CSGO客戶端進(jìn)入,輸入!admin后出現(xiàn)如下圖提示,證明此時(shí)SourceMod&MetaMod已成功加載。

1.4 配置admins_simple.ini
此時(shí)可以看到,服務(wù)器插件框架已經(jīng)正確加載。我們理所當(dāng)然要給自己增加一個(gè)游戲內(nèi)的admin權(quán)限。
SourceMod管理員配置文件一般為admin.cfg,為了簡(jiǎn)化操作,我們可以通過修改更為簡(jiǎn)單的admins_simple.ini文件實(shí)現(xiàn),該文件的目錄如下:
進(jìn)入目錄并打開文件
上面的文件主要介紹了如何添加管理員,可以根據(jù)steam16位ID、ip地址、steam組來(lái)設(shè)置對(duì)應(yīng)的權(quán)限。這里介紹根據(jù)steamID設(shè)置的方法。
如何獲取steam 16位ID?
方法一 游戲服務(wù)器內(nèi)獲取
進(jìn)入任意官方服務(wù)器,按“~”鍵打開控制臺(tái),輸入status顯示服務(wù)器內(nèi)玩家列表
找到自己對(duì)應(yīng)的steamID,格式一般為"STEAM_0:1:1234567",與文件中的"STEAM_0:1:16"相符。
方法二 網(wǎng)站查詢
有很多可以提供steamID查詢的網(wǎng)站,這里只是舉個(gè)例子
https://steamid.top/

輸入steam主頁(yè)地址(登錄steam后進(jìn)入個(gè)人資料 ,右鍵選擇復(fù)制網(wǎng)頁(yè)url即可),即可查詢到steam16位ID

在獲取了SteamID后,按照如下格式在文件中新增一行
"STEAM_0:1:1234567"(此處為SteamID) “99:z”(最高管理權(quán)限,豁免計(jì)數(shù)99)
之后重啟服務(wù)器,從CSGO客戶端登錄后輸入!admin

可以看到,此時(shí)已擁有客戶端面的管理員權(quán)限。
2.插件&CFG
2.1 文件結(jié)構(gòu)
在介紹插件如何安裝之前,先介紹一下/csgo目錄下的文件結(jié)構(gòu)

/addons文件夾存儲(chǔ)著SourceMod&MetaMod框架及插件,/cfg文件夾存放著steamcmd提供的默認(rèn)的服務(wù)器配置文件,/maps存放著游戲地圖,后期添加創(chuàng)意工坊地圖時(shí)可以在其中放置。/csgo目錄下mapcycle.txt與maplist.txt文件決定著裝載插件后服務(wù)器是否投票換圖及換圖的列表。

/addon/sourcemod目錄下包含著/plugins插件文件夾,/scripting插件源文件夾,/configs文件夾。這里注意,此處的configs是插件自定義的配置文件,不是steamcmd默認(rèn)的配置文件目錄。

/plugins目錄下存放著插件文件,格式名為.smx,移除.smx文件會(huì)對(duì)服務(wù)器中的插件

/scripting目錄下存放著未編譯的腳本文件,格式名為.sp,刪除.sp文件不會(huì)影響到服務(wù)器運(yùn)行。這里和上文的.smx一樣先按下不表,在2.3小節(jié)中具體介紹。

/configs目錄下存放著插件自定義的配置文件,1.4小節(jié)中介紹的admin_simple.ini也位于此。

/home/csgoserver/serverfiles/csgo/cfg目錄下存放著csgo服務(wù)器默認(rèn)的cfg配置。1.3節(jié)中添加的csgoserver.cfg位于此。我們平時(shí)常玩的休閑模式、競(jìng)技模式、搭檔模式就對(duì)應(yīng)著這里的gamemode_casual.cfg,gamemode_competitive.cfg,gamemode_competitive.cfg。
2.2 .sp&.smx文件
在2.1節(jié)我們已經(jīng)知道腳本目錄下存放著.sp,插件目錄下存放著.smx。我們打開一組對(duì)應(yīng)的文件rockthevote.sp、rockthevote.smx


可見rockthevote.sp文件是由C++語(yǔ)言編寫的腳本文件。我們接著看rockthevote.smx


rockthevote.smx是由.sp文件編譯得到的二進(jìn)制插件文件,可供服務(wù)器正常調(diào)用。
實(shí)現(xiàn).sp編譯為.smx的是名為compile.sh的橋梁。在Windows操作系統(tǒng)下,通過將.sp文件拖至compile.sh即可獲得對(duì)應(yīng)的.smx文件,而在CentOS下通過執(zhí)行
即可執(zhí)行該搞作,獲得rockthevote.smx
獲得.smx文件后,將其拷貝至/plugin文件夾下,重啟服務(wù)器即可在啟動(dòng)服務(wù)器時(shí)自動(dòng)生效。
以下是compiled.sh的具體內(nèi)容:

2.3 SourceMod Plugin
除了SourceMod自帶的插件之外,我們可能需要諸如滿十、1v1、僵尸逃跑、kz等一些需求,這時(shí)自帶的插件無(wú)法滿足這些內(nèi)容,就需要我們?nèi)ゾW(wǎng)上找對(duì)應(yīng)的插件進(jìn)行下載。國(guó)內(nèi)有僵尸樂園ZED和X社區(qū)兩個(gè)大社區(qū),安裝器中也包含了很多有用的插件,但這里只介紹一下如何從SourceMod官網(wǎng)下載,如有需要請(qǐng)自行研究。
SourceMod插件搜索的網(wǎng)址
https://www.sourcemod.net/plugins.php

搜索“KZ”插件


按照插件的說明,即可進(jìn)行部署與安裝,安裝后在重啟服務(wù)器,插件即可生效
2.4 WarMod(滿十插件)
SourceMod框架自帶一個(gè)WarMod的配置文件(.cfg),在客戶端使用!admin即可開啟




2.5 CFG
介紹一下服務(wù)器自帶的部分配置文件,這里以gamemode_competitive.cfg為例,選取幾項(xiàng)比較重要的參數(shù)進(jìn)行講解,目錄為
gamemode_competitive.cfg
補(bǔ)充幾個(gè)我用到的命令
2.6 演示:部署gunmenu插件
下面以一個(gè)具體的案例說明插件的部署。演示部署gunmenu插件(換槍插件)的流程。
①首先在SourceMod官網(wǎng)搜索"gun",找到我們所需的插件(紅框內(nèi))

進(jìn)入頁(yè)面后選擇“Get Plugin”(下方的綠框)進(jìn)行下載,一般此處作者會(huì)介紹該插件如何使用,此處作者介紹在上方的綠框中:

Installation:?Place compiled plugin (sm_gunmenu.smx) into the plugins folder (../addons/sourcemod/plugins/). Place the configuration file (gunmenu.ini) into the config folder (../addons/sourcemod/configs/).
Changes to gunmenu.ini are read at map/plugin load time.
意思是需要將sm_gunmenu.smx放置到 ../addons/sourcemod/plugins/目錄下,gunmenu.ini放置到 ../addons/sourcemod/configs/目錄下
橙色框中提示插件如何在客戶端中使用,此處說明在控制臺(tái)輸入sm_guns或sm_gunmenu即可調(diào)取槍械菜單。由于SourceMod下sm_指令可用聊天框中!替代,所以聊天框中!guns與控制臺(tái)sm_guns效力相同。
②下載后將sm_gunmenu.smx放置于云服務(wù)器的目錄下

將gunmenu.ini放置于云服務(wù)器的目錄下

③重啟服務(wù)器,登錄CSGO客戶端,按照Alliedmods上的提示使用插件。

可以看到已經(jīng)成功啟用了gunmenu插件,調(diào)出了槍械菜單。
④如需修改服務(wù)器插件的內(nèi)容,可以在/addons/sourcemod/configs目錄下打開gunmenu.ini文件進(jìn)行修改。
以上是一個(gè)一般情況下的插件部署過程,部分插件可能還需要配置數(shù)據(jù)庫(kù)、cfg文件、ip端口等,需要詳細(xì)按照Alliedmods上的提示部署。
3.補(bǔ)充
3.1 創(chuàng)意工坊地圖
一般將創(chuàng)意工坊地圖放置在
目錄下,即maps下的workshop目錄(如果沒有該目錄就創(chuàng)建一個(gè)),如果服務(wù)器默認(rèn)地圖為創(chuàng)意工坊地圖,需要將前篇中的啟動(dòng)參數(shù)map部分修改 比如:
即可,同時(shí)需要填寫steamwebapi,以供地圖下載
3.2 地圖組循環(huán)
修改2.1節(jié)中/csgo目錄下的mapcycle.txt與maplist.txt文件,注意:兩個(gè)文件中的內(nèi)容要相同。如要添加創(chuàng)意工坊地圖,直接在txt文檔中添加數(shù)字即可。
3.3 關(guān)于皮膚插件
注意:CS:GO - GSLT 封禁
https://help.steampowered.com/zh-cn/faqs/view/07AF-502E-A104-BD4B


任何時(shí)候,不要逾越底線!
3.4 插件包備份
如果你已經(jīng)熟悉了插件的部署,知道自己服務(wù)器的插件配置,不妨單獨(dú)按照文件結(jié)構(gòu)將插件設(shè)置一個(gè)快速部署包,方便故障或新部署服務(wù)器時(shí)使用,提高速度。

這就是我曾經(jīng)使用的一個(gè)1v1插件的備份包,再次部署時(shí)使用很省心。
本篇介紹了CSGO服務(wù)器SourceMod&MetaMod平臺(tái)、插件及CFG相關(guān)的設(shè)置,下一篇將介紹服務(wù)器運(yùn)維及安全知識(shí)。
這陣子工作稍微忙碌,時(shí)間不太充裕,出稿速度會(huì)慢。
別急!