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

> хождение между точками, хождение между точками
cskull
сообщение 27.10.2016, 19:33
Сообщение #1


**

Neophyte
Сообщений: 38
Регистрация: 22.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.158



Добрый вечер !
Нужна Ваша помощь ))
В игре есть миникарта , на которой видно перса и объекты к которым он идёт с помощью клавиш верх-низ-право-лево .Перс это кружок , объекты белые квадраты .Вот как это выглядит в начале :

Прикрепленное изображение

Я написала следующий код :
Код
set $a findimage (1154, 36 1359, 242 (C:\Users\Пользователь\Desktop\рисунки для пилота\bashya.bmp) %arr 2 90 20 5)\\  BASHNYA
if $a > 0
//
set #x %arr [1 1] + 5  
set #y %arr [1 2] + 9
move #x, #y              \\ мышка на башню
wait  100
  get mouse_pos #x #y
   set $p findcolor(1154, 36 1359, 242 56831  %arr 2) \\ PERS
   if $p > 0
    //
    set #x1 %arr [1 1] + 0  
    set #y1 %arr [1 2] - 0
    move #x1, #y1              \\ мышка на перса
    wait  1s
    get mouse_pos #x1 #y1
    
       if #x1 < #x
       Send_down {right}
       wait 100
       Send_up {right}
       set timer
       wait 1s
       end_if
      
       if #x1 > #x
       Send_down {left}
       wait 100
       Send_up {left}
       set timer
       wait 1s
       end_if
      
       if #y1 < #y
       Send_down {down}
       wait 100
       Send_up {down}
       set timer
       wait 1s
       end_if
      
       if #y1 > #y
       Send_down {up}
       wait 100
       Send_up {up}
       set timer
       wait 1s
       end_if
   end_if
wait 1s

end_if


Перс доходит до квадрата , но не наступает на него ,а стоит рядом :Прикрепленное изображение
Поскажите , какую команду надо использовать , чтобы он дошёл до найденых координат , или может я вообще не так сделала ((
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 30.10.2016, 16:33
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 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] EXIT

set #size size(%image)                          // всего картинок
hint Всего картинок #size


:metka

set $a 0
while $a = 0             // пока картинка не найдена
    for #i 1 #size 1                     // цикл для поиска картинок
        set $a findimage (1154, 36 1359, 242 ($path%image[#i].bmp) %arr 2 90 20 5 )
        if  $a > 0
            set #x %arr [1 1] + 5
            set #y %arr [1 2] + 9
            break
        end_if
    end_for
        if $a = 0
        wait 45s
        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 100
            Send_up {right}
            wait 1s
        end_if

        if  #x1 > #x
            Send_down {left}
            wait 100
            Send_up {left}
            wait 1s
        end_if

        if  #y1 < #y
            Send_down {down}
            wait 100
            Send_up {down}
            wait 1s
        end_if

        if  #y1 > #y
            Send_down {up}
            wait 100
            Send_up {up}
            wait 1s
        end_if


        if  #x = #x1 and #y = #y1    // проверка дошёл перс до нужных координат или нет
            // координаты, скорее всего, не совпадут, лучше сравнивать разницу координат с какой-то константой
            break   // если дошёл, выход из цикла
        end_if
    end_if
end_while

wait 3000                            // ждать 3 секунды
goto metka

Искать 4 картинки, если ни одна не найдена, ждать 45 сек. Потом снова искать.

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

Сообщений в этой теме
cskull   хождение между точками   27.10.2016, 19:33
DarkMaster   Странный кусок. Что за прибавка координат? Смещен...   27.10.2016, 21:14
cskull   Странный кусок. Что за прибавка координат? Смещен...   27.10.2016, 21:31
DarkMaster   А зачем вообще мышка нужна в центре квадрата? Сд...   27.10.2016, 22:46
cskull   А зачем вообще мышка нужна в центре квадрата? ...   27.10.2016, 23:18
DarkMaster   Вы в код всмотритесь. Если вы выкинете get mouse...   28.10.2016, 1:03
cskull   Если вы выкинете get mouse_pos, то у вас ничего ...   28.10.2016, 10:25
cirus   Можно как-то так: set $a findimage (1154...   28.10.2016, 2:23
cskull   // координаты, скорее всего, не совпад...   28.10.2016, 10:36
cirus   Если картинка не найдена, то возвращается 0. Числ...   28.10.2016, 11:06
cskull   с else вообще не работает ((всё перестало видеть   28.10.2016, 11:29
cirus   Картинка хоть находится? Добавьте после findimage:...   28.10.2016, 11:46
cskull   вот куда записала , теперь ждёт 30 сек , но потом ...   28.10.2016, 12:00
cirus   Скачайте 2.38. В 2.32 были проблемы с поиском. На ...   28.10.2016, 12:25
cskull   Скачайте 2.38. В 2.32 были проблемы с поиском. ...   28.10.2016, 13:17
cirus   Если картинка не найдена, то надо ждать 30 сек? se...   28.10.2016, 14:23
cskull   Если картинка не найдена, то надо ждать 30 сек? ...   28.10.2016, 15:38
DarkMaster   если какая из картинок не найдена?   28.10.2016, 22:30
cskull   если какая из картинок не найдена? Доброе утро )...   29.10.2016, 9:22
cirus   Уберите лишние end_if. Скрипт --> форматироват...   29.10.2016, 2:10
cirus   Слева сверху нажать скрипт, откроется меню, там н...   29.10.2016, 9:33
DarkMaster   Это в шапке пилота нажать скрипт/форматирование. ...   29.10.2016, 9:49
veiron   не туда   29.10.2016, 15:32
cskull   cirus DarkMaster Ребята , огромное Вам спасибо ...   29.10.2016, 16:17
cirus   Лишний end_if так и не убран в 11 строке. Последни...   29.10.2016, 19:16
cskull   Лишний end_if так и не убран в 11 строке. Последн...   29.10.2016, 19:50
cskull   И снова здравствуйте ) Я дописала поиск нескольких...   30.10.2016, 15:35
cirus   Нужно чтобы искало 1 из 4 картинок и если какая-ни...   30.10.2016, 15:57
cskull   Нужно чтобы искало 1 из 4 картинок и если какая-н...   30.10.2016, 16:14
cskull   тот первый не работал , как и у меня останавливал...   30.10.2016, 19:54
cirus   Там был косяк, который потом исправил. Так не по...   30.10.2016, 20:04
cskull   ну я сегодня уже не могу проверить все картинки ...   30.10.2016, 20:28
cirus   Я даже не сомневаюсь что из цикла с ходами не выхо...   30.10.2016, 21:02
cskull   Я даже не сомневаюсь что из цикла с ходами не вых...   30.10.2016, 21:39
cirus   Сравнивать надо разницу координат с константой, ко...   30.10.2016, 22:07
cskull   Получится что из цикла будет выходить когда перс...   30.10.2016, 22:54
cirus   Сколько константу укажите, так и будет останавлив...   30.10.2016, 23:22
DarkMaster   https://redmine.uokit.com/issues/15   31.10.2016, 3:26
cirus   Не плохо бы указывать, что это работает только в ...   31.10.2016, 11:08
cskull   Спасибо , cirus ! Вроде всё работает + добавил...   31.10.2016, 18:41


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

 

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