舰_自动刷闪2nd


--自动刷闪脚本
--★★★需要2.2.1版本才可以运行★★★
--会自动上1-3级的轻巡和驱逐陪练2个 无需再改陪练设置
--不会处理新捞到的小船,如果要刷很多只船,最好留一些空位,留俩1级的小船

--[[---------------------------------------------------------------------------]]
--[[-------------------------------★特别注意★---------------------------------]]
--[[---------------------------------------------------------------------------]]
--[[

为了保证换船识别的准确性,请设置腾讯云OCR对特征进行初始化
请复制前往查看设置方法:
http://kancode.moehex.com/2018/11/21/ocr/

此脚本不支持poi浏览器!
此脚本不支持poi浏览器!
此脚本不支持poi浏览器!
可能出现各种识别错误,请使用74或Oxo

]]
--[[---------------------------------------------------------------------------]]
--[[---------------------------------基础设置-----------------------------------]]
--[[---------------------------------------------------------------------------]]

Kan.DelBattleInfo()
Kan.AddBattleInfo(1, 1, false, false) 
Kan.AddBattleInfo(2, 1, true,  false) --第二场,夜战

--单船刷闪的次数,3次出击可到85闪
m_count = 3

--出击的队伍ID
m_team_id = 1

--是否使用另外的2个陪练船(1-3级任意驱逐或轻巡)
m_use_other_kan = true

--不要修改这个
m_flash_kan = {}


--定义检测编成中船名字的误差值 默认为20 如需修改,请取消注释 需要1.4.8版本
--Base.SetConfig("ChangeNameSiteString", 20)

--定义检测编成中船等级的误差值 默认为9 如需修改,请取消注释 需要1.4.8版本
--Base.SetConfig("ChangeNameSiteNum",9)


--以上两个设置请在无法正确识别等级或船名字的情况下修改


--[[---------------------------------------------------------------------------]]
--[[---------------------------------换船设置-----------------------------------]]
--[[---------------------------------------------------------------------------]]

--[[刷之前记得给会刷到的船上装备哦,特别是空母的飞机]]
--可以添加多条
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 Add(_name, _min_lv, _max_lv)


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 = Kan.Supply() --补给全部并返回所有数据
    --Base.Print(ret)

	kan_2_id = "kan" .. m_team_id .. "2"
	kan_3_id = "kan" .. m_team_id .. "3"
	kan_1_id = "kan" .. m_team_id .. "1"
	
	--判断第2位置
	if ret[kan_2_id] == C.KAN_STATE_MAX or ret[kan_2_id] == C.KAN_STATE_MID then 
		--小船的状态不适合继续刷
		if m_use_other_kan == true then
			Win.Print('小船状态不佳-2')
			if ChangeKanMin() == false then
				Win.Print('没有可换的小船!')
				break
			end
		end
		ret = Kan.Supply() --补给全部并返回所有数据
	end
	
	--判断第3位置
	if ret[kan_3_id] == C.KAN_STATE_MAX or ret[kan_3_id] == C.KAN_STATE_MID then 
		 --小船的状态不适合继续刷
		if m_use_other_kan == true then
			Win.Print('小船状态不佳-3')
			if ChangeKanMin() == false then
				Win.Print('没有可换的小船!')
				break
			end
		end
		ret = Kan.Supply()
	end
	
	--判断旗舰
	if ret[kan_1_id] == C.KAN_STATE_MAX or ret[kan_1_id] == C.KAN_STATE_MID then 
		Win.Print('大船中破或大破,停止该船刷闪,换船')
		break
	end
	
    if ret["team" .. m_team_id] == -1 then
        Win.Pop('补给不足 脚本停止!',true)
        break
    end

    Kan.Sally(1, 1)
    
    if Kan.Battle(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