|
приоритет, findimage |
|
|
|
  |
Ответов
cirus |
29.11.2016, 2:41
|

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

|
как-то так
Код set $path "C:\Users\Пользователь\Desktop\рисунки для пилота\" // путь к картинкам set %image [1] bashya // имя изображения set %image [2] bashnya_c_prava set %image [3] bashnya_v_nizy set %image [4] bashnya_v_verxy set %image [5] bashnya_c_leva set %image [6] bashnya_niz_pravo set %image [7] verx_levo_ygol set %image [8] basnya_verx_pravo
set #size size(%image) // всего картинок hint Всего картинок #size
:metka
set $a 0 while $a = 0 // пока картинка не найдена set #flag 0 // флаг что картинки найдены for #i 1 #size 1 // цикл для поиска картинок set $a findimage (1147, 32 1363, 249 ($path%image[#i].bmp) %arr 2 90 20 5 ) if $a > 0 set #x %arr [1 1] + 7 set #y %arr [1 2] + 7 break end_if set #flag 1 // картинки не найдены end_for
if #flag = 1 // если ни одна из картинок не найдена // ищем картинку EXIT2 set #b findimage (1154, 36 1359, 242 (C:\Users\Пользователь\Desktop\рисунки для пилота\EXIT2.bmp) %arr1 2 90 20 5) if #b > 0 // если найдена EXIT2 for #i 1 #size 1 // снова перебираем картинки set $a findimage (1147, 32 1363, 249 ($path%image[#i].bmp) %arr 2 90 20 5 ) if $a > 0 set #flag 0 // картинка найдена break // прервать поиск end_if end_for
if #flag = 1 // если картинки не найдены log Картинка Exit2 найдена // тут действия которые нужно сделать если картинка EXIT2 найдена, а другие нет else // иначе goto metka // переход к метке, т.е. к началу скрипта end_if end_if end_if end_while
while 1 = 1 // бесконечный цикл set $p findcolor(1154, 36 1359, 242 56831 %arr 2) // PERS
if $p > 0 set #x1 %arr [1 1] set #y1 %arr [1 2] wait 1s
if #x1 < #x Send_down {right} wait 200 Send_up {right} wait 1s end_if
if #x1 > #x Send_down {left} wait 200 Send_up {left} wait 1s end_if
if #y1 < #y Send_down {down} wait 200 Send_up {down} wait 1s end_if
if #y1 > #y Send_down {up} wait 200 Send_up {up} wait 1s end_if
set #x2 #x - #x1 // разница координат #x и #x1 set #x2 abs(#x2) // модуль числа, чтобы разница не была отрицательной set #y2 #y - #y1 // разница координат #y и #y1 set #y2 abs(#y2) // модуль числа set #const 7 // подобрать нужное значение if #x2 < #const and #y2 < #const // проверка что перс у нужной точки break end_if if #x = #x1 and #y = #y1 // проверка дошёл перс до нужных координат или нет break // если дошёл, выход из цикла end_if end_if end_while
wait 3000 // ждать 3 секунды goto metka В 43 строку дописать нужные действия.
|
|
|
|
cskull |
29.11.2016, 13:26
|
 
Neophyte
Сообщений: 38
Регистрация: 22.10.2016 Группа: Пользователи Наличность: 0
Пользователь №: 18.158

