|
|
|
Помогите организовать скрипт |
|
|
йцукен |
15.4.2013, 12:20
|
Novice
Сообщений: 75
Регистрация: 15.4.2013 Группа: Пользователи Наличность: 0
Пользователь №: 15.997
|
Всем добрый день, прошу подсказать какими средствами (либо по цвету, либо по картинкам либо еще как) лучше все что описано ниже сделать что бы скрипт работал как часики ибо там нужно будет оооочень много требоваться от него. Объясню кратко суть
Задача такова: Есть 3д лабиринт, перемещение осуществляется путем нажатия левой кнопки мышки по стрелкам на компасе по постоянному маршруту вперед-назад-влево-вправо, задержка между перемещением рандомная,но не более 1-2 сек, тут все понятно, кликаем нужную сторону после каждого клика ждем 2-3 сек (и сразу тут вопрос - стоит ли делать скрипт кликами либо же привязать к findimage и забить туда стрелки компаса?). Помимо этого, иногда в игре есть глюки, нужно как-то проверить - действительно ли перемещение произошло, но не знаю как это лучше всего сделать ибо бывают участки на которых картинка при перемещении не меняется либо меняется на долесекунды, и если в таком случае скрипт будет идти по прописаному маршруту а в одной точке не пройдет вперед скажем, а посчитает что прошел-он же уйдет в даун, я правильно понимаю? Можно это как-то решить?
По мере движения по лабиринту в определенных местах появляются монстры, если жизни не красного цвета - нужно на них нападать. Тут тоже понятно, задать для точки на полосе НР color желтый, если не соответствует, то лечим себя нажатием на зелье в уголке, а потом аж нападаем, уже готовый скрипт их убивает. После этого нужно проверить, выпало ли что-то из монстра в той клетке, на которой он стоял, если да, то собрать. И вот тут тоже проблема, как лучше всего проверять дроп - там есть картинка и текст и цвет в точках другой но всегда разный, как лучше в этом моменте все организовать?
|
|
|
|
DarkMaster |
15.4.2013, 12:30
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27725
Пользователь №: 11.279
|
Цитата и сразу тут вопрос - стоит ли делать скрипт кликами либо же привязать к findimage и забить туда стрелки компаса? Очень странная формулировка. Воздух - это газ, или мы им дышим? Проверки в любом случае делать надо. Ифы/финдимиджи/колоры зависит от ситуации. В целом, если возможно, я предпочитаю эмуляцию клавиатуры - меньше проблем. Цитата а посчитает что прошел-он же уйдет в даун, я правильно понимаю? Можно это как-то решить? Для начала сесть и подумать как ВЫ определяете лаганула игра или нет. Выписать эти признаки на бумажку. Потом подумать как это будет выглядеть в коде. Цитата там есть картинка и текст и цвет в точках другой но всегда разный, как лучше в этом моменте все организовать? Иногда проще не проверять наличие дропа, а просто сделать несколько попыток подобрать. Можно попробовать отследить фон поверхности, zeleax писал специальную программу Unique Searsh Color для подобных целей. Она есть в полезных советах.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
йцукен |
5.5.2013, 22:13
|
Novice
Сообщений: 75
Регистрация: 15.4.2013 Группа: Пользователи Наличность: 0
Пользователь №: 15.997
|
Спасибо, время позже добавлю, главное начать правильно) вот набросал) И еще вопрос, можно ли как-то в уопилоте написать действие до опред.момента? Например gosub goup till coordX coordY color1 ? Вот скрипт: Код if 527, 22 255 //красный left 109, 26 //уходим else gosub goup gosub turnr gosub goup gosub attack wait 10s gosub goup gosub pick gosub pick end_if end_script
:goup left #x #y return
:turnr left #x #y return
:attack left #x #y return
:pick left #x #y return
|
|
|
|
йцукен |
17.5.2013, 14:57
|
Novice
Сообщений: 75
Регистрация: 15.4.2013 Группа: Пользователи Наличность: 0
Пользователь №: 15.997
|
Вроде со всем разобрался) Помогите пожалйста решить такую проблему: как при выполнении скрипта, при переходе в блок gosub в котором содежрится условие проверки цвета по пикселю if_not x y col отправить скрипт в предыдущий gosub? Т.е. грубо говоря gosub goup gosub check :check if_not 808, 39 255 перейти имено на этот конкретный goup, который над check, а не вообще на goup. end_if Извиняюсь,если сильно закрутил (IMG: style_emoticons/default/smile.gif)))
|
|
|
|
DarkMaster |
18.5.2013, 9:42
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27725
Пользователь №: 11.279
|
Код if_not 808, 39 255 gosub goup gosub attack break // уровень вложенности break должен быть таким, чтобы выйти из подпрограммы end_if
вариант вообще не очень хороший, т.к. может привести к большому числу вложенных подпрограмм. Учитывая, что я не знаю что в них находится и интенсивность обработки, а так же то, что я не испытывал пилот даже на тысячу вложенных подобных итераций - использовать с осторожностью. Более корректно было бы несколько изменить логику в целом. Код gosub goup set #check 0 while #check = 0 gosub goup gosub attack end_while gosub goup gosub pick gosub pick
: if 808, 39 255 set #check 1 end_if
Вот как-то так по уму.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
йцукен |
20.5.2013, 8:59
|
Novice
Сообщений: 75
Регистрация: 15.4.2013 Группа: Пользователи Наличность: 0
Пользователь №: 15.997
|
Понял, спасибо. Добью скрипт скину код(IMG: style_emoticons/default/smile.gif) Еще такой вопрос, в скрипте есть while_not x y color Wait 2s End_while Так вот иногда скрипт пускает этот while по кругу и зависает, т.к. постоянно ждет по 2 секунды снова и снова. Что это может быть? Координаты и цвет 100% указаны верно и находятся на своих местах. (IMG: style_emoticons/default/sad.gif)
|
|
|
|
йцукен |
20.5.2013, 14:52
|
Novice
Сообщений: 75
Регистрация: 15.4.2013 Группа: Пользователи Наличность: 0
Пользователь №: 15.997
|
Понял, спасибо, буду наблюдать после чего такое случается. Может где-то что двигается(IMG: style_emoticons/default/smile.gif) И еще вопрос-пилот упорно не привязывается к Хрому. Писал и название вкладки и просто Хром, не прошло. При этом все вкладки кроме нужной закрыты и никаких других браузеров не запущено. (IMG: style_emoticons/default/sad.gif) хотя при этом всем в выборе окон в пилоте Хром и id его присутсвуют.. Может это из-за того, что название вкладки написано на русском? Можно ли как-то по Id задать привязку?
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|