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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Debug, Проблема выполнение команды if
Shon435
сообщение 16.10.2016, 14:46
Сообщение #1


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Добрый день.

// Пример 3
if 345, 567 456456
log цвет найден
end_if



Когда пишу всё работает и правильно определяет цвет. Прогоняю код раз 20 и все работает, оставляю на пару часов и вдруг перестает распознавать цвет.

Если заменить команду на while то не каких сбоев нет.

Пытался менять delay в разных вариантах, не помогло.

Если есть у кого то идеи буду рад.

Заранее спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 16.10.2016, 14:55
Сообщение #2


********

Master
Сообщений: 1.397
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21338
Пользователь №: 16.156



Цитата(Shon435 @ 16.10.2016, 14:46) *

Если заменить команду на while то не каких сбоев нет.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 16.10.2016, 14:59
Сообщение #3


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Да , но надо if , без него сложнее . Может стоить чуть чуть расширить диапазон цвета ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.10.2016, 15:23
Сообщение #4


**********

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



А как вы определили что цвет не распознаётся, может он просто изменился?
Можно посмотреть меняется ли цвет.
Код
get color #color 345, 567 
log #color

Так же в if можно указать диапазон цвета.
Код
if x y color color2

Будет проверяться соответствие диапазону color-color2.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 16.10.2016, 22:21
Сообщение #5


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Цитата(cirus @ 16.10.2016, 15:23) *

А как вы определили что цвет не распознаётся, может он просто изменился?
Можно посмотреть меняется ли цвет.
Код
get color #color 345, 567 
log #color




Так же в if можно указать диапазон цвета.
Код
if x y color color2

Будет проверяться соответствие диапазону color-color2.


Да вы правы можно , но как мне это помогает? Цвет меняться не должен. То есть я выбираю цвет тот что вижу и другова нет .


Если можно про диапазон цвета поподробней.
Возможно это и есть решение.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 16.10.2016, 22:38
Сообщение #6


********

Master
Сообщений: 1.397
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21338
Пользователь №: 16.156



Цвет может изменится незаметно для глаз ,буквально на пару оттенков и команда уже пропускает этот цвет. Для этого и есть проверка по диапазону.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.10.2016, 22:44
Сообщение #7


**********

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



Цитата
но как мне это помогает?

Можно узнать на какой цвет меняется и меняется ли вообще.
Цитата
Если можно про диапазон цвета поподробней.

Указать цвет и % отклонения. В логе будет диапазон, его указать в if.
код
Код
set #color 14120960        // цвет
set %deviat [1] 1          // процент отклонения

log mode compact
set #a colortorgb(#color %rgb)
set #dev 255 * %deviat [1] / 100
set #bmin %rgb [1 3] - #dev
set #bmax %rgb [1 3] + #dev
if  #bmax > 255
    set #bmax 255
end_if
if  #bmin < 0
    set #bmin 0
end_if
set #gmin %rgb [1 2] - #dev
set #gmax %rgb [1 2] + #dev
if  #gmax > 255
    set #gmax 255
end_if
if  #gmin < 0
    set  #gmin 0
end_if
set #rmin %rgb [1 1] - #dev
set #rmax %rgb [1 1] + #dev
if  #rmax > 255
    set #rmax 255
end_if
if  #rmin < 0
    set #rmin 0
end_if
set %co [1] #bmin * 256 * 256 + #gmin * 256 + #rmin
set %co [2] #bmax * 256 * 256 + #gmax * 256 + #rmax
log %co [1] %co [2]
end_script

Либо использовать Findcolor проверяя цвет в одной точке.
Код
set #a findcolor (345, 567 345, 567 456456 %a 2 1 1)       // последняя цифра отвечает за % отклонения в цвете
if #a > 0
   log +++
end_if
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 16.10.2016, 23:54
Сообщение #8


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Цитата(cirus @ 16.10.2016, 22:44) *

Можно узнать на какой цвет меняется и меняется ли вообще.

Указать цвет и % отклонения. В логе будет диапазон, его указать в if.
код
Код
set #color 14120960        // цвет
set %deviat [1] 1          // процент отклонения

log mode compact
set #a colortorgb(#color %rgb)
set #dev 255 * %deviat [1] / 100
set #bmin %rgb [1 3] - #dev
set #bmax %rgb [1 3] + #dev
if  #bmax > 255
    set #bmax 255
end_if
if  #bmin < 0
    set #bmin 0
end_if
set #gmin %rgb [1 2] - #dev
set #gmax %rgb [1 2] + #dev
if  #gmax > 255
    set #gmax 255
end_if
if  #gmin < 0
    set  #gmin 0