|
Цитата(cirus @ 29.11.2016, 2:41)  как-то так
Код set $path "C:\Users\Пользователь\Desktop\рисунки для пилота\" // путь к картинкам set %image [1] bashya // имя изображения set %image [2] bashnya_c_prava set %image [3] bashnya_v_nizy set %image [4] bashnya_v_verxy set %image [5] bashnya_c_leva set %image [6] bashnya_niz_pravo set %image [7] verx_levo_ygol set %image [8] basnya_verx_pravo
set #size size(%image) // всего картинок hint Всего картинок #size
:metka
set $a 0 while $a = 0 // пока картинка не найдена set #flag 0 // флаг что картинки найдены for #i 1 #size 1 // цикл для поиска картинок set $a findimage (1147, 32 1363, 249 ($path%image[#i].bmp) %arr 2 90 20 5 ) if $a > 0 set #x %arr [1 1] + 7 set #y %arr [1 2] + 7 break end_if set #flag 1 // картинки не найдены end_for if #flag = 1 // если ни одна из картинок не найдена // ищем картинку EXIT2 set #b findimage (1154, 36 1359, 242 (C:\Users\Пользователь\Desktop\рисунки для пилота\EXIT2.bmp) %arr1 2 90 20 5) if #b > 0 // если найдена EXIT2 for #i 1 #size 1 // снова перебираем картинки set $a findimage (1147, 32 1363, 249 ($path%image[#i].bmp) %arr 2 90 20 5 ) if $a > 0 set #flag 0 // картинка найдена break // прервать поиск end_if end_for
if #flag = 1 // если картинки не найдены log Картинка Exit2 найдена // тут действия которые нужно сделать если картинка EXIT2 найдена, а другие нет else // иначе goto metka // переход к метке, т.е. к началу скрипта end_if end_if end_if end_while
while 1 = 1 // бесконечный цикл set $p findcolor(1154, 36 1359, 242 56831 %arr 2) // PERS
if $p > 0 set #x1 %arr [1 1] set #y1 %arr [1 2] wait 1s
if #x1 < #x Send_down {right} wait 200 Send_up {right} wait 1s end_if
if #x1 > #x Send_down {left} wait 200 Send_up {left} wait 1s end_if
if #y1 < #y Send_down {down} wait 200 Send_up {down} wait 1s end_if
if #y1 > #y Send_down {up} wait 200 Send_up {up} wait 1s end_if
set #x2 #x - #x1 // разница координат #x и #x1 set #x2 abs(#x2) // модуль числа, чтобы разница не была отрицательной set #y2 #y - #y1 // разница координат #y и #y1 set #y2 abs(#y2) // модуль числа set #const 7 // подобрать нужное значение if #x2 < #const and #y2 < #const // проверка что перс у нужной точки break end_if if #x = #x1 and #y = #y1 // проверка дошёл перс до нужных координат или нет break // если дошёл, выход из цикла end_if end_if end_while
wait 3000 // ждать 3 секунды goto metka В 43 строку дописать нужные действия. дописала в 43ю и в 27ю , получилось следущее kod
set $path "C:\Users\Пользователь\Desktop\рисунки для пилота\" // путь к картинкам set %image [1] bashya // имя изображения set %image [2] bashnya_c_prava set %image [3] bashnya_v_nizy set %image [4] bashnya_v_verxy set %image [5] bashnya_c_leva set %image [6] bashnya_niz_pravo set %image [7] verx_levo_ygol set %image [8] basnya_verx_pravo
set #size size(%image) // всего картинок hint Всего картинок #size
:metka
set $a 0 while $a = 0 // пока картинка не найдена set #flag 0 // флаг что картинки найдены for #i 1 #size 1 // цикл для поиска картинок set $a findimage (1147, 32 1363, 249 ($path%image[#i].bmp) %arr 2 90 20 5 ) if $a > 0 set #x %arr [1 1] + 7 set #y %arr [1 2] + 7 break end_if set #flag 1 // картинки не найдены end_for if $a = 0 goto metka1 wait 1s end_if end_while
while 1 = 1 // бесконечный цикл set $p findcolor(1154, 36 1359, 242 56831 %arr 2) // PERS
if $p > 0 set #x1 %arr [1 1] set #y1 %arr [1 2] wait 1s
if #x1 < #x Send_down {right} wait 200 Send_up {right} wait 1s end_if
if #x1 > #x Send_down {left} wait 200 Send_up {left} wait 1s end_if
if #y1 < #y Send_down {down} wait 200 Send_up {down} wait 1s end_if
if #y1 > #y Send_down {up} wait 200 Send_up {up} wait 1s end_if
set #x2 #x - #x1 // разница координат #x и #x1 set #x2 abs(#x2) // модуль числа, чтобы разница не была отрицательной set #y2 #y - #y1 // разница координат #y и #y1 set #y2 abs(#y2) // модуль числа set #const 7 // подобрать нужное значение if #x2 < #const and #y2 < #const // проверка что перс у нужной точки break end_if if #x = #x1 and #y = #y1 // проверка дошёл перс до нужных координат или нет // координаты, скорее всего, не совпадут, лучше сравнивать разницу координат с какой-то константой break // если дошёл, выход из цикла end_if end_if
:metka1 if #flag = 1 // если ни одна из картинок не найдена // ищем картинку EXIT2 set #b findimage (1154, 36 1359, 242 (C:\Users\Пользователь\Desktop\рисунки для пилота\EXIT2.bmp) %arr1 2 90 20 5) if #b > 0 // если найдена EXIT2 for #i 1 #size 1 // снова перебираем картинки set $a findimage (1147, 32 1363, 249 ($path%image[#i].bmp) %arr 2 90 20 5 ) if $a > 0 set #flag 0 // картинка найдена break // прервать поиск end_if end_for
if #flag = 1 // если картинки не найдены log Картинка Exit2 найдена left 634, 46 wait 6s move 634, 46 wait 3s move 641, 92 wait 3s Send_down {down} wait 800 Send_up {down} wait 1500 else // иначе goto metka // переход к метке, т.е. к началу скрипта end_if end_if end_if end_while
while 1 = 1 // бесконечный цикл set $p findcolor(1154, 36 1359, 242 56831 %arr 2) // PERS
if $p > 0 set #x1 %arr [1 1] set #y1 %arr [1 2] wait 1s
if #x1 < #x Send_down {right} wait 200 Send_up {right} wait 1s end_if
if #x1 > #x Send_down {left} wait 200 Send_up {left} wait 1s end_if
if #y1 < #y Send_down {down} wait 200 Send_up {down} wait 1s end_if
if #y1 > #y Send_down {up} wait 200 Send_up {up} wait 1s end_if
set #x2 #x - #x1 // разница координат #x и #x1 set #x2 abs(#x2) // модуль числа, чтобы разница не была отрицательной set #y2 #y - #y1 // разница координат #y и #y1 set #y2 abs(#y2) // модуль числа set #const 7 // подобрать нужное значение if #x2 < #const and #y2 < #const // проверка что перс у нужной точки break end_if if #x = #x1 and #y = #y1 // проверка дошёл перс до нужных координат или нет break // если дошёл, выход из цикла end_if end_if end_while
wait 3000 // ждать 3 секунды goto metka
но снова вылазит ошибка в логе 13:20:49 19 (, 97): Картинка Exit2 найдена 13:21:08 19 (, 69): set - (69): Символ не распознан (pos:1 '#x - 1323')
|
|
|
|
Сообщений в этой теме
cskull приоритет 27.11.2016, 13:15 cirus Самое просто изначально записать картинки в нужном... 27.11.2016, 13:42 cskull спасибо , а я подумала ,что в квадратных скобках п... 27.11.2016, 17:05 cirus
Вообще, оно так и есть.
Просто картинки ищутся не... 27.11.2016, 17:19 cskull Уважаемый cirus , а как тогда присвоить номер 9 ка... 27.11.2016, 19:10 cirus if $a = 0
goto metka1
wait 1s
end_if
Если ... 27.11.2016, 19:38 cskull
[code]if $a = 0
goto metka1
wait 1s
end_i... 27.11.2016, 20:07 cskull Чёт я не то навставляла ((
Почему то выдаёт ошибку... 27.11.2016, 20:45 cirus Код уберите под спойлер:
[spoiler=название... 27.11.2016, 21:22 cskull
Код уберите под спойлер:
[code][spoiler=назва... 27.11.2016, 22:01 cirus
break прерывает цикл поиска картинок. Скрипт прод... 27.11.2016, 22:43 cskull и так и сяк лепила , ничего не вышло (( картинки 1... 28.11.2016, 19:41 DarkMaster cskull, если просто сделать поиск этой картинки бе... 28.11.2016, 23:04 cskull
cskull, если просто сделать поиск этой картинки б... 28.11.2016, 23:24 DarkMaster это все замечательно :)
Но если просто сделать пои... 28.11.2016, 23:40 cskull
это все замечательно :)
Но если просто сделать по... 29.11.2016, 0:09 DarkMaster
Госаб поможет не ломать голову и глаза в попытках... 29.11.2016, 0:33 cskull
Если будет желание, почитайте http://hosting.vsp... 29.11.2016, 8:29 DarkMaster set $a 0
while $a = 0 // пока картинка н... 29.11.2016, 0:55 cskull
set $a 0
while $a = 0 // пока картинка ... 29.11.2016, 8:50 cskull
set $a 0
while $a = 0 // пока картинка ... 29.11.2016, 8:50 cirus if #flag = 1 // если картинки не найдены
if ... 29.11.2016, 2:22 cirus
И зачем что-то менять в 27 строке, вы убираете ну... 29.11.2016, 14:01 cskull
И зачем что-то менять в 27 строке, вы убираете ну... 29.11.2016, 14:29 cirus
Они же и так есть, зачем их по 2 раза писать.
Ош... 29.11.2016, 14:47 cskull
В metka1 пишите что делать, когда нашлась картин... 29.11.2016, 18:37  Cockney
Не важно. Там 2, тут 3, а психика уже покалечена... 29.11.2016, 18:53   cskull
а психика уже покалечена.
:D 29.11.2016, 19:38 cskull
Вообще, надо весь код через gosub делать. [url=... 29.11.2016, 20:33 DarkMaster
представьте, что гото просто не существует. И ник... 30.11.2016, 2:29 cirus
set #a findimage
set #b findimage
if #a > 0 a... 30.11.2016, 2:36 cskull написала , но не удачно , и от goto не знаю как из... 30.11.2016, 19:31 cirus set $a findimage (1154, 36 1359, 242 ... 1.12.2016, 2:38 cskull
set $a findimage (1154, 36 1359, 242 ... 2.12.2016, 12:49
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|