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

11 страниц V « < 8 9 10 11 >  
Ответить в эту темуОткрыть новую тему
> Научить пилот логике в игре Небеса
veiron
сообщение 5.1.2013, 23:17
Сообщение #181


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(Санчес @ 6.1.2013, 0:15) *

найди объект который меняет цвет или размер только после загрузки и на него поставь иф

там 5 вариантав не загрузки может быть.

Я думал одним скриптом сделать, а так видно придется,отдельными блоками еще и проверку как то делать. через gosub.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 6.1.2013, 21:00
Сообщение #182


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Можно как то сделать, у меня в окне есть 4 вида кнопок, я их нахожу, кликаю по ним , но иногда может появится 5 кнопка, или еще пилот может что то не прочитать и цикл While стоновится бесконечным, гоняет его постоянно. что надо сделать, что бы когда, что то пошло не так, завершить цикл While.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 6.1.2013, 23:21
Сообщение #183


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(veiron @ 6.1.2013, 22:00) *

Можно как то сделать, у меня в окне есть 4 вида кнопок, я их нахожу, кликаю по ним , но иногда может появится 5 кнопка, или еще пилот может что то не прочитать и цикл While стоновится бесконечным, гоняет его постоянно. что надо сделать, что бы когда, что то пошло не так, завершить цикл While.


Код
set timer  // обнуляем таймер
while 1 = 1
   if timer > 5000           // если таймер больше 5 секунд, что-нибудь делаем
      break            // например выходим
   end_if
end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 6.1.2013, 23:33
Сообщение #184


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(xolost @ 7.1.2013, 0:21) *

Код
set timer  // обнуляем таймер
while 1 = 1
   if timer > 5000           // если таймер больше 5 секунд, что-нибудь делаем
      break            // например выходим
   end_if
end_while


Спасибо, помог скриптик.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 8.1.2013, 22:17
Сообщение #185


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(xolost @ 5.1.2013, 10:12) *


Код
set #startX 0 
set #startY 0
set #endX 1280
set #endY 1024
set #sosed 40   // отступ в сторону для поиска шарика в соседней ячейке
set $bmp .bmp
   // ищем левый-верхний угол рамки
   set $ramka findimage (#startX #startY #endX #endY (c:\images6\рамка.bmp) %crds 2 100 1)  
   if $ramka > 0    
      set #x1 %crds[1 1] + 10        // задаем область для поиска ячейки относительно рамки
      set #y1 %crds[1 2] + 10
      set #x2 #x1 + #sosed
      set #y2 #y1 + #sosed
      for #b 1 6
         for #a 1 6
            for #s 1 5
               set $s1 findimage (#x1 #y1 #x2 #y2 (c:\images6\#s$bmp) %crds2 2 100 1)  
               if $s1 > 0
                  set %pole[#b #a] #s     // нашли шарик - записали его в общий массив на своё место
                  set #x1 #x1 + #sosed
                  set #x2 #x2 + #sosed
                  break
               end_if  
            end_for
         end_for
         set #x1 %crds[1 1] + 10
         set #x2 #x1 + #sosed
         set #y1 #y1 + #sosed  
         set #y2 #y2 + #sosed
      end_for
   end_if
   save_array %pole c:\images6\pole.txt    // записали в файл получившийся массив.
end_script



Пробовал сегодня скрипт, так и не начал он у меня работать. В файл pole.txt ни одной строки не записало.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 9.1.2013, 0:52
Сообщение #186


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(veiron @ 8.1.2013, 23:17) *

Пробовал сегодня скрипт, так и не начал он у меня работать. В файл pole.txt ни одной строки не записало.


Пути верные? сделай пути такие же как у меня.
картники шариков и рамки правильно нарезал? покажи как вышло.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 9.1.2013, 0:55
Сообщение #187


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(xolost @ 9.1.2013, 1:52) *

Пути верные? сделай пути такие же как у меня.
картники шариков и рамки правильно нарезал? покажи как вышло.

Пути и такие указывал и изменял. А нарезать, не нарезал. Я твои в папку кинул. Я когда с одного компа на другой переношу, только пути исправляю, а картинки не перескриниваю.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 9.1.2013, 3:02
Сообщение #188


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(veiron @ 9.1.2013, 1:55) *

Пути и такие указывал и изменял. А нарезать, не нарезал. Я твои в папку кинул. Я когда с одного компа на другой переношу, только пути исправляю, а картинки не перескриниваю.

Ну, показать можешь как ты их нарезал? по инструкции которой я описал или нет
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
чебуратор 2
сообщение 16.1.2013, 20:57
Сообщение #189


**

Neophyte
Сообщений: 15
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.678
Возраст: 40



Цитата(xolost @ 9.1.2013, 3:02) *

Ну, показать можешь как ты их нарезал? по инструкции которой я описал или нет

)))))))))))))) ну вы нахимичили тут вариантов не много а проще бой делать через ману а этот ход только на случай удачного хода)))))))))))))) я с монстрами воюю уже с месяц на автомате
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 16.1.2013, 22:15
Сообщение #190


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(чебуратор 2 @ 16.1.2013, 21:57) *

)))))))))))))) ну вы нахимичили тут вариантов не много а проще бой делать через ману а этот ход только на случай удачного хода)))))))))))))) я с монстрами воюю уже с месяц на автомате


