Программа для нажатия клавиш
Сделал очистку триггеров по двойному щелчку правой клавишей мыши на свободном участке поля программы.
Уже довольно долго пытаюсь сделать распознавание активного скилла.
В общем-то, даже сделал. Есть одна проблема: всё невероятно медленно работает.
Другими словами, на практике это невозможно использовать.
Проблема в том, что надо постоянно сканировать экран на наличие скилла в откате, и, если он откатился, прожимать его. Для этого используется копирование экрана при помощи copyfromscreen.
И этот самый метод работает невероятно долго, что вызывает неприемлемые тормоза.
Если кто-нибудь подкинет идею, как это можно сделать иначе, буду признателен.
P.S.
P/Invoke метод BitBlt не предлагать. Он работает совершенно так же.
Собственно, copyfromscreen превращается в BitBlt при компиляции, как я понял.
Уже довольно долго пытаюсь сделать распознавание активного скилла.
В общем-то, даже сделал. Есть одна проблема: всё невероятно медленно работает.
Другими словами, на практике это невозможно использовать.
Проблема в том, что надо постоянно сканировать экран на наличие скилла в откате, и, если он откатился, прожимать его. Для этого используется копирование экрана при помощи copyfromscreen.
И этот самый метод работает невероятно долго, что вызывает неприемлемые тормоза.
Если кто-нибудь подкинет идею, как это можно сделать иначе, буду признателен.
P.S.
P/Invoke метод BitBlt не предлагать. Он работает совершенно так же.
Собственно, copyfromscreen превращается в BitBlt при компиляции, как я понял.
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
DmitryOlenin писал(а):Сделал очистку триггеров по двойному щелчку правой клавишей мыши на свободном участке поля программы.
Уже довольно долго пытаюсь сделать распознавание активного скилла.
В общем-то, даже сделал. Есть одна проблема: всё невероятно медленно работает.
Другими словами, на практике это невозможно использовать.
Проблема в том, что надо постоянно сканировать экран на наличие скилла в откате, и, если он откатился, прожимать его. Для этого используется копирование экрана при помощи copyfromscreen.
И этот самый метод работает невероятно долго, что вызывает неприемлемые тормоза.
Если кто-нибудь подкинет идею, как это можно сделать иначе, буду признателен.
P.S.
P/Invoke метод BitBlt не предлагать. Он работает совершенно так же.
Собственно, copyfromscreen превращается в BitBlt при компиляции, как я понял.
а какая частота запроса? какого размера область захватываешь?
Мне кажется этот момент можно оптимизировать.
Легендарный AZAZAZA.
Частота запроса - максимально возможная из доступных.
У меня стоит тик таймера в 1мс. Можно и реже, конечно, но чем чаще проверяем, тем быстрее можно среагировать на откатившийся скилл.
Область захвата... Тут тоже проблема.
Разницы принципиальной в захвате всего экрана и захвате 1 пикселя (вот натурально, сравнивал) нет.
Она есть, если картинка статична. Если захватываем 1 пиксель при неподвижной картинке - всё получается быстрее, чем, например, 1920x1080. Но даже в этом случае, тормоза будут заметны.
Но если картинка движется (проверял, просто водя окошком в винде), то разницы нет вообще.
Причём, речь идёт только о захвате. Вообще без обработки, без поиска цвета пикселя и так далее.
Кусок кода
У меня стоит тик таймера в 1мс. Можно и реже, конечно, но чем чаще проверяем, тем быстрее можно среагировать на откатившийся скилл.
Область захвата... Тут тоже проблема.
Разницы принципиальной в захвате всего экрана и захвате 1 пикселя (вот натурально, сравнивал) нет.
Она есть, если картинка статична. Если захватываем 1 пиксель при неподвижной картинке - всё получается быстрее, чем, например, 1920x1080. Но даже в этом случае, тормоза будут заметны.
Но если картинка движется (проверял, просто водя окошком в винде), то разницы нет вообще.
Причём, речь идёт только о захвате. Вообще без обработки, без поиска цвета пикселя и так далее.
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
Всё получилось. Сделал прожатие скиллов по кулдауну.
Сейчас тестирую, версию выложу скоро.
Прожатие по откату работает при соотношении экрана 16:9 и 16:10.
Другие не стал делать, как я понимаю, широкоформатные мониторы - это стандарт.
Режим, правда, относительно требовательный к ресурсам компьютера.
Процессорная загрузка от 4 до 8 процентов, память занимается от 50 до 200 мегабайт.
Впрочем, в сравнении с самой игрой, это не заметно, просадки FPS у меня нет на древнем компе.
Функция новая, буду ждать отзывов от первых пользователей
Сейчас тестирую, версию выложу скоро.
Прожатие по откату работает при соотношении экрана 16:9 и 16:10.
Другие не стал делать, как я понимаю, широкоформатные мониторы - это стандарт.
Режим, правда, относительно требовательный к ресурсам компьютера.
Процессорная загрузка от 4 до 8 процентов, память занимается от 50 до 200 мегабайт.
Впрочем, в сравнении с самой игрой, это не заметно, просадки FPS у меня нет на древнем компе.
Функция новая, буду ждать отзывов от первых пользователей

Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
Сделал под конец сезона креста. Пока саппорчу, ибо вещей нет.
Управляю чисто одной рукой, клавиатура отдыхает
Пот откату прожимаются: Принцип доблести, Порицание, Железная кожа.
Очень удобно, всем советую
DimonamoN, ты, я помню, хотел воспользоваться программой после мифической "волны банов". Передумал? Или саппортами решил не играть?
К слову, я даже у мага в Дельсире купола по откату ставлю. Экономит мои нервы и ресурс мыши
Управляю чисто одной рукой, клавиатура отдыхает

