Sub 精英战斗()
//以下变量用于判断战斗失败是否是互相打不死
//如果在前6个英雄出现互相打不死的情况,则选择后面一个英雄
//a1定义的颜色为,第一个英雄选中后边框的颜色
Dim a1, a2, a3, a4, a5, a6, b1, b2, b3, b4, b5, b6
a1 = GetPixelColor(155, 555)
a2 = GetPixelColor(275, 555)
a3 = GetPixelColor(395, 555)
a4 = GetPixelColor(525, 555)
a5 = GetPixelColor(655, 555)
a6 = GetPixelColor(765, 555)
//2-3关精英怪选择助战
Do
FindColorEx 217,77, 217,77, "BDE5F3", 0, 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 50
MoveTo 1030, 650
Delay 50
LeftClick 1
Delay 500
Exit Do
Else
Exit Do
End If
Delay 50
Loop
//战斗积分选择
Do
FindColorEx 400, 420, 400, 420, "00B98E", 0, 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 50
Exit Do
Else
MoveTo 400, 420
Delay 50
LeftClick 1
Delay 500
End If
Delay 50
Loop
//战斗过程各事件判断
Do
//开始战斗
FindColorEx 400, 420, 400, 420, "00B98E", 0, 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 50
MoveTo 700, 500
Delay 50
LeftClick 1
Delay 500
Else
End If
Delay 50
//无视减状态提示
FindColorEx 942, 207, 942, 207, " A8D4F7", 0, 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 50
MoveTo 720, 530
Delay 50
LeftClick 1
Delay 500
Else
End If
Delay 50
//战斗胜利
FindColorEx 572, 472, 572, 472, "149ABD", 0, 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 50
Call 战斗胜利()
Goto 结束战斗
Exit Do
End If
Delay 50
//战斗失败
FindColorEx 536, 536, 536, 536, "443F39", 0, 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 50
Exit Do
End If
Delay 50
//深渊挑战失败:英雄全部阵亡后图像识别
dm_ret = dm.FindMultiColor(660, 170, 680, 360,"e8da8f","0|120|261c1c,0|170|5e656e",0.9,1,intX,intY)
If intX > 0 and intY > 0 Then
Delay 50
Goto 结束战斗
End If
Delay 50
Loop
//战斗失败
FindColorEx 536, 536, 536, 536, "443F39", 0, 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 50
战斗失败 = 战斗失败 + 1
Delay 50
MoveTo 680, 630
Delay 50
LeftClick 1
Delay 1000
End If
Delay 50
//b1为战斗后的边框颜色
b1 = GetPixelColor(155, 555)
b2 = GetPixelColor(275, 555)
b3 = GetPixelColor(395, 555)
b4 = GetPixelColor(525, 555)
b5 = GetPixelColor(655, 555)
b6 = GetPixelColor(765, 555)
//如果战斗前a1颜色等于战斗后b1颜色,同时此坐标颜色为"44A0CA"即视为互相打不死,选择后面一个英雄
//本来应该用IF a1=b1 and a1="44A0CA" then,
//但是边框每次进入游戏颜色会略微不同, 所以要用到相似度来识别
If a1 = b1 Then
IfColor 155, 555, "44A0CA", 2 Then
MoveTo 280, 620
Delay 50
LeftClick 1
Delay 500
Goto 失败选择
End If
End If
If a2 = b2 Then
IfColor 275, 555, "44A0CA", 2 Then
MoveTo 400, 620
Delay 50
LeftClick 1
Delay 500
Goto 失败选择
End If
End If
If a3 = b3 Then
IfColor 395, 555, "44A0CA", 2 Then
MoveTo 530, 620
Delay 50
LeftClick 1
Delay 500
Goto 失败选择
End If
End If
If a4 = b4 Then
IfColor 525, 555, "44A0CA", 2 Then
MoveTo 660, 620
Delay 50
LeftClick 1
Delay 500
Goto 失败选择
End If
End If
If a5 = b5 Then
IfColor 655, 555, "44A0CA", 2 Then
MoveTo 780, 620
Delay 50
LeftClick 1
Delay 500
Goto 失败选择
End If
End If
If a6 = b6 Then
IfColor 765, 555, "44A0CA", 2 Then
MoveTo 900, 620
Delay 50
LeftClick 1
Delay 500
Goto 失败选择
End If
End If
Rem 失败选择
Rem 结束战斗
//深渊挑战失败:英雄全部阵亡后图像识别
dm_ret = dm.FindMultiColor(660, 170, 680, 360,"e8da8f","0|120|261c1c,0|170|5e656e",0.9,1,intX,intY)
If intX > 0 and intY > 0 Then
Call 挑战失败()//挑战失败后点击确认并回到遗迹深渊选择界面
End If
//深渊战斗失败
If 战斗失败 >= 25 Then
Call 退出推图()//战斗失败后点击确认并回到遗迹深渊选择界面
End If
End Sub
Sub 战斗胜利()