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

8 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Помогите организовать скрипт
йцукен
сообщение 15.4.2013, 12:20
Сообщение #1


***

Novice
Сообщений: 75
Регистрация: 15.4.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.997



Всем добрый день, прошу подсказать какими средствами (либо по цвету, либо по картинкам либо еще как) лучше все что описано ниже сделать что бы скрипт работал как часики ибо там нужно будет оооочень много требоваться от него. Объясню кратко суть

Задача такова:
Есть 3д лабиринт, перемещение осуществляется путем нажатия левой кнопки мышки по стрелкам на компасе по постоянному маршруту вперед-назад-влево-вправо, задержка между перемещением рандомная,но не более 1-2 сек, тут все понятно, кликаем нужную сторону после каждого клика ждем 2-3 сек (и сразу тут вопрос - стоит ли делать скрипт кликами либо же привязать к findimage и забить туда стрелки компаса?). Помимо этого, иногда в игре есть глюки, нужно как-то проверить - действительно ли перемещение произошло, но не знаю как это лучше всего сделать ибо бывают участки на которых картинка при перемещении не меняется либо меняется на долесекунды, и если в таком случае скрипт будет идти по прописаному маршруту а в одной точке не пройдет вперед скажем, а посчитает что прошел-он же уйдет в даун, я правильно понимаю? Можно это как-то решить?

По мере движения по лабиринту в определенных местах появляются монстры, если жизни не красного цвета - нужно на них нападать. Тут тоже понятно, задать для точки на полосе НР color желтый, если не соответствует, то лечим себя нажатием на зелье в уголке, а потом аж нападаем, уже готовый скрипт их убивает. После этого нужно проверить, выпало ли что-то из монстра в той клетке, на которой он стоял, если да, то собрать. И вот тут тоже проблема, как лучше всего проверять дроп - там есть картинка и текст и цвет в точках другой но всегда разный, как лучше в этом моменте все организовать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.4.2013, 12:30
Сообщение #2


***********

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



Цитата
и сразу тут вопрос - стоит ли делать скрипт кликами либо же привязать к findimage и забить туда стрелки компаса?

Очень странная формулировка. Воздух - это газ, или мы им дышим?
Проверки в любом случае делать надо. Ифы/финдимиджи/колоры зависит от ситуации. В целом, если возможно, я предпочитаю эмуляцию клавиатуры - меньше проблем.
Цитата
а посчитает что прошел-он же уйдет в даун, я правильно понимаю? Можно это как-то решить?

Для начала сесть и подумать как ВЫ определяете лаганула игра или нет. Выписать эти признаки на бумажку. Потом подумать как это будет выглядеть в коде.

Цитата
там есть картинка и текст и цвет в точках другой но всегда разный, как лучше в этом моменте все организовать?

Иногда проще не проверять наличие дропа, а просто сделать несколько попыток подобрать. Можно попробовать отследить фон поверхности, zeleax писал специальную программу Unique Searsh Color для подобных целей. Она есть в полезных советах.


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


***

Novice
Сообщений: 75
Регистрация: 15.4.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.997



DarkMaster,
понял спс. А такой вопрос, можно ли как-то привязать к переменным маршрут, т.е. допустим на одну переменную задать скажем координаты стрелки вперед, на другую переменную - стрелки назад и потом уже в самом скрипте делать проверки цвета,текста,дропа и т.д. ифами и если все ок, то прописывать нужную переменную с нужным направлением движения?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.4.2013, 17:18
Сообщение #4


***********

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



Ну задаете переменной необходимое значение да и все. Единственное лучше координаты x и y в разные переменные запихать.


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


***

Novice
Сообщений: 75
Регистрация: 15.4.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.997



Спасибо!
Но у меня вопрос, немного не понял что именно имеется ввиду под "координаты x и y в разные переменные запихать". Это как?(IMG:style_emoticons/default/smile.gif)
Я думал присвоить одной переменной координаты х и у . Что я неправильно собираюсь делать?(IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.4.2013, 4:39
Сообщение #6


***********

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



одной переменной операторы в большинстве не скушают, разве что иф умеет. Так же как вы собрались присвоить значение переменной слепив в ней обе координаты, так присвойте их раздельно...
set #x 123
set #y 321


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


***

Novice
Сообщений: 75
Регистрация: 15.4.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.997



Спасибо, попробую.
И еще вопрос, есть такая проблема - в определенное время каждую минуту сервер подвисает на несколько секунд, в самой игре есть часы, но они на флеше.. Как можно сделать что бы скрипт перед каждым действием проверял время по этим часам и если там будут значения например 15, 16, 17, 18 - он ждал 10 сек? Только через файндимидж?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 26.4.2013, 20:44
Сообщение #8


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



findimage/findcolor - смотря что за картинка на часах


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 27.4.2013, 11:53
Сообщение #9


***********

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



можно в принципе использовать для ориентира локальное время на вашем компьютере. Переменные hour, min, sec к вашим услугам.


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


***

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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
йцукен
сообщение 17.5.2013, 14:57
Сообщение #11


***

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)))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.5.2013, 15:57
Сообщение #12


***********

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



ниче не понял. У вас несколько подпрограмм с одинаковыми названиями? Если я прав, то так делать не стоит. Совсем не стоит.


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


***

Novice
Сообщений: 75
Регистрация: 15.4.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.997



Нет,сейчас объясню детальнее, кусок скрипта, допустим:
gosub goup
gosub goup
gosub attack


в :attack прописана проверка цвета:
if_not 808, 39 255
и вот тут нужно отправить скрипт на шаг выше, т.е. на gosub goup (выделил жирным) который находится над gosub attack, т.е. как бы дать скрипту понять, что ему нужно повторить предыдущий шаг
end_if
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.5.2013, 9:42
Сообщение #14


***********

Модератор 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____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
йцукен
сообщение 19.5.2013, 15:50
Сообщение #15


***

Novice
Сообщений: 75
Регистрация: 15.4.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.997



Спасибо, только не совсем понял,куда для правильной работы нужно зашивать

Код
if   808, 39 255
     set #check 1
end_if


В attack? Тогда он почему-то перепрыгивает условие и не выполняет его, хотя if координаты цвет и set #check 1 прописаны верно
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
йцукен
сообщение 19.5.2013, 17:03
Сообщение #16


***

Novice
Сообщений: 75
Регистрация: 15.4.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.997



Пробовал и в goto ставить - тоже по кругу идет
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.5.2013, 17:28
Сообщение #17


***********

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



Цитата
В attack

туда

чтобы понять в чем проблема, надо видеть код. вообще склрее всего просто точка в if задана ошибочно.


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


***

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)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.5.2013, 9:01
Сообщение #19


***********

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



Цитата
Координаты и цвет 100% указаны верно и находятся на своих местах.

Значит неверно (IMG:style_emoticons/default/smile.gif) Цвет может чуть-чуть изменятся. Так же возможно отсутствует привязка/сменился хендл.


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


***

Novice
Сообщений: 75
Регистрация: 15.4.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.997



Понял, спасибо, буду наблюдать после чего такое случается. Может где-то что двигается(IMG:style_emoticons/default/smile.gif)

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

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

 

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