Jump to content
Korean Random
GPCracker

Улучшенная система прицеливания / Advanced Aiming System

Recommended Posts

Вопрос специалистам есть идея создания нового мода на базе XWM если это технически возможно. Заключается в том чтобы перед тем как нажимать кнопку " ВБОЙ "  можно было видеть среднестатистический WN8, Рейтинг Эфективности , % Подед и тд... играющих уже на сервере дабы оценить свои возможности и не сливать статку или поднять её.

Реализуемая ли эта идея технически?

 

Думаю такой мод за интересовал бы многих!

 

заранее извините если не по теме.

Edited by E-vgen
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites
6 часов назад, E-vgen сказал:

Вопрос специалистам есть идея создания нового мода на базе XWM если это технически возможно. Заключается в том чтобы перед тем как нажимать кнопку " ВБОЙ "  можно было видеть среднестатистический WN8, Рейтинг Эфективности , % Подед и тд... играющих уже на сервере дабы оценить свои возможности и не сливать статку или поднять её.

Реализуемая ли эта идея технически?

 

Думаю такой мод за интересовал бы многих!

 

заранее извините если не по теме.

 

Перенёс сюда.

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites
1 hour ago, Scharfhobel said:

Не работает фиксация расстояния до цели.

В конфиге прописано на клавишу Q.

Очевидных ошибок в изменяемом файле конфигурации при беглом просмотре не увидел. Скорее всего, ошибка как-то проявляется в логах.

В общем, как обычно, логи питона в студию.

Share this post


Link to post

Short link
Share on other sites
2 часа назад, GPCracker сказал:

Очевидных ошибок в изменяемом файле конфигурации при беглом просмотре не увидел. Скорее всего, ошибка как-то проявляется в логах.

В общем, как обычно, логи питона в студию.

Там ничего интересного нет.

Перелопатил еще раз конфиг и заработало.

Но не работает снайперский по кнопке Е, вроде бы писалось что  кнопка не должна быть занята? У меня на ней сброс автоприцела.

 

python.rar

Edited by Scharfhobel

Share this post


Link to post

Short link
Share on other sites
17 hours ago, Scharfhobel said:

Но не работает снайперский по кнопке Е, вроде бы писалось что  кнопка не должна быть занята? У меня на ней сброс автоприцела.

Соответствующая логика работы обработчика событий клавиатуры прописана здесь. В переводе на понятный русский это означает: модуль AvatarInputHandler клиента игры (он отвечает за прицеливание в игре) запущен, курсор не откреплен (курсор в нормальном состоянии прикреплен к прицелу, то есть при перемещении мыши перемещается и прицел, при зажатии Ctrl он открепляется, прицел больше не реагирует на мышь, появляется значок курсора на экране, и можно взаимодействовать с элементами пользовательского интерфейса; именно поэтому для некоторых [завязанных на AvatarInputHandler] функций и не работают сочетания содержащие Ctrl), режим прицеливания поддерживается (в данном случае сочетание будет работать только если игрок находится в снайперском или аркадном режиме прицеливания), событие (сочетание клавиш) не было обработано (не используется) клиентом игры. Комментарий: для базовых "переключателей" модуля AvatarInputHandler. Причина последнего: выполнение привязанного к событию клавиатуры на уровне модификации действия изменяет состояние модуля AvatarInputHandler (переключает режим прицеливания), выполнение "параллельно" другого действия (например, сброса автоприцела, но это всего лишь частный случай), но уже по инициативе обработчика клавиатуры на стороне клиента игры (внутри самого AvatarInputHandler) может повлечь за собой "параллельный" (в пределах одного интервала обновления) доступ к общим параметрам и тем самым спровоцировать непредсказуемое некорректное поведение (глюк/исключение/вылет с непредсказуемыми характеристиками). Такое явление достаточно вероятно, поскольку часть внутренних параметров AvatarInputHandler обновляется в отложенном режиме с определенными интервалами времени (интервал обновления/пересчета прицела), а базовая обработка событий клавиатуры происходит по факту их возникновения (сразу); таким образом существует крайне высокая вероятность того, что обе команды (команда клиента и команда модификации, в рассматриваемом случае это отключение автоприцела и переключение режима прицеливания) будут выполнены модулем AvatarInputHandler в один и тот же интервал между обновлениями прицела, а если учитывать то, как написан код этого модуля, то вероятность возникновения конфликтной ситуации, с учетом многочисленности и разнообразности привязанных к клавиатуре действий на стороне клиента игры, стоит оценивать как достаточно высокую. Причем в данной ситуации речь идет о глобальном поведении обработчика событий клавиатуры внутри модификации (игнорирование уже обработанных клиентом игры событий), а не о частных случаях вроде назначения отключения автоприцела и переключения режима прицеливания на одно сочетание (событие). Тут стоит принимать во внимание тот факт, что отсутствие конфликта между двумя конкретными действиями в рамках управления модулем AvatarInputHandler не означает отсутствия конфликта между любыми двумя действиями, также необходимо учитывать, что внесение любых изменений со стороны картошки, в том числе и не затрагивающих прямо обработку одной из команд, может повлечь за собой возникновение конфликта там, где его раньше не было (на ровном месте), и при этом сам факт появления такого конфликта будет абсолютно не очевиден при анализе изменений в клиенте игры (применение аналитического подхода к исправлению ошибок будет проблематичным). К тому же, как показывает практика, подобные ситуации крайне сложно отлаживать, потому как при возникновении исключения при отложенной обработке данных в трассировках ошибки почти никогда не содержится информации о том, что стало источником некорректного набора исходных данных (некорректного состояния).