Сделать тупое Если рядом есть, то жмем - легко.
Тот скрип для сбора всех данных в один массив, т.е. созданное поле. И вот далее нужно писать логику на полный просчет всех вариантов и выбирать самый лучший.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 16.1.2013, 22:24
Сообщение #191


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(xolost @ 16.1.2013, 23:15) *

Сделать тупое Если рядом есть, то жмем - легко.

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


**

Neophyte
Сообщений: 15
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.678
Возраст: 40



Цитата(veiron @ 16.1.2013, 22:24) *

Не всем и это сделать легко))

нет самый лучший пока не выбирает сначала ищет на 5 их 40 потом 4 ходит 1 попавшуюся их 120 вроде
если нет ищет 3 их 232
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 16.1.2013, 23:55
Сообщение #193


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(чебуратор 2 @ 17.1.2013, 0:40) *

нет самый лучший пока не выбирает сначала ищет на 5 их 40 потом 4 ходит 1 попавшуюся их 120 вроде
если нет ищет 3 их 232

Дело ясное,что дело темное. Я попробовал сделать ф.имеджем ищет 2 потом обкликивает вокруг этих 2,если нашел двигаем, правда с этого ни чего не получилось. Потому и написал,что не всем легко это сделать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 17.1.2013, 16:28
Сообщение #194


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(veiron @ 17.1.2013, 0:55) *

Дело ясное,что дело темное. Я попробовал сделать ф.имеджем ищет 2 потом обкликивает вокруг этих 2,если нашел двигаем, правда с этого ни чего не получилось. Потому и написал,что не всем легко это сделать.

Программа которая ищет совпадения по цвету оказывается уже есть в нете)) остается совсем малое что бы пилот ее запускал и по ее подсказкам передвигал шарики.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.1.2013, 16:41
Сообщение #195


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27707
Пользователь №: 11.279



Неее. Писать надо все на пилоте. Чем больше костылей делаешь, тем больше шанс, что что-то отвалится. Да и тут полная свобода действий и логики. При должном желании можно написать очень умного бота. В шахматы и то выигрывают, а тут...


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 17.1.2013, 16:48
Сообщение #196


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 17.1.2013, 17:41) *

Неее. Писать надо все на пилоте. Чем больше костылей делаешь, тем больше шанс, что что-то отвалится. Да и тут полная свобода действий и логики. При должном желании можно написать очень умного бота. В шахматы и то выигрывают, а тут...

Я с Вами полностью согласен. Нужно на пилоте писать. А, что делать тем кто не может его написать. Для меня проще указать еще один хэндл и добавить ф.имедж, чем написать скрипт, который я уже сколько пытаюсь, так и ни чего не вышло. А так я бы с удовольствием в пилот скрипт поставил и играл.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BSW_rama
сообщение 29.1.2013, 16:04
Сообщение #197


****

Apprentice
Сообщений: 188
Регистрация: 28.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.728
Возраст: 32



