<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Не работает PixelSearch, не понимаю почему.]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=17612</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=17612&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Не работает PixelSearch, не понимаю почему.».]]></description>
		<lastBuildDate>Wed, 22 Feb 2023 14:41:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156882#p156882</link>
			<description><![CDATA[<p>Я особо не вчитывался, бегло просмотрел Ваш код, и меня смутила строка<br /></p><div class="codebox"><pre><code>PixelSearch, CurrentHorseIconPosX, CurrentHorseIconPosY, GameWindowPosX, GameWindowPosY, (GameWindowPosX + GameWindowWidth), (GameWindowPosY + GameWindowHeight), %TargetColor%</code></pre></div><p>Правильный синтаксис:<br /></p><div class="quotebox"><blockquote><p>PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Fast|RGB]</p></blockquote></div><p><em>Добавлено: Вообще-то код верный - в обычных программах работает. Значит игра &quot;не дружит&quot; с&nbsp; AutoHotKey.</em></p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 22 Feb 2023 14:41:45 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156882#p156882</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156872#p156872</link>
			<description><![CDATA[<p>И вообще, неплохо-бы заменить поиск по экрану на поиск в не активном невидимом (но и не свëрнутом) окне. Я тут нагуглил про нужную функцию <a href="https://forum.script-coding.com/viewtopic.php?id=12959">https://forum.script-coding.com/viewtopic.php?id=12959</a> тут. Вот только нормального описания к этой функции найти не могу. Может знаете где искать?<br />Update: Нашёл: https://forum.script-coding.com/viewtopic.php?id=8574<br />https://www.autohotkey.com/boards/viewtopic.php?t=6517</p>]]></description>
			<author><![CDATA[null@example.com (NektoN95)]]></author>
			<pubDate>Tue, 21 Feb 2023 19:14:35 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156872#p156872</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156871#p156871</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Нафига? Реальный и искомый цвета точно совпадают. Проблемма в том что функция не возвращает ни 1 ни 0 в ErrorLevel, и то что должно происходить после первого и третьего PixelSearch не происходит.<br /><strong>ypppu</strong><br />В первом по счету PixelSearch первые две переменные выходные. Ещё две это верхняя левая граница поиска, ещё две, нижняя правая, где обе координаты заданы выражением. Данная строка кода используется в первой итерации. <br />Третий по счету PixelSearch ищет нужный цвет в квадрате от - 70 пикселей влево и вверх до +70 вправо и вниз от места, где нужный цвет был найден в первом PixelSearch. <br />И второй по счету PixelSearch это аналог первого, только он должен использоваться на второй и следующих итерациях для поиска только в квадрате 140 на 140 вокруг того места где цвет был найден в третьем PixelSearch на прошлой итерации. </p><p>TLDR: Там вроде негде ошибиться!</p>]]></description>
			<author><![CDATA[null@example.com (NektoN95)]]></author>
			<pubDate>Tue, 21 Feb 2023 19:09:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156871#p156871</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156870#p156870</link>
			<description><![CDATA[<div class="quotebox"><cite>NektoN95 пишет:</cite><blockquote><p>Не работает даже на paint.</p></blockquote></div><p>Ищите у себя ошибку. <em>PixelSearch</em> должен работать хотя бы в Paint&#039;е.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Tue, 21 Feb 2023 18:15:42 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156870#p156870</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156869#p156869</link>
			<description><![CDATA[<p>Используйте параметр Variation.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 21 Feb 2023 17:37:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156869#p156869</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156868#p156868</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Я его сейчас на Paint&#039;е - виндоузовской рисовалке (коменты в коде почитайте) тестирую, от работы в игре разница в 2х переменных. Не работает даже на paint. Причем я предпологал, что у скрипта проблемы в игре и проверил работает ли PixelGetColor - работает, в Paint, разумеется, - тоже. А PixelSearch - почему-то нет.</p>]]></description>
			<author><![CDATA[null@example.com (NektoN95)]]></author>
			<pubDate>Tue, 21 Feb 2023 17:28:36 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156868#p156868</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156867#p156867</link>
			<description><![CDATA[<p>Я по играм не спец, вроде PixelSearch в некоторых случаях может не работать. Тут на форуме есть посты Malcev&#039;а, как можно получать информацию с экрана другими способами.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 21 Feb 2023 17:03:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156867#p156867</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156865#p156865</link>
			<description><![CDATA[<p>Ну, координаты поиска у меня считаются от монитора, а не от окна, так-что действительно CoordMode стоит поменять. Добавил сие в начало<br /></p><div class="codebox"><pre><code>CoordMode, Pixel, Screen</code></pre></div><p>Но почему-то скрипт один фиг не работает.</p>]]></description>
			<author><![CDATA[null@example.com (NektoN95)]]></author>
			<pubDate>Tue, 21 Feb 2023 16:05:21 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156865#p156865</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156864#p156864</link>
			<description><![CDATA[<p>CoordMode?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 21 Feb 2023 15:53:48 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156864#p156864</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Не работает PixelSearch, не понимаю почему.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=156863#p156863</link>
			<description><![CDATA[<div class="codebox"><pre><code>
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
Pause

F12::
Pause

;Проблема: В онлайн игре прокачивается четверка лошадей. Они движутся по заданному маршруту. В режиме карты мира видно не лошадей и повозку, а их синюю иконку. При длительной работе игра может глюконуть и движение по маршруту прекратится. Об этом нужно уведомить пользователя, что-бы он исправил ситуацию. Определить факт глюка (микроразрыва соединения с сервером) можно проверяя, изменилось положение иконки или нет.
;Задача. Определить перемещается ли иконка с заданным цветом по заданному окну (игры, но в данном случае по окну Win 7 Paint&#039;a, ибо скрипт тестируется на другом компе.). Если да, то всё норм, иначе - уведомить пользователя об этом

Loop
{
	;Ищем, где на экране окно
	WinGetPos , GameWindowPosX, GameWindowPosY, GameWindowWidth, GameWindowHeight, Безымянный - Paint
	if (GameWindowPosX = &quot;&quot;) {
	MsgBox, Не могу найти окно игры, наверное она закрыта.
	Break
	}

	;Этот кусок кода нужен что-бы определить цвет искомой иконки, если мы его не знаем. Если бы скрипт не глючил и не тестировался на Paint&#039;е вместо Black Desert, то закоментированый кусок был-бы не нужен. Пока что целевой цвет изменен на правый верхний цвет (Фиолетовый) в палитре Paint&#039;а
	;MouseGetPos, MouseX, MouseY
	;PixelGetColor, color, %MouseX%, %MouseY%
	;MsgBox, The color at the current cursor position is %color%.
	TargetColor = 0xA449A3

	;Получаем величину разрешения экрана и проверяем, не уходит ли окно за его границы
	SysGet, ScreenWidth, 78
	SysGet, ScreenHeight, 79
	if (GameWindowPosX + GameWindowWidth &gt; ScreenWidth) OR (GameWindowPosY + GameWindowHeight &gt; ScreenHeight) {
	MsgBox, Окно не полностью видно, возможно ложное срабатывание.
	Break
	}
	
	;Ищем, где на экране искомая иконка, если скрипт только запустился, то по всему окну, иначе, в окрестностях того места где оно было в последний раз
	if (CurrentHorseIconPosX = &quot;&quot;)
		PixelSearch, CurrentHorseIconPosX, CurrentHorseIconPosY, GameWindowPosX, GameWindowPosY, (GameWindowPosX + GameWindowWidth), (GameWindowPosY + GameWindowHeight), %TargetColor%
	else
		PixelSearch, CurrentHorseIconPosX, CurrentHorseIconPosY, CurrentHorseIconPosX - 70, CurrentHorseIconPosY - 70, CurrentHorseIconPosX + 70, CurrentHorseIconPosY + 70, %TargetColor%
	if (ErrorLevel = 1) {
		MsgBox, Не видно искомой иконки. Откройте карту и убедитесь, что иконку видно на всей длинне маршрута.
		Break
	}

	;Ждем пока иконка переместится, предпологается, что она должна двигаться. В случае тестирования на Paint&#039;е нужно просто переместить окно на 140 пикселей, или не перемещать. Если она не найдена в прежних координатах, то всё норм. Если нет, то в игре бы это значило что на короткое время оборвалось интернет-соединение с сервером игры и это привело к тому что повозка встала. Об этом нужно уведомить пользователя. В процессе тестирования MsgBox нужно раскоментировать.
	Sleep 3000
	PixelSearch, CurrentHorseIconPosX, CurrentHorseIconPosY, CurrentHorseIconPosX - 70, CurrentHorseIconPosY - 70, CurrentHorseIconPosX + 70, CurrentHorseIconPosY + 70, %TargetColor%
	if (ErrorLevel = 1) {
		;MsgBox, Отлично, повозка передвинулась.
		continue
	}
	else if (ErrorLevel = 0) {
		MsgBox, Увы, повозка встала.
		Break
	}
}


</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (NektoN95)]]></author>
			<pubDate>Tue, 21 Feb 2023 15:43:32 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=156863#p156863</guid>
		</item>
	</channel>
</rss>
