LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 8270|回复: 7

[综合] 【教程】【GC五段】GC的函数添加方法

[复制链接]
发表于 2015-3-4 14:47:25 | 显示全部楼层 |阅读模式
本帖最后由 托托 于 2016-2-3 21:37 编辑

GC的函数添加比较简单,分成2个部分
1、函数的客户界面:SuperTreatment\Locales\zhCN\api_zhCN.lua
这部分按类型分为2类,一类是条件式的函数,即在使用一个技能时可添加的条件,举例说明:
-------------------------------------------------
rs = NewTbl("amCountLowPlayers");              -------函数定义,amCountLowPlayers为函数名
rs["inf"]=PlayerColors ..'获得目标为圆心,一定半径内少于设定血量比的团队成员数量';              ----------函数说明,客户端函数显示的就是这里
rs["Remarks"]='设定目标、血量比和半径,取得符合要求的团队成员数。|r\n\n此函数不解锁也可用。测试测试';   ------函数标签说明,调用函数时的说明
rs["Arguments"]={};     ------哦,这函数有参数
rs["Arguments"]["Counts"]=3;      ------哦,参数3个
rs["Arguments"][1]={};     -----第一个参数来了
rs["Arguments"][1]["type"]="unit";     -------参数类型是“单位”,这个一般是内置,与你在调用函数时选择的目标相同
rs["Arguments"][1]["inf"]="目标名称";     ----说明

rs["Arguments"][2]={};    -----第二个参数来了
rs["Arguments"][2]["type"]="Number";       ----类型是数字
rs["Arguments"][2]["inf"]="血量百分比上限";      ----说明

rs["Arguments"][3]={};    ---第三个参数
rs["Arguments"][3]["type"]="Number";   ---同样是数字
rs["Arguments"][3]["inf"]="计算半径,一般为技能最大覆盖范围";   ---说明

rs["Returns"]={};   ----有返回值哦
rs["Returns"]["Counts"]=1;   ---返回值是1个
rs["Returns"][1]={};   ----开始定义第一个返回值
rs["Returns"][1]["type"]="Number";    ---是数字类型的
rs["Returns"][1]["Failure"]=0;    ---检测失败返回的是0
rs["Returns"][1]["inf"]="成功返囘数値,否则爲0";   --一些小说明

-------------------------------------
看看我们的函数amCountLowPlayers
在GC\wowamfunctions.lua里找到了,看看格式
function amCountLowPlayers(Unit,minHPLevel,dist)
unit minHpLevel dist,3个参数都能赋值,OK,这个函数的添加就完工了。

-------------------------------------------------
另一类是可运行函数,就是可以像一个技能一样添加进方案的函数,也拿一个例子说明:
rs = NewTbl("FHCastAOE");     ---函数名字,同上
rs["type"]="Run";    ---函数类型是可运行函数
rs["unit"]="nogoal";    ----单位选项内置,无目标
rs["inf"] = PlayerColors .."(FH)指向性技能目标处释放";    ----说明
rs["Remarks"] = "需要FireHack解锁,布尔値 - 成功返囘true,失败返回false\n\nFH高级函数,测试测试。";   ----标注
rs["Arguments"]={};    ---参数
rs["Returns"]={};   ---返回,这个可以移动到返回值区去
rs["Arguments"]["Counts"]=2;    ---2个参数

rs["Arguments"][1]={};   --参数1
rs["Arguments"][1]["type"]="unit";   ---单位类型
rs["Arguments"][1]["inf"]="目标名称";   ---说明

rs["Arguments"][2]={};   ---参数2
rs["Arguments"][2]["type"]="String";    ---字符类型
rs["Arguments"][2]["inf"]="技能名称(要施放的技能名称 如:亵渎)";   --说明

rs["Returns"]["Counts"]=1;  ---返回值有1个,rs["Returns"]={}; 这句可以放到这行之前
rs["Returns"][1]={};   ---返回值1开始定义
rs["Returns"][1]["type"]="Boolean";  ---布尔值类型,就是true和false
rs["Returns"][1]["Failure"]=false;  --失败返回false
rs["Returns"][1]["inf"]="成功返囘true";   --说明
rs["Returns"][1]["Default"]={};  --有默认值
rs["Returns"][1]["Default"]["value"]=true;  ---默认值为true
rs["Returns"][1]["Default"]["checked"]=true;    ---默认检测为true

-----------------------
看看函数
同样的文件里
function FHCastAOE(Unit,SpellName)
2个参数赋值都成功,这个函数添加完成

注意条件类函数和可运行函数的区别,在api_zhCN.lua的前半部分
for e, rs in pairs(api) do
        rs["type"]="NoRun";
end

这一段之前均为条件类函数
下面均为可运行函数

2、函数的主体文件
GC\wowamfunctions.lua,这是函数的库文件,函数主体的编写都在这里,lua函数的功能多种多样,发挥你们创造力的时候到了。

GC文件夹里wowam.lua是自定义目标的关键点,function Wowam_Spell_Run(term)这个函数设定目标序列码,function wowam_comman(cname)里将序列码转换成Target_UNID



评分

参与人数 1伸手费 +5000 收起 理由
老血 + 5000 很给力!

查看全部评分

回复

使用道具 举报

发表于 2015-3-4 21:17:21 | 显示全部楼层
返回值要是是个unit或者table怎么办? getEnemy()这种
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-4 21:55:08 | 显示全部楼层
GetUnit这个函数的功能很强,应该把它单列出来,做一个0.1秒刷新一次常备的敌对列表,需要取值得时候从中间取值

评分

参与人数 1伸手费 +5000 收起 理由
老血 + 5000 神马都是浮云

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-4 21:56:25 | 显示全部楼层
如果要取得unit,同样通过自定义条件可以从unit列表中取值,targetunit来指向,期待你们的新函数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-5 22:34:35 来自手机 | 显示全部楼层
想了想,在自定义目标上想想办法,加一个自定义敌对目标,条件列出来打勾比较好,由于gc是个图形化的插件,建议各位添加函数的时候不要留默认值,参数赋值应明确,有几个参数就赋值几个,不要留如果为空默认是什么值这样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-5 22:34:35 来自手机 | 显示全部楼层
想了想,在自定义目标上想想办法,加一个自定义敌对目标,条件列出来打勾比较好,由于gc是个图形化的插件,建议各位添加函数的时候不要留默认值,参数赋值应明确,有几个参数就赋值几个,不要留如果为空默认是什么值这样
回复 支持 反对

使用道具 举报

发表于 2016-12-31 12:43:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2017-1-23 14:22:26 来自手机 | 显示全部楼层
谢谢大神。学习了。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-4-29 06:49 AM , Processed in 0.078068 second(s), 33 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表