В общем, если коротко, в целях предотвращения возникновения проблем по принципу WTF у пользователей, возникающих из-за "с виду правильной, но не очень удачной" конфигурации модификации, а также вопросов в том же самом стиле у меня (и других мододелов, кстати, тоже), на стадии анализа логов питона с целью выяснения причины возникновения исключения (неведомой ошибки, сопровождающейся той самой трассировкой в логах), во всех ситуациях, где модификация меняет состояние AvatarInputHandler тем или иным образом, использование любых обрабатываемых клиентом игры и имеющих отношение к командам для AvatarInputHandler биндов (так называемых "двойных биндов") заблокировано на уровне модификации в рамках глобальной политики обработки событий клавиатуры.

Если еще короче, то на всех функциях, которые пинают AvatarInputHandler "на запись" при использовании "двойных биндов" событие клавиатуры обрабатываться со стороны модификации не будет. На текущий момент такими функциями являются Advanced Arty, SPG Sniper Mode, TargetScanner - AutoScan, TargetScanner - ManualOverride, AimCorrection - Target Mode.

И собственно, ответ на вполне логичный вопрос, зачем вообще весь этот огромный пост нужен. Затем, чтобы желающие подрубить [себе] возможность использования "двойных биндов" таки имели представление о причинах, по которым данная возможность изначально была заблокирована.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
12 минут назад, GPCracker сказал:

И собственно, ответ на вполне логичный вопрос, зачем вообще весь этот огромный пост нужен. Затем, чтобы желающие подрубить [себе] возможность использования "двойных биндов" таки имели представление о причинах, по которым данная возможность изначально была заблокирована.

 

Напомнило вот это :heh:

 

 

Share this post


Link to post

Short link
Share on other sites
2 minutes ago, StranikS_Scan said:

Напомнило вот это

Ну в чем-то я с этим согласен... я действительно уже несколько устал отвечать на одни и те же вопросы с одним и тем же смыслом, но из разных углов и в разных вариациях. Потому периодически нервничаю и временами генерирую пусть и не очень понятную простому пользователю, но достаточно исчерпывающую документацию по тому или иному часто задаваемому вопросу. К сожалению, по некоторым вопросам (в особенности связанным с общей логикой работы модификации) нарисовать наглядную картинку попросту невозможно, или она так же будет наполовину состоять из текста, да и с рисованием на компьютере, собственно как и на бумаге, у меня не очень. Начертить сложную деталь не проблема, а вот рисовать и вообще в графический дизайн не умею от слова совсем.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
19 часов назад, GPCracker сказал:

Ну в чем-то я с этим согласен... я действительно уже несколько устал отвечать на одни и те же вопросы с одним и тем же смыслом, но из разных углов и в разных вариациях. Потому периодически нервничаю и временами генерирую пусть и не очень понятную простому пользователю, но достаточно исчерпывающую документацию по тому или иному часто задаваемому вопросу. К сожалению, по некоторым вопросам (в особенности связанным с общей логикой работы модификации) нарисовать наглядную картинку попросту невозможно, или она так же будет наполовину состоять из текста, да и с рисованием на компьютере, собственно как и на бумаге, у меня не очень. Начертить сложную деталь не проблема, а вот рисовать и вообще в графический дизайн не умею от слова совсем.

