黑兔超级宏
黑兔超级宏
这是一个新功能,目前在测试开发阶段。
黑兔超级宏目前支持全版本 1.14.2(60级) / 1.12.1(60级) / 乌龟服 / 2.4.3(70级) / 2.5.3(80级) / 3.3.5(80级) / 3.4.3(80级) 客户端,可以对原有的宏功能进行增强。目前属于开发测试阶段,逐渐完善中
教学视频: https://www.bilibili.com/video/BV1FVxuejEbn/
如何开启
开启黑兔改模型之后,自动开启
请注意,使用黑兔超级宏前,最好彻底关闭杀毒软件,并将黑兔文件夹加入白名单。杀毒软件有可能影响程序运行
如果关闭杀毒也没效果,可以尝试安装微软库文件,可能是文件缺失
Download Visual C++ Redistributable for Visual Studio 2015 from Official Microsoft Download Center
1.12.1 乌龟服 2.4.3 3.3.5客户端,安装86(32位), 其他安装64位库
标准格式
/s S lua语句
举例子
/s S if HeathTargetPct(0,50) then Spell(116) else Spell(133) end
解释: /s S+空格 是固定格式。这个格式会被黑兔识别解析。
if HeathTargetPct(0,50) then Spell(116) else Spell(133) end 是一段lua代码,其中方法是黑兔增强的宏方法。
翻译就是如果当前目标的血量在百分0到百分50之间,就使用技能116(火球术),否则使用技能133(寒冰箭)
例子2
/s S t = AttackTime1() if t>200 or Power(1)>50 then M('/use 英勇打击') if t>200 then Sleep(1,t-200,function() if Power(1)>50 then M('/use 英勇打击') else StopCasting() end end) end end
这是战士卡英勇的宏,参数根据自己需求调整
1.12客户端和乌龟服需要使用下面
/s S t = AttackTime1() if t>200 or Power(1)>50 then Script("CastSpellByName('英勇打击')") if t>200 then Sleep(1,t-200,function() if Power(1)>50 then Script("CastSpellByName('英勇打击')") else Script("SpellStopCasting()") end end) end end
上面是一个增强宏的标准格式,可以配合游戏内原有宏使用
以下介绍一下目前支持的LUA方法
Spell
使用技能
void Spell(技能ID)
简写方法名 void S(技能ID)
例子:施放一级圣光术,其中635是一级圣光术的技能ID
/s S Spell(635)
Macro
可以调用游戏内本身的宏,来达到复杂操作
void Macro(魔兽本身的宏)
简写方法名 void M(魔兽本身的宏)
注意:在1.12.1客户端和乌龟服,由于和有些插件冲突。会导致调用技能失效,可以用Script函数代替
例子:通过魔兽自带的宏施放正义圣印
/s S Macro('/cast 正义圣印')
Script
可以调用游戏内本身的脚本,来达到复杂操作
注意:只支持1.12.1客户端和乌龟服
void Script(魔兽本身的脚本)
例子:通过魔兽自带的宏施放正义圣印
/s S Script("CastSpellByName('圣光术')")
等同于
/script CastSpellByName('圣光术')
等同于
/cast 圣光术
Say
在控制台说话的方法,其他人看不到,用于调试
void Say(内容)
简写方法名 void Say(内容)
例子:通过魔兽自带的宏施放正义圣印
/s S Say('我是大帅哥')
HeathTargetPct
可以通过目标的血量百分比来判断要使用什么技能,例如可以判断血量在百分0到20之间的时候,用斩杀,其他时间用嗜血
bool HeathTargetPct(目标血量大于百分比,目标血量小于百分比)
简写方法名 bool HTP(目标血量大于百分比,目标血量小于百分比)
例子:如果目标血量大于等于百分之0,小于等于百分50.那么使用技能116(一级寒冰箭),否则使用技能133(一级火球术)
/s S if HeathTargetPct(0,50) then Spell(116) else Spell(133) end
HeathTargetLost
可以通过目标血量缺口,来判断使用什么法术。比如血量缺口2000,使用圣光术等级4 , 血量缺口5000 使用圣光术等级9 . 之类的
bool HeathTargetLost(目标血量缺失)
简写方法名 bool HTL(目标血量缺失)
例子:如果如果目标缺失10滴血,那么使用技能116(一级寒冰箭),否则使用技能133(一级火球术)
/s S if HeathTargetLost(10) then Spell(116) else Spell(133) end
TargetSpellId
返回当前目标正在读条的技能ID,如果没有施法返回0
可以被用来和脚踢等技能配合,判断是否施法来施法技能。 也可以精准的通过方法返回的技能ID,来制作打断特定法术的宏
int TargetSpellId()
简写方法名 int TSI()
例子:输出目标正在读条的技能
/s S id=TargetSpellId() Say('输出='..id)
AttackTime1
获取主手武器剩余计时条时间 - 单位毫秒
int AttackTime1()
简写方法名 int AT1()
例子:输出主手武器剩余计时条时间
/s S a=AttackTime1() Say('输出='..a)
AttackTime2
获取副手武器剩余计时条时间 - 单位毫秒
int AttackTime2()
简写方法名 int AT2()
例子:输出副手武器剩余计时条时间
/s S a=AttackTime2() Say('输出='..a)
Power
获取自身的能量值
int Power(int 能量类型)
简写方法名 int P(int 能量类型)
参数说明:
0 法力
1 怒气
2 集中值
3 能量
4 快乐值
5 符文
6 符文能量
例子:输出自身当前法力值
/s S a=Power(0) Say('输出='..a)
PowerTarget
获取目标的能量值
int PowerTarget(int 能量类型)
简写方法名 int PT(int 能量类型)
参数说明:
0 法力
1 怒气
2 集中值
3 能量
4 快乐值
5 符文
6 符文能量
例子:输出目标的当前法力值
/s S a=PowerTarget(0) Say('输出='..a)
Sleep
异步延迟执行函数,相同的唯一编号的Sleep方法只有第一个会被执行。执行完毕重置
void Sleep(int 唯一编号,int 延迟时间,function 方法)
参数说明:
唯一编号,传递int类型。如果没有特别需求,传递1
延迟时间,单位毫秒。 会在设置的时间后,运行传入的第三个参数
参考
/s S t = AttackTime1() if t>200 or Power(1)>50 then M('/use 英勇打击') if t>200 then Sleep(1,t-200,function() if Power(1)>50 then M('/use 英勇打击') else StopCasting() end end) end end
这是战士卡英勇的宏,参数根据自己需求调整
使用得当会很有用,可以被用来做一些固定时间做什么事情。例如喊话
SpellCooldownTime
获取自己技能冷却,单位毫秒
int SpellCooldownTime(技能ID)
简写方法名 int SCT()
例子:输出圣盾术冷却时间
/s S p=SCT(642) Say('结果='..p)
StopCasting
停止当前施法
void StopCasting()
简写方法名 void SC()
注意: 如果在1.12服务器和乌龟服,可以使用 /s S Script("SpellStopCasting()") 替代
例子:停止当前施法
/s S SC()
ComboPoints
获取目标身上你的连击点数
int ComboPoints()
简写方法名 int CP()
例子:获取目标身上你的连击点
/s S p=CP() Say('结果='..p)
TargetTargetIsSelf
判断目标的目标是不是自己
bool TargetTargetIsSelf()
简写方法名 bool TTIS()
例子:判断目标的目标是不是自己
/s S p=TTIS() if p then Say('结果=true') else Say('结果=false') end
AuraRemainingTime
通过传入的光环ID,返回两个返回值
返回1: 获取自身光环剩余时间 - 单位毫秒
返回2: 获取自身光环层数
int,int AuraRemainingTime(int spell_Id)
简写方法名 int,int ART(int spellId)
注意: 参数spell_id是一个法术ID,但是有些时候不一定你释放的法术ID。具体需要通过光环的名字去数据库网站查询一下对应的法术ID
例子:输出正义圣印的持续时间 - 单位毫秒
/s S a,b=ART(21084) Say('输出='..a..' b='..b)
TargetAuraRemainingTime
通过传入的光环ID,返回两个返回值
返回1: 获取目标光环剩余时间 - 单位毫秒
返回2: 获取目标光环层数
int,int TargetAuraRemainingTime(int spell_Id)
简写方法名 int,int TART(int spellId)
**注意: **参数spell_id是一个法术ID,但是有些时候不一定你释放的法术ID。具体需要通过光环的名字去数据库网站查询一下对应的法术ID
在1.12.1服务器(60级)版本服务器没有发送目标身上的BUFF或者DEBUFF剩余时间,只能目标存在这个光环的时候统一返回冷却时间99999999。不存在返回0
服务器(80级)正常
例子:输出目标身上正义圣印的持续时间 - 单位毫秒
/s S a,b=TART(21084) Say('输出='..a..' b='..b)
IsCombat
返回当前玩家是否战斗中
bool IsCombat()
黑兔版本>=1.9.41