舰_2016夏E2水母
--2016夏活E2 水母带路 FGHIM
--会自动补充陆航 自动修理 等待疲劳
---------------------------------------------------------------------------------
--配置1
--水母+AWW(轻巡)+4DD
--2DD带满大发 1DD带1对空CI 1DD1夜战CI
--水母带2飞机+甲标
--aww2雷+甲标
---------------------------------------------------------------------------------
--这里是设置区域 请务必仔细阅读!!!
Kan.DelBattleInfo()
Kan.AddBattleInfo(1,5,false,false) --F潜水
Kan.AddBattleInfo(2,1,false,false) --G点菜鸡 随便打 <-基地空袭
Kan.AddBattleInfo(3,3,false,false) --H空袭点 轮型
Kan.AddBattleInfo(4,1,false,false) --I点 <-基地空袭
Kan.AddBattleInfo(5,1,true,false) --Boss点
--每个点的战斗设置 如果要修改为别的活动图的时候需要改
Kan.AddLandAir(1, 512,254) --G
Kan.AddLandAir(1, 357,216) --I
--空袭点设置
--Kan.AddWay(477,255)
--能动点
count = 5
--出击次数
--kan_support_boss_id = 4
--Boss支援舰队ID 不需要的话请在前面加--注释掉
--kan_support_id = 3
--道中支援舰队ID 不需要的话请在前面加--注释掉
---------------------------------------------------------------------------------
--下面的设置修改为别的活动图的时候才需要改
team_id = 1
--出击的队伍ID,联合舰队的话,请写12
use_way = false
--是否使用能动点 地图如果不需要使用能动点 就写false
map_id = 2
--出击地图E2
map_battle_count = 5
--在地图中进行几个点的战斗 超过也可以 但是不能少 少了到Boss前就撤退了
--(不包括资源点和能动点还有漩涡等不战斗的点的数量)
---------------------------------------------------------------------------------
--k2_conquest = C.東京急行_ID37 --二队战斗了 所以不需要
k3_conquest = C.北方鼠輸送作戦_ID21
k4_conquest = C.防空射撃演習_ID6
--设置2、3、4队伍远征,可输入C.然后下拉选择
--Kan.EasyConquestInit(60*5, 60*10)
--设置简易远征,每5-10分钟进行一次检测,1.5.3版本KCA才可以使用
--需要远征的话,请取消注释
Base.SetConfig("Sleep+?",100) --所有延时随机增加1-100
---------------------------------------------------------------------------------
Base.SetValue("FunReWriteSallyAll","LandAirCheck")
function LandAirCheck() --自主设定选择地图及重置航空队
Base.WaitColor("[[289,392,16446951],[280,383,15853506],[609,465,14477039,5],[711,446]]","活动界面")
Base.Click(270,394)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
Win.Print("判断是否需要补充")
color = "[[678,254,4778651,5]]"
if Base.IsColorEasy(color, "第一队第一格是否需要补充" ) == true then --需要补充
Base.Click(679,253)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[679,313,5493898,5]]"
if Base.IsColorEasy(color, "第一队第二格是否需要补充" ) == true then --需要补充
Base.Click(679,313)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[679,373,5493898,5]]"
if Base.IsColorEasy(color, "第一队第三格是否需要补充" ) == true then --需要补充
Base.Click(679,373)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[678,431,4514450,5]]"
if Base.IsColorEasy(color, "第一队第四格是否需要补充" ) == true then --需要补充
Base.Click(678,431)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
end
end
end
end
Base.Sleep(2000)
Win.Print("判断是否有第二队航空队")
color = "[[683,122,5137267,5]]"
if Base.IsColorEasy(color, "第二队伍" ) == true then --如果有第二队伍
Base.Click(682,120) --点击第二队伍
Base.Sleep(1500)
color = "[[678,254,4778651,5]]"
if Base.IsColorEasy(color, "第二队第一格是否需要补充" ) == true then --需要补充
Base.Click(679,253)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[679,313,5493898,5]]"
if Base.IsColorEasy(color, "第二队第二格是否需要补充" ) == true then --需要补充
Base.Click(679,313)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[679,373,5493898,5]]"
if Base.IsColorEasy(color, "第二队第三格是否需要补充" ) == true then --需要补充
Base.Click(679,373)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[678,431,4514450,5]]"
if Base.IsColorEasy(color, "第二队第四格是否需要补充" ) == true then --需要补充
Base.Click(678,431)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
end
end
end
end
Base.Sleep(2000)
end
Base.Sleep(2000)
Win.Print("判断是否有第三队航空队")
color = "[[745,121,7175302,5]]"
if Base.IsColorEasy(color, "第三队伍" ) == true then --如果有第二队伍
Base.Click(752,121) --点击第三队伍
Base.Sleep(1500)
color = "[[678,254,4778651,5]]"
if Base.IsColorEasy(color, "第三队第一格是否需要补充" ) == true then --需要补充
Base.Click(679,253)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[679,313,5493898,5]]"
if Base.IsColorEasy(color, "第三队第二格是否需要补充" ) == true then --需要补充
Base.Click(679,313)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[679,373,5493898,5]]"
if Base.IsColorEasy(color, "第三队第三格是否需要补充" ) == true then --需要补充
Base.Click(679,373)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
else
color = "[[678,431,4514450,5]]"
if Base.IsColorEasy(color, "第三队第四格是否需要补充" ) == true then --需要补充
Base.Click(678,431)
Base.Sleep(2000)
Base.WaitColor("[[763,441,8684306],[644,443,8157976]]","补充界面")
Base.Click(701,444) --全中队补充
Base.Sleep(1000)
Base.WaitColor("[[579,153,11056312],[579,246,11122105]]","航空队补充")
end
end
end
end
Base.Sleep(2000)
end
Base.Click(249,118) --补充完毕退出航空队选择
Base.WaitColor("[[289,392,16446951],[280,383,15853506],[609,465,14477039,5],[711,446]]","活动界面")
Base.Click(608,275) --点击E2
Base.Sleep(1000)
Base.WaitColor("[[590,80,12631325],[601,83,12631325],[615,84,7696929],[210, 117]]","出击")
Base.Click(686,443) --点击决定
Win.Print("点击决定")
Base.Sleep(1000)
--剩下的都是战斗函数的处理范围了
end
function SupplyAllStringMatch(_str)
local t2 = { string.match(_str , "^(-?%d+),(-?%d+),(-?%d+),(-?%d+)|(%d+),(%d+),(%d+),(%d+),(%d+),(%d+),(%d+),(%d+),(%d+),(%d+),(%d+),(%d+)") }
--将返回的数据匹配到表中
t = {}
for key, value in pairs(t2) do
table.insert(t,tonumber(value))
end --转为数值
Base.Print(string.format("舰队状态:%d %d %d %d",t[1],t[2],t[3],t[4]))
Base.Print(string.format("第1舰队单船状态:%d %d %d %d %d %d",t[5],t[6],t[7],t[8],t[9],t[10]))
Base.Print(string.format("第2舰队单船状态:%d %d %d %d %d %d",t[11],t[12],t[13],t[14],t[15],t[16]))
return t
end
function NeedRepair(_t) --判断是否需要修理
if t[5]>0 or t[6]>0 or t[7]>0 or t[8]>0 or t[9]>0 or t[10]>0 then
return true
end
if t[11]>0 or t[12]>0 or t[13]>0 or t[14]>0 or t[15]>0 or t[16]>0 then
return true
end
return false
end
Kan.EasyConquestRun(false) --首次启动的时候执行一次远征
for n = 1, count do --循环次数
a = "开始第:%d次"
Win.Print(a:format(n))
ret = Base.CallFunc("Kan.SupplyAll") --补给全部并返回所有数据
Base.Print(ret)
t = SupplyAllStringMatch(ret) --返回的文本转到table
if kan_support_boss_id ~= nil and t[kan_support_boss_id] ~= -3 then
Kan.Conquest(kan_support_boss_id,10,2) --出击Boss支援
end
if kan_support_id ~= nil and t[kan_support_id] ~= -3 then
Kan.Conquest(kan_support_id,10,1) --出击道中支援
end
if NeedRepair(t) == true then
Win.Print('船大/中/小破!使用进入修理')
--修理大中小破的船 6次 除潜艇外的船都使用桶!!
--普通擦伤不修理 如果要修 就在参数3加上 +1
Kan.RepairEx(12, 2 + 4 + 8, 2 + 4 + 8 )
elseif t[1] == -1 then
Win.Pop('补给不足 脚本停止!',true)
break
end
Kan.Sally(101, map_id) --出击E3
Base.SetConfig("LastBattleCount", 0)
--第一舰队\战斗4次\使用能动点
if Kan.BattleEx(team_id, map_battle_count , use_way) == false then
LastBattleCount = Base.GetValue("LastBattleCount")
if LastBattleCount ~= nil and LastBattleCount ~= "" then
if tonumber(LastBattleCount) < map_battle_count then
Win.Print('道中劝退')
end
min = (7 - tonumber(LastBattleCount)) * 3
Win.Print('战斗正常结束..等待'..min ..'分钟恢复疲劳再打...')
Base.Sleep(1000 * 60 * min) --等待时间
else
if LastBattleCount == "" or LastBattleCount == "0" then
Win.Print('出击失败,存在大破船或船位装备已满')
break
else
Win.Print('战斗正常结束..等待24分钟恢复疲劳再打...')
Base.Sleep(1000 * 60 * 24) --等待时间
end
end
else
LastBattleCount = Base.GetValue("LastBattleCount")
if LastBattleCount ~= nil and tonumber(LastBattleCount) < map_battle_count then
Win.Print('第一舰队旗舰大破劝退')
end
Win.Print('战斗正常结束..等待9分钟恢复疲劳再打...')
Base.Sleep(1000 * 60 * 9) --等待时间
end
Kan.WaitHome(2000)
if n % 2 == 0 then
end
Base.Sleep(2000)
end
Kan.EasyConquestEnterLoop()
Win.Pop('脚本执行完毕!')
Last updated