舰_1-1自动刷闪改二
--[[
自动刷闪脚本
只需自行设置需要刷的船名
默认会自动上1-3级的轻巡或驱逐陪练2个,可自定关闭
不会处理新捞到的小船,如果要刷很多只船,最好留一些空位,留俩1级的小船
[20151119]优化 如果没有符合条件要刷的船 如果该条件还有次数剩余 会自动跳出
[20151119]增加 找船误差设置,如果无法正确识别大部分船,请提高误差
建议误差不超过默认的2倍
[20151121]修正 队伍设置只对出击有效的问题
[20160904]新增 支持设置单舰刷闪 默认开启
]]
---------------------------------------------------------------------------------
--这里是设置区域
Kan.DelBattleInfo()
Kan.AddBattleInfo(1,1,false,false)
Kan.AddBattleInfo(2,1,true,false)
--每个点的战斗设置 一般不用改
m_count = 3
--单船刷闪的次数,3次出击可到85闪
m_team_id = 1
--出击的队伍ID
m_use_other_kan = true
--是否使用另外的2个陪练船(1-3级任意驱逐或轻巡)
m_flash_kan = {}
--不要修改
---------------------------------------------------------------------------------
--Base.SetConfig("ChangeNameSiteString", 20)
--定义检测编成中船名字的误差值 默认为20 如需修改,请取消上一行注释 需要1.4.8版本
--Base.SetConfig("ChangeNameSiteNum",9)
--定义检测编成中船等级的误差值 默认为9 如需修改,请取消上一行注释 需要1.4.8版本
--以上两个设置请在无法正确识别等级或船名字的情况下修改
---------------------------------------------------------------------------------
--★★★请在这里自行设置需要刷的船名
--在KanAuto顶部的小船按钮中可以帮助你快速添加该项目
--刷之前记得给会刷到的船上装备哦,特别是空母的飞机
--可以添加多条
table.insert(m_flash_kan,{name="^(正规|装甲).*", min_lv=75, max_lv=150, count=10})
table.insert(m_flash_kan,{name="^战舰.*", min_lv=80, max_lv=150, count=10})
--这里是添加一个广泛的条件,正规空母和装甲空母,刷完后刷战舰,等级80-150,刷10艘
--支持正则表达式
--其他例子:
--table.insert(m_flash_kan,{name="岛风改", min_lv=80, max_lv=150, count=1})
--添加一个单体的条件,岛风改,等级80-150,刷1艘,如果定义船名,请设置刷1次
--table.insert(m_flash_kan,{name=".*", min_lv=80, max_lv=150, count=10})
--添加一个广泛的条件,会选择所有的80-150级船去刷10次
---------------------------------------------------------------------------------
Base.SetConfig("Sleep+?",100) --所有延时随机增加1-100
function SupplyAllStringMatch(_str)
local t2 = { string.match(_str , "^(-?%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("第一舰队单船状态:%d %d %d %d %d %d",t[5],t[6],t[7],t[8],t[9],t[10]))
return t
end
function ChangeKanMain(_name, _min_lv, _max_lv)
Win.Print('切换主船只' .. _name)
Kan.DelAllKanChangeColor()
Kan.AddKanChangeName(_name, _min_lv, _max_lv, true, 2, 1, true)
ret = Kan.ChangeDIY(1, m_team_id, C.SORT_LV, 20, true)
if ret == 1 then --可以改写失败了换别的船
return true
end
return false
end
function ChangeKanAll(_name, _min_lv, _max_lv)
Win.Print('切换所有船只' .. _name)
Kan.DelAllKanChangeColor()
Kan.AddKanChangeName(_name, _min_lv, _max_lv, true, 2, 1, true)
ret = Kan.ChangeDIY(1, m_team_id, C.SORT_LV, 20, true)
if m_use_other_kan == true then
Kan.DelAllKanChangeColor()
Kan.AddKanChangeName("^(驱逐舰|轻巡洋舰).*", 1, 3, true, 0, 2, true)
Kan.AddKanChangeName("^(驱逐舰|轻巡洋舰).*", 1, 3, true, 0, 3, true)
ret2 = Kan.ChangeDIY(1, m_team_id, C.SORT_NEW, 15, true)
else
ret2 = 2
end
if ret == 1 and ret2 == 2 then --可以改写失败了换别的船
return true
end
return false
end
function ChangeKanMin() --切换小船
Win.Print('切换陪练小船')
Kan.DelAllKanChangeColor()
Kan.AddKanChangeName("^(驱逐舰|轻巡洋舰).*", 1, 3, true, 0, 2, true)
Kan.AddKanChangeName("^(驱逐舰|轻巡洋舰).*", 1, 3, true, 0, 3, true)
ret = Kan.ChangeDIY(1, m_team_id, C.SORT_NEW, 15, false)
if ret == 2 then --可以改写失败了换别的船
return true
end
return false
end
function GoGoFlash()
for n = 1, m_count do --循环次数
a = "开始第:%d次"
Win.Print(a:format(n))
ret = Base.CallFunc("Kan.SupplyAll") --补给全部并返回所有数据
Base.Print(ret)
t = SupplyAllStringMatch(ret) --返回的文本转到table
kan_2_id = 2 + (m_team_id-1)*6 + 4
kan_3_id = 3 + (m_team_id-1)*6 + 4
kan_1_id = 1 + (m_team_id-1)*6 + 4
if t[kan_2_id] == C.KAN_STATE_MAX or t[kan_2_id] == C.KAN_STATE_MID then --判断第2位置
--小船的状态不适合继续刷
if m_use_other_kan == true then
Win.Print('小船状态不佳-2')
if ChangeKanMin() == false then
Win.Print('没有可换的小船!')
break
end
end
ret = Base.CallFunc("Kan.SupplyAll") --补给全部并返回所有数据
end
if t[kan_3_id] == C.KAN_STATE_MAX or t[kan_3_id] == C.KAN_STATE_MID then --判断第3位置
--小船的状态不适合继续刷
if m_use_other_kan == true then
Win.Print('小船状态不佳-3')
if ChangeKanMin() == false then
Win.Print('没有可换的小船!')
break
end
end
ret = Base.CallFunc("Kan.SupplyAll")
end
if t[kan_1_id] == C.KAN_STATE_MAX or t[kan_1_id] == C.KAN_STATE_MID then --判断旗舰
Win.Print('大船中破或大破,停止该船刷闪,换船')
break
end
if t[m_team_id] == -1 then
Win.Pop('补给不足 脚本停止!',true)
break
end
Kan.Sally(1, 1)
if Kan.BattleEx(m_team_id, m_count) == false then
else
end
Kan.WaitHome(2000)
Base.Sleep(2000)
end
end --gogo结束
--从这里开始运行
for key,value in pairs(m_flash_kan) do
Win.Print('当前条件' .. value["name"])
for n=1,value["count"] do
if ChangeKanMain(value["name"], value["min_lv"], value["max_lv"]) == true then
if m_use_other_kan == true then
if ChangeKanMin() == true then
Win.Print('换船成功,开始刷闪战斗')
GoGoFlash()
else
Win.Print('没有符合条件的小船供替换!')
break
end
else
Win.Print('换船成功,开始刷闪战斗')
GoGoFlash()
end
else
Win.Print('没有找到符合条件的船!')
break
end
end
end
Win.Pop('脚本执行完毕!')
Last updated