Версия для печати темы
UoKit.com Форумы _ UO Pilot _ Горячая клавиша остановки нажатий
Автор: Levo222 8.1.2019, 5:12
Вобщем как можно задать горячую клавишу остановки/паузы нажатий всех клавиш и кликов если они установлены на -1?
Есть клавиша остановки скрипта, но на основное окно это не действует
Автор: DarkMaster 8.1.2019, 8:17
Цитата
Есть клавиша остановки скрипта, но на основное окно это не действует
В хоткеях включить "Stop all scripts". По умлочанию должно быть включено и назначены клавиши ctrl+alt+end.
Автор: Levo222 8.1.2019, 12:24
Цитата(DarkMaster @ 8.1.2019, 12:17)
В хоткеях включить "Stop all scripts". По умлочанию должно быть включено и назначены клавиши ctrl+alt+end.
Так, спасибо. Остановить я остановил, а вот как теперь включить назад всё что было также хоткеем? только клавиши а не скрипты? Потому что там столько окно вылазит с ошибкой. Скрипты вообще не привязаны ни к чему и а клавиши как были так и остаются отключенными
Автор: DarkMaster 8.1.2019, 12:30
Цитата
только клавиши а не скрипты?
Всмысле?
Цитата
Потому что там столько окно вылазит с ошибкой.
Каких ошибок? Откуда они? Другие скрипты, которые не должны запускаться? Тогда создать отдельный скрипт, который будет запускать только нужные вам скрипты и на этот запускающий скрипт назначить хоткей.
Вообще очень тяжело отвечать, т.к. очень слабо представляю, что вы хотите добиться. Распишите суть идеи и ситуации подробнее.
Автор: Levo222 8.1.2019, 13:30
Цитата(DarkMaster @ 8.1.2019, 16:30)
Всмысле?
Каких ошибок? Откуда они? Другие скрипты, которые не должны запускаться? Тогда создать отдельный скрипт, который будет запускать только нужные вам скрипты и на этот запускающий скрипт назначить хоткей.
Вообще очень тяжело отвечать, т.к. очень слабо представляю, что вы хотите добиться. Распишите суть идеи и ситуации подробнее.
https://imgbb.com/
вот эти кнопочки мне только надо. А сам скрипт нет
Автор: DarkMaster 8.1.2019, 13:41
какие ЭТИ кнопочки? может быть вам скрипты не останавливать, а ставить на паузу? очень мало информации.
Автор: Levo222 8.1.2019, 14:24
Цитата(DarkMaster @ 8.1.2019, 17:41)
какие ЭТИ кнопочки? может быть вам скрипты не останавливать, а ставить на паузу?
Ну вот эти на скрине
Пауза не отжимает эти кнопки, она только останавливает скрипты
Автор: cirus 8.1.2019, 14:40
А почему бы скрипт не использовать?
Автор: DarkMaster 8.1.2019, 15:09
Цитата
Ну вот эти на скрине
У меня не грузятся на страницах третьи источники по дефолту, а на этом форуме даже заглушек не видно...
Теперь понял.
Собственно мой совет только один в таком случае - используйте скрипты. Ничего там сложного не будет, так что минусов я не вижу.
Автор: Levo222 8.1.2019, 15:14
Цитата(cirus @ 8.1.2019, 18:40)
А почему бы скрипт не использовать?
А скрипт позволяет нажимать ротацию из кнопок?
Я просто теряюсь в догадках какая комбинация из них не будет мешать другой из-за накладываемого времени нажатия кратности. Например периодичность в 50 будет мешать периодичности в 100 и т.д. Скрипт просто зависнет. А кнопки из-за разности кратности рано или поздно выходят из зависания и кое-как молотят. И пробовал делать 1/3 времени, и 1/25, это всё равно создаёт затруднения
Цитата(DarkMaster @ 8.1.2019, 19:09)
У меня не грузятся на страницах третьи источники по дефолту, а на этом форуме даже заглушек не видно...
Теперь понял.
Собственно мой совет только один в таком случае - используйте скрипты. Ничего там сложного не будет, так что минусов я не вижу.
Эскизы прикрепленных изображений
Автор: DarkMaster 8.1.2019, 15:29
Цитата
А скрипт позволяет нажимать ротацию из кнопок?
Элементрано.
Код
--lua
while 1 do
send217 "a"
wait(100)
send217 "b"
wait(100)
send217 "c"
wait(100)
end
Цитата
Я просто теряюсь в догадках какая комбинация из них не будет мешать другой из-за накладываемого времени нажатия кратности. Например периодичность в 50 будет мешать периодичности в 100 и т.д. Скрипт просто зависнет. А кнопки из-за разности кратности рано или поздно выходят из зависания и кое-как молотят. И пробовал делать 1/3 времени, и 1/25, это всё равно создаёт затруднения
Огласите задачу полностью =)
Несколько нажатий с разными кулдаунами?
Код
--lua
local button = {
{"a",1}, -- таймаут в секундах
{"b",2},
{"c",0.5},
}
for i = 1, #button do
button[i][3] = os.clock() + button[i][2]
end
local main = function(button)
for i = 1, #button do
if button[i][3] < os.clock() then
send217(button[i][1])
button[i][3] = os.clock() + button[i][2]
end
end
end
while 1 do
main(button)
end
Автор: Levo222 8.1.2019, 16:00
Элементарно
Цитата(DarkMaster @ 8.1.2019, 19:29)
Элементарно.
1
Код
--lua
while 1 do
send217 "a"
wait(100)
send217 "b"
wait(100)
send217 "c"
wait(100)
end
Огласите задачу полностью =)
Несколько нажатий с разными кулдаунами?
Код
--lua
local button = {
{"a",1}, -- таймаут в секундах
{"b",2},
{"c",0.5},
}
for i = 1, #button do
button[i][3] = os.clock() + button[i][2]
end
local main = function(button)
for i = 1, #button do
if button[i][3] < os.clock() then
send217(button[i][1])
button[i][3] = os.clock() + button[i][2]
end
end
end
while 1 do
main(button)
end
Мда, действительно
Полная задача выходит за рамки самого скрипта, потому что кулдауны нестатичные и зависят от проков которые весьма трудно считать в рамках одного скрипта, там и финдимидж не работает, но за идею спасибо
Автор: DarkMaster 8.1.2019, 16:34
Цитата
проков которые весьма трудно считать в рамках одного скрипта
Сомнительно.
Цитата
там и финдимидж не работает
Скорее всего что-то неверно задано.
Автор: Levo222 8.1.2019, 18:03
Цитата(DarkMaster @ 8.1.2019, 20:34)
Сомнительно.
Скорее всего что-то неверно задано.
С какой частотой обновления может максимально работать финдимидж? и при этом выполнять требуемые команды в зависимости от того или иного действия? У меня обработка занимает чуть меньше секунды, когда дойдет до выполнения команд это уже 2-3 секунды так складывается очень длительное время
Автор: DarkMaster 8.1.2019, 18:08
Цитата
С какой частотой обновления может максимально работать финдимидж?
Зависит от того, какой из методов доступен. Если возможно работать по хендлу, то все зависит от видюхи. Лично видел как в л2 снимало 400 кадров в секунду.
Цитата
и при этом выполнять требуемые команды в зависимости от того или иного действия?
sutra со своим методом поиска изображений добивался 2-3 мс на поиск и анализ изображения. Т.е. 300-500 раз в секунду анализ. Выполнять команды, честно, не тестил, но отослать столько нажатий, что приложение встанет колом зачастую очень легко, думаю там десятки тысяч в секунду.
Автор: Levo222 8.1.2019, 18:18
Цитата(DarkMaster @ 8.1.2019, 22:08)
Зависит от того, какой из методов доступен. Если возможно работать по хендлу, то все зависит от видюхи. Лично видел как в л2 снимало 400 кадров в секунду.
sutra со своим методом поиска изображений добивался 2-3 мс на поиск и анализ изображения. Т.е. 300-500 раз в секунду анализ. Выполнять команды, честно, не тестил, но отослать столько нажатий, что приложение встанет колом зачастую очень легко, думаю там десятки тысяч в секунду.
Сейчас проблема стоит в том что каждое изображение приходится обрабатывать непосредственно перед выполнением команды, потому что оно не статично. Может я дурак, но ставил команду перед циклом - определялось только 1 раз, внутри цикла это занимает слишком много времени.
Также есть вещи которые я так еще и не понял. Очень эффективные, каким образом при отсутствии графики работают фишботы
Если ставить команду findimage непосредственно перед проверкой условия это занимает 2-3 секунды. Есть какой-то другой способ? И в чем заключается метод Sutrы?
Автор: DarkMaster 8.1.2019, 19:30
Цитата
потому что оно не статично
для этого есть достаточно много инструмнтов - accuracy, deviation, закраска фона. У меня еще не было случаев, когда не получилось бы решить задачу поиска.
Цитата
Если ставить команду findimage непосредственно перед проверкой условия это занимает 2-3 секунды.
Что-то косячите с финдом. Скорее всего слишком больше изображение вырезаете.
Автор: DarkMaster 8.1.2019, 19:51
Цитата
И в чем заключается метод Sutrы?
Он написал собственный аналог финдимиджа.
Автор: Levo222 8.1.2019, 20:09
Цитата(DarkMaster @ 8.1.2019, 23:51)
Он написал собственный аналог финдимиджа.
И что у него есть какие-то перспективы перешагнуть через голову пилота и создать свой собственный софт со своими собственными методами превосходящими пилотовские?
Автор: DarkMaster 8.1.2019, 20:12
Цитата
И что у него есть какие-то перспективы перешагнуть через голову пилота и создать свой собственный софт со своими собственными методами превосходящими пилотовские?
Его код можно выполнить внутри пилота.
Вообще в вам скорее всего хватит обыкновенного имиджа. Увидеть бы изображения - можно было бы более предметно говорить, что с ними делать. Пока это все руками в воздухе водить.
Автор: sutra 8.1.2019, 21:00
Цитата
Если ставить команду findimage непосредственно перед проверкой условия это занимает 2-3 секунды
Что-то нереально долго. Конечно код бы посмотреть.
Автор: sutra 8.1.2019, 21:40
Цитата
И что у него есть какие-то перспективы перешагнуть через голову пилота и создать свой собственный софт со своими собственными методами превосходящими пилотовские
Да ничего я особенного не делаю. Пилот - универсальная вещь. Я просто подстраиваю его под собственные задачи. Сделал простенький FindImage (практически аналог Пилотовского) и сделал похитрее SearchImage, но в нём я все параметры задаю сам, этим можно найти многие вещи на порядок быстрее, за счёт поиска только нужных пикселей, а не всех подряд. Ну вот пример скорости поиска обычной картинки обычным поиском, перебирая все пиксели. Опять же результаты с учётом времени создания образа в памяти и загрузки картинки с диска.
Код
--lua
local f=require[[Scripts\LUA\fun]] -- там у меня свои функции
log "clear" log "mode compact"
local ok=findwindow("ОКНО")
workwindow(ok[1][1])
local pic=[[СКРИНЫ\SET\Dn008.bmp]] -- размер картинки 124 х 47
tmc=os.clock()
X,Y=f.FindImage(100,100,999,999,pic,ok[1][1],27) -- моя функция
--X,Y=f.FindImage(500,500,999,999,pic,ok[1][1],27) -- а так 0,047 сек.
log(os.clock()-tmc) -- 0.131 сек.
log(X,Y) -- 672 915 (найдена внизу окна)
Если нужен код функции, могу выложить, хотя как я делал, я уже выкладывал в другой теме.
Автор: cirus 8.1.2019, 21:45
Цитата
workwindow(ok[1][1])
Перед этим нужна проверка что окно нашлось, иначе будет ошибка при отсутствии окна.
Автор: sutra 8.1.2019, 21:52
Цитата
Перед этим нужна проверка что окно нашлось
Ну я чисто для примера показал. Конечно нужно проверять - извините, думал что это само собой разумеется.
В любом случае будет ошибка, так как функция лежит в отдельном файле, поэтому я не особо и заморачивался на эту тему.
Автор: sutra 8.1.2019, 22:07
Кстати, хитрым поиском твои монетки Cirus ищутся мгновенно. Достаточно правильно задать всего 10 искомых пикселей. Но, как я уже говорил, у меня нет такой задачи, поэтому я не допиливал эту функцию, просто проверил, что работает. Там проблема с задаваемыми параметрами поиска, получается не очень красиво, но эффективно. Я тупо использовал таблицу параметров.
Автор: Levo222 9.1.2019, 13:09
Цитата(DarkMaster @ 9.1.2019, 0:12)
Его код можно выполнить внутри пилота.
Вообще в вам скорее всего хватит обыкновенного имиджа. Увидеть бы изображения - можно было бы более предметно говорить, что с ними делать. Пока это все руками в воздухе водить.
Там обработка упирается в отсутствии дочерних окон, т.е. сами изображения это маска на фреймах, которые никак пилотом не идентифицируются, имидж перестаёт их видеть после 1 раза.
Цитата(sutra @ 9.1.2019, 1:40)
но в нём я все параметры задаю сам, этим можно найти многие вещи на порядок быстрее, за счёт поиска только нужных пикселей,
Тут всё я полагаю упирается в техническую возможность железа, разрешение и мощность оборудования, конечно настроить точность поиска можно и очень точно над 1 пикселем. Но для моей поставленной задачи это стрелять из пушки по комарам. Когда всё становится слишком хорошо - Банят просто так. Потому что у тебя "слишком всё гладко."
Автор: DarkMaster 9.1.2019, 13:10
В таком случае должно помочь снятие изображения методом 2 с родительского окна либо вовсе с абсолютными координатами.
а можно и вовсе попробовать вместо анализа изображений анализировать дерево окон и координаты этих окон.
Автор: Levo222 9.1.2019, 13:11
Цитата(sutra @ 9.1.2019, 1:40)
загрузки картинки с диска.
Да всё в технической возможности
Автор: sutra 10.1.2019, 3:26
Цитата
Когда всё становится слишком хорошо - Банят просто так. Потому что у тебя "слишком всё гладко."
Это понятно, но сделать, чтобы было всё "не очень хорошо" гораздо проще, чем наоборот. Что мешает задать алгоритм "прибивать" каждую 2-ю, 3-ю цель, да ещё и с рэндомом. Убил 3 подряд, потом типа 2 неудачи. Задавать бОльшие задержки на реакцию к поведению игры. Тут надо смотреть конкретно за поведением модеров. И кстати, чтобы было "всё не очень хорошо", тоже нужна хорошая реакция Пилота, для чего и нужен быстрый инструментарий. Пусть всё будет "не очень хорошо", главное, чтобы было "неплохо", а точнее, чуть лучше, чем у остальных конкурентов.
Цитата
Тут всё я полагаю упирается в техническую возможность железа, разрешение и мощность оборудования
Конечно от железа зависит многое. Но те идеи, что дал Дарк, по прямой обработке памяти и что думаю уже не только я реализовал, даже на слабой машинке дадут результат. Во всяком случае быстрее стандартного findimage на 2 порядка, а иногда и на 3-4 ПОРЯДКА! А если анализировать "избранные" пиксели, то лично у меня практически всё мгновенно. Ну скажем искать тот же прицел, да достаточно 12 пикселей, грубо говоря findimage заменяет findcolor, только более простым и быстрым алгоритмом.
Причём тормоза - это не дефект Пилотовских функций. Просто любая функция Пилота, даже которая в принципе не нуждается в ресурсах всё равно требует на вызов из скрипта lua достаточно много времени, на 2 порядка больше, чем требуется на её выполнение. Собственно это на данный момент и является самой большой проблемой. А мы тут пытаемся обойти эту хрень, придумывая свои функции, которые работают как внутренний код.
Автор: sutra 10.1.2019, 3:37
Цитата
В таком случае должно помочь снятие изображения методом 2 с родительского окна либо вовсе с абсолютными координатами
Я очень часто использую поиск всеми своими функциями по абсолютным координатам, в нерабочем окне и т.д.. С твоим алгоритмом Дарк, всё везде работает мгновенно! Ещё раз спасибо!
Автор: Levo222 10.1.2019, 13:35
Цитата(sutra @ 10.1.2019, 7:26)
Это понятно, но сделать, чтобы было всё "не очень хорошо" гораздо проще, чем наоборот. Что мешает задать алгоритм "прибивать" каждую 2-ю, 3-ю цель, да ещё и с рэндомом. Убил 3 подряд, потом типа 2 неудачи. Задавать бОльшие задержки на реакцию к поведению игры. Тут надо смотреть конкретно за поведением модеров. И кстати, чтобы было "всё не очень хорошо", тоже нужна хорошая реакция Пилота,
Ладно, скину вам видео, и мы посмотрим как это можно решить
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)