Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Сравнить цвет по 3 первым цифрам
genocide
сообщение 25.12.2017, 23:27
Сообщение #1


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Скрипт должен найти сам найти полоску хп таргета с использованием findcolor и получить координаты первого и последнего пикселя, а потом ещё 70%.
Начало найти было просто, а вот конец... цвет полосы не одномерный, но первые 3 цифры на протяжении всей полосы не меняются по этому я хочу что бы он их сравнивал пока полоска не закончится и цвет не станет совсем другой. Не хватает символа который бы обозначал любой симовол как * в tcp/ip
Что бы если написать например так:
if 158**** = 1581223
условие бы выполнилось
end_if

в общем как мне достать координату последнего красного пикселя? должен быть простой способ...
вот мой набросок.
Код

set #thp findcolor (517, 7  1063, 76  1 1 (1580167) %thp 2 )
set #xthp1 %thp [1 1]
set #xthp70 %thp [1 1]
set #newcolor 1580168
:ch
if #xthp70 %thp [1 2] 1580167 or #xthp70 %thp [1 2] #newcolor
    set #xthp70 #xthp70 + 1
    get color #newcolor #xthp70 %thp [1 2]
    hint (18( #xthp70 #newcolor ))
    goto ch
end_if




Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.12.2017, 23:40
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
set #thp findcolor (517, 7  1063, 76  1 1 (1580167) %thp 2)
if #thp > 0
    log %thp[1 1]   %thp[1 2]   // координаты первого пикселя
    set #size size(%thp)      // размер массива
    log %thp[#size 1]   %thp[#size 2]   // координаты последнего пикселя

    move %thp[1 1]   %thp[1 2]  // переместить курсор на первый пиксель
    wait 1500
    move %thp[#size 1]   %thp[#size 2]  // переместить курсор на последний пиксель
end_if
end_script

Цитата
Что бы если написать например так:
if 158**** = 1581223
условие бы выполнилось
end_if

Код
set $string 1581223    // что сравнивать

set $regexp "^158\d{4}$"   // с чем сравнивать,  \d{4} - означает любые 4 цифры
set #n regexp (#position $hitstring $string $regexp)
if  #n > 0
    log +++
else
    log ---
end_if
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 26.12.2017, 0:31
Сообщение #3


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Код
 set #size size(%thp)      // размер массива
log %thp[#size 1]   %thp[#size 2]   // координаты последнего пикселя

Во, гениально и просто - то что надо, буду использовать это, спасибо!
RegExp интересная фича, смотрел на нее долго, но так и не понял что к чему.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 20:33
Designed by Nickostyle