<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Анализ шкалы (PixelGetColor)]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8568&amp;type=atom" />
	<updated>2013-09-05T19:03:37Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=8568</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=75237#p75237" />
			<content type="html"><![CDATA[<p>Когда-то столкнулся с такой же проблемой.<br />Городить огород не хотелось.<br />Рассудил, что неравномерность окраса шкалы должна быть цикличной - на манер текстуры.<br />Недолгое изучение шкалы не только подтвердило догадку, но и показало, что имеются преобладающие оттенки, пикселы с цветом которых повторяются даже внутри цикла.<br />Все это позволило использовать PixelSearch с поиском преобладающего оттенка, начиная с незаполненного края шкалы. Погрешность вышла пренебрежимо малой.<br />С тех пор многократно приходилось решать ту же задачу и указанный метод всегда работал.</p>]]></content>
			<author>
				<name><![CDATA[Korobkoff]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30703</uri>
			</author>
			<updated>2013-09-05T19:03:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=75237#p75237</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74856#p74856" />
			<content type="html"><![CDATA[<p>Да, нужно попробывать.... Возможно даже быстрее будет. Спасибо!</p>]]></content>
			<author>
				<name><![CDATA[Strongest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30412</uri>
			</author>
			<updated>2013-08-21T23:47:53Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74856#p74856</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74828#p74828" />
			<content type="html"><![CDATA[<p>Кстати может лучше использовать PixelSearch? Там параметр Variation есть, может подойти.<br /></p><div class="codebox"><pre><code>PixelSearch, OVX, OVY, %TmpX%, %Y1%, %TmpX%, %Y1%, 0xF0F0F0, 20, Fast RGB</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-21T14:22:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74828#p74828</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74601#p74601" />
			<content type="html"><![CDATA[<p>Огромное спасибо и на этом.</p>]]></content>
			<author>
				<name><![CDATA[Strongest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30412</uri>
			</author>
			<updated>2013-08-15T20:07:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74601#p74601</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74598#p74598" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>может есть у кого профиль синтаксиса AHK для notepad++</p></blockquote></div><p>В аттаче что то такое.<br /></p><div class="quotebox"><blockquote><p>как сделать что бы можно было сворачивать в коде функции, как на С {}.</p></blockquote></div><p>А это уже сам, там вроде как, всё слишком просто, если захотеть.<br />Вобще тут где то тема была, извини, но не найду и не разложу по полкам енто.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-15T19:56:42Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74598#p74598</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74597#p74597" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Ничего себе</p></blockquote></div><p>Ну пишу уже пол года наверно, программа работает но мало функциональности, вот и дописываю, выравниваю потихоньку.<br />Еще есть такой вопросик, может есть у кого профиль синтаксиса AHK для notepad++, ну или хотя бы подскажите, как сделать что бы можно было сворачивать в коде функции, как на С {}.</p>]]></content>
			<author>
				<name><![CDATA[Strongest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30412</uri>
			</author>
			<updated>2013-08-15T19:51:38Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74597#p74597</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74579#p74579" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>более 20 000 строк</p></blockquote></div><p>Ничего себе <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-15T17:29:38Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74579#p74579</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74576#p74576" />
			<content type="html"><![CDATA[<p>Вся беда в том что, теперь редактировать весь скрипт, причем изменен алгоритм кардинально, а значит и вес код придется кардинально менять а это более 20 000 строк )</p>]]></content>
			<author>
				<name><![CDATA[Strongest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30412</uri>
			</author>
			<updated>2013-08-15T16:31:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74576#p74576</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74575#p74575" />
			<content type="html"><![CDATA[<p>Ну вот видишь, теперь и ты можешь выложить свой ролик на ютуб <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-15T16:23:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74575#p74575</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74574#p74574" />
			<content type="html"><![CDATA[<p>После нескольких часов тестов стало понятно, что все гениальное просто!!!<br />Работает как часы, быстро надежно!</p><div class="codebox"><pre><code>

SetBatchLines -1 
FontColor := &quot;Lime&quot;
CustomColor = EEAA00
Gui, +AlwaysOnTop +LastFound
Gui, Color, %CustomColor%
Gui, Font, s18
Gui, Add, Text, vMyText c%FontColor%, XXXXXX
WinSet, TransColor, %CustomColor% 150
Gui, -Caption 

Gui, Show
GoSub ScanScale
Return

ScanScale:
    Loop
    {
        X1 := 29
        X2 := 179
        Y1 := 77
        TmpX := X2
        Loop
        {
            ImageSearch, OVX, OVY, %TmpX%, %Y1%, %TmpX%, %Y1%, *20 PHC.PNG
            if ( !ErrorLevel || TmpX = X1 )
            {
                Break
            }
            TmpX -= 2
        }
        LongScale := X2 - X1
        TmpX := TmpX - X1
        ScaleStats := TmpX / LongScale * 100
        GuiControl,, MyText, %ScaleStats%
    }
    Return
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Strongest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30412</uri>
			</author>
			<updated>2013-08-15T15:49:03Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74574#p74574</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74571#p74571" />
			<content type="html"><![CDATA[<p>Пожалуйста. <br />Ещё для увеличения скорости используй: </p><div class="codebox"><pre><code>SetBatchLines -1 </code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-15T15:27:16Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74571#p74571</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74569#p74569" />
			<content type="html"><![CDATA[<p>Выражаю огромною благодарность за помощь serzh82saratov!<br />Расскажу на словах как у меня получилось, а ниже выложу код.<br />Был вырезан 1 пиксель шкалы (красный) который означал наполненность шкалы. По координатам XY производится сканирование от X1 до X2 на предмет нахождения вырезанного мною цвета, в диапазоне 20 оттенков, с шагом в 10 пикселей (для ускорения работы). Когда программа первый раз натыкается на не «красный» пиксель (возможно это только в 2 случаях либо наткнулся на цифры по верх шкалы, либо шкала пуста). Запускается новый цикл на предмет&nbsp; нахождение того же «красного» пикселя, но в новом цикле ведется учет ErrorLevel, сколько раз подряд пиксель не «красный». Опытным путем было выяснено, что максимальная ширина 1 цифры не может быть длинней&nbsp; чем 9 пикселей. И если 9 пикселей подряд не «красные» программой это интерпретируется как все таки наткнулись не на цифру, а шкала пустая!<br />Код:<br /></p><div class="codebox"><pre><code>
X1 := 29
X2 := 179
Y1 := 77
TmpX := X1 - 10
ErrorColor := 0
Loop
{
    TmpX += 10
    ImageSearch, OVX, OVY, %TmpX%, %Y1%, %TmpX%, %Y1%, *20 PHC.PNG
    if ( ErrorLevel )
    {    
        Loop 9
        {
            TmpX++
            ImageSearch, OVX, OVY, %TmpX%, %Y1%, %TmpX%, %Y1%, *20 PHC.PNG
            if ( ErrorLevel )
            {
                ErrorColor++
            }
            else
            {
                ErrorColor := 0
                Break
            }
        }
        if ( ErrorColor &gt;= 9 )
        {
            TmpX -= 10
            Break
        }
    }
}
LongScale := X2 - X1
TmpX := TmpX - X1
ScaleStats := TmpX / LongScale * 100
MsgBox, %ScaleStats%
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Strongest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30412</uri>
			</author>
			<updated>2013-08-15T12:47:16Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74569#p74569</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74554#p74554" />
			<content type="html"><![CDATA[<p>Блин, это же меняет дело.... Сделай отпишу ))<br />Спс огромное!</p>]]></content>
			<author>
				<name><![CDATA[Strongest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30412</uri>
			</author>
			<updated>2013-08-14T22:34:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74554#p74554</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74527#p74527" />
			<content type="html"><![CDATA[<p>Можно попробовать способом от обратного. Вырезать квадратик 1х1 или 2х2 в пнг. Применить ImageSearch, и баловатся с параметрами:<br /></p><div class="quotebox"><blockquote><p><strong>*n</strong> (variation): Specify for n a number between 0 and 255 (inclusive) to indicate the allowed number of shades of variation in either direction for the intensity of the red, green, and blue components of each pixel&#039;s color. For example, *2 would allow two shades of variation. This parameter is helpful if the coloring of the image varies slightly or if ImageFile uses a format such as GIF or JPG that does not accurately represent an image on the screen. If you specify 255 shades of variation, all colors will match. The default is 0 shades.</p><p><strong>*TransN:</strong> This option makes it easier to find a match by specifying one color within the image that will match any color on the screen. It is most commonly used to find PNG, GIF, and TIF files that have some transparent areas (however, icons do not need this option because their transparency is automatically supported). For GIF files, *TransWhite might be most likely to work. For PNG and TIF files, *TransBlack might be best. Otherwise, specify for N some other color name or RGB value (see the color chart for guidance, or use PixelGetColor in its RGB mode). Examples: *TransBlack, *TransFFFFAA, *Trans0xFFFFAA.</p></blockquote></div><p>Думаю скорость должна быть в порядке, т.к. нужно только первое совпадение.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-14T16:19:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74527#p74527</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Анализ шкалы (PixelGetColor)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74523#p74523" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Ну так оно может с памятью процесса работает.</p></blockquote></div><p> Я с начало тоже это подумал, что берест из памяти, но состояния персонажа было 100%, просто шкала закрывалась другим окном игры на половину, и программа реагировала, как будто шкала была изменена, а это говорит о том, что всё-таки по пиксельное чтение с экрана.<br /></p><div class="quotebox"><blockquote><p>Между цифрами же есть красный цвет.</p></blockquote></div><p>Он как бы красный, но после каждой цифры по разному красный, из за разных сочетаний цифр невозможно угадать какой именно цвет будет после цифры (оттенков красного очень много), что делать невозможным сравнения цветов. Был найден цвет, который один и тот же до цифр и после цифр по одним и тем же координатам&nbsp; XY.<br /></p><div class="quotebox"><blockquote><p>Опять же там где цифры используй способ приведённый в моей ссылке.</p></blockquote></div><p>Мне кажется что этот вариант нельзя использовать для анализа в данном случаи, так как этот процесс будет занимать очень много времени (нахождение двух шестизначных цифр), а реагировать на изменения нужно практически мгновенна. Даже если анализировать шкалу просто по 1 пикселю, получается долго, для ускорения работы я применял счетчик не j++, а j+=10, пусть не совсем точно, за то мгновенно.</p><p>Долго думал над решением проблемы, подумал если пойти от обратно, то есть читать шкалу не на сколько заполнена, а на сколько она пуста, под красным цветом шкалы скрывается серый цвет, но он где то на 30% прозрачен то есть цвет будет всегда разным, но всегда остается темным, то есть контрастность между полной и пустой шкалой очень сильно выражена. Идея в том что бы сравнивать как то так, что бы выглядела: “Если цвет не ярче определенного цвета” Вот только как, фантазии не хватает.</p>]]></content>
			<author>
				<name><![CDATA[Strongest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30412</uri>
			</author>
			<updated>2013-08-14T15:51:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74523#p74523</id>
		</entry>
</feed>
