作者:<a href="http://tieba.baidu.com/home/main?un=asd5315325&ie=utf-8&fr=pb" target="_blank" data-field='{"un":"asd5315325"}' tbzs_p_ch_injected="1" alog-group="p_author" j_user_card?="">asd5315325
帖子:
http://tieba.baidu.com/p/1879574394插件就是插件,AMXX就是AMXX这个我们不需要深究。=============//=============写插件需要工具:AMXX-STUDIOCS插件编译器============//===============在插件中分事件内和事件外,什么是事件内呢?指从"public XXXXX"开始,用"{"和"}"所规整的地方。比如:public ASB(id){set_user_health(id,999)}这个叫ASB,对象是id的public内就包含了设置玩家生命为999的功能当然,这个事件需要触发,否则根本没用。那什么是事件外呢?事件外指的是在"public XXXXX"和"{""}"之外的地方。这些地方主要用来预处理或者新建全局值的地方。事件怎么触发?触发一般需要条件,一般是在plugin_init()内注册事件来触发比如register_event("CurWeapon","XXXXX","be")这里面第一个指的是换武器,第二个是public事件名称,第三个是指对象类型好的,现在我们来写一个插件:#include <amxmodx>#include <amxmisc>#include <cstrike>#include <fun>#define PLUGIN_NAME "受伤加血"#define PLUGIN_VERSION "1.0"#define PLUGIN_AUTHOR "asb"public plugin_init(){register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) //不要管这个register_event("Damage","aipc","be") //受伤后触发事件}public aipc(id){if (get_user_health(id) < 100){set_user_health(id,100)}}意指当玩家受到伤害后,如果生命小于100,那么设定玩家生命为100。如果你发现有时候明明写对了却又错误报告,而且说未定义的XXX在XXX行,那么估计你如果用的是模块里的功能函数,那么请在事件外加上#include <inc名称>新手推荐cstrike(CS功能inc)、fun(娱乐功能inc)当然,amxmodx是核心inc,不能去掉,至于这些功能怎么实现的,我们不必管,只要看它的作用和用法。那些功能inc的存放地点都在CS插件编译器的include(好像后面还有个s)文件夹内,英文看不懂?拿翻译工具翻译。在此不推荐一次性翻译大片,推荐一个一个理解性翻译。现在提供一些事件:CurWeapon 换武器触发事件DeathMsg 死亡触发事件(杀敌事件也是这个,但是需要用到read_data(),不管)Damage 受伤事件
Fov 视角变换事件(AWP能放大的原因就是FOV视角拉近了,所以这个指视角变化就触发)ResetHud 开局&重生事件(有个BUG,就是撸DEMO会...)功能函数:FUNset_user_health(对象,血量整数值)set_user_armor(对象,护甲整数值)set_user_maxspeed(对象,最大速度小数值)set_user_godmode(对象,是否开启 填1开启0关闭 无敌)set_user_gravity(对象,重力倍数小数值)spawn(重生对象)user_kill(杀死对象)....如果前面是get的话,那么是获取值,而不是设定值。CSTRIKEcs_set_user_team(对象,队伍,第几个模型)//队伍填1是T,2是CT,3是观察者,模型1-4是匪,5-8是警。cs_set_user_money(对象,设定对象的金钱,是否开启闪烁 1开0关)give_item(对象,"物品的类型名称") //比如weapon_ak47,给玩家一把AK47.....============//====================第一节完
如果想看更多章节,请到帖子处继续学习