Пот откату прожимаются: Принцип доблести, Порицание, Железная кожа.
Очень удобно, всем советую

DimonamoN, ты, я помню, хотел воспользоваться программой после мифической "волны банов". Передумал? Или саппортами решил не играть?
К слову, я даже у мага в Дельсире купола по откату ставлю. Экономит мои нервы и ресурс мыши

Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
Убрал всяческую загрузку процессора (теперь 0%) и потребление памяти (~24Мб) при прожатии скиллов по откату. Довожу до совершенства
Да, к слову, играю крестоносцем-саппортом так:
1. Поводил мышкой с зажатой левой клавишей.
2. Иногда прожал на мышке коня и поводил мышкой.
3. Зажал Shift.
4. Повторить, начиная с пункта 1.
Красота неописуемая. Вместо прожатия 6 клавиш, нажимать одну и Shift

Да, к слову, играю крестоносцем-саппортом так:
1. Поводил мышкой с зажатой левой клавишей.
2. Иногда прожал на мышке коня и поводил мышкой.
3. Зажал Shift.
4. Повторить, начиная с пункта 1.
Красота неописуемая. Вместо прожатия 6 клавиш, нажимать одну и Shift

Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
ну так чем дело кончилось как решил проблему с copyfromscreenDmitryOlenin писал(а):Всё получилось. Сделал прожатие скиллов по кулдауну.
-
LamerOnline -
- Сообщения: 14
- Репутация: 36
- Статус: Не в сети
Сделал всё-таки через BitBlt.
Видимо, изначально где-то накосячил с new и dispose, потому были бешеные лаги.
Сейчас всё идеально.
Сейчас решаю ещё одну проблему. Некоторые скиллы типа Сияющего щита требуют время на каст.
То есть как-то надо ждать после их прокаста что ли...
Видимо, изначально где-то накосячил с new и dispose, потому были бешеные лаги.
Сейчас всё идеально.
Сейчас решаю ещё одну проблему. Некоторые скиллы типа Сияющего щита требуют время на каст.
То есть как-то надо ждать после их прокаста что ли...
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
Спасибо, что напомнили. Поправил ошибку по ходу дела, в следующей версии всё будет.
Но, в целом, на Win10 всё прожимается нормально.
Там старая проблема, пока не выставишь время, прожим не идёт.
Поставьте хоть что-то, до того, как ставить галку на зажатие, и всё будет хорошо.
Раз уж у меня оказалась Win10, решил потестировать.
Картинка

Но, в целом, на Win10 всё прожимается нормально.
Там старая проблема, пока не выставишь время, прожим не идёт.
Поставьте хоть что-то, до того, как ставить галку на зажатие, и всё будет хорошо.
Раз уж у меня оказалась Win10, решил потестировать.
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
тогда почему copyfromscreen тормозил? и с ним должен был сделать тогдаDmitryOlenin писал(а):Сделал всё-таки через BitBlt.
-
LamerOnline -
- Сообщения: 14
- Репутация: 36
- Статус: Не в сети
Copyfromscreen работает медленнее, чем BitBlt.
Причём медленнее, в моём случае, примерно в 75 раз.
Я копирую узкую полоску экрана. BitBlt так умеет, с Copyfromscreen мне приходилось изгаляться и резать картинку (что, кстати, всё равно было быстрее, чем работать со всей сразу).
Причём медленнее, в моём случае, примерно в 75 раз.
Я копирую узкую полоску экрана. BitBlt так умеет, с Copyfromscreen мне приходилось изгаляться и резать картинку (что, кстати, всё равно было быстрее, чем работать со всей сразу).
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
Оличная программа! Автору огромное спасибо!
Но я пока не разобрался с функцией - клавиша с паузой... Опишите плз подробнее как это работает?
Я хочу чтобы на монке прожималось умение "Прозрение (озарение)" и только после 15 сек его действия прожималось "Таинственный союзник (воздушный)", а так же каждые 2.8 сек мантра. Т.е. смысл в том чтобы скилы восстанавливающие дух не прожимались одновременно, т.к. нам столько духа не нужно. Как это реализовать?

