巨型青蛙 发表于 2015-3-4 14:47:25

【教程】【GC五段】GC的函数添加方法

本帖最后由 托托 于 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"]={};   -----第一个参数来了
rs["Arguments"]["type"]="unit";   -------参数类型是“单位”,这个一般是内置,与你在调用函数时选择的目标相同
rs["Arguments"]["inf"]="目标名称";   ----说明

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

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

rs["Returns"]={};   ----有返回值哦
rs["Returns"]["Counts"]=1;   ---返回值是1个
rs["Returns"]={};   ----开始定义第一个返回值
rs["Returns"]["type"]="Number";    ---是数字类型的
rs["Returns"]["Failure"]=0;    ---检测失败返回的是0
rs["Returns"]["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
rs["Arguments"]["type"]="unit";   ---单位类型
rs["Arguments"]["inf"]="目标名称";   ---说明

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

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



龙套哥 发表于 2015-3-4 21:17:21

返回值要是是个unit或者table怎么办? getEnemy()这种

巨型青蛙 发表于 2015-3-4 21:55:08

GetUnit这个函数的功能很强,应该把它单列出来,做一个0.1秒刷新一次常备的敌对列表,需要取值得时候从中间取值

巨型青蛙 发表于 2015-3-4 21:56:25

如果要取得unit,同样通过自定义条件可以从unit列表中取值,targetunit来指向,期待你们的新函数

巨型青蛙 发表于 2015-3-5 22:34:35

想了想,在自定义目标上想想办法,加一个自定义敌对目标,条件列出来打勾比较好,由于gc是个图形化的插件,建议各位添加函数的时候不要留默认值,参数赋值应明确,有几个参数就赋值几个,不要留如果为空默认是什么值这样

巨型青蛙 发表于 2015-3-5 22:34:35

想了想,在自定义目标上想想办法,加一个自定义敌对目标,条件列出来打勾比较好,由于gc是个图形化的插件,建议各位添加函数的时候不要留默认值,参数赋值应明确,有几个参数就赋值几个,不要留如果为空默认是什么值这样

wdbw 发表于 2016-12-31 12:43:20

2812059513 发表于 2017-1-23 14:22:26

谢谢大神。学习了。。
页: [1]
查看完整版本: 【教程】【GC五段】GC的函数添加方法