Ребят я только начал пользоваться этой программой как бы все понятно но столкнулся со странной проблемой ..мне нужно зажать клавишу на какоето количество времени а потом отпустить ююно вместо этого клавиша не зажимается а спамится постоянно..
send_down 2
wait 5s
send_up 2
подскажите как нужно правильно написать либо может что в настройках?
Код
send_down 2 3000 //Клавиша будет зажата 3 сек.
send_up 2
или
Код
DarkMaster
3.5.2017, 19:03
Цитата
вместо этого клавиша не зажимается а спамится постоянно..
На самом деле тут не совсем корректная реализация зажатия. Коды клавиш кривоватые.
Цитата(Cockney @ 3.5.2017, 12:19)
Код
send_down 2 3000 //Клавиша будет зажата 3 сек.
send_up 2
или
Код
Что не пробовал а зажимать клавишу не хочет..подумал возможно проблема в игре ..попробовал другие программы все нормально зажимается скил кастуется.. Наверное и вправду функция зажатия клавиши кривая..( а жаль
DarkMaster
8.5.2017, 9:58
Кнайт допили ты уже эту хренвину или дай возможность указывать коды клавиш.
Код
копал скан коды клавиш. Обнаружился очень интересный момент. Если нажать, например, 'q', то ее код вполне ожидаемо будет:
00 10
но если ее зажать, то код станет:
00 3F 10
и так со всеми клавишами. Добавляется в середину 3F. Возможно это решит проблему с зажатием. Причем первый раз идет код без 3F, потом не отжимая клавишу код меняется с добавлением этого байта.
Цитата(DarkMaster @ 8.5.2017, 10:58)
Кнайт допили ты уже эту хренвину или дай возможность указывать коды клавиш.
Код
копал скан коды клавиш. Обнаружился очень интересный момент. Если нажать, например, 'q', то ее код вполне ожидаемо будет:
00 10
но если ее зажать, то код станет:
00 3F 10
и так со всеми клавишами. Добавляется в середину 3F. Возможно это решит проблему с зажатием. Причем первый раз идет код без 3F, потом не отжимая клавишу код меняется с добавлением этого байта.
Да было бы неплохо если исправили бы.. а то вполне многофункциональная я программа..а такое банальное действие ..приходится обходить очень не удобно(
DarkMaster
8.5.2017, 18:20
95% приложений жрут и в текущей реализации, но это не есть правильно.
dron4938
13.5.2017, 13:21
Всем привет)
можно ли задать в пилоте условие, что если курсор находится в области (например 568 578),
то истина.
Как кстати хакерскую атаку пережили?)
Цитата
можно ли задать в пилоте условие, что если курсор находится в области (например 568 578),
то истина.
Код
log mousepos_x mousepos_y // относительные координаты курсора
log mouseposabs_x mouseposabs_y // абсолютные координаты курсора
Код
if mousepos_x > 568 and mousepos_x < 578 and mousepos_y > 100 and mousepos_y < 200
// какие-то действия
end_if
dron4938
16.5.2017, 21:14
А можно ли вызвать одновременно несколько hint ов
Если только из разных вкладок, и то хз.
Можно и такие фокусы делать:
хинт1, можно менять сообщение ссылаясь на переменные из других скриптов
Код
call hint
proc hint
hint (12 clgreen 1300 800 100 80 (cp))
call hint1
end_proc
proc hint1
hint (12 clred 1300 824 100 56 (hp))
call hint2
end_proc
proc hint2
hint (12 clblue 1300 848 100 32 (mp))
call hint3
end_proc
proc hint3
while 1 = 1
hint (12 clgreen 1340 800 60 80 (#cp.7))
call hint4
end_while
end_proc
proc hint4
hint (12 clred 1340 824 60 56 (#hp.7))
call hint5
end_proc
proc hint5
hint (12 clblue 1340 848 60 32 (#mp.7))
wait 500
end_proc
хинт2, сообщения статичны
Код
init_arr %a (1) 200 200 qwe
init_arr %a (2) 300 300 rty
init_arr %a (3) 400 400 uio
init_arr %a (4) 500 500 asd
set #size1 0
for #i 1 size(%a) #size1
call hint %a size(%a) #size1
end_for
proc hint %a #size #size1
set #size1 #size1 + 1
if #size = #size1
while 1 = 1
hint (20 clRed %a [#size1 1] %a [#size1 2] (%a [#size1 3]))
wait 100
end_while
else
hint (20 clRed %a [#size1 1] %a [#size1 2] (%a [#size1 3]))
call hint %a #size #size1
end_if
end_proc
Но, проще запустить несколько вкладок с нужными хинтами.
подскажите как решить проблемс
нужно чтобы скрипт перебирал сотню картинок по поиску, для этого сделал переменную +1
картинки с именами 1.bmp 2.bmp и тд
но через лог, видно что имя #nur.bmp так и остается
:aaa
set timer
set #nur 0
:pixnur
set #nur #nur + 1
set #car findimage (#sX #sY #eX #eY ("C:\Users\Andrey\Desktop\Pil3\img\car\2\#nur.bmp") %crds workwindow 90 1 1)
log ("C:\Users\Andrey\Desktop\Pil3\img\car\2\#nur.bmp")
if #nur >= #imgsize
hint (14 clGreen 1380, 1046 (timer))
goto aaa
end_if
goto pixnur
p.s. проблемс решена
заданием .bmp переменной и убрав кавычки
set $bm ".bmp"
set #car findimage (#sX #sY #eX #eY (C:\Users\Andrey\Desktop\Pil3\img\car\2\#nur$bm)
кавычки в скобках пришлось убрать, с ними не видит цифры, это норм?
DarkMaster
25.5.2017, 0:38
Для начала выкинуть нахрен все goto.
Цитата
кавычки в скобках пришлось убрать, с ними не видит цифры, это норм?
кавычки - это признак текстовой строки. Они говорят инетерпетатору, что следующие символы нужно воспринимать именно как текст, а не функции, синтаксис переменные и т.д. У вас же в строке находятся переменные. Интерперетатор их не переводил в значения, а считал обычным текстом. Кавычки для этого и служат.
Цитата(DarkMaster @ 25.5.2017, 1:38)
Для начала выкинуть нахрен все goto.
куды гото выкинуть?
а как без них? через wail?
теперь задался вопросом как убрать длинные строки, которых много по скрипту
("C:\Users\Andrey\Desktop\Pil3\img\car\a2a.bmp")
прописав к примеру
set $put "C:\Users\Andrey\Desktop\Pil3\img\car\"
($put a2a.bmp)
работает только если кавычки убрать, и после переменной пробел поставить, тогда лог видит строку, но пробел в ней есть, и из-за этого пилот не находит путь, как проделать такое?
методом тыка выяснилось что если одну из папок назвать
,car тобеж с запятой в начале, то будет работать
set $put "C:\Users\Andrey\Desktop\Pil3\img\"
($put,car\a2a.bmp)
------------------------
выходит, есть смысл называть папки с запятой вначале или как то иначе можно?
Для перебора картинок есть циклы.
Код
for #nur 1 5
log #nur
end_for
end_script
Цитата
выходит, есть смысл называть папки с запятой вначале или как то иначе можно?
Используйте массивы и лепите всё что угодно.
Код
set %a [1 1] Andrey
set %a [1 2] Desktop
set %a [1 3] "\img"
log %a[1 1]\%a [1 2]%a[1 3]
// или так
log %a[1]
end_script
DarkMaster
25.5.2017, 7:07
Цитата
куды гото выкинуть? blink.gif
а как без них? через wail?
gosub, while. Для себя считаю допустимым использовать goto только для того чтобы зациклить основное тело программы. Больше примеров его корректного использования придумать не могу. Все остальное только превращает вашу программу в бардак.
Дима1988
26.6.2017, 12:15
Подскажите почему в проге при использовании скрипта координаты мыши ( куда она жмет фактически) отличаются от тех которые записаны в скрипте?
Т.е. я смотрю на координаты которые показывает прога в нужном месте, забиваю их в скрипт, но при исполнении мыш кликает уже совершенно в другое место, только методом "научного тыка " получается указать нужную точку. ( пробовал и относительные и абсолютные).
Если указать относительные координаты, то клик делается относительно левого верхнего угла рабочего окна (т. е. окна, которому сделана привязка Ctrl+A). При этом если после перезапуска окна или пилота привязку не сделать, то клик будет относительно левого верхнего угла рабочего стола. Т. е. не туда куда надо.
Если использовать абсолютные координаты, то кликать будет всегда относительно левого верхнего угла рабочего стола. Т. е. если рабочее окно сдвинуть куда-то, то также будет не туда кликать.
Лучше использовать относительные координаты, но не забывать делать привязку.
Использовать нужно либо относительные, либо абсолютные. А то были случаи когда вставляли в скрипт все сразу.
Дима1988
26.6.2017, 17:08
Может я не с того края зашел. Как сделать чтобы координаты записанные в скрипте, при его исполнении соответствовали отражаемым прогой в верхнейй строке? Т.е. ставим в скрипт: move 100 100, и в верхней строке что б тоже при исполнении писал: а100,100 ?, А сейчас получается что там написано при: move 100 100, пишет: а67,67 и какие-то цифры еще, кстати что они означают?
А в чем смысл отображать координаты по которым пилот кликает ? Эти строки с отображением координат нужны лишь при быстрой настройке пилота. Если есть уже точно известные координаты и они верны, то можно забыть про эти строчки и окошки. Или я что-то не понимаю ?
Дима1988
26.6.2017, 22:48
Мне необходимо чтобы пилот кликал по определенным точкам на экране. Чтобы он кликал именно в ту точку куда надо, нужно в скрипт забить координаты этой точки. А где взять эти координаты? Наводим курсор на точку -> смотрим координаты в пилоте -> забиваем эти координаты в скрипт. Вроде бы все верно, но... запущенный скрипт кликает совсем в другие места, и туда куда он кликает вовсе не соответствует первоначальным координатам.
Может в прогу какая-то поправка внесена для координат? где-то просто галку снять? Там на вкладке "Разное" вроде все не активно, но что то много "300,240" кнопок, может в них дело?
Цитата
и какие-то цифры еще, кстати что они означают?
При наведении на кнопки вылезает подсказка. Другие цифры это хендл рабочего окна и десятичный цвет в указанной точке.
Цитата
Т.е. ставим в скрипт: move 100 100, и в верхней строке что б тоже при исполнении писал: а100,100 ?
Если надо можно в лог выводить координаты курсора.
Код
move 100 100
log Относительные координаты: mousepos_x mousepos_y
log Абсолютные координаты: mouseposabs_x mouseposabs_y
end_script
"Настройки"\"Настройки"\
слева снизу пункт "Отображать координаты курсора", выбираем "относительные" или "абсолютные".
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.