end_if
set #rmin %rgb [1 1] - #dev
set #rmax %rgb [1 1] + #dev
if  #rmax > 255
    set #rmax 255
end_if
if  #rmin < 0
    set #rmin 0
end_if
set %co [1] #bmin * 256 * 256 + #gmin * 256 + #rmin
set %co [2] #bmax * 256 * 256 + #gmax * 256 + #rmax
log %co [1] %co [2]
end_script

Либо использовать Findcolor проверяя цвет в одной точке.
Код
set #a findcolor (345, 567 345, 567 456456 %a 2 1 1)       // последняя цифра отвечает за % отклонения в цвете
if #a > 0
   log +++
end_if



Спасибо , пойду пробовать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 17.10.2016, 0:42
Сообщение #9


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Цитата(cirus @ 16.10.2016, 22:44) *

Можно узнать на какой цвет меняется и меняется ли вообще.

Указать цвет и % отклонения. В логе будет диапазон, его указать в if.
код
Код
set #color 14120960        // цвет
set %deviat [1] 1          // процент отклонения

log mode compact
set #a colortorgb(#color %rgb)
set #dev 255 * %deviat [1] / 100
set #bmin %rgb [1 3] - #dev
set #bmax %rgb [1 3] + #dev
if  #bmax > 255
    set #bmax 255
end_if
if  #bmin < 0
    set #bmin 0
end_if
set #gmin %rgb [1 2] - #dev
set #gmax %rgb [1 2] + #dev
if  #gmax > 255
    set #gmax 255
end_if
if  #gmin < 0
    set  #gmin 0
end_if
set #rmin %rgb [1 1] - #dev
set #rmax %rgb [1 1] + #dev
if  #rmax > 255
    set #rmax 255
end_if
if  #rmin < 0
    set #rmin 0
end_if
set %co [1] #bmin * 256 * 256 + #gmin * 256 + #rmin
set %co [2] #bmax * 256 * 256 + #gmax * 256 + #rmax
log %co [1] %co [2]
end_script

Либо использовать Findcolor проверяя цвет в одной точке.
Код
set #a findcolor (345, 567 345, 567 456456 %a 2 1 1)       // последняя цифра отвечает за % отклонения в цвете
if #a > 0
   log +++
end_if




Спасибо большое , пока всё работает , я использовал ваш код , а с Findcolor не разобрался.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 19.10.2016, 0:24
Сообщение #10


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Все поработало не много и легло , и if и while. Я ставил погрешность в 1% , если ставить 2% то много , заходит на не нужные цвета.

Что ещё можно попробовать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 19.10.2016, 0:31
Сообщение #11


********

Master
Сообщений: 1.397
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21338
Пользователь №: 16.156



Что значит легло?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 19.10.2016, 3:21
Сообщение #12


**********

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



Цитата
Что ещё можно попробовать?

Для начала убедиться что цвет меняется и на какой.
Добавить в скрипт:
Код
get color #color 345, 567  // изменить на нужные координаты
if #color != 14120960    // изменить на нужный цвет. Если проверять диапазон if #color < 13989376 or #color > 14252546
   alarm
   log #color
end_if

Посмотреть в логе какой будет цвет, если он измениться.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 21.10.2016, 0:56
Сообщение #13


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Цитата(cirus @ 19.10.2016, 3:21) *

Для начала убедиться что цвет меняется и на какой.
Добавить в скрипт:
Код
get color #color 345, 567  // изменить на нужные координаты
if #color != 14120960    // изменить на нужный цвет. Если проверять диапазон if #color < 13989376 or #color > 14252546
   alarm
   log #color
end_if

Посмотреть в логе какой будет цвет, если он измениться.


Ок , код добавил . Завтра к вечеру результаты добавлю.

Спасибо!

Цитата(Cockney @ 19.10.2016, 0:31) *

Что значит легло?


Перестало заходить в if . То есть по не известной мне причине (Видимой для глаза), что то изменилось. Почему и что пытаемся разобраться!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 21.10.2016, 1:34
Сообщение #14


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Заходит и в if и в проверку.
Code
Код

232                if 484, 486 57654  // Move
                    wait 2s
                    left 479, 488   // move
                    wait 2s
                 end_if
      get color #color 484, 486  //
238   if #color != 57654  // if #color < 13989376 or #color > 14252546
           alarm
240      log #color
        end_if  //
242     if 617, 446 11893099   // attack
                wait 1s
                left 606, 443   // attack
                wait 25s
                left 519, 497 //Exit
                wait 1s
          end_if
//
      get color #color 617, 446  // èçìåíèòü íà íóæíûå êîîðäèíàòû
      if #color != 11893099  //  if #color < 13989376 or #color > 14252546
        alarm
