服务器端文件详解

最后更新于:2020-04-20 01:16:43

CS1.6 HLDS 服务器端\cstrike\addons - 为CS插件的文件夹(CS的所有插件,配置文件,都在这个文件夹里)

CS1.6 HLDS 服务器端\cstrike\liblist.gam - 为插件最重要的MOD配置文件,他指引了CS引擎将搭载的DLL,以及其他的设置。

CS1.6 HLDS 服务器端\cstrike\server.cfg - 为服务器运行的配置文件,server.cfg里每一项命令都有备注。

CS1.6 HLDS 服务器端\cstrike\addons\metamod - 服务器插件总管,amxmodx外的文件夹,均为CS服务端运行的模块。

CS1.6 HLDS 服务器端\cstrike\addons\amxmodx - 超级管理插件

注意:除了config里的第三方配置文件夹,其余请不要随意更改文件夹名称!

在CS1.6 HLDS 服务器端\cstrike\addons\metamod文件夹里,有plugins.ini文件夹

=======================metamod文件夹plugins.ini内容===========================

win32   addons\amxmodx\dlls\amxmodx_mm.dll
win32 addons\roundendblock\roundendblock_mm.dll

=======================metamod文件夹plugins.ini内容===========================

在CS服务端里,ini,cfg文本最开始输入;分号,这一行都不会被插件读取,备注用。

下面就是cs运行模块的指定文件目录

除amxmodx_mm模块外,均为第三方添加的模块。

amxmodx_mm为插件运行的主要模块,没有他,插件无法运行。

其他第三方模块是什么意思

服务器amxmodx外的所有第三方模块,放置模块后,一定要在metmod里的plugins.ini里加上指定目录

如果不加,模块将不读取,在指定目录前面加;分号,也不会被读取,但在后面加;分号是允许的,分号后面内容是不会被读取

========================================================================================================================================

amxmodx文件夹内容

configs 插件的配置文件目录(配置文件目录将在下一章讲解)
(1)data 插件读取文档的目录
(2)dlls amxmodx模块
(3)logs 插件的日志目录
(4)modules 插件的模块
(5)plugins 放插件的地方
(6)scripting 插件源码的

(1)data文件夹 ----读取文档的目录

读在data文件夹里,只有lang为插件内置文件夹,其他文件夹和文件均为第三方插件所使用的文件

打开lang文件夹后,会显示很多txt文档,每一个文档名称对应插件的名称。

以admin.txt为例,打开后。

我们看到上方图片里,会有[de] [cn] [en] [ru] 等......均为各个国家的缩写,比如de是德国,cn是中国,en为美国,ru为俄罗斯

而服务器在运行时,有一个语言插件,如果将服务器的语言模式切换到了en,那么服务器插件就会读取这个txt里的en语言内容

如果切换到了cn,那么就会切换到咱们的语言

(注意,不是所有插件都会切换后生效,txt文档为插件作者调取时语言时方便更改所制作,如果你发现你所使用的插件没有txt文档,那么作者将语言内容内置在了插件里,这时候更改语言模式就不会生效)

(2) dll文件夹 ---- amxmodx模块

这个文件夹里存放着cs插件包的amxmodx模块,也就是amxx模块。

插件运行都靠这个模块,如果没有这个模块,将不会运行插件。

(3) logs文件夹 ---- 插件的日志目录

插件作者在设计插件时,会将插件输出的一些信息,或错误日志输出,文件就会在logs文件夹以txt文本存放。

(3) modules文件夹 ---- 插件所使用的模块

这个文件夹里存放着各种插件所使用的模块,有模块支持,插件才可以各种各样形式呈现在大家面前

===================想学插件的了解即可=================

插件在编写时,会引用需要用到的模块,而有的时候,在源码文件夹(scripting或以其他命名)里,有include文件夹

这个文件夹里面的文件,插件在编写时,如果用到这个模块,就需要引用模块,比如fun.inc,里面内置了fun模块的函数,插件可以直接调用,如果插件调用了这个fun模块的函数,那么服务器在使用这个插件的时候,就必须开启fun模块,如果不开启,插件将无法正常运行。

回到moudels文件夹

我们来讲解几个常用模块

amxmodx_amxx.dll
这个是插件的基础模块。必须注册不然插件无法编译

FakeMeta_amxx.dll
FakeMeta模块可以为我们写插件做出许多帮助,他可以设置或获取游戏中数据,以便我们进行修改或添加