Я хочу чтобы на монке прожималось умение "Прозрение (озарение)" и только после 15 сек его действия прожималось "Таинственный союзник (воздушный)", а так же каждые 2.8 сек мантра. Т.е. смысл в том чтобы скилы восстанавливающие дух не прожимались одновременно, т.к. нам столько духа не нужно. Как это реализовать?
Заблокируйте, пожалуйста кнопки Save/Load когда нажата Start. Так как можно загрузить профиль (визуально клавиши поменяются) но он не будет активен пока не нажать Stop а затем снова Start.
D4 - Билды на все классы/режимы - D4Planner - MAP
D3 - Билды на все классы/режимы - D3Planner - [Все для Diablo 3] - Gems&Paragon - АЛТАРЬ - (до коробки / полный)
D2 - Билды на все классы/режимы - D2Planner - [Все для Diablo 2] - Gems&Runeword
D3 - Билды на все классы/режимы - D3Planner - [Все для Diablo 3] - Gems&Paragon - АЛТАРЬ - (до коробки / полный)
D2 - Билды на все классы/режимы - D2Planner - [Все для Diablo 2] - Gems&Runeword
lordep
Сам не пользуюсь Save/Load, так что спасибо за отзыв, не узнал бы иначе никогда.
Сделаю, не вопрос.
DreXLer
Клавишу с паузой я описывал ранее на страницах темы, когда только её придумывал.
Смысл такой: есть клавиша, по нажатию которой всё должно прерываться, чтобы ей не мешать.
Пример: Скакун у крестоносца. Пока он активен, все остальные прожатия прекращаются, чтобы не прервать этого самого коня.
Теперь по вопросу. Мантру как прожимать каждые 2.8 секунд понятно, да?
Прозрение прожимаем. Предположим, оно откатывается каждые 45 секунд, при этом работает 15 секунд. Ставим 45 секунд.
Союзник ставим прожиматься каждые 30 секунд.
Более элегантного решения я пока не вижу, к сожалению.
В новой версии можно будет ставить прожатие скиллов по откату, но даже в этом случае я пока не очень понимаю, как сделать зависимость одного скилла от другого.
Сам не пользуюсь Save/Load, так что спасибо за отзыв, не узнал бы иначе никогда.
Сделаю, не вопрос.
DreXLer
Клавишу с паузой я описывал ранее на страницах темы, когда только её придумывал.
Смысл такой: есть клавиша, по нажатию которой всё должно прерываться, чтобы ей не мешать.
Пример: Скакун у крестоносца. Пока он активен, все остальные прожатия прекращаются, чтобы не прервать этого самого коня.
Теперь по вопросу. Мантру как прожимать каждые 2.8 секунд понятно, да?
Прозрение прожимаем. Предположим, оно откатывается каждые 45 секунд, при этом работает 15 секунд. Ставим 45 секунд.
Союзник ставим прожиматься каждые 30 секунд.
Более элегантного решения я пока не вижу, к сожалению.
В новой версии можно будет ставить прожатие скиллов по откату, но даже в этом случае я пока не очень понимаю, как сделать зависимость одного скилла от другого.
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
-
DmitryOlenin -
- Сообщения: 1622
- Откуда: Москва
- Репутация: 1208
- Статус: Не в сети
DeaDHeaD, Настройка - Процесс/Зажатие - "галка" поставлена ?
D4 - Билды на все классы/режимы - D4Planner - MAP
D3 - Билды на все классы/режимы - D3Planner - [Все для Diablo 3] - Gems&Paragon - АЛТАРЬ - (до коробки / полный)
D2 - Билды на все классы/режимы - D2Planner - [Все для Diablo 2] - Gems&Runeword
D3 - Билды на все классы/режимы - D3Planner - [Все для Diablo 3] - Gems&Paragon - АЛТАРЬ - (до коробки / полный)
D2 - Билды на все классы/режимы - D2Planner - [Все для Diablo 2] - Gems&Runeword
DeaDHeaD писал(а):fatum312, ну надо же, мистер умник. Думаешь я действительно не видел слона?
Действительно не видишь.
ЧЯДНТ?
Главное ведь что сделать? Правильно, не разобравшись наехать.
lordep писал(а):DeaDHeaD, Настройка - Процесс/Зажатие - "галка" поставлена ?
О чем ты, там же "НЕТ вообще возможности выставить "галку".
lordep писал(а):DeaDHeaD, Настройка - Процесс/Зажатие - "галка" поставлена ?
Да, сделано всё, как на скринах.
fatum312 писал(а):Главное ведь что сделать? Правильно, не разобравшись наехать.
Ой, всё.
P.S.: не пашет конкретно бинд на левую кнопку мыши, другие клавиши работают, не спорю. Но, если раньше программа работала безупречно во всех приложениях, то теперь, даже если указать конкретное, не пашет. Перепробовал все варианты, проще забить до выхода 2.3.0.
BorN †o be DeaD
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4