|
Набор случайного числа |
|
|
31ost |
9.2.2018, 2:37
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Здравствуйте. Мои познание в написании скриптов - 0 Скрипт для игры написан на аукцион в который выставляет товар по заданному числу в скрипте, часто нужно менять эту цену для разных целей и приходится постоянно редактировать цифру. Не могу понять как сделать, чтобы скрипт сам менял цифру. Пример: От 5000 до 5200 000-200 случайное число на каждый новый выставленный товар или От 5100 до 5199 100-199 случайное число на каждый новый выставленный товар или От 5190 до 5199 0-9 случайное число на каждый новый выставленный товар Подскажите пожалуйста, как и что и куда (IMG: style_emoticons/default/smile.gif) Код sendex ^ // зажать шифт kright_down 1679, 710 abs // 5тый слот вниз kright_up 1513, 756 abs sendex {End} // отжать шифт send 2 // количество send Enter // Ok kleft 968, 864 abs // клик в цену send 9556 // ЦЕНА wait 1 set MouseClickDelay 120 left 972, 944 abs // создать wait 1 kleft 1187, 776 abs // Ok wait 320
|
|
|
|
31ost |
9.2.2018, 2:55
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Прошу удалить тему, до меня дошло как нужно работать с set (IMG: style_emoticons/default/smile.gif) Код sendex ^ // зажать шифт kright_down 1679, 710 abs // 5тый слот вниз kright_up 1513, 756 abs sendex {End} // отжать шифт send 2 // количество send Enter // Ok kleft 968, 864 abs // клик в цену set #b 9000 + random (10) send #b wait 1 set MouseClickDelay 120 left 972, 944 abs // создать wait 1 kleft 1187, 776 abs // Ok wait 320
|
|
|
|
31ost |
2.5.2018, 14:29
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Здравствуйте. Вопрос 1: Не могу сообразить, как добавить рандомность чисел к prompt Было так //set #cena 90+ random (10) Скрипт
Код set promptpos_x 1168 set promptpos_y 284 set $cena prompt (Цена) set #Game FindWindow (Game) set workwindow #Game kleft 672, 321 wait 11 //set #cena 90 + random (10) // До prompt repeat 28 kleft_down 1057, 264 move 885, 216 kleft_up 885, 217 send 1 // количество send Enter kleft 408, 379 send $cena // цена wait 280 :1 kleft 410, 450 set #a findcolor (633, 240 633, 240 (4556320) %arr) if #a > 0 kleft 619, 230 send esc send b goto 1 end_if set #1 findcolor (561, 327 561, 327 (3376641) %arr) set #2 findcolor (248, 459 248, 459 (2891275) %arr) if #1 or #2 > 0 send esc send esc send b send v wait 110 kleft 391, 85 end_if wait 150 end_repeat Вопрос 2: Как с помощью prompt сделать три варианта выбора в Количество 1 5 10 и чтобы он его запомнил и использовал в скрипте. До меня до сих пор не доходит как работать с массивами и сохранять и загружать из .txt (IMG: style_emoticons/default/biggrin.gif)
|
|
|
|
cirus |
2.5.2018, 14:47
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26540
Пользователь №: 16.971
Возраст: 29
|
Цитата как добавить рандомность чисел к prompt Код set $cena prompt (Цена) if is_real($cena) = 1 // если введено число set #cena $cena + random (10) log #cena end_if end_script Цитата Как с помощью prompt сделать три варианта выбора в Количество 1 5 10 Код init_arr %arr 1 5 10 set $str "Выбрать количество" set #a prompt(!$str 1 5 10) // в #a запишется номер выбора log %arr[#a] // по этому номеру обращаемся к соответствующему элементу массива end_script Цитата не доходит как работать с массивами и сохранять и загружать из .txt Примеры есть тут: http://uopilot.tati.pro/index.php?title=Load_array, http://uopilot.tati.pro/index.php?title=Save_arrayЧто нужно сделать?
|
|
|
|
31ost |
2.5.2018, 15:31
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Код set $cena prompt (Цена) if is_real($cena) = 1 // если введено число set #cena $cena + random (10) log #cena end_if end_script Спасибо. Только вот рандомит и запоминает 1 раз, а нужно допустим 18 раз при этом не высвечивать эту табличку с повторным вводом числа (IMG: style_emoticons/default/smile.gif) А я неправильно написал скрипт, было по другому - не было Повтора т.е. set #cena 90 + random (10) был в повторе
|
|
|
|
31ost |
2.5.2018, 15:49
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Цитата(DarkMaster @ 2.5.2018, 15:39) Вы сами поняли, что написали?
Скрипт выполняется 18-30 раз и каждый раз рандомит от 293 до 295 Мой первый пример показывает, что он не выполняет Повтор рандома. Ниже скрипт хотел переделать под Prompt и сразу его написал выше. Скрипт
Код set workwindow windowfromcursor set #b 293 + random (3) kleft_down 1106, 217 move 885, 218 kleft_up 884, 219 send 1 // количество send Enter kleft 409, 379 send #b wait 280 :1 kleft 410, 457 set #a findcolor (633, 240 633, 240 (4556320) %arr) if #a > 0 kleft 619, 230 send esc send b goto 1 end_if set #1 findcolor (561, 327 561, 327 (3376641) %arr) set #2 findcolor (248, 459 248, 459 (2891275) %arr) if #1 or #2 > 0 send esc send esc send b send v wait 110 kleft 391, 85 end_if wait 150
|
|
|
|
31ost |
2.5.2018, 16:00
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Всё разобрался (IMG: style_emoticons/default/smile.gif) долго доходит (IMG: style_emoticons/default/biggrin.gif) Благодарю за помощь. О массивах потом напишу (IMG: style_emoticons/default/smile.gif) Скрипт
Код set promptpos_x 1047 set promptpos_y 334 set $cena prompt (Цена) set #Game FindWindow (Game) set workwindow #Game kleft 672, 321 wait 11 repeat 28 kleft_down 1057, 264 move 885, 216 kleft_up 885, 217 send 1 // количество send Enter kleft 408, 379 if is_real($cena) = 1 set #cena $cena + random (3) send #cena // цена end_if wait 280 :1 kleft 410, 450 set #a findcolor (633, 240 633, 240 (4556320) %arr) if #a > 0 kleft 619, 230 send esc send b goto 1 end_if set #1 findcolor (561, 327 561, 327 (3376641) %arr) set #2 findcolor (248, 459 248, 459 (2891275) %arr) if #1 or #2 > 0 send esc send esc send b send v wait 110 kleft 391, 85 end_if wait 150 end_repeat
|
|
|
|
31ost |
2.5.2018, 17:06
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Классно - спасибо большое. Вот ещё такой вариант: Число которое пишу в Prompt, когда появляется табличка, чтобы это число сохранилось в цена.txt и чтобы при активации скрипта такого вида(ниже) это число загрузилось из цена.txt с рандомом (IMG: style_emoticons/default/smile.gif) Скрипт
Код set workwindow windowfromcursor set #b 293 + random (3) // цена
kleft_down 1106, 217 move 885, 218 kleft_up 884, 219 send 1 // количество send Enter kleft 409, 379 send #b // цена
wait 280 :1 kleft 410, 457 set #a findcolor (633, 240 633, 240 (4556320) %arr) if #a > 0 kleft 619, 230 send esc send b goto 1 end_if set #1 findcolor (561, 327 561, 327 (3376641) %arr) set #2 findcolor (248, 459 248, 459 (2891275) %arr) if #1 or #2 > 0 send esc send esc send b send v wait 110 kleft 391, 85 end_if wait 150 Жаль нету встроенного распознания текста, а вырезание картинок цифр результата не дают(слишком мелкие цифры) и в другой теме так и не понял как работать с другой программой.
|
|
|
|
31ost |
2.5.2018, 20:10
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Цитата(cirus @ 2.5.2018, 17:21) Код set $cena prompt (Цена) if is_real($cena) = 1 // если введено число set %arr [1] $cena // присваиваем значение переменной элементу массива save_array %arr "C:\цена.txt" // сохраняем массив end_if end_script Код load_array %arr "C:\цена.txt" // загружаем set #b %arr [1] + random (10) log #b end_script Спасибо - апгрейдил скрипты и немного понял на живом примере как это всё работает (IMG: style_emoticons/default/smile.gif) ещё и разобрался как запускать другую программу и записывать в файл полученные цифры. Теперь новая проблема. В файл.тхт записывается цифра+буква+символ, есть ли способ игнорировать буквы и символы? В игру будет вписаны только цифры и это не мешает, но скрипт выдает ошибку Ошибка: Символ не распознан (pos:2 '3.46 + 2') Возможно, когда начну пробовать полноценно писать скрипт, где нужно будет в If вписать выполнить действие где должно посмотреть цифры и если 1-100 выполнить действие, но там будут символы и буквы и это скорее всего будет проблемой или пока так думаю (IMG: style_emoticons/default/smile.gif)
|
|
|
|
31ost |
3.5.2018, 5:56
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Цитата(DarkMaster @ 2.5.2018, 22:20) https://forum.uokit.com/index.php?showtopic=30000переписать все на lua, радоваться жизни. То, что вы писали "цифры слишком мелкие" ну никак не может препятствовать распознаванию. Это либо некорректные скрины и/или настройки (именно настройки) скрипта по распознаванию либо есть дополнительные проблемы вроде сглаживания. Правда даже сглаживание, как правило, можно даже не выключать, просто приходится в таком случае производить более тонкие настройки параметров распознавания. Пробовал в другой программе с встроенным распознанием и возможностью настраивать, даже там приходилось делать игру на весь экран и в игре включать максимальное масштабирование (что мне не нужно), чтобы нормально начало распознавать и посоветовали делать свою базу символов/букв и цифр, чтобы то что определяется неправильно заменить к примеру всё на символ - точка и под это делать скрипт. Скорее всего и вправду - яж не шарю (IMG: style_emoticons/default/smile.gif) и что-то делаю не так. Lua где-то здесь можно или это отдельно скачивать? Почитал комменты в теме по ссылке и так понял, что у меня так же как у Дрона, нужно вырезать кучу картинок с одной цифрой и тестить всё.
|
|
|
|
31ost |
4.5.2018, 20:50
|
Neophyte
Сообщений: 24
Регистрация: 26.10.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.658
Возраст: 30
|
Цитата(DarkMaster @ 3.5.2018, 13:42) Луа поддерживается пилотом. Правда скрипт был адаптирован под некторые баги пилота. Рекомендую использовать старую ночную версию либо могут возникнуть некторые сложности. В частности может понадобиться в передаваемых параметрах передавать дополнительно параметр nil в начале списка параметров.
Согласитесь проще нарезать десяток цифр, чем заниматься какой-то ерундой с масштабированием.
Там решающую роль играет - скорость. Выставляется товар на аукционе по цене допустим 100, а минимальная цена 1000. Такие товары мониторят вручную обычно и купить вручную быстрее, чем с ботом, кроме случаев, когда бот запущен на нескольких компьютерах (IMG: style_emoticons/default/smile.gif) Попробую повырезать несколько цифр. Там ещё проблема, что в зависимости от длины цифр двигаются последние две буквы и вот надеюсь картинка их будет игнорировать. Ещё вот меня очень интересует такая вещь, как нажатие какой-нибудь кнопки в самой игре без курсора допустим есть кнопка Ок и она нажмётся. Пытался искать инфу и наткнулся на такое, что нужна программа типа InqSoft Window Scanner, Window Detective, где можно отследить какие-то действия и отправить сообщение(точно не знаю как правильно называется), но мне это очень трудно дается и не понимаю, как в пилоте отправить, если найду.
|
|
|
|
DarkMaster |
4.5.2018, 21:02
|
Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27708
Пользователь №: 11.279
|
Цитата Там решающую роль играет - скорость. Выставляется товар на аукционе по цене допустим 100, а минимальная цена 1000. Такие товары мониторят вручную обычно и купить вручную быстрее, чем с ботом, кроме случаев, когда бот запущен на нескольких компьютерах Если скрипт написан правильно, то у вас ни одно приложение никогда за ним не успеет и вы будете его (скрипт) искуственно тормозить, чтобы приложение успевало прогружать свои менюшки. Цитата Попробую повырезать несколько цифр. Там ещё проблема, что в зависимости от длины цифр двигаются последние две буквы и вот надеюсь картинка их будет игнорировать. Если цифры вырезаны корректно и точность установлена тоже корректно, то наличие каких-либо букв вообще никак не помешает. Цитата Ещё вот меня очень интересует такая вещь, как нажатие какой-нибудь кнопки в самой игре без курсора допустим есть кнопка Ок и она нажмётся. Пытался искать инфу и наткнулся на такое, что нужна программа типа InqSoft Window Scanner, Window Detective, где можно отследить какие-то действия и отправить сообщение(точно не знаю как правильно называется), но мне это очень трудно дается и не понимаю, как в пилоте отправить, если найду. Скорее всего это будет тоже самое, что и клики мышкой/клавитурой.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|