Jump to content
Korean Random
GPCracker

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

Recommended Posts

Можно ли как то вывести в лог или в файл информацию которую выдает  AimingInfo.py, а именно данные по танку в прицеле, с питоном пока на вы так как кодил в основном на Autoit и малость на Pascal.

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

2. AimingInfo - это данные по сведению, т.е. данные, выводимые на панельке сведения, на которой больше всего текста. Панель информации о танке противника - это TargetInfo, данные берутся из экземпляра одноименного класса (объекта), привязанного к одному из базовых объектов WG.

Упрощенно к нему доступ можно получить через

getattr(BigWorld.player().inputHandler, 'XTargetInfo', None)
Или, если пользуешься классами, можно сделать примерно как здесь. Само собой, вносить туда изменения (менять значения параметра и свойства объекта) крайне не рекомендуется, иначе это скажется на работу AAS.

Вывод информации на панельку прописан здесь, это получение макросов для форматирования строки.

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

Примеры по AimingInfo (информации по сведению) лежат рядом, но там нет публично доступного атрибута вне мода. Хотя можно просто взять функцию из указанного файла, не забыв про импорты из XModLib.

They've apparently fixed it.  You mod may no longer be required?

Will see when patch released on RU.
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Доброе утро!

 

Включил вчера в arcade.xml искомые установки:

 

  <!-- Ручной режим корректировки. -->
  <manualMode>
   <enabled>True</enabled>
   <shortcut>KEY_LALT</shortcut>
  </manualMode>
  <!-- Target correction mode. -->
  <!-- Режим корректировки по данным цели. -->
  <targetMode>
   <enabled>True</enabled>

 

И хорошенько покатался. Всё заработало. Но, стал проявляться неприятный глюк (для глаз): в движении (не целясь, а просто осматривая окрестности) при удалении/приближении колёсиком мышки, картинка стала меняться не плавно (как раньше), а дискретно, рывками (3-4 до максимума и 3-4 до минимума), как в снайперском режиме. У других такое наблюдается?

Edited by The_Pluto

Share this post


Link to post

Short link
Share on other sites

картинка стала меняться не плавно (как раньше), а дискретно, рывками (3-4 до максимума и 3-4 до минимума), как в снайперском режиме.

Там проблема в принципе в дискретности, не только зум, но еще и перемещения немного этим начинают страдать. В чем прикол - установить пока не удается. Собака зарыта весьма неплохо.

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

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

Share this post


Link to post

Short link
Share on other sites

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

Edited by The_Pluto

Share this post


Link to post

Short link
Share on other sites

Hey GPCracker.... UPDATE.

 

Okay, so lot's of playing yesterday and I've found that it appears that the "bouncing/dropping" of the Reticle DOES still occur, but ONLY in a small degree and in a particular situation.

It appears that it still occurs slightly when a tank is on the horizon on a hill.  It doesn't occur bad as before, but there's still a slight bounce there, and seems to be only occasionally, not every time.

 

From what someone else has told me, there has always been the bouncing problem in the game, even before 8.11.  This may be what they are talking about, and I simply didn't notice it before because it doesn't occur all the time, seems only in a certain way, and it's a little small.  So, maybe Wargaming returned the Reticle operation to how it used to work before 8.11 when it became really bad.

Also, I've used the games server reticle (not a mod one yet) and also have no bounce, but it's so "laggy" that I don't know if it still occurs in the situation I just mentioned, likely does since the regular reticle does it.

 

So, it seems the problem is "mostly" 95% fixed.  So, you may need to adjust your mod accordingly if you want to keep it going to fix that one particular situation.

It's odd too, it doesn't occur in some other instances tanks are on horizon's.  Actually, I was just thinking about something.....

I had started using XVM's Zoom Features, as well as the Autoaim indication+addins mod yesterday before I saw the issue occur a couple of times....

http://forum.worldoftanks.eu/index.php?/topic/441413-0917-autoaim-indicationaddins-no-proximity-snapping-for-autoaim-but/

 

I wonder if one of them are what caused that "slight" bounce in certain horizon situation?  Because like I said, I never noticed it once before, many games on test server, and several games initially on the Official .18 release before I started using those few mods.  So, maybe that's what caused it?

This is going to have to be looked at and researched more....  hmmmm

Share this post


Link to post