Hamsandwich_amxx.dll
Hamsandwich 是一个多功能的模块,主要提供事件注册

Fun_amxx.dll
Fun模块,很多插件都会见到使用他的身影,他可以为 初学者 提供不太复杂的代码。
比如修改生命值,修改重力,设定/取消 无敌模式 等效果。
但是 以上 都可以通过 fakemeta 来一举拿下。
所以 fun 模块 只是提供一个方便初学者修改游戏数据的模块

===================想学插件的了解即可=================

(4) plugins文件夹 ---- 放插件的文件夹

插件在编译完成后,会以.amxx后缀生成(老版本插件后缀为.amx)

而存放的位置就是这个文件夹

(5) scripting文件夹 ---- 放源码的文件夹

(本人图片中,未放置这个文件夹,因为我们的插件都放在服务器上,服务器并非百分之百安全,所以源码本人一般存放在自己的电脑里,以免被偷盗)

文件夹里,会有.sma文件,这是插件的源码文件,我们可以通过编写源码,通过编译器编译后,获取编译后的插件,就可以放在plugins文件夹了。

========================================================================================================================================

//HTTP资源下载,需HTTP分流资源空间
sv_downloadurl "http://dl.simen.cn/kzserverdl/zhf/"

在server.cfg里这个指令,是帮助服务端在给玩家提供地图下载时,使用其他下载地址下载,如果不填,服务端本身下载速度很慢,只有10kb左右。

分流工具:

========================================================================================================================================

讲解插件的配置文件夹里的配置文件

\addons\amxmodx\configs

打开configs文件夹后,会有很多以.ini .cfg文件

而里面的文件夹,是插件作者有不少配置文件,放在文件夹里方便查看,如果都放在config文件夹里,会很乱

注意:只有插件里指定了目录,才可以创建文件夹,如果插件指定的就是configs文件夹,你将配置文件放入新的文件夹,那么插件就会读取不到配置文件

而这些文件,都可以用记事本形式打开

这里,我们只讲解几个必要的ini文件,其他文件均为第三方插件的配置文件,请自行了解。

amxx.cfg

插件运行时,会优先读取这个文件夹里的配置文件,即使server.cfg里有这个命令,也会优先读取amxx.cfg。

我们可以将服务器的命令输入到里面,插件所需的也可以放在里面。

我们可以自行打开查看,下方为文件内容例子

比如

mp_timelimit 20 ;为服务器一张图的时间

sv_gravity 800 ;为服务器的重力

amx_password_field "kz" ;VIP输入密码时服务器登录密码 有权限玩家需要输入密码时 需要在控制台输入setinfo "登录密码" "管理员密码"

modules.ini

我们在上一章提到modules文件夹,而这个文件就是模块的开启关闭的文件。

如图所示,在填写模块名称时,是不需要输入模块全名,比如你在moduels文件夹放了fun_amxx.dll文件

那么在配置文件里,只需要填写fun即可,如不需要开启,我们在名称前面加入分号,插件就不会运行这个模块了。

在以控制台形式开启的服务端里,输入meta list 回车,可以看见模块运行状态。

如果你的插件在服务器里运行出错,请第一时间查看模块是否正常运行。

users.cfg

为服务器管理员的设置

我们打开文件后,可以在此文件夹对服务器权限进行设置

==========================================================; 权限解释:; a - immunity (不能被踢出、封禁、惩罚等); b - reservation (能通过预留通道进入服务器); c - amx_kick command (拥有踢人权限); d - amx_ban and amx_unban commands (拥有封禁玩家权限); e - amx_slay and amx_slap commands (拥有惩罚玩家的权限); f - amx_map command (拥有更换地图的权限); g - amx_cvar command (not all cvars will be available) (拥有在游戏中更改【部分】参数的权限); h - amx_cfg command (可以加载某个AMX cfg 设置文件权限); i - amx_chat and other chat commands (可以用管理员身份发布信息); j - amx_vote and other vote commands (可以发起投票); k - access to sv_password cvar (by amx_cvar command) (可以给服务器加密码); l - access to amx_rcon command and rcon_password cvar (by amx_cvar command) (可以通过用rcon命令来以OP【主机】的身份来登陆服务器); m - custom level A (自定义ADMIN_LEVEL_A,额外权限的插件而准备); n - custom level B (自定义ADMIN_LEVEL_B,额外权限的插件而准备); o - custom level C (自定义ADMIN_LEVEL_C,额外权限的插件而准备); p - custom level D (自定义ADMIN_LEVEL_D,额外权限的插件而准备); q - custom level E (自定义ADMIN_LEVEL_E,额外权限的插件而准备); r - custom level F (自定义ADMIN_LEVEL_F,额外权限的插件而准备); s - custom level G (自定义ADMIN_LEVEL_G,额外权限的插件而准备); t - custom level H (自定义ADMIN_LEVEL_H,额外权限的插件而准备); u - menu access (拥有打开管理员菜单的权限)

