Доброго времени суток. Описание ситуации: написан бот, играющий в одну игрушку до бесконечности.
Суть вопроса: значения функций PixelGetColor и PixelChecksum изменяются по неясным(в основном, они также менялись при обновлении эмулятора и самой игры) для меня причинам, что порождает необходимость заново измерять все значения. Какие еще есть способы получения информации о текущем экране эмулятора? После запуска эмулятора на другом ПК, при тех же самых настройках, все значения опять изменились.
Используется:
Отсчет координат пикселей и координат мыши от левого верхнего окна эмулятора:
Горячие клавиши остановки и вызова некоторых функций:
Конструкции считывания картинки из эмулятора по типу:
Суть вопроса: значения функций PixelGetColor и PixelChecksum изменяются по неясным(в основном, они также менялись при обновлении эмулятора и самой игры) для меня причинам, что порождает необходимость заново измерять все значения. Какие еще есть способы получения информации о текущем экране эмулятора? После запуска эмулятора на другом ПК, при тех же самых настройках, все значения опять изменились.
Используется:
Отсчет координат пикселей и координат мыши от левого верхнего окна эмулятора:
Код:
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
Горячие клавиши остановки и вызова некоторых функций:
Код:
HotKeySet("{Pause}", "Kill")
HotKeySet("{F1}", "Zam")
Конструкции считывания картинки из эмулятора по типу:
Код:
$u2=PixelGetColor(255, 802)
$u3=PixelGetColor(207, 420)
if $u2=2369580 And $u3=2369580 Then
MouseClick("left", 106, 77, 1, 5)
EndIf
Код:
$k1=PixelChecksum(613, 309, 645, 341)
if $k1=2157676909 Then
MouseClick("left", 700, 484, 1, 5)
sleep(500)
MouseClick("left", 912, 159, 1, 5)
sleep(5000)
EndIf
Код:
Func Zam()
$aPos = MouseGetPos()
$mPos=PixelChecksum(779, 148, 1052, 179)
$Hcs=PixelChecksum(511,117, 876, 149)
$nPos=PixelChecksum(516, 317, 911, 360)
$xPos=PixelChecksum(210, 144, 269, 199)
$epos=PixelChecksum(40,734,243,775)
$kpos=PixelChecksum(312, 229, 325, 379)
$j1=PixelChecksum(592,154, 833, 187)
$j2=PixelChecksum(627, 276, 780, 313)
$j3=PixelChecksum(530, 186, 889, 222)
$k1=PixelChecksum(613, 309, 645, 341)
$k2=PixelChecksum(602, 81, 654, 90)
$d1=PixelChecksum(808, 753, 1024, 785)
$d2=PixelChecksum(519,71,890,105)
$d3=PixelChecksum(517,210,891,242)
$d4=PixelChecksum(176,154,235,211)
$j4= PixelChecksum(74, 57, 146, 113)
$j5= PixelChecksum(911, 281, 927,309)
$j6=PixelChecksum(91,241,126,261)
$s1=PixelChecksum(260,62 ,311,84)
MsgBox(4096, "Координаты курсора мыши:", 'X= ' & $aPos[0] & ", Y= " & $aPos[1])
MsgBox(4096, "чексуммы", '$m=' & $mPos & @LF & _
'$Hcs=' & $Hcs & @LF & _
'$nPos=' & $nPos & @LF & _
'$xpos=' & $xPos & @LF & _
'$kpos=' & $kpos & @LF & _
'$epos=' & $epos & @LF & _
'$j1=' & $j1 & @LF & _
'$j2=' & $j2 & @LF & _
'$j3=' & $j3 & @LF & _
'$k1=' & $k1 & @LF & _
'$k2=' & $k2 & @LF & _
'$j4=' & $j4 & @LF & _
'$c7=' & $c7 & @LF & _
'$j5=' & $j5 & @LF & _
'$d1=' & $d1 & @LF & _
'$d2=' & $d2 & @LF & _
'$d3=' & $d3 & @LF & _
'$d4=' & $d4 & @LF & _
'$j6=' & $j6 & @LF & _
'$s1=' & $s1)
WinActivate($WinName)
EndFunc