设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1498|回复: 6

AMXX 基础教程5 [复制链接]

Rank: 7Rank: 7Rank: 7

帖子
863
精华
0
声望
2462 点
金币
584 Mold
被赞许
7 次
注册时间
2010-5-7
发表于 2010-12-14 22:03:29 |显示全部楼层
本帖最后由 lyynyfy 于 2010-12-15 06:33 编辑

AMXX教程5
Written by csoldjb
开始写你的第一个AMXX插件
先来看一个简单的插件,开始进入我们的学习
#include <amxmodx>
#include <fun>
#define PLUGIN_NAME        "Example1"
#define PLUGIN_VERSION        "1.0"
#define PLUGIN_AUTHOR        "csoldjb"
public plugin_init()
{
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
        register_concmd("hp","addhealthpower")
}
public addhealthpower(id)
{
    new hp=get_user_health(id)
        set_user_health(id,hp+50)
        client_print(id,print_center,"You have got 50 HP!")
}
先看include部分,include包含需要调用inc文件,不同的inc包含着各种有用的自定义函数(某些主插件的可供外部调用的public函数)或者DLL文件的接口(也可称为模块),以便随时获得修改游戏引擎的不同数据。不同的inc文件基本都是集成了一些同一类的函数。像这个插件会使用amxmodx.inc和fun.inc的内容
再看define部分,define主要负责一些预处理的内容,编译插件时会先进行预处理才会正式编译,define可以有类似变量的内容,也可以用#if defined来检查时候定义了某些东西,当然,这是比较高级的用法。
Public 设置公共函数。一般通过一些命令负责调用这些函数。
public plugin_init()  plugin_init()是初始化函数,插件执行的时候首先会处理这方面的内容,注册插件和一些事件,控制命令,Forward等等函数必须在这里完成。
AMXX中函数的种类,Native/Stock和Forward函数。Native函数是手动触发的,你通过一个命令来执行这个函数,Stock是定义函数同样手动触发,Forward是当满足某一条件时自动触发的
像register_plugin,register_concmd都是Native函数。每个函数都有不同的参数,用“,”隔开,例如
register_plugin函数是注册插件的函数,它包括的参数是register_plugin ( const plugin_name[], const version[], const author[] )共有三个参数,第一个名字,第二个版本,第三个作者,里面的英文不用我解释了吧,在以前我1-4教程中已经写的很详细了。
第二个register_concmd ( const cmd[],const function[],flags=-1, info[]="" ),作用是注册一个控制台命令,共有4个参数,第一个控制台命令,第二个调用的函数,第三个flags标签(什么人可以执行这个函数),第四个info命令的信息。register_concmd("hp","addhealthpower")就是指当你输入hp命令时,插件调用addhealthpower这个函数。
来看public addhealthpower(id),这个是指定义这个函数,并传递玩家的索引给这个函数。当然id你可以随便写,写成dj什么的都可以,不过后面的id都要换成dj,因为我们需要通过id对玩家属性进行操作。
get_user_health(id)返回索引为id玩家的HP。Native函数
set_user_health(id,health)设定索引为id玩家的HP。Native函数
client_print ( index, type, const message[], ... )在id(0=所有玩家)屏幕输出一些内容,
type为类型,有print_chat(聊天区),print_center(中央),printed_console(控制台),剩下的就是要显示的内容。
这个插件的效果就是 :当玩家在控制台输入hp(活着)时自己会得到50HP,同时屏幕中央显示You have got 50 HP!,请自行理解。目前在AMXMODX.org出现的函数的有1116种,感兴趣的朋友可以自己去查看不同的函数http://www.amxmodx.org/funcwiki.php?go=all_func
===================================End=========================================

WORD版下载
http://u.115.com/file/t3abe26c77

使用道具 举报

Honorary Member

地狱恶势力

Rank: 7Rank: 7Rank: 7

帖子
3449
精华
4
声望
15019 点
金币
2052 Mold
被赞许
90 次
注册时间
2010-4-4

Modchina灌水王 可爱小猫 懒人勋章

发表于 2010-12-14 22:23:35 |显示全部楼层
其实说弄插件的话
那些函数命令每个都要知道么?
1116种,太蛋疼了
看来看去还是不能理解。。。

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
863
精华
0
声望
2462 点
金币
584 Mold
被赞许
7 次
注册时间
2010-5-7
发表于 2010-12-14 22:27:01 |显示全部楼层
回复 2# jian894123078


    1116中当然不需要都记住,有的也是别的MOD的函数,没必要记。。

使用道具 举报

Honorary Member

地狱恶势力

Rank: 7Rank: 7Rank: 7

帖子
3449
精华
4
声望
15019 点
金币
2052 Mold
被赞许
90 次
注册时间
2010-4-4

Modchina灌水王 可爱小猫 懒人勋章

发表于 2010-12-14 22:31:02 |显示全部楼层
回复 3# lyynyfy


    看起来一堆函数的,很复杂似的。。。
    所以说,我已经对插件不报任何期望了。。。
    还有一个就是英语记不牢= =

使用道具 举报

Rank: 3Rank: 3

帖子
294
精华
1
声望
684 点
金币
167 Mold
被赞许
3 次
注册时间
2010-4-22
发表于 2010-12-14 22:40:33 |显示全部楼层
语法不难,最难记函数
http://am.img1001.com/photo/Mon_1011/3_aace1290233983154f23bc91db8b8.jpg

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
863
精华
0
声望
2462 点
金币
584 Mold
被赞许
7 次
注册时间
2010-5-7
发表于 2010-12-14 22:53:16 |显示全部楼层
回复 4# jian894123078


    对,就是记函数,语法就那些

使用道具 举报

Modchina声望-崇拜

在逃模客

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

帖子
2536
精华
0
声望
8050 点
金币
1500 Mold
被赞许
120 次
注册时间
2010-2-7

懒人勋章

发表于 2010-12-14 22:58:23 |显示全部楼层
光是第一张我都看到头痛了....
その一   いつもと违う髪形に気が付くこと
その二   ちゃんと靴まで见ること   いいね?
その三   わたしの一言には三つの言叶で返

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部