|
|
|
UOpilot и ставки в онлайн браузере |
|
|
cirus |
25.10.2017, 15:26
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26703
Пользователь №: 16.971
Возраст: 29
|
Цитата Как прописать копирование в заданных координатах? Выделяем число двойным кликом и нажимаем Ctrl + C, либо тоже самое мышкой. Код // копируем число в буфер, написать нужные действия get clipboard $a // получили число в переменную // копируем второе число в буфер, написать нужные действия get clipboard $b // получили число в переменную // дальше их сравниваем Цитата И будет ли пилот сравнивать дробные числа с . по середине? Каким образом это лучше сделать? Обязательно сравнивать дробную часть? Если нет, можно её отбросить: Код // пример set $a 100.5 set $b 101.67 set $a string_replace ($a "." ",") // заменяем точку на запятую, иначе не будет работать trunc set $b string_replace ($b "." ",")
log trunc($a) trunc($b) if trunc($a) < trunc($b) // теперь можно сравнить, если $a меньше $b // какие-то действия end_if end_script Если надо сравнивать и дробную часть, то придётся дописывать.
|
|
|
|
Levo223 |
25.10.2017, 15:46
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Цитата(cirus @ 25.10.2017, 15:26) Выделяем число двойным кликом и нажимаем Ctrl + C, либо тоже самое мышкой. Код // копируем число в буфер, написать нужные действия get clipboard $a // получили число в переменную // копируем второе число в буфер, написать нужные действия get clipboard $b // получили число в переменную // дальше их сравниваем Обязательно сравнивать дробную часть? Если нет, можно её отбросить: Код // пример set $a 100.5 set $b 101.67 set $a string_replace ($a "." ",") // заменяем точку на запятую, иначе не будет работать trunc set $b string_replace ($b "." ",")
log trunc($a) trunc($b) if trunc($a) < trunc($b) // теперь можно сравнить, если $a меньше $b // какие-то действия end end_script Если надо сравнивать и дробную часть, то придётся дописывать. Дробная часть не влияет, но как сравнивать если, к примеру, будет 3х значное число? Заранее прописывать длину Она не копирует те цифры, нужно провести левой кнопкой мыши нажатой по горизонтали чтобы выделить N знаков от точки X Y, до точки X2 Y, а затем уже нажать ПКМ или скопировать Ctrl+c, но если я проведу и зацеплю точку в двухзначном, в 3х значном это будет еще один символ до точки
|
|
|
|
Levo223 |
25.10.2017, 16:06
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Цитата(cirus @ 25.10.2017, 15:26) Код // пример set $a 100. set $b 101.
Тут число само пропишется, или надо его для каждой ставки отдельно указывать? получилось вот таким образом Код left_down 424, 384 abs Move 548, 384 abs left_up ctrl+c // копируем число в буфер get clipboard $a // получили число в переменную left_down 621, 384 abs Move 713, 384 abs left_up Ctrl+c // копируем второе число в буфер get clipboard $b // получили число в переменную // дальше их сравниваем СРАВНИВАЕМ ВСЁ ЧТО ДО ТОЧКИ. КАК ЭТО СДЕЛАТЬ? set $a 100. //Откуда эти числа берутся? set $b 101. set $a string_replace ($a "." ",") // заменяем точку на запятую, иначе не будет работать trunc Допустим можно вобще после точки не сравнивать, тогда что-то нужно убрать? set $b string_replace ($b "." ",")
log trunc($a) trunc($b) if trunc($a) < trunc($b) // теперь можно сравнить, если $a меньше $b kleft 37, 190 abs // закрыть архив Breack // какие-то действия продолжить скрипт с начала полагаю, НО КАКОЙ ИЗ НИХ НАЧНЁТСЯ С НАЧАЛА? просто продолжить выполнение скрипта тогда Breack не писать? end end_script продолжить выполнение скрипта после if trunc($a) < trunc($b) // разве не надо end_if ставить? что-то не так... Код 20:41:12 15 (autosaved_15.txt, 2): left_up - (2): Ошибка! Проверьте правильность скрипта! EConvertError '' is not a valid integer value left_up 20:41:44 15 (autosaved_15.txt, 3): ctrl+c - Неопознанная команда: ctrl+c 20:52:19 16 (autosaved_16.txt, 0): drag - (0): Ошибка! Проверьте правильность скрипта! EConvertError 'abs' is not a valid integer value drag 424 384 abs 548 384 abs 20:53:01 16 (autosaved_16.txt, 0): drag - (0): Ошибка! Проверьте правильность скрипта! EConvertError 'abs' is not a valid integer value drag 426, 385 abs 532, 384 abs
Sendex ^c не работает Код set $a 424 292 539 292 //координаты заданы строковой переменной drag $a // так наполовину работает Right 539 292 // нажимается ПКМ открывается окно wait 1000 set clickoffsetx 5 // смещение для координаты X set clickoffsety 5 // смещение для координаты Y left 539 292 // клик в координаты 539 292 и ничего не происходит. Вместо копирования становится активной панель задач End_script
Как сместить то после Right курсор вправо вниз чтобы нажать скопировать? Там другое окно поидее
|
|
|
|
Levo223 |
26.10.2017, 7:09
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Цитата(cirus @ 26.10.2017, 2:24)
showwindow windowhandle MINIMIZE // свернуть пилот
Так, теперь копирует но я не до конца понял, откуда берутся вот эти вот а и б двойной клик тоже выделяет set $a set $b Я должен задавать их или что? Каждый раз по новой писать? или это автоматическое значение каждый раз для выделенного/скопированного? Left_up не нужен, работает Код set $a 424 292 539 292 drag $a wait 300
Или эта переменная в дальнейшем в коде помешает? Если есть в drag $a и есть в set $a string_replace ($a "." ",") set $b string_replace ($b "." ",") Они потом столкнутся лбами? Да или что? ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Ну вот я сделал его Код double_left 440, 388 abs wait 300 showwindow windowhandle MINIMIZE // свернуть пилот wait 1000 Sendex ^c get clipboard $a // получили число в переменную double_left 633, 383 abs wait 1000 Sendex ^c get clipboard $b // получили число в переменную // дальше их сравниваем СРАВНИВАЕМ ВСЁ ЧТО ДО ТОЧКИ? КАК ЭТО СДЕЛАТЬ? set $a set $b set $a string_replace ($a "." ",") // заменяем точку на запятую, иначе не будет работать trunc set $b string_replace ($b "." ",")
log trunc($a) trunc($b) if trunc($a) < trunc($b) // теперь можно сравнить, если $a меньше $b kleft 37, 190 abs // закрыть архив // какие-то действия продолжить скрипт с начала полагаю, НО КАКОЙ ИЗ НИХ НАЧНЁТСЯ С НАЧАЛА? Просто продолжить выполнение скрипта. end_if end_script
только получилось что не тыкает по kleft 37, 190 abs по итогу сравнения т.е. или не работает сравнение или я что-то не так написал вот это выдаёт 13:21:07 2 (autosaved_19.txt, 16): -1 -1 13:24:53 2 (autosaved_19.txt, 16): -1 -1 Надо целое число сравнить, а не то что после точки. После точки пошло оно на..р Помимо этого следующий вопрос: Как пилот ловит окна в фоновом режиме, где-то сзади стоящие неактивные, по ID или чему-там еще. И считывает текст который там написан. А потом закрывает это окно?
|
|
|
|
Levo223 |
26.10.2017, 13:48
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Цитата(cirus @ 26.10.2017, 11:15) Толку не будет от того что вы дописываете то, чего нет ни в одном примере. Где вы это взяли? Убрать.
Мне здесь подумалось, нет ли в пилоте например функции которая позволила бы переходить к строке с №, для облегчением всех этих прыжков от одного массива к другому? Например у меня при сравнении чисел ставится необходимость вернуться к строке скрипта в котором были прописаны действия при нахождении "серого" окна, как это можно сделать? Более интуитивно бы понятно было Я что-то читал про массивы и циклы, но не пойму зачем такая сложность когда можно указать просто номер строки... Вот этот весь массив у меня, как на него сослаться, чтобы повторить действия при сером окне - включая счётчик переменных? Код if #grey > 0 // если найдено серое окно kleft 1256 126 // клик в строку куда прописывать значение, указать нужные координаты wait 500 send backspace // нажать баксп 5 раз send backspace send backspace send backspace send backspace wait 10 set #count #count + 1 // переменная-счётчик if #count > size(%num) // если переменная-счётчик больше, чем размер массива num break // break - сначала, end_script остановить скрипт, тут что делать если достигнута максимальная ставка // сейчас остановка скрипта, чтобы не было ошибки при выходе за пределы массива end_if set #summa %num [#count] // присваиваиваем переменной значение из массива log Текущая ставка #summa send #summa // напечать сумму Double_left 1247 68 // двойной клик в сторону wait random(2500) +3000 log #count #summa
|
|
|
|
Levo223 |
26.10.2017, 14:34
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Беда Прописываю Еще одно if Код if trunc($a) < trunc($b) // сравниваем 2 ВЫИГРЫШ Kleft 37 188 abs wait 100 kleft 1256 126 // клик в строку куда прописывать значение, указать нужные координаты wait 500 send backspace // нажать баксп 5 раз send backspace send backspace send backspace send backspace wait 10 set #summa 100 set #count 100 // сбрасываем счётчик на 0, т. е. ставки начнутся заново send #summa // напечатать сумму Double_left 1247 68 wait random(2500) +3000 // действия end_if для сравнения ситуации равенства или меньше и ничего не происходит. Выполняется только первый Trunc. Или я запутался в закрытии End_if, сколько их вообще в одном скрипте возможно? Или лучше как-то в одном прописать > < = ? или для каждого trunc нужно копировать в своём массиве If... ?
|
|
|
|
cirus |
26.10.2017, 15:42
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26703
Пользователь №: 16.971
Возраст: 29
|
Цитата Вот этот весь массив у меня Это не массив, а часть кода. Цитата и ничего не происходит. Значит условие не является истиной. Выводите в лог значения переменных, тогда будет понятнее почему не выполняется условие. Код log $a $b log trunc($a) trunc($b) if trunc($a) < trunc($b) // нужные действия end_if Цитата Или я запутался в закрытии End_if, сколько их вообще в одном скрипте возможно? Количество end_if равно количеству if. В одном скрипте условий может быть хоть сколько. Цитата нет ли в пилоте например функции которая позволила бы переходить к строке с № Допустим была бы, дописали 1 строчку в начало скрипта, весь скрипт сместился и уже перейдёт не туда куда надо. Пока такой переход один ещё можно проследить логику скрипта, когда таких переходов будет больше, уже не понять что и в каком порядке работает.
|
|
|
|
Levo223 |
26.10.2017, 20:13
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Цитата(cirus @ 26.10.2017, 15:42) Это не массив, а часть кода. Код log $a $b log trunc($a) trunc($b) if trunc($a) < trunc($b) // нужные действия end_if Как мне написать последовательную проверку if trunc($a) < trunc($b) действия set #summa 100 set #count 100 // сбрасываем счётчик на 0, т. е. ставки начнутся заново if trunc($a) = trunc($b) return к повтору последних действий перед началом сравнений if trunc($a) > trunc($b) возврат к "серому окну" Одна из них проводится, на этом скрипт заканчивается и больше не идёт! Застопоривается на end_script ,хотя раньше через него проходило В логах ничего нету Код 23:59:05 21 (Сравнение.txt, 92): -1 -1 23:59:05 21 (Сравнение.txt, 114): 23:59:05 21 (Сравнение.txt, 115): -1 -1
|
|
|
|
Levo223 |
27.10.2017, 5:33
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Цитата(cirus @ 27.10.2017, 2:17) Во-первых, где код. Во-вторых, переменные $a и $b содержат -1, а должны содержать скопированное число.
Откуда я знаю почему оно не копирует. Вы же мне дали такой код - Код set #summa 100 // начальная ставка init_arr %num 250 625 1526 3815 9700 24414 62500 set #count 0
while 1 = 1 set #grey 0 set #yellow 0 while #grey = 0 and #yellow = 0 // ждём пока не появится серое или жёлтое окно set #grey findcolor(111, 397 350, 567 1 1 5130825 %arr) set #yellow findcolor(111, 397 350, 567 1 1 4709887 %arr) wait 100 end_while
if #grey > 0 // если найдено серое окно kleft 1256 126 // клик в строку куда прописывать значение wait 500 send backspace // нажать баксп 5 раз send backspace send backspace send backspace send backspace wait 10 set #count #count + 1 // переменная-счётчик if #count > size(%num) // если переменная-счётчик больше, чем размер массива num break // break - сначала, end_script остановить скрипт, тут что делать если достигнута максимальная
ставка // сейчас остановка скрипта, чтобы не было ошибки при выходе за пределы массива end_if set #summa %num [#count] // присваиваиваем переменной значение из массива log Текущая ставка #summa send #summa // напечать сумму Double_left 1247 68 // двойной клик в сторону wait random(2500) +3000 send R log #count #summa wait 200 else // иначе, т. е. найдено жёлтое окно Kleft 37 188 abs wait 500 kleft 261 178 abs wait 500 double_left 440, 388 abs wait 300 showwindow windowhandle MINIMIZE // свернули пилот wait 1000 Sendex ^c get clipboard $a // получили число а в переменную double_left 633, 383 abs wait 1000 Sendex ^c get clipboard $b // получили число в переменную, Число не получается, хотя при ручной вставке обнаруживается что оно скопировано в буфер // дальше их сравниваем СРАВНИВАЕМ ВСЁ ЧТО ДО ТОЧКИ set $a set $b set $a string_replace ($a "." ",") // заменяем точку на запятую, иначе не будет работать trunc set $b string_replace ($b "." ",") log $a $b log trunc($a) trunc($b) if trunc($a) > trunc($b) // сравниваем 1 ПРОИГРЫШ wait 100 Kleft 35 101 wait 100 kleft 1256 126 // клик в строку куда прописывать значение, указать нужные координаты wait 500 send backspace // нажать баксп 5 раз send backspace send backspace send backspace send backspace wait 10 set #count #count + 1 // переменная-счётчик if #count > size(%num) // если переменная-счётчик больше, чем размер массива num break // break - сначала, end_script остановить скрипт, тут что делать если достигнута максимальная
// действия set #summa %num [#count] // присваиваиваем переменной значение из массива log Текущая ставка #summa send #summa // напечать сумму Double_left 1247 68 // двойной клик в сторону wait random(2500) +3000 send R log #count #summa wait 200
end_if end_if set $a set $b set $a string_replace ($a "." ",") // заменяем точку на запятую set $b string_replace ($b "." ",") log $a $b log trunc($a) trunc($b) if trunc($a) < trunc($b) // сравниваем 2 ВЫИГРЫШ Kleft 35 101 wait 100 kleft 1256 126 // клик в строку куда прописывать значение, указать нужные координаты wait 500 send backspace // нажать баксп 5 раз send backspace send backspace send backspace send backspace wait 10 set #summa 100 set #count 100 // сбрасываем счётчик на 0, т. е. ставки начнутся заново send #summa // напечатать сумму Double_left 1247 68 wait random(2500) +3000 // действия end_if set $a set $b set $a string_replace ($a "." ",") // заменяем точку на запятую set $b string_replace ($b "." ",") log $a $b log trunc($a) trunc($b) if trunc($a) = trunc($b) // сравниваем 3 РАВЕНСТВО Kleft 35 101 wait 100 Send Q // какое-то действие wait 100 end_if end_script end_if end_while
|
|
|
|
Levo223 |
28.10.2017, 14:05
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Цитата(cirus @ 27.10.2017, 10:22) Для кого я это пишу? Что не понятного в слове убрать?
Я пишу пример как можно что-то сделать, как его применять, где использовать и дорабатывать ваше дело.
end_script - конец скрипта. По сути остановить скрипт. Удивительно почему дальше скрипт не работает?
Да спасибо, теперь вроде бы всё Еще как можно прописать команду которая бы возвращала после всех манипуляций активное окно перед тем как было активировано данное окно. Если они не свёрнуты но перекрыты?
|
|
|
|
Levo223 |
29.10.2017, 14:14
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Цитата(cirus @ 28.10.2017, 19:35) Как вернуться к началу If? Если этих If много, а мне нужен именно один из них? Т.е. что отличает команду End_if с продолжением выполнения цикла ниже, от команды возврата к началу этого If пока что-то не выполнено?
|
|
|
|
Levo223 |
29.10.2017, 21:22
|
Novice
Сообщений: 61
Регистрация: 8.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.638
Возраст: 23
|
Так у меня затруднение какое-то получилось. мне нужно выйти за пределы цикла и написать возврат к нему ниже. Не буду же я копировать одно и тоже по 100 раз. Вот почему и говорю что возврат к строке или переменной с Уникальным номером было бы естественным выходом из порочных дъявольских кругов цикличности. Тот кто изобрёл программирование был... мазохист. wile 1=1 (#A) бла бла if = 1 Тут надо писать end_if ? Или как мне вывести за пределы этого цикла условие если if не равно 1 end_while (то есть начать цикл заново) else (это же относится к началу if, будет ли оно в таком случае работать)-- в противном случае те же действия что в общем цикле но по ходу их выполнения может возникнуть необходимость несколько раз вернуться к циклу #А Графически объясню что я хочу потому что на словах не очень (IMG:https://preview.ibb.co/jTQ8RR/image.jpg) Вот во вторых квадратиках у меня может содержаться то, что уже сделано в первых, и как мне сослаться на решение в первых чтобы не писать его по 100 раз в тех что будут после него? В природе всё гораздо проще - решает сила а не переменные)
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|