|
Помогите создать скрипт |
|
|
respectman |
6.3.2018, 21:04
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
Еще задался вопросом, как заставить пилот считывать текст/цифру в игре.
Допустим, игра в "21". Мой скрипт:
в этой строке возможно надо вписать команду N if_not 384, 420 15116953 // ищу игру по цвету left 384, 420 // нажимаю играть wait 3s // джу начало игры в этой строке возможно надо вписать команду else goto N (если я правильно понимаю, чтобы он просматривал цвет в координатах пока не появится нужный цвет) end_if if 400, 384 65605 // здесь по цвету координаты определяю ставку left 400, 384 // нажимаю ставку wait 3s // жду начало игры end_if -------------на этом этапе нужно определить какое кол-во очков выпало и соответственно после определения добрать карту или передать ход противнику. Цифры пишутся просто в тексте они не в картинке (если это важно конечно). left 483, 342 // просто жму "передать ход" wait 3s // жду окончания игры left 803, 308 // нажимаю кнопку закрыть игру wait 3s // жду и начинаю скрипт заново
Помогите доделать скрипт, чтобы работал как часы. Заранее благодарен!
|
|
|
|
respectman |
7.3.2018, 18:55
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
Вот что у меня получилось:
showwindow windowhandle minimize :start if_not 384, 420 15116953 left 384, 420 wait 1s else goto start end_if :A if 400, 384 65605 left 400, 384 wait 1s else goto A end_if :C double_kleft 560, 264 wait 300 sendex ^c wait 200 get clipboard $a if $a > 10 left 483, 342 wait 1s else if $a < 10 left 464, 302 wait 300 left 502, 455 goto C end_if end_if :B if 781, 303 65944 left 803, 308 wait 1s else goto B end_if
Однако, скрипт читает цифру сравнивает ее с 10 и пропускает ход и не выполняет условие под else. Мне нужно, чтобы он сравнивал. Например: Сейчас выделеное число 12, пропустить ход. Следующая игра число 9, оно меньше 10 значит нужно добрать карты выполнив клики, после чего проверить опять получившееся число и снова определить оно больше 10 или меньше. Если меньше то добираем еще, если больше то пропускаем. Помоги подредактировать, я чую на правильном пути, только не правильно условия ставлю.
|
|
|
|
respectman |
7.3.2018, 19:14
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
showwindow windowhandle minimize :start if_not 384, 420 15116953 left 384, 420 wait 1s else goto start end_if :A if 400, 384 65605 left 400, 384 wait 1s else goto A end_if :C double_kleft 560, 264 wait 300 sendex ^c wait 200 get clipboard $a log $a if $a > 10 left 483, 342 wait 1s end_if log $a if $a < 10 left 464, 302 wait 3s left 502, 455 wait 3s else goto C end_if :B if 781, 303 65944 left 803, 308 wait 1s else goto B end_if
Вроде нашел ошибку. Работает условия выполняет. Правда не могу понять, он будет перескакивать на :В, если нужно будет еще добрать или он по новой крутит скрипт сначала, а как дойдет до проверки числа, так и выберет. Скорость работы снижается. Буду тестить.
|
|
|
|
respectman |
7.3.2018, 20:02
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
showwindow windowhandle minimize :start if_not 384, 420 15116953 left 384, 420 wait 1s else goto start end_if :A if 400, 384 65605 left 400, 384 wait 1s else goto A end_if wait 1s :C double_kleft 560, 264 wait 1s sendex ^c wait 500 get clipboard $a log $a if $a > 10 left 483, 342 wait 1s else left 464, 302 wait 1s left 502, 455 wait 1s goto C end_if :B if 781, 303 65944 left 803, 308 wait 1s else goto B end_if
Поменял на это, все равно порой проскакивает и вместо добора пропускает ход, не пойму почему.
|
|
|
|
respectman |
8.3.2018, 4:26
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
Создал скрипт для игры, но он очень долго (не точно - моб на карте есть, а он не нападает, думаю связано с цветом он его не видит) ищет моба, как его ускорить и сделать поиск быстрее и точнее? Еще бы скроллил карту, цены ему не было.
// Запад :W left 660, 13 // Жму кнопку охота wait 5s left 1094, 350 // Жму кнопку Запад wait 1s set #a findcolor (305, 121 1039, 442 1 1 (10455719 11835541 8812667 10389382 9400502) %arr 1) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой else goto N // Следующий значек на компасе end_if // Север :N left 1112, 332 // Жму кнопку Север wait 1s set #a findcolor (305, 121 1039, 442 1 1 (10455719 11835541 8812667 10389382 9400502) %arr 1) // Ищу того же моба на карте if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой else goto E // Следующий значек на компасе end_if // Восток :E left 1135, 354 // Жму кнопку Восток wait 1s set #a findcolor (305, 121 1039, 442 1 1 (10455719 11835541 8812667 10389382 9400502) %arr 1) // Ищу того же моба на карте if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой else goto S // Следующий значек на компасе end_if // Юг :S left 1111, 368 // Жму кнопку Юг wait 1s set #a findcolor (305, 121 1039, 442 1 1 (10455719 11835541 8812667 10389382 9400502) %arr 1) // Ищу того же моба на карте if #a > 0 double_left %arr [1 1], %arr [1 2] goto Battle else goto W // Возвращаюсь к началу охоты end_if // Бой :Battle if_not 112, 201 14543521 left 112, 201 else goto EXIT end_if // Выход :EXIT if_not 378, 366 15459022 goto Battle else goto W end_if
|
|
|
|
respectman |
8.3.2018, 16:16
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
Игра COSMICS: Галактические войны
По суте тот же двар, только в футуристичном стиле.
Нужно придумать сюда хороший скрипт на охоту и собирательство. Однако, у игры есть антибот - после охоты или сбора ресов тебе в мешок дают вещь "антибот" юзаешь ее и снова можешь копать и бить мобов. Насчет антибота пока ничего не предумал, т.к. чтобы использовать его в мешке надо навести на нее курсор и в правом верхнем углу вещи появится значок использования (так все вещи используются). Плюс когда антибот в мешке то нажимая охоту выскакивает окно с сообщением о необходимости зайти в мешок и использовать антибот.
Скрипт желательно нужен с отслеживанием хп и ожиданием его восстановления. Сложность в отслеживании хп - если после боя нажимать "охота", то полоска не заполняется, нужно обязательно заходить в мешок, потом в охоту снова и уже отслеживать (думаю трабл браузера). С этим поконопатиться и решить не трудно.
Трудность в выборе моба, они перемещаются и для каждого нужно искать цвета. Как я понял чем больше цветов, тем выше шанс найти его на карте, но тем больше времени он тратит на это. Может есть функция искать цвет не только под курсором в точке, а немножко в большей области, например в окружности?
Нужно облегчить скрипт, чтобы все происходило гораздо быстрее.
Эскизы прикрепленных изображений
|
|
|
|
cirus |
8.3.2018, 16:40
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26744
Пользователь №: 16.971
Возраст: 29
|
Цитата но тем больше времени он тратит на это. Времени тратится мало, если не искать белый цвет на белом фоне. Искать надо не моба, а его имя. Или вообще квадратную скобку, в которой лвл написан. С помощью Findimage. Весь фон и левый верхний пиксель надо закрасить в один и тот же цвет (любой). Примерно так:
1.bmp ( 1,88 килобайт )
Кол-во скачиваний: 197Код set #a findimage(0 0 1920 1080 (C:\Users\abc\Desktop\1.bmp) %arr 2 70 -1 10) hint size(%arr) // найдено картинок if size(%arr) > 0 move %arr[1 1] %arr [1 2] // первая найденная картинка end_if end_script Надо подбирать параметры точности и погрешности в цвете. Для координат надо будет добавить смещение, чтобы кликало на моба, а не имя.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|