[0320日服]花札+远征

--用于秘宝活动脚本。
--由于需要考虑的条件太多,这里仅做了剩余可战斗的刀和刀装小于多少时退出。

--[[不要用这个脚本跑其他图!!!!后果自负!]]
--[[不要用这个脚本跑其他图!!!!后果自负!]]
--[[不要用这个脚本跑其他图!!!!后果自负!]]
--[[不要用这个脚本跑其他图!!!!后果自负!]]
--[[不要用这个脚本跑其他图!!!!后果自负!]]

---------------------------------------------------------------------
--这里是设置区域 一般只需修改这里的值即可

event_id = 1
--[[★出击活动,2则表示第二个活动,如果秘宝活动变成了一个,则改成1即可]]
--[[该设置主要针对国服多活动时修改]]

event_map_id = 4
--出击哪个地图(1-4)请自行修改! 1=简 2=普 3=难 4=炒鸡难

补充手形 = true
--[[★★自动补充手形★★(通行证),不开会在手形不足时卡住]]

剩余刀回城数量 = -1
--请自行根据情况设置,如果场上剩余的刀数量小于等于该值,则会回城。

剩余刀装回城数量 = -1
--请自行根据情况设置,如果场上剩余的刀装数量小于等于该值,则会回城。
--以上两个条件达到其中之一就会生效 
-- (-1为不启动该判定)

max_count = 300
--最多进入多少次地图(出击次数) 开了自动补充手形的话 可以设置高一点刷很久

team_id = 1
--出击的队伍(1-4)

max_battle_count = 255
--最多进入多少次战斗点,活动多出也没问题,所以我写多一点

出击后休息分钟 = 0
--每次出击完毕后休息多少分钟

formation = 6
--索敌失败后使用的阵型
--阵型1-6依次为 鱼鳞 横队 雁行 鹤翼 方阵 逆行 如果非1-6数值 则选择2

formation_lock = false
--不使用智能有利阵型,任何情况都使用formation所设置的阵型


ignore_lv_msg = true 
--活动图设置这个是没用的 不要管
--是否无视等级提示 

--[[--------远征设置--------]]

--远征总开关
conquestEnabled =

--二/三/四队远征地图
k2_conquest = {2, 1}
k3_conquest = {4, 2}
k4_conquest = {4, 4}

--远征检查间隔(秒)
conquestCheckInterval = { 45 * 60, 1.5 * 60 * 60 }

---------------------------------------------------------------------
--下面的东西不要乱改了! 就改上面的设置就行
map_id = { 100 + event_id, event_map_id} 

if 补充手形 == true then 
	Base.SetValue("AutoShouXing", '1')
else
	Base.SetValue("AutoShouXing", '0')
end

Base.SetConfig("Sleep+?",100) --所有延时随机增加1-100
Base.SetConfig("MiBaoDieExitCount", 剩余刀回城数量)
Base.SetConfig("MiBaoDieDaoZhuangExitCount", 剩余刀装回城数量)

function IsColorAll(array)
	n = 0
	ok = 0
	while(array[n] ~= nil)
	do
		if Base.IsColor(array[n][0],array[n][1],array[n][2])==true then
			ok = ok + 1
		end
		n= n+1
	end
	
	if ok==n then
		return true
	else
		return false
	end
end

function IsDmmunlocker() --判断界面是否正确
	array = {};count = {}
	array = {[0]=17,19,16777215};count[0] = array
	array = {[0]=52,15,16777215};count[1] = array
	array = {[0]=105,16,16777215};count[2] = array
	array = {[0]=165,16,16777215};count[3] = array
	return IsColorAll(count)
end

Win.MessageBox('当前设定的秘宝活动ID为第 ' .. event_id .. ' 个,请确认无误!否则请确定后马上停止脚本并修改event_id!出击错地图后果自负!');

if IsDmmunlocker() == false then
	mode = 0
	
    if conquestEnabled then
	    Tou.EasyConquestInit(conquestCheckInterval[1], conquestCheckInterval[2])
	    Tou.EasyConquestRun(false)
    end
    	
	for n = 1, max_count do --循环次数
		a = "开始第:%d次"
		Win.Print(a:format(n))
		
		--出击
		if Tou.Sally(map_id[1],map_id[2],false) == false then 
			Win.Print('无法出阵退出')
			break --无法出阵
		end
		
		--出击前处理	
		repeat
		 	local teamX, teamY = Base.FindColor(12311779,12703968,14083823,13623272,5664117,2442829,1786440,1523268,3561310,10598592,15728639,15728639,14875135,7574683,7839396,14614527,14219002,11452871,15399423,15794175);
		 	local isTeamSelect = (teamX ~= -1) and (teamY ~= -1);
			local msgX, msgY=Base.FindColor(4326096,4326096,4326096,12300523,16777215,16777215,15592185,10127586,4326096,4326096,9337055,14341364,14341364,13683185,10917605,13024750,16777215,16777215,4326096,4326096)
		 	local isMsgbox = (msgX ~= -1) and (msgY ~= -1);
			
		 	if isTeamSelect then
		 		if isMsgbox then
		 			Base.ClickRect(486, 486);
		 		else
		 			Base.ClickRect(635, 504);
		 		end
		 	end
		 	Base.Sleep(500, true);
		until not isMsgbox and not isTeamSelect;
		
		--战斗
		ret = Tou.MiBaoBattle(max_battle_count, formation, mode, team_id, ignore_lv_msg, formation_lock)
		if ret > 0 then 
			Win.Print('重伤中断脚本') --发现重伤了
			break
		end
		
		if ret == -1 then 
			Win.Print('检非中断脚本') --发现检非
			break
		end
		
		if ret == -2 then 
			Win.Print('切换队伍失败了等3分钟再打..') 
			Base.Sleep(1000*60*3)
			--break
		end
		if ret == -3 then 
			Win.Print('切换队伍失败了等3分钟再打..') 
			Base.Sleep(1000*60*3)
			--break
		end
		Base.Sleep(2000)

		Win.Print('休息' .. 出击后休息分钟 .. '分钟...') 
		Base.SleepSec(出击后休息分钟 * 60)
		
	end
	
    if conquestEnabled then
        Tou.EasyConquestEnterLoop()
    else
        Win.Pop('脚本执行完毕!')
    end
else
	Win.Print('检测到游戏内存在空白,坐标无法对应,脚本无法运行!') --发现重伤了
end

Last updated