Short link
Share on other sites

что-то в AAS при включении настроек в аркадном режиме подталкивает прицел (вечером проверю на чистом клиенте без мода прицела) "думать", что он в снайперском режиме.

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

Нужно прогнать тест на скорость выполнения методов, и различные комбинации в трене, есть еще вариант стянуть хуки на уровень ниже, возможно что-то даст. Других идей пока не имеется.

Share this post


Link to post

Short link
Share on other sites

         Доброе утро!

 

Позавчера не играл, но вчера зашёл товарищ и мы немного оттянулись. :)

Докладываю результаты. Эффект никакой связи с кратностью (или количеством "шагов") в снайперском прицеле - не имеет. Версия отпала. Но, если зум меняется плавно (можно увеличить число "шагов" и уменьшить между ними "перепады") - эффекта почти нет. Т.е., дело скорее всего в каких-то микрофризах. Проверял на нормальном компе (>100 ФПС). Так что, спокойно делайте, что планировали, а микрофризы вполне могут уйти в очередном обновлении (картошка?)... Ждём новую версию.

Share this post


Link to post

Short link
Share on other sites

 

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

2. AimingInfo - это данные по сведению, т.е. данные, выводимые на панельке сведения, на которой больше всего текста. Панель информации о танке противника - это TargetInfo, данные берутся из экземпляра одноименного класса (объекта), привязанного к одному из базовых объектов WG.

Упрощенно к нему доступ можно получить через

getattr(BigWorld.player().inputHandler, 'XTargetInfo', None)
Или, если пользуешься классами, можно сделать примерно как здесь. Само собой, вносить туда изменения (менять значения параметра и свойства объекта) крайне не рекомендуется, иначе это скажется на работу AAS.

Вывод информации на панельку прописан здесь, это получение макросов для форматирования строки.

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

Примеры по AimingInfo (информации по сведению) лежат рядом, но там нет публично доступного атрибута вне мода. Хотя можно просто взять функцию из указанного файла, не забыв про импорты из XModLib.

Will see when patch released on RU.

 

 

GPCracker спасибо за такой подробный ответ направление принял - буду теперь гранит науки грызть)) Плюсанул от души.  :no1:

Share this post


Link to post

Short link
Share on other sites

Т.е., дело скорее всего в каких-то микрофризах.

Вот я тоже рассматриваю это как одну из версий.

Нужно прогнать тест на скорость выполнения методов, и различные комбинации в трене, есть еще вариант стянуть хуки на уровень ниже, возможно что-то даст. Других идей пока не имеется.

В общем, доберусь - буду разбираться более детально. На реплее это не отладить.

 

Upd. Для любителей потаскать панельки мышкой есть хорошая новость - удалось завести прототип, сохраняющий настройки в игровой файл конфигурации (preferences.xml, собственно, файлик, в котором хранятся параметры графики, бинды и прочие настройки). ИМХО, наиболее оптимальный вариант, ибо менять файлы в каталоге игры как-то неправильно, а из остального этот вариант наиболее логичный и простой. Тем более, что управляет данным файлом движок игры, и для работы с ним можно использовать уже имеющиеся инструменты для работы с конфигом.

  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

доброго времени суток, возникла проблема с установкой, содержимое архивов XModLib_v0.1.5.zip и AdvancedAimingSystem_v0.2.4.zip закинул в папку mods, в итоге при запуске игры после первого экрана загрузки клиент уходит в черный экран на несколько секунд, затем игра как бы "закрывается" но процесс присутствует диспетчере задач, AAS ставлю вкупе с модпаком protanki. питонлог прилагается.  так понял что ошибку вызывает xvm (может ошибаюсь).

python.log

Edited by Evgen1388

Share this post


Link to post

Short link
Share on other sites

@Evgen1388, да, ошибка из-за модов, точнее AAS и XModLib не могут согласоваться. Хотя у тебя стоят правильные с виду пакеты (с версией в названии стало даже несколько интереснее), такое ощущение что версия XModLib старая... Возможно, ты не почистил хвосты в res_mods, а поскольку res_mods обладает более высоким приоритетом, старые файлы мешают работе.

 

При установке версии, использующей пакеты, нужно почистить все хвосты в res_mods (за исключением файлов, которые были изменены вручную, если кто правил локализации, например)!

