野外采集打怪编写例子
{
-- 脚本名称
Name = 'GL说明模板',
-- 任务队列
QuestOrder = {
{ Grinding =
{
--循环条件,等级大于1就执行,可以限制其他条件
Condition = 'BF.Me.Level >= 1',
--打怪逻辑的回调函数
MobCallBack=function ()
if BF.Me.Target then
print('有目标等待2秒',GetTime(),GetItemCooldown(25978))
--使用一个物品
-- BF.UseItem(8952)
--使用一个背包物品
BF.Kern.UseItem(25978)
BF.Delay(2)
print('等待完成',GetTime())
--返回true 战斗逻辑不继续,否则继续
return true
end
end,
GatherCallBack=function()
print('采集过程中的回调')
BF.UseItem(6948)
BF.Delay(10)
--返回true 采集逻辑不继续,否则继续
--return true
end,
--怪物ID,编写调试-遍历单位 Entry = 后面的数字,也可以填中文名字
MobIds = { 5426,5419,5429,5420,5423,5424 },
--采集ID,编写调试-遍历物体 Entry = 后面的数字,也可以填中文名字
GatherIds = { },
--采集打怪路线,编写调试-我的坐标,获取,每到一个打怪采集点,点击以下即可,X,Y,Z是坐标,R是打怪范围,callback为移动中的回调函数
Hotspots = {
{X = -7761.3350, Y = -3313.5801, Z = 64.6156,R=10,callback=function()
if GetSpellCooldown('圣疗术')==0 then
CastSpellByName('圣疗术')
end
print('这是在移动过程中的判断的内容')
end },
{X=-7696.9248, Y=-3391.5825, Z=46.2677,},
},
--塔纳利斯邮箱坐标,到邮箱附近,编写调试-最近邮箱位置,获取
MailBox = { Entry=144112, X=-7154.4008789063, Y=-3829.5178222656, Z=8.7502937316895 },
Vendors = {
--修理NPC位置,选中修理NPC,编写调试-目标信息,获取,Path为纠正坐标链,寻路到第一点,然后顺序移动
Repair = { Name='布雷兹里克·巴克舒特', Entry=8131, X=-7141.490234375, Y=-3719.6948242188, Z=8.496241569519, Radius=5,Path={
{271.7789, -4707.8501, 12.1407,},
{266.2314, -4704.0176, 17.4887,},
{269.9933, -4700.7402, 17.4889,},
{276.2783, -4704.9463, 17.4889,},
{276.1666, -4707.9678, 17.4889,},
}},
--食物NPC位置 选中食物NPC,编写调试-目标信息,获取,
Food = { Name='迪尔格·奎克里弗', Entry=8125, X=-7168.2744140625, Y=-3850.2727050781, Z=8.7816295623779, Radius=5},
--弹药NPC位置 选中弹药NPC,编写调试-目标信息,获取,
Ammo = { Name='布雷兹里克·巴克舒特', Entry=8131, X=-7141.490234375, Y=-3719.6948242188, Z=8.496241569519, Radius=5},
},
--屏幕提示
TaskTip={'这是一个说明例子'},
--提示信息,每次运行时输出一次
Tip={'这是一个说明例子'},
--黑名单例子,判断与采集物品或者打怪单位与表中的(X,Y,Z)坐标距离小于Radius 或者25 就过滤这个采集点或者打怪点。
--用编写调试-遍历物体和遍历单位添加,怪物用遍历单位,采集物品用遍历物体
Blackspots = {
{ Name = '疱爪土狼', Entry = 5426, X = -7712.9668, Y = -3347.0171, Z = 58.5158, Distance = 76, Radius = 30 },
{ Name = '火鹏', Entry = 5429, X = -7767.0562, Y = -3254.1230, Z = 71.1411, Distance = 42, Radius = 30 },
{ Name = "紫莲花", Entry = 142140, X = -7986.5962, Y = -3850.9290, Z = 18.7965, Distance = 82.681270842778 },
},
--回城修理路线,设置了这个路线,回城就会按照这个路线前进
VendorPath={
{ X = -14244.9971, Y = 325.6921, Z = 24.7328 },
{ X = -14250.4482, Y = 330.8191, Z = 24.0131 },
},
--回城修理完成后,要执行的指令,这个里面为副本指令
ExtraForVendors={[[
if GetZoneText() =="湿地" then
print("在湿地,飞向东瘟疫")
BF.NavTo(-3793.2043,-782.0516,9.0146)
BF.TakeTaxi("谢尔雷·布隆迪尔","圣光之愿礼拜堂,东瘟疫之地")
BF.WaitTaxi()
end
if BF.Me:DistanceTo(-14258.0654, 339.2429, 27.3728)< 100 then
print("距离上面坐标点小于100,寻路到下面坐标点")
BF.NavTo(-14258.0654, 339.2429, 27.3728)
end
if BF.Me.PosX<-14250 then
BF.NavTo(-14258.0654, 339.2429, 27.3728)
BF.Move2D(-14244.7158, 323.8783, 24.9800)
end]]},
--跑尸路线,如果死亡地点,寻路导航到达不了,自己录制跑尸路线
GoToCorpse={
{ X = -14244.9971, Y = 325.6921, Z = 24.7328 },
{ X = -14250.4482, Y = 330.8191, Z = 24.0131 },
},
},
},
--以下为任务例子
--这个指令,即以副本脚本形式运行延时指令,如在野外脚本中进行坐交通指令
{ While = 'HasQuest(10835) and IsQuestCompleted(10835) and GetSubZoneText()=="断背岗哨" '},
--编写调试-与目标互动生成这个指令
{ InteractWith = { Name='阿米尔雅·风心', ObjectType='Unit', Entry=19558, NumOfTimes=1, GossipOptions='taxi', WaitTime=1000,UseItem=0, X=-1314.9252, Y=2355.3889, Z=88.9553 } },
{ RunBF = 'BF.TakeTaxi(19558,"萨尔玛,地狱火半岛") BF.WaitTaxi()' },
{ EndWhile = '' },
--绑定炉石
{While = 'GetBindLocation()~= "萨尔玛" and BF.Me.Level >= 58 and BF.Me.Level< 62 '},
{ RunLua = 'print("绑定炉石在萨尔玛")' },
{ InteractWith = { Name='弗洛伊德·平克', ObjectType='Unit', Entry=16602, NumOfTimes=1, GossipOptions="binder", WaitTime=100, UseItem=0, X=190.875793, Y=2610.926514, Z=87.283836, } },
{ WaitTime = 2000 },
{ RunLua = 'ConfirmBinder() BF.Settings.profile.NeedRepairRetrieve=true' },
{EndWhile= ''},
{ RunLua = ' BF.Settings.profile.UseHearthStone = true' },
--接任务,打开编写调试-选中NPC,打开任务,点击接任务和交任务按钮,生成接任务指令
{ PickUp = { QuestName='魔火峡谷', ObjectType='Unit', QuestId=10123, GiverName='斯古尔·碎颅者中士', GiverId=19256, GossipOptions=1, X=59.696411, Y=2539.708252, Z=64.545029,} },
{RunLua=' BF.Settings.profile.HMSearchRadius=120 BF.Settings.profile.DoNotSellQuality="灰色"'},
{ Grinding =
{
Condition = 'HasQuest(10123) and not IsQuestCompleted(10123)',
MobIds = { 16879,19261,18978,19136,19434,16844 },
GatherIds = { },
Hotspots = {
{ X=145.416687, Y=2442.079102, Z=53.749092,},
{ X=64.312515, Y=2327.650146, Z=69.409431,},
{ X=130.355804, Y=2243.839600, Z=56.199570,},
{ X=196.960098, Y=2200.375244, Z=47.115955,},
{ X=201.370712, Y=2124.330078, Z=46.118774,},
},
MailBox = { X=172.128906, Y=2625.061768, Z=87.164452, },
Vendors = {
Repair = { Name = '雷甘·曼库索', Entry = 22225, X=179.787079, Y=2605.400146, Z=87.283676, Distance = 4, Radius = 10 },
Food = { Name = '弗洛伊德·平克', Entry = 16602, X=190.875793, Y=2610.926514, Z=87.283836, Distance = 4, Radius = 10 },
Ammo = { Name = '弗洛伊德·平克', Entry = 16602, X=190.875793, Y=2610.926514, Z=87.283836, Distance = 4, Radius = 10 },
},
}
},
--交任务,打开编写调试-选中NPC,打开任务,点击接任务和交任务按钮,生成接交指令
{ TurnIn = { QuestName='魔火峡谷', ObjectType='Unit', QuestId=10123, TurnInName='斯古尔·碎颅者中士', TurnInId=19256, GossipOptions=1, X=59.696411, Y=2539.708252, Z=64.543991,} },
--过滤名称黑名单,使用下面两行指令设置,也可在综合设置--打怪采集黑名单里手动设置,
--其他各项综合设置里各项参数也可以这么设置
--脚本里设置打怪名称黑名单,注意使用编写调试-BF各项设置获取时,有些选项参数需要接受文字型参数需要加引号,有些是数字型参数,如果设置报错更改参数类型为文字尝试。
{ RunLua = 'BF.Settings.profile.AttackBlackList="野猪|熊"' },
--脚本里设置采集物品名字黑名单
{ RunLua = 'BF.Settings.profile.CollectBlackList="墓地苔|黄金参|秘银矿脉|卡德加的胡须|瑟银矿脉|阿尔萨斯之泪|紫莲花"' },
--屏幕输出文字
{ RunLua = 'BF.Log.TaskTip("这是一个野外脚本的编写说明")' },
--设置炉石回城
{ RunLua = 'BF.Settings.profile.UseHearthStone=true' },
--设置采集范围
{ RunLua = 'BF.Settings.profile.HMSearchRadius=70' },
},
-- 修理买卖 NPC信息,全局使用,可不设置,优先使用Grinding里面的
-- 修理买卖 NPC信息,优先寻找离自己最近的修理点,这个在没有配置Grinding的修理信息下会使用
Vendors = {
{ Name = '被俘虏的侏儒',Type='Repair', Entry = 19383, X = 323.0882, Y = 7839.8291, Z = 22.0847, Distance = 3.1744, Radius = 10 },
{ Name = '梅拉吉特',Type='Food', Entry = 18245, X = 228.1627, Y = 7933.8770, Z = 25.0780, Distance = 70.3053, Radius = 10 },
{ Name = '萨莉娜·白星', Type='Ammo',Entry = 21172, X = -202.9131, Y = 5477.6021, Z = 22.7082, Distance = 2.6925561505555, Radius = 10 },
--赞加沼泽
{ Name = '芬德雷·迅矛', Type='Repair',Entry = 17904, X=-198.969620, Y=5490.686035, Z=21.846272, Distance = 4, Radius = 10 },
{ Name = '旅店老板考伊斯·斯托克顿',Type='Food', Entry = 18907, X=-174.477997, Y=5529.211426, Z=29.408039, Distance = 4, Radius = 10 },
--地狱火半岛
{ Name = '雷甘·曼库索',Type='Repair', Entry = 22225, X=179.787079, Y=2605.400146, Z=87.283676, Distance = 4, Radius = 10 },
{ Name = '弗洛伊德·平克', Type='Food',Entry = 16602, X=190.875793, Y=2610.926514, Z=87.283836, Distance = 4, Radius = 10 },
{ Name = '弗洛伊德·平克', Type='Ammo',Entry = 16602, X=190.875793, Y=2610.926514, Z=87.283836, Distance = 4, Radius = 10 },
{ Name = '盲眼哈加什',Type='Repair', Entry = 19561, X = -1329.0139, Y = 2397.5845, Z = 89.0751, Distance = 2.7094, Radius = 10 },
{ Name = '蒙杜尔',Type='Food', Entry = 19559, X = -1319.3018, Y = 2351.0247, Z = 88.9554, Distance = 4.1735, Radius = 10 },
{ Name = '盲眼哈加什',Type='Ammo', Entry = 19561, X = -1329.0139, Y = 2397.5845, Z = 89.0751, Distance = 2.7094, Radius = 10 },
},
--邮箱位置信息,全局使用,全局使用,可不设置,优先使用Grinding里面的
MailBoxes = {},
--纠正路径信息,编写调试--路径修复信息,然后在卡位点使用,把纠正的路径信息填到NewPath
PathCorrection = {
-- 纠正路线例子
--卡点位置
{ StuckX=1734.0159912109, StuckY=-4429.458984375, StuckZ=38.241958618164,
--终点位置,这个不再判断
EndX=1849.0434570313, EndY=-4569.2290039063, EndZ=24.760660171509,
--卡点范围,比如3,就是你距离卡点位置3码内即判断是卡点。
Radius=3,
--把卡点位置要去的点,纠正为这一点
NewPath={{ X = 1736.3009, Y = -4422.3145, Z = 36.2780 },}
},
},
--全局跑尸体纠正路线,
CorpsePathCorrection = {
--CX,CY,CZ为死亡坐标,Radius为范围,在这个范围内死亡则按照NewPath坐标链接前进
{CX=1017.2443, CY=-4806.1948, CZ=17.1217,Radius=80,NewPath={
{ X = 995.0702, Y = -4582.9312, Z = 19.8059 },
{ X = 841.2805, Y = -4702.8340, Z = 11.5129 },
{ X = 835.4067, Y = -4744.4536, Z = 12.3308 },
{ X = 827.9903, Y = -4814.8159, Z = 11.1635 },
{ X = 926.5181, Y = -4812.2212, Z = 14.8344 },
}
},
},
}