下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 AMX Mod X Documentation

AMX Mod X Documentation.doc

AMX Mod X Documentation

户戛戛
2018-09-06 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《AMX Mod X Documentationdoc》,可适用于游戏领域

AMXModXDocumentationScriptingTutorial–BasicPluginsTranslatedbyShamanKaler(againb)AMXModX插件基础前言你想做个AMXX插件?那首先你应该对Pawn的工作方式有很好的了解所以确信你已经认真的阅读了《介绍》和《Pawn语言基础》。现在你应该坐在电脑前看着这部分内容开着文本编辑器并且手头就有Small编译器。(老外的废话是那么的多小克注)你不必急着去编WC、MatrixMod或者CSDM那样的插件不过这至少说明你编插件的心有多么急切……有个很好的AMXPawn文本编辑器叫CrimsonEditor你可以试一试:http:wwwcrimsoneditorcom(Stillavailable!不过个人还是偏好AMXXStudio滴小克注)你应该很熟悉插件的编译方法也应该懂得如何安装编译完成的插件。在这里方法不再赘述请阅读前面的部分(我这里没有的说详见官方文档Plugins部分小克注)AMXX插件的结构AMXX插件主要有四种类型的函数。第一种是Public函数这是AMXX引擎直接可见的函数。第二种是Native函数是模块或AMXX内核声明的函数。第三种是用户定义的函数没有特殊额外声明。第四种是Forward函数只有当某个特殊事件发生时才被调用(同时也是Public函数)。一个AMXX插件开头必须有一个函数来注册这个插件:这使得你可以使用AMXX核心的函数。包括(include)includesamxmodxinc中定义的所有native函数#include<amxmodx>声明三个字符串(同样也可以使用预处理命令#define)newPLUGIN="AMXXDemo"newAUTHOR="BAILOPAN"newVERSION=""这是个Public函数在AMXX插件中这是必需的注册函数它不需要参数在地图载入后自动执行publicplugininit(){这个函数需要三个字符串这会注册你的插件到AMXX中同时会设定一些基础信息registerplugin(PLUGIN,VERSION,AUTHOR)}现在可以尝试编译上面的脚本了编译出的amxx会非常小因为没有任何作用。不过如果你安装并载入了这个插件然后在控制台输入amxxplugins你会看到一个叫AMXXDemo的插件的J建立管理员命令AMXX提供了一种简单的建立OP控制台命令的方法通过把命令“register”(注册)成控制台命令来实现。当你注册一个命令的时候需要四个参数:控制台命令、引发的过程函数、OP级别和命令描述。在这个演示中我们将建立一个修改玩家HP的插件及其命令”amxhp”。我们要做两件事:一是注册控制台命令二是要在命令上绑定一个Public函数。#include<amxmodx>#include<amxmisc>包含一些有用函数#include<fun>包含改HP的函数newPLUGIN="ChangeHealth"newAUTHOR="BAILOPAN"newVERSION=""publicplugininit(){registerplugin(PLUGIN,VERSION,AUTHOR)registerconcmd("amxhp","cmdhp",ADMINSLAY,"")}publiccmdhp(id,level,cid){returnPLUGINHANDLED}第一个新函数是”registerconcmd”需要四个参数。第一个是玩家要输入控制台的命令第二个是将被调用的Public函数第三个是执行命令的权限最后一个可以写一些指导性文字(在amxhelp命令中用到)。下面我们已经建立了一个Public函数用来执行”amxhp”的功能(cmdhp)注意我们给了这个函数三个参数每个参数都代表着一些OP命令需要的特殊数据:id代表执行命令的玩家idlevel代表该玩家的执行权限cid代表命令的内部id。同时也要注意下PLUGINHANDLED。你必须了解有两个主要的返回数据PLUGINCONTINUE代表“一切正常继续执行”PLGUINHANDLED代表“到此为止不再继续”。它们的区别虽简单却重要。比如绑定一个命令的时候你就不该返回PLUGINCONTINUE(没得continue命令执行完就该结束掉小克注)但是绑定到“say”命令上时PLUGINHANDLED却会完全阻止玩家这句话的显示。不同的情况下你必须小心选择不过大多数情况下没有什么影响(比如task、event和其他的一些等等)。现在让我们继续怎样才能判断一个玩家是不是有ADMINSLAY权限呢?publiccmdhp(id,level,cid){if(!cmdaccess(id,level,cid,))returnPLUGINHANDLEDreturnPLUGINHANDLED}上面的cmdaccess函数会检查一个命令的信息(命令的使用者使用者的权限和id)。这个命令会确保两件事:一是使用者有权限二是OP命令给出的参数达到了最低数量。这里我们把最小值设为因为完整的命令会像这样”amxhpxx”OP命令本身也算做一个参数。如果cmdaccess函数不通过那么我们就让OP命令直接停止。下一步要解决的问题就是后面的两个参数。我们要读出并解码。HP数量参数很容易直接从字符串转换到数值即可。另一个就有点难度因为我们至少要能选出三种不同的人:·CTorTCTs或Ts·ALL–每个人·Xx玩家的部分名·字publiccmdhp(id,level,cid){if(!cmdaccess(id,level,cid,))returnPLUGINHANDLEDnewArgnewArg从控制台获得命令参数(amxhp后面的部分)readargv(,Arg,)readargv(,Arg,)把health转换成数值newHealth=strtonum(Arg)第一个字母是吗if(Arg==email=''email){newTeam=确定指定的是哪个队伍注意我们是从空间开始,这是可以的这只是意味着我们省掉了””if(equali(Arg,"CT")){Team=}elseif(equali(Arg,"T")){Team=}newplayers,num这个函数会把玩家id填充进players变量num代表玩家的数目getplayers(players,num)newifor(i=i<numi){if(!Team){设定玩家的HPsetuserhealth(players,Health)}else{if(getuserteam(players)==Team){setuserhealth(players,Health)}}}}else{找到部分名字相同的玩家意味着玩家如果有禁止被选中的权限将不被选中newplayer=cmdtarget(id,Arg,)if(!player){这会给Theformatforthiscommandiscalled"format()"style,wherethefirststringformatsthemessageaccordingtoanynumberoffollowingparameterssmeansastringdorimeansanintegerfmeansafloatso"Hellos,Iamdyearsold"willrequireastringandintegertofollowconsoleprint(id,"Sorry,playerscouldnotbefoundortargetted!",Arg)returnPLUGINHANDLED}else{setuserhealth(player,Health)}}returnPLUGINHANDLED}CVARCvar是服务器端的存储键例如”mpstartmoney”存储了开局钱数的信息。你可以在plugininit()里注册自己的Cvar。下面以mpstartmoney的作用为例:#include<amxmodx>publicplugininit(){registerplugin("CVARTest","","BAILOPAN")默认值为registercvar("amxstartmoney","")}当玩家进入服务器时触发clientputinserver(Forward)publicclientputinserver(id){if(getcvarnum("amxstartmoney")>){cssetusermoney(id,getcvarnum("amxstartmoney"))}else{cssetusermoney(id,getcvarnum("mpstartmoney"))}}(这个插件可能不会工作这只是一个演示。)你可以设置浮点、数值或字符串的Cvar操作时就像HL中本来的Cvar一样简单。结语想学习更多的AMXX编程方法你最好阅览一下各个inc文件中的函数用法。Inc文件通常遵循两个格式:用模块名或用途命名如果有预先定义的常数或列表会写在const中如果有一些有用的信息或成组的函数就会写在stock中。注意只有用到时stock才会被编译所以#include一些包含很多组stock的inc文件是比较安全的。下一节《一些高级AMXX主题》中将讲到event、task、menu、字典等等的用法不容错过期待小克暑假归来吧~!愿HZ的AMXX天书早日完成!本文来自来玩社区http:comewanddcom详细出处:http:comewanddcomthreadhtml

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/5

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利