|
переменная ' ' is not a valid integer value |
|
|
nykep |
11.9.2020, 19:37
|
Apprentice
Сообщений: 233
Регистрация: 1.9.2012 Группа: Пользователи Наличность: 1200
Пользователь №: 15.246
Возраст: 25
|
у меня один скрипт присваивает переменным значение из другого, делает это примерно раз в секунду и делает клик в в эти переменные, может работать 10 часов без проблем, а может выдавать такую ошибку каждые полчаса. Скрипт из которого берутся значения работает всегда и эти переменные описываются сразу на старте, затем findcolor ищет цвет и только при нахождении присваивает этим переменным новые значения, то есть больше они нигде не задействованы - только в "шапке" и в условии после findcolor и по идее всегда имеют определенное целое значение. Есть третий скрипт с задержкой 1 который управляет остальными и в нем при определенном условии есть команда на остановку первых двух скриптов stop_script allex, но она срабатывает довольно редко - раз в несколько часов и даже реже, то есть те два скрипта останавливаются одновременно и вроде бы второй скрипт не должен пытаться что-то считывать с первого. Прописывал кучу всяких условий перед kleft x#, #y дабы быть уверенным что в момент считывания значений из другого скрипта он находится в рабочем состоянии, написал на всякий случай kleft round(#x), round(#y), ничего не помогает. Может быть это заглюк какой то не знаю. Есть ли какой то способ избежать ошибки при выполнении move #x, #y и kleft #x, #y если переменные имеют не подходящие значения для этих команд?
|
|
|
|
nykep |
12.9.2020, 2:45
|
Apprentice
Сообщений: 233
Регистрация: 1.9.2012 Группа: Пользователи Наличность: 1200
Пользователь №: 15.246
Возраст: 25
|
если не использовать stop_script то после resume_script те скрипты продолжат нажимать все не впопад, я однажды включил монитор а у меня скрипт, который должен быть остановлен когда персонаж зашел в город не остановился и пытается выкидывать мои вещи, просто тыкая куда попало, хорошо что там выскакивает окно с подтверждением на выброс и он не попал по кнопке подтвердить (IMG: style_emoticons/default/smile.gif) Кстати проверил сейчас при выключенном скрипте 0 Код move round(#x.0), round(#y.0)
двигает в -1 -1 без каких либо ошибок и меня это вполне устраивает, но видимо дело не в этом. Если без округления то выдает ошибку '#x.0' is not a valid integer value, и теперь я припоминаю что в моей ошибке название переменной то и не упоминается просто кавычки ' ' is not a valid integer value , но указывает на строку move round(#x.0), round(#y.0) вот что странно Вот еще что - первый скрипт периодически останавливает второй около 3 раз в минуту, может ли быть такое что второй скрипт выполняя команду move round(#x.0), round(#y.0) останавливается прямо на ней и поэтому выдает такую ошибку ?
|
|
|
|
nykep |
23.9.2020, 21:55
|
Apprentice
Сообщений: 233
Регистрация: 1.9.2012 Группа: Пользователи Наличность: 1200
Пользователь №: 15.246
Возраст: 25
|
да у меня 4 очень больших скрипта, 3 из которых работают постоянно, переделать все в один скрипт у меня не хватит ни сил ни ума, и я не уверен что это то, что мне нужно, например раньше у меня было не 4, а 3 скрипта и мне всегда не очень нравилось как они выполняют свою работу, но после разделения одного скрипта на два и небольших корректировок, время прохождения инста сократилось с 3.5 минут до 2.5, и "качество" прохождения значительно выросло, теперь он лучше зачищает и лучше собирает лут и т д. Дело в том что для меня имеет большое значение именно скорость прохождения и качество зачистки, а этого позволяет добиться одновременная проверка цветов findcolor и поиск картинок findimage в разных скриптах. Как бы там ни было я уже решил этот вопрос с помощью всяких костылей (IMG: style_emoticons/default/smile.gif) еще возник вопрос - можно ли как то завершить приложение по хэндлу, у меня к примеру 2 одинаковых окна и мне надо завершить лишь одно определенное из них.
|
|
|
|
DarkMaster |
24.9.2020, 11:22
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27722
Пользователь №: 11.279
|
Цитата об этом я уже слышал, просто мне нужно чтобы пока один скрипт нажимает куда то мышкой и клавишами со всеми нужным задержками, другой в это время проверял цвета и картинки, всё это делается на ходу и задержка даже в 100 миллисекунд когда он не производит поиск, приводит к тому что он пробегает мимо лута или какого-нибудь ящика, там всё происходит быстро. у финдов очень широкие возможности по оптимизации поиска. Я бы рекомендовал уменьшить до минимально возможных размеров изображения, закрасить все несущественные/дающие погрешность пиксели в цвет левого верхнего пикселя(считается фоновым). Так же возможно сделать что-то вроде шахматного порядка внутри изображения получая приличную площадь, но проверяя каждый второй-третий пиксель(точно так же закрашивая). Подобные действия могут увеличить скорость обработки в десятки раз.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
DarkMaster |
24.9.2020, 15:34
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27722
Пользователь №: 11.279
|
Цитата winapi. мля) я думал очередные полускрытые фичи luajit. Типа меток. Luajit из стейбл ветки типа 5.1, а метки пашут. Цитата sendmessage? Ну или postmessage в зависимости от требований. Цитата Каких окон? вызов taskkill в моем варианте скорее всего вызовет появление консольки. можно убрать через vbs, но зачем этот огород когда есть готовая функция?
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Fors1k |
24.9.2020, 15:54
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2383
Пользователь №: 18.746
|
Цитата(DarkMaster @ 24.9.2020, 15:34) вызов taskkill в моем варианте скорее всего вызовет появление консольки.
А, это да. Но все равно taskkill по хэндлу не закроет. Цитата(DarkMaster @ 24.9.2020, 15:34) Ну или postmessage в зависимости от требований. есть готовая функция
Эта готовая функция не подойдет, так как "An application can prompt the user for confirmation"(с)MSDN. Вот EndTask - да, сработает как надо. Сообщение отредактировал Fors1k - 24.9.2020, 16:06
--------------------
Для связи
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|