Измененные файлы нужно сравнивать, и вносить необходимые добавочные изменения.

Конфиги в пакетной версии по отношению к "рассыпной" переехали в новую локацию, с изменениями оверрайдов, будьте внимательны!

Share this post


Link to post

Short link
Share on other sites

@Evgen1388, да, ошибка из-за модов, точнее AAS и XModLib не могут согласоваться. Хотя у тебя стоят правильные с виду пакеты (с версией в названии стало даже несколько интереснее), такое ощущение что версия XModLib старая... Возможно, ты не почистил хвосты в res_mods, а поскольку res_mods обладает более высоким приоритетом, старые файлы мешают работе.

 

При установке версии, использующей пакеты, нужно почистить все хвосты в res_mods (за исключением файлов, которые были изменены вручную, если кто правил локализации, например)!

Измененные файлы нужно сравнивать, и вносить необходимые добавочные изменения.

Конфиги в пакетной версии по отношению к "рассыпной" переехали в новую локацию, с изменениями оверрайдов, будьте внимательны!

 

res_mods чистил, даже бэкапил ее и создавал новую папку, ситуацию не изменило, попробую поставить еще одни танки на другой диск, и туда поставить AAS.

P.S на свежем клиенте баг не проявился, aas загрузился сразу, так что вопрос снят, извините за беспокойство.

Edited by Evgen1388

Share this post


Link to post

Short link
Share on other sites

0.2.5 Alpha (XModLib v0.1.6) [22.04.2017]

- немного оптимизирован модуль корректировки дальномера, сканер целей.

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

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

- изменено поведение информационных панелей в плане их конфигурации, профиль по умолчанию теперь используется для "неизвестных" режимов прицеливания.

 

Первые два пункта - чисто технические обновления, на логику функционала они не влияют.

Третий пункт - думаю понятен, настройки сохраняются в файл %appdata%\Wargaming.net\WorldOfTanks\preferences.xml, ближе к концу файла. Чтобы сбросить настройки панелей, нужно удалить секцию mods/GPCracker.AdvancedAimingSystem/gui/panels/ingame, причем именно удалить секцию, а не зачистить содержимое (кодированную строку). В будущем, возможно, появится способ сделать это непосредственно из игры. Будьте аккуратны, в этом файле хранятся настройки клиента игры вообще, про нормальный текстовый редактор думаю известно уже всем.

Четвертый пункт поясню подробнее. Раньше секция default в настройках использовалась как конфиг по умолчанию при создании панелей. В общем-то и сейчас используется, но теперь уже и как промежуточное состояние при переключении режимов прицеливания, и, соответственно, всех "неправильных" режимов, вроде посмертного. В связи с чем параметр visible=False при выходе из режима прицеливания теперь применяется не внутренним скриптом, а подтягивается из default. В связи с чем, думаю уже понятно, что в конфиге нужно прописать в секции default (только default, остальные менять не нужно) для всех панелей visible=False. В дефолтном конфиге это уже сделано, просто поясняющий комментарий для тех, кто катает с патченым конфигом :) Если этого не сделать, то панельки будет висеть в посмертном режиме, что не очень-то в тему.

 

AdvancedAimingSystem_v0.2.5.zip

XModLib_v0.1.6.zip

 

Думаю тут уже всем известно, что без XModLib мод работать не будет.

  • Upvote 7

Share this post


Link to post

Short link
Share on other sites

Всем привет! Подскажите в какую папку сейчас устанавливать mods или res_mods?

Share this post


Link to post

Short link
Share on other sites

В общем, есть прототип контекстного меню для панелей. Перетаскивание теперь работает только с левой кнопки мышки (но это думаю не проблема, гы), правая собственно зарезервирована под вызов меню.

В текущем варианте есть некоторые проблемы с локализацией, поскольку пока не удается найти красивого и аккуратного способа туда ее прикрутить. Но это не самое так сказать первостепенное, поскольку все еще возможно перепилится в процессе...

 

Собственно, какие пункты по вашему мнению жизненно необходимы в контекстном меню панелек? Два уже есть, скрытие панельки и сброс настроек (координат), что еще добавить в процессе?

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

У меня вопрос, что там на счет отключения стрельбы по трупам? Особенно интересует стрельба в пустоту, опять подсаживаюсь на ЛТ.

Share this post


