|
Помогите создать скрипт |
|
|
respectman |
8.3.2018, 16:52
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
Цитата(cirus @ 8.3.2018, 16:40) Времени тратится мало, если не искать белый цвет на белом фоне. Искать надо не моба, а его имя. Или вообще квадратную скобку, в которой лвл написан. С помощью Findimage. Весь фон и левый верхний пиксель надо закрасить в один и тот же цвет (любой). Примерно так: Код 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 Надо подбирать параметры точности и погрешности в цвете. Для координат надо будет добавить смещение, чтобы кликало на моба, а не имя. Мне это еще трудно для понимания. Суть я понял, а как изобразить в коде не очень. Каким образом он найдет мне моба, если картинки будут отличиться. Т.е. моя картинка, которую он ищет будет другим цветом, что на экране. Он ничего не найдет тогда. Как я понимаю твой код: ты задал параметры поиска с координатами, ищем твою картинку, если находим, то наводим на нее курсор. Ну и далее дописать действие.
|
|
|
|
respectman |
9.3.2018, 3:04
|
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 (10390930 11441815 11971740 11177357 13744818 15325919) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) 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 (10390930 11441815 11971740 11177357 13744818 15325919) %arr) // Ищу того же моба на карте 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 (10390930 11441815 11971740 11177357 13744818 15325919) %arr) // Ищу того же моба на карте 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 (10390930 11441815 11971740 11177357 13744818 15325919) %arr) // Ищу того же моба на карте 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 |
10.3.2018, 21:03
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
Скрипт боя. Мне нужно чтобы заходя в бой пилот нажимал кнопки ударов в нужном мне порядке. Например удар Ногой в середину, Ногой в середину, Ногой вниз, Ногой в середину. После каждого удара проверял наличие окна о завершении боя и наличие самого удара. Так как есть мобы по которым удар Ногой вниз не работает (летающие мобы) и на него нажать нельзя.
Я прибегнул к команде while чтобы зациклить выполнение удара, пока не появится нужный цвет в окошке (скрин внизу). Но при завершении комбо на последнем окошке этот цвет (зеленый) не отображается, т.е. комбо сбрасывает цвета к изначальному. Мудрил мудрил и написал это:
// Запад :W left 660, 13 // Жму кнопку охота wait 5s left 1094, 350 // Жму кнопку Запад wait 500 set #a findcolor (303, 105 1046, 431 1 1 (3218822 3619943 8543389 10781183 8630648 3968383 8942523 5886340) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if drag 1054, 145 1056, 335 wait 500 set #a findcolor (303, 105 1046, 431 1 1 (3218822 3619943 8543389 10781183 8630648 3968383 8942523 5886340) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if goto N // Следующий значек на компасе // Север :N left 1112, 332 // Жму кнопку Север wait 500 set #a findcolor (303, 105 1046, 431 1 1 (3218822 3619943 8543389 10781183 8630648 3968383 8942523 5886340) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if drag 1053, 410 1055, 230 wait 1s set #a findcolor (303, 105 1046, 431 1 1 (3218822 3619943 8543389 10781183 8630648 3968383 8942523 5886340) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if goto E // Следующий значек на компасе // Восток :E left 1135, 354 // Жму кнопку Восток wait 500 set #a findcolor (303, 105 1046, 431 1 1 (3218822 3619943 8543389 10781183 8630648 3968383 8942523 5886340) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if drag 1053, 410 1055, 230 wait 500 set #a findcolor (303, 105 1046, 431 1 1 (3218822 3619943 8543389 10781183 8630648 3968383 8942523 5886340) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if goto S // Следующий значек на компасе // Юг :S left 1111, 370 // Жму кнопку Юг wait 500 set #a findcolor (303, 105 1046, 431 1 1 (3218822 3619943 8543389 10781183 8630648 3968383 8942523 5886340) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if drag 1054, 145 1056, 335 wait 500 set #a findcolor (303, 105 1046, 431 1 1 (3218822 3619943 8543389 10781183 8630648 3968383 8942523 5886340) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if goto W // Возврат на начало скрипта // Бой :Battle if 107, 235 3740699 left 115, 349 // Ногой в середину wait 1s end_if while_not 107, 352 15001511 left 115, 349 // Ногой в середину wait 1s else if 378, 366 16645113 goto W end_if end_while if 107, 235 3740699 left 115, 349 // Ногой в середину wait 1s end_if while_not 310, 427 6414376 left 115, 349 // Ногой в середину wait 1s end_while if 378, 366 16645113 goto W end_if if 107, 235 3740699 left 115, 349 // Ногой в середину wait 1s end_if while_not 348, 429 6414376 left 109, 391 // Ногой в низ wait 1s end_while if 378, 366 16645113 goto W end_if if 107, 235 3740699 left 115, 349 // Ногой в середину wait 1s end_if if 385, 429 10542847 left 115, 349 // Ногой в середину wait 1s end_if if 378, 366 16645113 goto W else goto Battle end_if
Но часто скрипт зацикливается на каком нибудь ударе и не выходит из боя и не продолжает свою работу. Может есть более простой способ все это изобразить?
Эскизы прикрепленных изображений
|
|
|
|
respectman |
13.3.2018, 2:52
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
Цитата(cirus @ 10.3.2018, 21:30) Код set #a 0 while #a = 0 // пока не найдена картинка бой окончен // тут действия для боя set #a findimage(0 0 1920 1080 (C:\Бой_окончен.bmp) %arr 2 80 1 3) // ищем картинку бой окночен end_while // т. е. выйдет из цикла только когда бой будет окончен end_script Делайте картинки скилов для удара и проверяйте доступны они или нет. Несовсем понимаю. Мне нужно чтобы проверялось и наличие удара и окно завершения боя. В моем скрипте бой циклится в поиске цвета удара, когда это уже не нужно, т.к. уже бой выигран и висит окно завершения боя. Он не дает считать цвет окна или картинку окна, ведь он зациклен и не выходит из него пока не найдет что ищет. Вот кусок моего скрипта: set $w findcolor (334, 356, 425, 369 1 1 16645113 %arr) // Уже хз что делать и решил сюда поиск окна влепить, т.е. и до и после цикла поиска удара. if $w > 1 wait 2s goto W // Иду в начало скрипта end_if wait 1s set $b 0 while $b < 1 set $b findcolor (93, 374 133, 413 7094786 %arr 2) // Собственно ищу в координатах цвет удара wait 100 end_while wait 1s if 347, 429 10542847 // Если цвет на комбо полоске серый (т.е. удар еще не бил), то жму этот удар. left %arr [1 1], %arr [1 2] wait 1s end_if set $w findcolor (334, 356, 425, 369 1 1 16645113 %arr) // Опять же ищу окно завершения боя. if $w > 1 wait 2s goto W end_if // Далее следуют другие удары, код такой же Так вот циклится скрипт и не ищет окна завершения боя, т.к. ищет цвет удара. И как его заставить проверять еще и окно (в самом цикле - чтобы постоянно проверял, не нашел цвет удара, ищи цвет окна, не нашел окна, ищи удара). А как нашел что либо одно, то выполнил действие выполнять код дальше (для выполненого удара) или вернуться на начало скрипта (если увидел окно). Пробовал ваш метод, так как по мне он даже картинку не ищет, что то не так делаю видимо.
|
|
|
|
cirus |
13.3.2018, 3:24
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26703
Пользователь №: 16.971
Возраст: 29
|
Код set #a 0 while #a = 0 // пока не найдено бой окончен // тут действия для боя set #b 0 while #b < 1 set #b findcolor (93, 374 133, 413 7094786 %arr 2) // ищу в координатах цвет удара wait 100 end_while if 347, 429 10542847 // Если цвет на комбо полоске серый (т.е. удар еще не бил), то жму этот удар. left %arr [1 1], %arr [1 2] wait 1s end_if wait 2000 // пауза, чтобы успело появится окно бой окончен
set #a findcolor (334, 356, 425, 369 1 1 16645113 %arr) // ищу окно завершения боя. // если окно найдется, то выйдет из цикла end_while end_script Код // в цикле проверяется 2 findcolor, как только какой-то цвет найден из цикла выйдет set #a 0 set #b 0 while #a = 0 and #b = 0 set #a findcolor (334, 356, 425, 369 1 1 16645113 %arr1) // ищу окно завершения боя. set #b findcolor (93, 374 133, 413 7094786 %arr 2) // ищу в координатах цвет удара wait 100 end_while if #a > 0 log Найдено завершение боя else log Найден удар end_if
|
|
|
|
respectman |
13.3.2018, 19:25
|
Neophyte
Сообщений: 15
Регистрация: 21.1.2018 Группа: Пользователи Наличность: 0
Пользователь №: 18.799
|
Разобрался, сделал, потестил - работает! Теперь осталось понять, как работает findimage и сделать чтобы пилот искал окно бота, как нашел заходил в рюкзак, искал вещь, использовал ее и продолжал свою работу. Например: бот нашел окно, закрыл его и нажал рюкзак. После выбрал в рюкзаке вкладку вещи, нажал ее, нашел из списка вещей картинку бота (картинки бота всегда разные), навел на нее мышку и нажал в правый верхний угол этой картинки. Затем в появившемся окошке нажал кнопку подтвердить использование вещи. Подтвердив использование закрывал это окошко и возвращался к работе.
Мой скрипт:
// Запад :W left 660, 13 // Жму кнопку охота wait 5s set #s findcolor (599, 270, 757, 306 8040290 %arr 2) // Ищу окошко антибота, когда нашел подаю сигнал if #s > 0 alarm end_if left 1094, 350 // Жму кнопку Запад wait 1s set #a findcolor (303, 105 1046, 431 1 1 (354 13615284 13744336 2432022) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if drag 1054, 145 1056, 335 //Перемещаю ползунок на карте, чтобы проверить другую ее часть wait 1s set #a findcolor (303, 105 1046, 431 1 1 (354 13615284 13744336 2432022) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if goto N // Следующий значек на компасе // Север :N left 1112, 332 // Жму кнопку Север wait 1s set #a findcolor (303, 105 1046, 431 1 1 (354 13615284 13744336 2432022) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if drag 1053, 410 1055, 230 //Перемещаю ползунок на карте, чтобы проверить другую ее часть wait 1s set #a findcolor (303, 105 1046, 431 1 1 (354 13615284 13744336 2432022) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if goto E // Следующий значек на компасе // Восток :E left 1135, 354 // Жму кнопку Восток wait 1s set #a findcolor (303, 105 1046, 431 1 1 (354 13615284 13744336 2432022) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if drag 1053, 410 1055, 230 //Перемещаю ползунок на карте, чтобы проверить другую ее часть wait 1s set #a findcolor (303, 105 1046, 431 1 1 (354 13615284 13744336 2432022) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if goto S // Следующий значек на компасе // Юг :S left 1111, 370 // Жму кнопку Юг wait 1s set #a findcolor (303, 105 1046, 431 1 1 (354 13615284 13744336 2432022) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if drag 1054, 145 1056, 335 //Перемещаю ползунок на карте, чтобы проверить другую ее часть wait 1s set #a findcolor (303, 105 1046, 431 1 1 (354 13615284 13744336 2432022) %arr) // Ищу цвет моба (несколько оттенков соответствующий ему, т.к. он перемещается) if #a > 0 double_left %arr [1 1], %arr [1 2] // Когда нашел его по цветам, атакую goto Battle // Бой end_if goto W // Возврат на начало скрипта // Бой :Battle //Окно окончания боя
//Первый удар set #b 0 set #w 0 while #b = 0 and #w = 0 set #b findcolor (94, 337, 141, 379 15700579 %arr 2) // Ищу цвет удара set #w findcolor (334, 356, 425, 369 16645113 %arr 2) // Ищу цвет окна окончания боя wait 10 end_while if #w > 0 // Если нашел окно, иду на менту goto H else if 271, 429 10542847 // Если нашел цвет удара, выполняю условие, чтобы ударить left 111, 353 wait 500 end_if end_if //Второй удар set #b 0 set #w 0 while #b = 0 and #w = 0 set #b findcolor (94, 337, 141, 379 15700579 %arr 2) // Ищу цвет удара set #w findcolor (334, 356, 425, 369 16645113 %arr 2) // Ищу цвет окна окончания боя wait 10 end_while if #w > 0 // Если нашел окно, иду на менту goto H else if 309, 430 10542847 // Если нашел цвет удара, выполняю условие, чтобы ударить left 111, 353 wait 500 end_if end_if //Третий удар set #b 0 set #w 0 while #b = 0 and #w = 0 set #b findcolor (93, 374 133, 413 7094786 %arr 2) // Ищу цвет удара set #w findcolor (334, 356, 425, 369 16645113 %arr 2) // Ищу цвет окна окончания боя wait 10 end_while if #w > 0 // Если нашел окно, иду на менту goto H else if 347, 429 10542847 // Если нашел цвет удара, выполняю условие, чтобы ударить left 114, 395 wait 500 end_if end_if //Четвертый удар set #b 0 set #w 0 while #b = 0 and #w = 0 set #b findcolor (94, 337, 141, 379 15700579 %arr 2) // Ищу цвет удара set #w findcolor (334, 356, 425, 369 16645113 %arr 2) // Ищу цвет окна окончания боя wait 10 end_while // Если нашел окно, иду на менту if #w > 0 goto H else if 386, 429 10542847 // Если нашел цвет удара, выполняю условие, чтобы ударить left 111, 353 wait 500 end_if end_if goto Battle :H if 237, 105 854561 // Если после боя жизней мало, ждет 10сек и возвращается к началу скрипта wait 10s else goto W end_if
|
|
|
|
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|