三、配置
安装插件
按照插件作者的安装指导来安装新插件。如果新插件需要额外的步骤或是特殊的文件,请先确定自己是按照正确的步骤安装且所需文件都已到位。
如果需要安装的插件是.sma格式的源文件,必须先对它进行编译。 请看下文“编译插件” 来了解如何编译插件。
将插件的.amxx文件放到addons\amxmodx\plugins目录下。
在addons\configs\plugins.ini中加入插件的名称。例如:
myplugin.amxx
重新启动服务器或是更换题图. 如果插件装载失败,请参见后面的内容。
卸载插件
将addons\configs\plugins.ini中相应条目删除或是在前面加上一个分号将其注释掉。
删除所有相关文件。
默认插件
插件名称 插件用途
admin.amxx 管理层
admin_sql.amxx SQL管理层。只能使用一个管理层
admincmd.amxx 基本管理命令(例如kick/slap)
adminhelp.amxx 管理命令帮助
adminslots.amxx 预留管理通道
multilingual.amxx 多语言客户端设置
menufront.amxx 管理菜单集合
cmdmenu.amxx 设置指令菜单
plmenu.amxx 玩家指令菜单(kick,ban等等)
telemenu.amxx 传送菜单 (须fun模块支持).
mapsmenu.amxx 地图菜单 (投票, 换图, 等等).
adminchat.amxx 基于控制台的聊天命令
antiflood.amxx 防止客户端聊天刷屏
scrollmsg.amxx 显示滚动信息
imessage.amxx 定时居中显示的信息
adminvote.amxx 投票命令
nextmap.amxx 显示地图循环中的下副地图
mapchooser.amxx 允许玩家投票选择下副地图
timeleft.amxx 显示当前地图剩余时间
pausecfg.amxx 允许暂停/继续当前插件
statscfg.amxx 统计插件配置
engine什么意思疑难解答
问:"Function not found";是什么意思?
答:你并未激活插件所需要的模块。确保你安装插件时严格遵照了作者的说明。 如果没有相关说明,可以使用以下方法来出需要激活的模块: 查看插件的源代码(.sma文件),里面会有类似下面的代码:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
最后2行的意思是需要"Engine 模块";以及"Fakemeta 模块"。
一些新的插件代码可能会有类似以下的部分:
public plugin_modules()
{
require_module("engine")
require_module("fakemeta")
}
这里也分别列出了需要启用的模块名称。
最后,你可以查看相应函数是否包含在代码数据库中/funcwiki.php
如果以上方法都无效,请登陆论坛查询或联系插件开发者。
问:"module required for plugin";是什么意思?
答:这说明你没有启用指定的模块。依照错误信息,你应该打开 addons\amxmodx\configs\modules.ini并激活相应模块。
问:"Run time
error ... debug not enabled";是什么意思?
答:这说明插件出现了一个内部错误。可以通过两个方法开
启debug模式:
在amxx.cfg中,把"amx_debug";参数改成以下数值:
0 - 关闭debug模式
1 - 参见方法2
2 - 所有插件启用debug模式
更改addons\amxmodx\configs\plugins.ini中的内容来激活debug模式。例如,
这样改动:
myplugin.amxx
改为:
myplugin.amxx debug
当错误再次出现时,可以将debug下的输出结果发给插件作者来寻求帮助。
移植AMX Mod插件
要把AMX MOD插件移植到AMX MOD X上,首先可以先试着重新编译。不少函数名称都已改变,所以不能直接运行它们。如果插件编译成功,却无法正常工作,请继续往下看。
如果重新编译或者插件无法使用,请务必查看源代码。
插件是在AMX MOD 0.9.9以上版本使用的吗?如果是的话,那此 赡苁褂昧诵碌幕蛭薹ㄒ浦驳暮 ?_T() 等等。
插件使用了无法移植的模块吗?有些过期模块,加密代码模块以及糟糕的模块现在无法移植,当然以后更没有可能。比如说:
UDP
MThread
D2Tools
Misc
Tazmod
CMath
pvPrivateData
幸运的是,这些模块因为以上原因一般很少使用。
你使用的是AMX MOD X 0.20吗?这个版本的MySQL函数及其他一些特性(如 set_task)改变非常大,这使得某些插件的移植需要修改源代码。
插件是否使用了VexD的前台?AMX MOD X 0.16与AMX MOD相比,一些前台句柄,属性,以及名称都有改变,而0.20版又有变动。所以请确保这些内容使用正确。
能联系上作者吗?看看他们是否愿意提供帮助。
如果你成功完成了一次移植,在发布之前请务必征得原作者授权。因插件与AMX MOD X的相关性,请参照GNU公用许可中相关条款来发布插件。
编译插件
Windows系统:
将.sma源文件放在文件夹addons\amxmodx\scripting下。
方法一:快速方法
把.sma文件拖拖放到"";上面。
在compiled文件夹中寻输出的.amxx文件。
方法二:全部编译(快速)
双击即可编译文件夹中所有插件。
方法三:命令行方式
点击 开始菜单-〉运行,输入"cmd",按确定键。
使用"cd";命令转到编译目录,例如:
cd c:\hlserver\cstrike\addons\amxmodx\scripting
使用amxxsc来编译插件:
< myplugin.sma
输出文件会在同一文件夹下。
Linux系统:
拷贝或移动.sma文件到addons/amxmodx/scripting目录下。
使用以下命令转到scripting目录:
cd addons/amxmodx/scripting
方法一:全部编译
用以下方法之一运行脚本compile.sh:
sh compile.sh
或:
chmod +x compile.sh
./compile.sh
方法二:单个编译
./amxxsc myplugin.sma
输出文件将
在相同目录下。
2.模块
安装模块
确定服务器所使用的操作系统类型:Windows,Linux,或者是AMD64的Linux系统(64位)
下载与操作系统相对应的模块版本,模块命名方
式如下:
module_amxx.dll - Windows
module_amxx_i386.so - Linux
module_amxx_amd64.so - Linux, AMD64.
将文件放置在 addons\amxmodx\modules\ 目录下
在 addons\amxmodx\configs\modules.ini 文件中添加模块名。尽管AMX X提供了跨平台服务器配置自动识别的支持,但强烈建议使用完整文件名:
;自动探测操作系统版本
module_amxx
按照模块的附加说明完成其他配置,然后重新启动服务器。
欲察看模块是否正常运行,可在服务器控制台输入以下指令:
amxx modules
卸载模块
删除或注释 addons\amxmodx\configs\modules.ini 文件中的相关条目(注释的方法是在条目之前添加分号)
删除相关文件
默认模块 模块名 用途
fun_amxx 用来改变游戏相关数值的一般函数
engine_amxx 用于读取或改变HL引擎中数值的高级函数
fakemeta_amxx 用于操作,连接,调用HL引擎内在功能的专业/高级函数
mysql_amxx, pgsql_amxx, mssql_amxx MySQL (所有平台), PgSQL (除AMD64之外的所有平台),和 MS-SQL (仅限Windows平台) 的编程函数
geoip_amxx 提供通过IP查询玩家所在国家的功能
array_amxx 提供操作动态数组的功能
sockets_amxx 控制和处理套接字(TCP/UDP)
regex_amxx 支持常规表达式
疑难解答
如果模块未能正常加载,你必须排除相应故障才可以利用其功能。最好的方法是联系模块作者或是自己试着修改/编译源代码。
若需要在LINUX系统中排除模块故障,你可以To troubleshoot why a module might not load on Linux, you can use the supplied "dlsym" or "dlsym64" (for AMD64) program.
利用 SSH 登陆你的LINUX服务器,然后做如下操作:
cd  hlds_l/cstrike/addons/amxmodx/scripting
chmod +x dlsym
./dlsym ../modules/module_amxx_i386.so
若此操作能成功进行,那么模块应当能够正常加载。保险起见,你可以将问题发布在AMX X官方论坛中或者联系模块作者。
3.基本CVAR参数
要修改这些选项,用你喜欢的文本编辑器编辑“addons/amxmodx/configs/amxx.cfg”文件。
CVAR 默认值 用途
amx_default_access "z" 为非管理员用户设定默认权限
amx_password_field "_pw" 规定用户用来存放密码的setinfo键名
amx_mode 1 设定服务器登陆模式
0 - 取消登陆,不检测用户,同时不会赋予任何权限。
1 - 普通模式,给予帐号所设定的权限
2 - 踢出所有不在用户列表中的玩家
amx_show_activity 2 设定管理员行为显示模式:
0 - 禁用
1 - 只显示行为,不显示管理员名
2 - 显示行为,同时显示
管理员名
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600 设定“走马灯”信息的参数(信息内容及出现频度)
amx_imessage "Welcome to %hostname" "000255100"
"This server is using AMX Mod X\nVisit " "00010025" 屏幕居中显示彩信息。
后面的参数指定颜,格式为RRRGGGBBB(红,绿,蓝)。
amx_freq_imessage 180 设定居中彩信息的显示频率,单位为秒。
amx_flood_time 0.75 防止聊天刷屏。规定玩家发言的最小间隔,单位为秒。
amx_reservation 0 设定贵宾预留通道的数目。
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11" 设定剩余时间的显示方式:
a - 以白字体显示在屏幕下方
b - 使用语音
c - 去掉语音中的“remaining”发音
d - 去掉语音中的“hours/minutes/seconds”发音
e - 当前时间小于指定值时显示信息或使用语音通报
amx_time_voice 1 设定在通告“say thetime”和“say timeleft”时是否使用语音
amx_vote_delay 10 设定两次投票之间的最小时间间隔,单位为秒。
amx_vote_time 10 设定一次投票的有效持续时间,单位为秒。
amx_vote_answers 1 是否显示每位玩家的具体投票情况
amx_votekick_ratio 0.40 设定踢人投票成功的百分比
amx_voteban_ratio 0.40 设定饨 镀背晒Φ陌俜直?/u>
amx_votemap_ratio 0.40 设定地图投票成功的百分比
amx_vote_ratio 0.02 设定普通投票成功的百分比
amx_extendmap_max 90 设定地图加时的最大值
amx_extendmap_step 15 地图加时一次延长的时间
amx_client_languages 1 是否允许客户端选择自己的语言
amx_debug 1 设定插件的调试模式:
0 - 不启用调试模式(只显示插件错误的警告信息)
1 - 为使用“debug”选项的插件启用调试模式。
2 - 为所有插件启用调试模式(提供详细的错误后向跟踪信息)。
注意调试模式会大幅降低JIT性能。
【请看续集】hi.baidu/lao_5/blog/item/f96c1e3ec4cc76e555e7235e.html