; z - user (普通用户权限,非管理员!); 账号类型:; a - 进入服务器时如果密码错误则自动断开连接; b - 标签(战队、氏族等); c - 这是一个 steamid/wonid; d - 这是一个 ip; e - 不验证密码,只需要id或ip或者steamid; k - n名称或标记是区分大小写的。  如果您设置了这样的名称 "Ham" 并且区分了大小写

;     (唯一的类型 "k"), 那么任何人可以使用的名称“haM” , “HAM” , “ham”等,而不是“Ham”

==========================================================; 账号例子:; "STEAM_0:0:123456" "" "abcdefghijklmnopqrstu" "ce"

第一个引号,为STEAM ID
第二个引号,由于是验证steamid,可以不需要添加密码,当然也可以加密码
第三个引号,该STEAMID下拥有的服务器权限
第四个引号,该账号的类型,ce,就是告诉服务器,这是一个steamid,不需要验证密码。(a和e不要重复添加)

盗版玩家不建议使用STEAM ID方式  因为在4554CS版本以前的都是STEAM_ID_LAN 4554以后版本的也有可能ID是一样的,所以不建议使用

; "123.45.67.89" "" "abcdefghijklmnopqrstu" "de"
第一个引号,前面为玩家的IP地址
第二个引号,因为认证了IP地址所以不需要输入密码,当然也可以加密码
第三个引号,该IP地址下拥有的权限
第四个引号,认证方式,de为这是一个IP所以不用验证密码

; "玩家名字" "my_password" "abcdefghijklmnopqrstu" "a"
第一个引号,前面为该玩家的名字,比如填写xiaokz就是管理员的名字。
第二个引号,为该名字的管理员密码 配合amxx.cfg的登录密码 在控制台输入setinfo "登录密码" "管理员密码”
第三个引号,该玩家名称下拥有的权限
第四个引号,如果密码错误或者没有输入,则断开连接

如果你在amxx.cfg里,将amx_password_field "kz" 登录密码设置为了kz

"xiaokzz" "xiaokztest" "abcdefghjklmnuzs" "a"

那么在CS里输入密码方式这样

一般密码,在不更换CS时,只需要输入一次,输入后,会记录到user.cfg。

maps.cfg

为投票换图插件的地图列表

这个文件只能输入差不多500张地图左右也就是500行左右

一个地图名一行,不需要带.bsp

列如:

bkz_goldbhop

bhop_sc

kz_synergy_x

de_dust2

de_nuke

因为CS有512的限制,具体是什么不清楚 应该超不过510行,如果超过,玩家会进不了服。

plugins.ini

插件的配置文件

通过这个文件,我们可以开关插件

跟其他ini文件一样,如果有不需要用的插件,在插件名称前面加分号;关闭即可

可以通过在控制台形式的服务端,输入amxx list来查看插件的运行状况

如果在插件名称后面添加 debug 插件进入调试模式,可以将错误信息传递到控制台里,为插件编写者提供方便。

如果你不是插件编写者,插件也运行无问题,请不要添加debug,因为会增加资源使用,debug添加方式如下图

其他ini文件,只简单介绍,不详细解释,其余第三方ini文件,请自行了解!

cmdaccess.ini

i这个文件,可以将插件里内置的权限更改

比如"amx_slap"  "e" ; admincmd.amxx

我们可以改成"amx_slap"  "l" ; admincmd.amxx

也就是将命令amx_salp 从e权限改成l权限

cvars.ini

由命令菜单插件使用,管理员菜单里,有快捷更改命令的选项

在此文件夹里添加的命令参数,可以在服务器快捷更改

; < 命令 > < 参数 > ... < 权限 >

"kz_checkpoints"  "0" "1" "a"

也就是a权限玩家,在管理员菜单里,可以看到这个命令,可以快捷改成1,在按就是0,参数可添加多个。

core.ini

AMX Mod X 配置文件

指定了插件的文件夹位置,建议不要动他,默认即可。

注意:本帖部分内容为xiaokz原创