ха, да это же клон "линий"... таже байда над чем я щас и работаю. скрип предельно прост (пример для моего случая "какой-то там часовщик"
Код

:a
set #c 0
// задание нулевой точки отсчёта
set #d 161      
set #e 161
// определение смещения каждого элемента для максимального значения в команде for
set #f #e + 54 * 8
set #g #d + 54 * 5
for #b #e #f 54
for #a #d #g 54
set #a1 #a + 54
set #a2 #a + 108
set #a3 #a + 162
// проверка одной из комбинаций
if  #a, #b 3315756 13369223 and #a1, #b 3315756 13369223 and #a3, #b 3315756 13369223
left #a3, #b
left #a2, #b
end_if
// проверка другой комбинации
if  #a, #b 3315756 13369223 and #a2, #b 3315756 13369223 and #a3, #b 3315756 13369223
left #a, #b
left #a1, #b
end_if
end_for
end_for
goto a
end_script



это только 2 комбинации одного типа изображения, а их может быть для линий из трёх предметов порядка 20 штук... и если бы пилот на каждую строчку тратил 1 мс, то всё было бы нормально, но пилот тратит на каждую команду if примерно 0,1 сек, из-за чего скрипт проходит поле 9х9 за 20 сек. а это капец как долго. я запускал 8 пилотов, каждый сканировал 3-5 комбинации, причём парно, и то только 1 тип изображеня, в результате за 2 минуты пилот делал 3-8 своих хода, всё остальное приходилось кликать мне... да небольшая помощ была. вобщем вопрос упирается в быстродействие пилота.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 29.1.2013, 16:27
Сообщение #198


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27707
Пользователь №: 11.279



Цитата
if примерно 0,1 сек

30 проверок в секунду вполне реально даже с linedelay больше нуля и в реальных условиях.
Цитата
из-за чего скрипт проходит поле 9х9 за 20 сек

Скрипт так долго работает потому, что вы микроскопом гвозди забиваете. Финдимдж вполне успешно может искать подобные сигнатуры. Так же можно использовать финдколор.
Цитата
я запускал 8 пилотов, каждый сканировал 3-5 комбинации,

Если у вас не 40 ядер, то вы делали ерунду. Пилот при linedelay 0 полностью загружает одно ядро одной вкладкой.
Цитата
запускал 8 пилотов

Есть вкладки. Зачем извращаться с 8 пилотами? От этого только проблем будет больше.
Цитата
вопрос упирается в быстродействие пилота

Есть действительно задачи для которых не хватает быстродействия. Вот только это совсем другие масштабы. Например искать врагов и контролить отдачу оружия в стрелялке будет сложновато. Вот только с вашим случаем это не имеет ничего общего даже близко. Вы даже на 10% не использовали возможности обработки. На практике я еще не встречался с случаем, когда не смог бы реализовать идею из-за проблем с производительностью после ввода финдимиджа и финдколора.

Сообщение отредактировал DarkMaster - 29.1.2013, 16:40


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 16.5.2018, 18:11
Сообщение #199


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1320
Пользователь №: 18.346
Возраст: 25



Извиняюсь за вопрос но как можно объявить переменные координат относительно картинки более простым способом? Хочу немного облегчить работу так как через какой-то период приходиться снимать новые координаты так как меню смещается
Код

//Сперва ищем картинку(меню) которое меняется в вероятной области смещения:
set #toch findimage (343, 230 373, 431 (D:\_UOPilot\Image\botn\toch.bmp) %crds 2 80)
if #toch > 0
    set %a [1] (%crds[1 1] + 100) (%crds[1 2] + 100)       // Задаем координаты точек относительно картинки(левого верхнего угла)
    set %a [2] (%crds[1 1] + 200) (%crds[1 2] + 100)
    set %a [3] (%crds[1 1] + 300) (%crds[1 2] + 185)
    //и другие
else
    Msg Переменные не заданы :((
end_if

Можно ли так сделать или нужно прописывать Х Y отдельно? Как сделать проще

При такой структуре построения координат:
Цитата
set %a [1] (%crds[1 1] + 100) (%crds[1 2] + 100)

выдает в лог:
Цитата
(351 + 100) (378 + 100)

А на строке действия выдвет ошибку синтаксиса.Тоесть механизм частично работает....теретически если сложить то что в скобках и будет X и Y. Вопрос в том почэму нельзя прописать структуру одной строкой ведь set %a [1] 451 478 он читает как координаты и проблем нет, а то что в скобках не считает...
Забавно если прописываю:
Цитата
set %a [1 1] [1 2] (%crds[1 1] + 100) (%crds[1 2] + 100)

то в лог выбивает вот это
Цитата
1 2] (351 + 100) (378 + 100) [1 2]
и делает клик в левый левый верхний угол окна, но не картинку и не в точку смещени...Интересно чо он там счытает (IMG:style_emoticons/default/tongue.gif) (IMG:style_emoticons/default/dry.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 16.5.2018, 22:19
Сообщение #200


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1320
Пользователь №: 18.346
Возраст: 25



Чо-то не получаеться уже пробовал и работать как с массивом и в виде числовых переменных прописывать в различных вариациях не выходит объединить в одну строку, что бы не расписывать для каждого смещения. (IMG:style_emoticons/default/sad.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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