野外采集打怪编写例子


{

-- 脚本名称

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 },

}

},

},

}