Ну так не на пустом месте всё возникло.

Раньше мод перехватывал нажатие клавиш , обрабатывал и передавал их дальше.

А теперь выходит так нельзя.

 

 

Edited by Scharfhobel

Share this post


Link to post

Short link
Share on other sites
On 11/22/2018 at 5:40 PM, Scharfhobel said:

Раньше мод перехватывал нажатие клавиш, обрабатывал и передавал их дальше.

В этом плане ничего не поменялось, техническая возможность получать практически все данные о событиях клавиатуры никуда не исчезла. Проблема в другом.

On 11/22/2018 at 5:40 PM, Scharfhobel said:

А теперь выходит так нельзя.

Насколько я понимаю, полного понимания сути вопроса до сих пор не достигнуто. Ладно, попробую объяснить более наглядно. Бинд - это связь, связь между некоторой командой и сочетанием клавиш, нажимаемых на клавиатуре для выполнения этой команды. На существующем примере: "переключить прицел" - это команда, KEY_E - это сочетание. На одно сочетание может быть привязано несколько последовательных команд, как и для одной команды может быть задано несколько различных комбинаций клавиш, в этом нет никаких технических сложностей. Проблема "двойного бинда" заключается не в самой процедуре привязки нескольких команд на одно сочетание, а в сути используемых команд. Дело в том, что при вызове команды AvatarInputHandler она выполняется не полностью, а только лишь частично. Оставшаяся ее часть вычисляется уже на стадии пересчета прицела, который [пересчет] выполняется независимо от событий клавиатуры с интервалом порядка 0.04 секунды (порядка 25 раз в секунду). Это сделано из соображений оптимизации, поскольку выполнять математические вычисления с большей частотой (та же мышка с небольшим откликом и приличным dpi, к примеру, способна генерировать события перемещения десятки раз в секунду) не имеет практического смысла, так как пользователь все равно не увидит разницы, а процессор это достаточно сильно нагружает. На сервере так вообще, если мне не изменяет память, судя по имеющимся в клиенте константам, сцена пересчитывается с интервалом 0.1 секунды (всего 10 раз в секунду). Так вот, команда переключения прицела пинает AvatarInputHandler "на запись", поэтому вместе с ней в одном интервале обновления не должно быть никаких других write-команд AvatarInputHandler, к таким командам относится и сброс автоприцела, о котором идет речь. Именно по этой самой причине, дабы предотвратить вызов других команд AvatarInputHandler одновременно с переключением прицела (и не только, сюда относится любая write-команда), и блокируется выполнение команды со стороны модификации, если событие клавиатуры уже было "съедено" чем-то другим на стороне клиента игры. Поведение с блокировкой "двойных биндов" применяется исключительно к потенциально опасным командам, их я перечислил чуть выше, а не ко всему подряд.

P.S. Пытался ответить еще вчера, но какие-то ******* отрубили электричество по всему дому...

Share this post


Link to post

Short link
Share on other sites
В 17.12.2018 в 14:47, Серега-33 сказал:

Ребят скиньте ссылочку на рабочею версию, за ранее спасибо.

на одну страницу назад лень пролистать?

Share this post


Link to post

Short link
Share on other sites
В 20.12.2018 в 14:59, goretz сказал:

на одну страницу назад лень пролистать?

Пролистал, и не одну... к сожалению не срабатывает  корректировка прицела при нажатии на кнопку, как было раньше..Индикация о дистанции  показывается, а сведение не подтягивается к перекрестию при прицеливании над линией горизонта....Если сможете,скиньте Вашу версию, которая работает у Вас в данном патче 1.3.0.1.  Заранее благодарю!

Edited by TheJollyRoger

Share this post


Link to post

Short link
Share on other sites
В 30.12.2018 в 13:19, TheJollyRoger сказал:

Пролистал, и не одну... к сожалению не срабатывает  корректировка прицела при нажатии на кнопку, как было раньше..Индикация о дистанции  показывается, а сведение не подтягивается к перекрестию при прицеливании над линией горизонта....Если сможете,скиньте Вашу версию, которая работает у Вас в данном патче 1.3.0.1.  Заранее благодарю!

эта не работает

естественно нужно в нужную папку распаковать

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   1 member

×