舰_自定接任务脚本

--[[
脚本演示了从母港到任务界面,并找到任务舰队大整备,然后接任务的过程
这个是舰娘的脚本
20150723 需要1.2.6版本才可运行
]]

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 IsHome()
	array = {};count = {};
	array = {[0]=204,247,2137083};count[0] = array;
	array = {[0]=204,247,2137083};count[1] = array;
	array = {[0]=204,247,2137083};count[2] = array;
	return IsColorAll(count)
end

function IsMission()
    array = {};count = {};
    array = {[0]=717,464,14477808}; count[0] = array;
    array = {[0]=695,457,14675187}; count[1] = array;
    return IsColorAll(count)
end

function IsMission2()
    array = {};count = {};
	
    array = {[0]=95,463,6973993}; count[0] = array;
    array = {[0]=21,463,7434542}; count[1] = array;
    array = {[0]=64,468,4605510}; count[2] = array;

    return IsColorAll(count)
end

function IsForward()
    array = {};count = {};
    array = {[0]=297,463,6730160}; count[2] = array;
    return IsColorAll(count)
end

function CheckMyMission()
	--点击任务 舰队大整备
	ret = Base.CallFunc("Base.FindColorExAllBin", "[0,145,10464953,7700359,12900324,12834532,12834532,12834531,6252397,12966117,12966117,7502979,11781584,12966118,5462623,12768738,12768739,7700358,10925504,6383983,8358803,9411749,7371136,8556182,12966117,12966117,8227217,12176343,8029581,10728125,8885147,10135730,13163496,11583949,7568773,12702945,10070193,6449776,9543592,10860224,7503236,12702688,7502979,12768481,6581363,12966117,12900324,12768738,6318447,13031910,13097703,7502979]")
	
	
	Base.Print(ret)

	if ret ~= nil then
		--下面我们处理一下返回的字符串 将他们放到table中
		t = {}
		for k, v in string.gmatch(ret, "(%d+),(%d+)") do    
			table.insert(t,{x=k,y=v}) --在表中插入一个坐标 当然也可以在这里直接使用
		end  
		Base.Print("-----")
		--输出坐标
		for key, value in pairs(t) do  
			Base.Print(string.format("%d,%d",value["x"],value["y"]))
		end  
		Base.Print(#t)
		--找到的坐标数量大于0,点击第一个坐标
		if #t > 0 then
			Base.Print("点击")
			Base.Click(t[1].x,t[1].y)
			return true;
		end
	end
	
	return false;
end

--脚本从这里开始执行

if IsHome() == true then
    Win.Print("点击母港任务")
    Base.Click(555,51) --点击母港任务

	while IsMission() == false do --等待任务界面完全载入
		Base.ClickRectEx(695,457) --点掉大淀
		Base.Sleep(1000)
	end

	Base.Sleep(1000)
	
	Base.Click(651,460) --到任务最后一页
	
	while IsMission2() == false do --等待载入
		Base.Sleep(500)
	end
	
	Base.Sleep(500)
	
	Base.Print("载入完成")
	
	
	while IsForward() == true do --如果有向前翻页的箭头 就进入循环
		
		while IsMission2() == false do --等待载入
			Base.Sleep(500)
		end
		Base.Sleep(500)
		
		if CheckMyMission() == true then --找到任务坐标并点击
			Win.Print("接到任务")
			break
		end
		
		while IsMission2() == false do --等待载入
			Base.Sleep(500)
		end
		
		Win.Print("翻页")
		Base.Sleep(1000)
		Base.Click(297,463) --向前翻页
		Base.Sleep(1000) --必须等待一下 否则会多翻一页
	end

	Win.Print("完成")

else
    Win.Print("不在母港")
end

Last updated