0
焦点头条

官方内置宏语法攻略

2014-02-23 07:56| 查看: 5161 |作者: 小雪+陈雨




关于其他技能整合
除了一键输出,宏可以用来解决键位问题,主要用于辅助技能整理,两个门派技能键位整合。
/script N=GetClientPlayer()
/script P=N.nAccumulateValue
/script function use(id) A,B,C=N.GetSkillCDProgress(id,N.GetSkillLevel(id)) if C==0 then OnUseSkill(id,N.GetSkillLevel(id)) end end
/script K=N.GetKungfuMount().dwSkillID
/script if K==10080 or K==10081 then use(544) end
/script if K==10014 and P>0 then use(303) end
第一二三四行为封装,不多解释。
第五行,如果内功为冰心或者云裳,则使用技能帝骖龙翔
第六行,如果内功为紫霞功(俗称气纯)以及气大于半格,则使用三才化生。
嗯,这是一个比较简单的不同门派内功绑定同一个键位的,由于这两种都是同一类型的技能,所以归类在一起。
内功的ID如下:
10002 洗髓经
10003 易筋经
10014 紫霞功
10015 太虚剑意
10021 花间游
10026 傲血战意
10028 离经易道
10062 铁牢律
10080 云裳心经
10081 冰心诀
10144 问水决
10145 山居剑意
判断其他内功的将那个数字替换就可以了,例如剑纯跟气纯的气场其实可以整合在一起。例如碎星辰+冲阴阳为一组等等,请自行组合。

喊话宏
/script for i=1,1 do GetClientPlayer().Talk(PLAYER_TALK_CHANNEL.NEARBY, "密语对象", {{type = "text", text = "请输入内容"}}) end;
简单明了,作用于循环喊话。
前面的for i=1,1 是喊话一次, for i=1,2 是喊话2次
另外一个比较简化的是一个封装,可以用作判断。
/script N=GetClientPlayer()
/script function say() N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"密语对象",{{type="text",text ="请输入内容"}}) end;
其他频道喊话只需要把NEARBY更换掉就好了(全部为大写):
NEARBY 近聊
SENCE 地图
WORLD 世界
TEAM 队伍
RAID 团队
BATTLE 战场
TONG 帮会
SCHOOL 门派
CAMP 阵营
FRIENDS 好友

附带一个上马下马不同喊话的喊话宏:
/script N=GetClientPlayer()
/script function say1() N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="我有一头小毛驴,但我从来也不骑"}}) end
/script function say2() N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="小毛驴累了"}}) end;
/script function buff(mb,id,lvl) for _, D in pairs(mb.GetBuffList() or {}) do if D.dwID==id and (lvl==nil or D.dwLevel==lvl) then return true end end 
return false end
/script OnUseSkill(605,1)
/script if buff(N,244) then say2() else say1() end

或者是
/script N=GetClientPlayer()
/script H=N.bOnHorse
/script function say1()N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="我有一头小毛驴,但我从来也不骑"}}) end
/script function say2() N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="小毛驴累了"}}) end;
/script if H==true then say2() else say1() end
/script OnUseSkill(605,1)
前者与后者的不同之处在于前者是判断骑马时的增益状态,后者是判断是否在马上。

喊话附带当前目标名字
/script N=GetClientPlayer()
/script name=GetTargetName(N.GetTarget())
/script for i=1,3 do N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="我已经对>>>"..name.."<<<舍身!!!!!"}}) end;
/script OnUseSkill(258,1)
施展舍生并且喊话3次。内容为:我已经对>>>目标<<<舍身!!!!!
其中第二行就是获取目标名字的命令
这中间的两个点很重要,起到了连接的作用。

收藏 分享 邀请

发表评论

关注订阅号"剑网3PVE"
获取第一手剑三资讯

关闭
您当前使用的浏览器版本过低,网站部分功能可能失效,请更换合适的浏览器。了解更多
返回顶部