Link to post

Short link
Share on other sites

0.2.6 Alpha (XModLib v0.1.7) [25.04.2017]

- незначительные изменения в строках-идентификаторах локализации.

- добавлено контекстное меню для информационных панелей.

 

По сравнению с предыдущей версией добавилось только контекстное меню для информационных панелей, плюс немного изменены строки в файлах локализации, и соответственно ссылки в файле gui.xml. Смысла дожидаться обновы я не вижу, хотя и будет она через пару дней, судя по информации от разрабов, ибо потом и так будет что дебажить. Как раз таки интереснее все закоммитить и запушить и выйти на обнову с чистым рабочим каталогом. В противном случае обновление получается достаточно веселым, если что-то отвалилось, ибо приходится уходить в стеш и потом весело его возвращать поверх пропатченного под обнову кода с ручным резолвом кучи конфликтов.

AdvancedAimingSystem_v0.2.6.zip

XModLib_v0.1.7.zip

 

Думаю тут уже всем известно, что без XModLib мод работать не будет.


У меня вопрос, что там на счет отключения стрельбы по трупам? Особенно интересует стрельба в пустоту, опять подсаживаюсь на ЛТ.

А с пустотой-то как раз самое интересное (если ты имеешь ввиду wasteShot). Там надо менять алгоритм определения наводки орудия, чтобы он не забирал на себя вычислительное время в момент выстрела, иначе происходит задержка при выстреле, особенно заметная на слабых ПК.

Пока в эту тему особо не лез, допиливаю что есть. Разберусь с тем, над чем уже работаю, потом м.б. займусь IFF.


Edited by GPCracker
  • Upvote 7

Share this post


Link to post

Short link
Share on other sites

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

Минимально возможное перемещение соответствует единичному смещению мыши. Однако есть один очень важный и занимательный момент, о котором было бы немного неправильным не упомянуть.

Дело в том, что камера прицела, если выражаться приближенным к скриптам языком, имеет так называемую "сенсу", то есть чувствительность, на которую домножаются полученные от мыши относительные смещения. Т.е. большая чувствительность - одно единичное смещение мыши приводит к большему скачкообразному смещению камеры, меньшая - соответственно к меньшему.

А поскольку, как я уже упоминал выше, относительные смещения мыши могут быть только целыми... И тут следует возможно не для всех понятное логическое продолжение - для уменьшения скачков нужно уменьшать чувствительность прицела в игре, и компенсировать это за счет повышения чувствительности мыши, например повышением ее dpi. Я не знаю, каким образом игра получает данные, но факт остается фактом - целые смещения, полученные как события домножаются на "сенсу", и чтобы сделать движение более плавным, нужно уменьшить "сенсу", компенсировав это увеличением числа этих событий, получаемых от мыши.

Edited by GPCracker
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

А я все не мог понять о каких рывках идет речь. Теперь ясно, у меня на самом деле так и стоит всегда, чувствительность прицела в игре на минимуме,  а в игре пользуюсь кнопочкой dpi 

Share this post


Link to post

Short link
Share on other sites

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

Минимально возможное перемещение соответствует единичному смещению мыши. Однако есть один очень важный и занимательный момент, о котором было бы немного неправильным не упомянуть.

Дело в том, что камера прицела, если выражаться приближенным к скриптам языком, имеет так называемую "сенсу", то есть чувствительность, на которую домножаются полученные от мыши относительные смещения. Т.е. большая чувствительность - одно единичное смещение мыши приводит к большему скачкообразному смещению камеры, меньшая - соответственно к меньшему.

А поскольку, как я уже упоминал выше, относительные смещения мыши могут быть только целыми... И тут следует возможно не для всех понятное логическое продолжение - для уменьшения скачков нужно уменьшать чувствительность прицела в игре, и компенсировать это за счет повышения чувствительности мыши, например повышением ее dpi. Я не знаю, каким образом игра получает данные, но факт остается фактом - целые смещения, полученные как события домножаются на "сенсу", и чтобы сделать движение более плавным, нужно уменьшить "сенсу", компенсировав это увеличением числа этих событий, получаемых от мыши.

Вот ты красавчик, а я всё думаю, что меня раздражало так!

Попробую, спасибо!

Edited by DrShats

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   0 members

    No registered users viewing this page.

×
×
  • Create New...