Opt("WinTitleMatchMode", -2)
Global $Up=false;$Limit=50
$f=FileOpen("C:\\Poker\\timeend.txt", 0); файл с временем конца скрипта
If ($f == -1) Then
Exit
EndIf
$mins = FileReadLine($f)
$hours=FileReadLine($f)
$days=FileReadLine($f)
FileClose($f)
$timeend=$mins+$hours*60
Do ; работаем пока не выйдет время
$windows=WinList("[REGEXPTITLE:^\w+\s*\w*\s*\w*,]")
If $windows[0][0]<9 Then
$a=WinActivate("RedKings"); активируем главное окно-лобби
if Not $a Then Exit
WinMove("RedKings","",1290,950);далее идёт набор кликов на пунктах-настройках
MouseClick("left",1717,996,1);
MouseClick("left",1523,1060,1);
If Not (PixelGetColor(1794,1058)==4390912) Then MouseClick("left",1794,1058,1)
If Not (PixelGetColor(1794,1077)==4390912) Then MouseClick("left",1794,1077,1)
MouseClick("left",1523,1080,1);
MouseClick("left",1678,1060,1);
MouseClick("left",1678,1111,1);
Sleep(4000)
MouseClick("left",1310,1120,1);
EndIf
Do
$now=@Min+@Hour*60
$windows=WinList("[REGEXPTITLE:^\w+\s*\w*\s*\w*,]")
If $windows[0][0]<9 Then; если окон-детей меньше 9 - набираем
WinActivate("RedKings")
WinActive("RedKings")
WinMove("RedKings","",1290,950);
If Not (PixelGetColor(1717,996)== 16711422) Then
MouseClick("left",1717,996,1);
Sleep(4000)
EndIf
EndIf
Dim $a[10][2]; массив с координатами нужных нам позиций
$a[0][0]=1845;
$a[0][1]=1142;
$a[1][0]=1921
$a[1][1]=1142
$a[2][0]=2000;
$a[2][1]=1142;
$a[3][0]=1837
$a[3][1]=1179;
$a[4][0]=2008;
$a[4][1]=1179;
$a[5][0]=1837;
$a[5][1]=1216;
$a[6][0]=2009;
$a[6][1]=1216;
$a[7][0]=1845;
$a[7][1]=1253;
$a[8][0]=1921
$a[8][1]=1253;
$a[9][0]=2000
$a[9][1]=1253
Dim $chairs=0,$i
For $i=0 to 9
If PixelGetColor($a[$i][0], $a[$i][1])==10223616 Then $chairs=$chairs+1
Next
$coord=PixelSearch(1790,1121,2060,1290,10223616)
If $chairs<=2 And Not @error Then ; если позиций определённого цвета меньше 2
MouseClick("left",$coord[0],$coord[1],1)
Sleep(3000)
$font1=PixelGetColor(1808,1098)
$font2=PixelGetColor(1828,1098)
$font3=PixelGetColor(1835,1098)
If Not $Up Then ;далее- установка флага, чтобы определить - повторяется ли окно в правой части главного меню, если да,то меняем направление хода
Send("{DOWN}")
Sleep(400)
If PixelGetColor(1808,1098)==$font1 And PixelGetColor(1828,1098)==$font2 And PixelGetColor(1835,1098)==$font3 Then $Up=true
Else
Send("{UP}")
Sleep(400)
If PixelGetColor(1808,1098)==$font1 And PixelGetColor(1828,1098)==$font2 And PixelGetColor(1835,1098)==$font3 Then $Up=false
EndIf
Else
$font1=PixelGetColor(1808,1098)
$font2=PixelGetColor(1828,1098)
$font3=PixelGetColor(1835,1098)
If Not $Up Then
Send("{DOWN}")
Sleep(200)
If PixelGetColor(1808,1098)==$font1 And PixelGetColor(1828,1098)==$font2 And PixelGetColor(1835,1098)==$font3 Then
$Up=true
EndIf
Else
Send("{UP}")
Sleep(200)
If PixelGetColor(1808,1098)==$font1 And PixelGetColor(1828,1098)==$font2 And PixelGetColor(1835,1098)==$font3 Then $Up=false
EndIf
EndIf
Dim $Must_pos[9][3]; фиксированные позиции для окон
$Must_pos[0][0]=0
$Must_pos[0][1]=0
$Must_pos[1][0]=502
$Must_pos[1][1]=0
$Must_pos[2][0]=1004
$Must_pos[2][1]=0
$Must_pos[3][0]=1506
$Must_pos[3][1]=0
$Must_pos[4][0]=0
$Must_pos[4][1]=386
$Must_pos[5][0]=502
$Must_pos[5][1]=386
$Must_pos[6][0]=1004
$Must_pos[6][1]=386
$Must_pos[7][0]=1506
$Must_pos[7][1]=386
$Must_pos[8][0]=0
$Must_pos[8][1]=772
For $w=0 to 8
$Must_pos[$w][2]=0
Next
If $windows[0][0] Then; определение свободны/занятых позиций
For $w=1 to $windows[0][0]
If Not @error Then
$element=$windows[$w][1]
$element_pos=WinGetPos($element,"")
EndIf
For $j=0 To 8
If Not @error Then
If Abs($Must_pos[$j][0]-$element_pos[0]+8)<20 And Abs($Must_pos[$j][1]-$element_pos[1])<20 Then $Must_pos[$j][2]=1
EndIf
Next
Next
EndIf
Dim $WPos[4]
$windows=WinList("[REGEXPTITLE:^\w+\s*\w*\s*\w*,]")
If $windows[0][0] Then
For $j = 1 To $windows[0][0]
$WPos = WinGetPos($windows[$j][1])
$has=False;
$Result=StringRegExp($windows[$j][0],"(\d+\d+)",1 )
If Not @error Then
For $i = 0 To 8
If Abs($WPos[0] - $Must_pos[$i][0]) < 50 And Abs($WPos[1] - $Must_pos[$i][1]) < 20 Then
$has = True
EndIf
Next
EndIf
If Not $has Then; если это окно не на своём месте, то....
For $i=0 to 8
If $Must_pos[$i][2]==0 Then
WinMove($windows[$j][0],"",$Must_pos[$i][0],$Must_pos[$i][1],502,366)
Sleep(6000)
MouseClick("left",$Must_pos[$i][0],$Must_pos[$i][1]+100,1)
MouseClick("left",$Must_pos[$i][0]+325,$Must_pos[$i][1]+167,2)
Send($Result[0]/2.5)
Sleep(1000)
$test=PixelGetColor($Must_pos[$i][0]+136,$Must_pos[$i][1]+223)
If NOT ($test==723723) Then
MouseClick("left",$Must_pos[$i][0]+480,$Must_pos[$i][1]+20,1)
ExitLoop
Else
MouseMove($Must_pos[$i][0]+167,$Must_pos[$i][1]+261)
WinActivate($windows[$j][1])
MouseClick("left",$Must_pos[$i][0]+167,$Must_pos[$i][1]+261,1)
Sleep(5000)
MouseMove($Must_pos[$i][0]+449,$Must_pos[$i][1]+306)
WinActivate($windows[$j][1])
MouseClick("left",$Must_pos[$i][0]+449,$Must_pos[$i][1]+306,1)
MouseClick("left",$Must_pos[$i][0]+449,$Must_pos[$i][1]+327,1)
Sleep(1000)
If PixelGetColor($Must_pos[$i][0]+186,$Must_pos[$i][1]+353)==16772193 Then MouseClick("left",$Must_pos[$i][0]+480,$Must_pos[$i][1]+20,1)
MouseClick("left",110,1520,1)
ExitLoop
EndIf
EndIf
Next
EndIf
Next
EndIf
Until $windows[0][0]>8 Or $now>$timeend
For $i=0 to 25 ;бездействуем
Sleep(3000)
Next
Until $now>$timeend