Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

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)