253   log #color
      end_if  //


Log


01:11:46 21 (Oppa777_all.txt, 253): 5395778
01:11:58 21 (Oppa777_all.txt, 240): 4343098
01:12:00 21 (Oppa777_all.txt, 253): 5395778
01:12:12 21 (Oppa777_all.txt, 240): 4343098
01:12:13 21 (Oppa777_all.txt, 253): 5395778
01:12:25 21 (Oppa777_all.txt, 240): 4343098
01:12:27 21 (Oppa777_all.txt, 253): 5395778
01:12:39 21 (Oppa777_all.txt, 240): 4343098
01:12:40 21 (Oppa777_all.txt, 253): 5395778
01:12:53 21 (Oppa777_all.txt, 240): 2696225
01:13:22 21 (Oppa777_all.txt, 253): 5395778
01:13:34 21 (Oppa777_all.txt, 240): 4343098
01:13:35 21 (Oppa777_all.txt, 253): 5395778
01:13:48 21 (Oppa777_all.txt, 240): 4343098
01:13:49 21 (Oppa777_all.txt, 253): 5395778
01:14:01 21 (Oppa777_all.txt, 240): 4343098
01:14:02 21 (Oppa777_all.txt, 253): 5395778
01:14:15 21 (Oppa777_all.txt, 240): 1053712
01:14:16 21 (Oppa777_all.txt, 253): 1645593
01:14:34 21 (Oppa777_all.txt, 240): 2696225
01:15:03 21 (Oppa777_all.txt, 253): 5395778

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


**********

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



Ну так цвет меняется всё-таки. Поэтому и if может не всегда срабатывать.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 21.10.2016, 18:26
Сообщение #16


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Цитата(cirus @ 21.10.2016, 2:29) *

Ну так цвет меняется всё-таки. Поэтому и if может не всегда срабатывать.


Да , но почему он заходил в if , цвет был другой! Абсурд какой то.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.10.2016, 2:31
Сообщение #17


**********

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



Цитата
Да , но почему он заходил в if , цвет был другой! Абсурд какой то.

Он же не всё время другой, в какой-то момент появился указанный, вот и сработал if.
Код
get color #color 484, 486
log #color

Запустите код и посмотрите все цвета в точке.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 22.10.2016, 12:41
Сообщение #18


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Цитата(cirus @ 22.10.2016, 2:31) *

Он же не всё время другой, в какой-то момент появился указанный, вот и сработал if.
Код
get color #color 484, 486
log #color

Запустите код и посмотрите все цвета в точке.


Добрый день.

Ок, сейчас по порядку ....
1. Код который я проверял

Код
get color #Go 470, 505
log #Go
set #Go findcolor (470, 505 470, 505 10263963  %a 2 1 10)  // GO
log #Go
if #Go > 0
wait 2s
left 489, 501  // move
wait 2s
end_if


Как мы видим 10% разница цвета.

2. Лог

12:25:09 21 (Oppa777_all.txt, 238): 10789532 - Первый лог (То есть похожий цвет найден)
12:25:09 21 (Oppa777_all.txt, 240): 0 - Лог два (Говорит о том что в 10% разницы цвета не найдено)
8619138 11908788 - - Это разница цвета 10%,на цвет 10263963.


Вывод : findcolor или if 470, 505 8619138 11908788 просто работают не корректно.

Если бы кто то из разработчиков вмешался было бы не плохо.
И отдельное спасибо cirus
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 22.10.2016, 14:50
Сообщение #19


********

Master
Сообщений: 1.397
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21338
Пользователь №: 16.156



а если

set #Go findcolor (470, 505 471, 506 10263963 %a 2 1 10) // GO


Может он даже и не проверяет, ибо зона поиска по сути нулевая.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shon435
сообщение 22.10.2016, 15:13
Сообщение #20


**

Neophyte
Сообщений: 19
Регистрация: 7.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.146
Возраст: 20



Цитата(Cockney @ 22.10.2016, 14:50) *

а если

set #Go findcolor (470, 505 471, 506 10263963 %a 2 1 10) // GO
Может он даже и не проверяет, ибо зона поиска по сути нулевая.


Код
get color #Go 471, 506
log #Go
set #Go findcolor (470, 505 471, 506 10263963  %a 2 1 10)  // GO
log #Go
if #Go > 0
wait 2s
left 489, 501  // move
wait 2s
end_if


Log

15:07:56 21 (Oppa777_all.txt, 238): 10263961
15:07:56 21 (Oppa777_all.txt, 240): 0

Обратите внимание , разница почти нет, но цвет не найден.Код 10263963 Лог 10263961
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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