Помощь - Поиск - Пользователи - Календарь
Полная версия: небольшой вопрос
UoKit.com Форумы > Кликер > UO Pilot
Himini
Ребят я только начал пользоваться этой программой как бы все понятно но столкнулся со странной проблемой ..мне нужно зажать клавишу на какоето количество времени а потом отпустить ююно вместо этого клавиша не зажимается а спамится постоянно..
send_down 2
wait 5s
send_up 2
подскажите как нужно правильно написать либо может что в настройках?
Cockney
Код
send_down 2 3000 //Клавиша будет зажата 3 сек.
send_up 2


или

Код
send 2 3000
DarkMaster
Цитата
вместо этого клавиша не зажимается а спамится постоянно..

На самом деле тут не совсем корректная реализация зажатия. Коды клавиш кривоватые.
Himini
Цитата(Cockney @ 3.5.2017, 12:19) *

Код
send_down 2 3000 //Клавиша будет зажата 3 сек.
send_up 2


или

Код
send 2 3000


Что не пробовал а зажимать клавишу не хочет..подумал возможно проблема в игре ..попробовал другие программы все нормально зажимается скил кастуется.. Наверное и вправду функция зажатия клавиши кривая..( а жаль
DarkMaster
Кнайт допили ты уже эту хренвину или дай возможность указывать коды клавиш.
Код
копал скан коды клавиш. Обнаружился очень интересный момент. Если нажать, например, 'q', то ее код вполне ожидаемо будет:
00 10
но если ее зажать, то код станет:
00 3F 10
и так со всеми клавишами. Добавляется в середину 3F. Возможно это решит проблему с зажатием. Причем первый раз идет код без 3F, потом не отжимая клавишу код меняется с добавлением этого байта.
Himini
Цитата(DarkMaster @ 8.5.2017, 10:58) *

Кнайт допили ты уже эту хренвину или дай возможность указывать коды клавиш.
Код
копал скан коды клавиш. Обнаружился очень интересный момент. Если нажать, например, 'q', то ее код вполне ожидаемо будет:
00 10
но если ее зажать, то код станет:
00 3F 10
и так со всеми клавишами. Добавляется в середину 3F. Возможно это решит проблему с зажатием. Причем первый раз идет код без 3F, потом не отжимая клавишу код меняется с добавлением этого байта.



Да было бы неплохо если исправили бы.. а то вполне многофункциональная я программа..а такое банальное действие ..приходится обходить очень не удобно(
DarkMaster
95% приложений жрут и в текущей реализации, но это не есть правильно.
dron4938
Всем привет)
можно ли задать в пилоте условие, что если курсор находится в области (например 568 578),
то истина.

Как кстати хакерскую атаку пережили?)
cirus
Цитата
можно ли задать в пилоте условие, что если курсор находится в области (например 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
А можно ли вызвать одновременно несколько hint ов
Cockney
Если только из разных вкладок, и то хз.
cirus
Можно и такие фокусы делать:
хинт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

Но, проще запустить несколько вкладок с нужными хинтами.
dron4938
Прикольно)
dron4938
подскажите как решить проблемс
нужно чтобы скрипт перебирал сотню картинок по поиску, для этого сделал переменную +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
Для начала выкинуть нахрен все goto.
Цитата
кавычки в скобках пришлось убрать, с ними не видит цифры, это норм?

кавычки - это признак текстовой строки. Они говорят инетерпетатору, что следующие символы нужно воспринимать именно как текст, а не функции, синтаксис переменные и т.д. У вас же в строке находятся переменные. Интерперетатор их не переводил в значения, а считал обычным текстом. Кавычки для этого и служат.
dron4938
Цитата(DarkMaster @ 25.5.2017, 1:38) *

Для начала выкинуть нахрен все goto.

куды гото выкинуть? blink.gif
а как без них? через 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)

------------------------
выходит, есть смысл называть папки с запятой вначале или как то иначе можно?
cirus
Для перебора картинок есть циклы.
Код
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
Цитата
куды гото выкинуть? blink.gif
а как без них? через wail?

gosub, while. Для себя считаю допустимым использовать goto только для того чтобы зациклить основное тело программы. Больше примеров его корректного использования придумать не могу. Все остальное только превращает вашу программу в бардак.
Дима1988
Подскажите почему в проге при использовании скрипта координаты мыши ( куда она жмет фактически) отличаются от тех которые записаны в скрипте?
Т.е. я смотрю на координаты которые показывает прога в нужном месте, забиваю их в скрипт, но при исполнении мыш кликает уже совершенно в другое место, только методом "научного тыка " получается указать нужную точку. ( пробовал и относительные и абсолютные).
cirus
Если указать относительные координаты, то клик делается относительно левого верхнего угла рабочего окна (т. е. окна, которому сделана привязка Ctrl+A). При этом если после перезапуска окна или пилота привязку не сделать, то клик будет относительно левого верхнего угла рабочего стола. Т. е. не туда куда надо.
Если использовать абсолютные координаты, то кликать будет всегда относительно левого верхнего угла рабочего стола. Т. е. если рабочее окно сдвинуть куда-то, то также будет не туда кликать.
Лучше использовать относительные координаты, но не забывать делать привязку.
Использовать нужно либо относительные, либо абсолютные. А то были случаи когда вставляли в скрипт все сразу.
Дима1988
Может я не с того края зашел. Как сделать чтобы координаты записанные в скрипте, при его исполнении соответствовали отражаемым прогой в верхнейй строке? Т.е. ставим в скрипт: move 100 100, и в верхней строке что б тоже при исполнении писал: а100,100 ?, А сейчас получается что там написано при: move 100 100, пишет: а67,67 и какие-то цифры еще, кстати что они означают?
Cockney
А в чем смысл отображать координаты по которым пилот кликает ? Эти строки с отображением координат нужны лишь при быстрой настройке пилота. Если есть уже точно известные координаты и они верны, то можно забыть про эти строчки и окошки. Или я что-то не понимаю ?
Дима1988
Мне необходимо чтобы пилот кликал по определенным точкам на экране. Чтобы он кликал именно в ту точку куда надо, нужно в скрипт забить координаты этой точки. А где взять эти координаты? Наводим курсор на точку -> смотрим координаты в пилоте -> забиваем эти координаты в скрипт. Вроде бы все верно, но... запущенный скрипт кликает совсем в другие места, и туда куда он кликает вовсе не соответствует первоначальным координатам.
Может в прогу какая-то поправка внесена для координат? где-то просто галку снять? Там на вкладке "Разное" вроде все не активно, но что то много "300,240" кнопок, может в них дело?
cirus
Цитата
и какие-то цифры еще, кстати что они означают?

При наведении на кнопки вылезает подсказка. Другие цифры это хендл рабочего окна и десятичный цвет в указанной точке.
Цитата
Т.е. ставим в скрипт: move 100 100, и в верхней строке что б тоже при исполнении писал: а100,100 ?

Если надо можно в лог выводить координаты курсора.
Код
move 100 100
log Относительные координаты: mousepos_x mousepos_y
log Абсолютные координаты: mouseposabs_x mouseposabs_y
end_script

WKnight
"Настройки"\"Настройки"\
слева снизу пункт "Отображать координаты курсора", выбираем "относительные" или "абсолютные".
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.