StranikS_Scan Posted March 9, 2015 Share Posted March 9, 2015 (edited) Самый точный вариант - взять WG функцию расчета углов наведения, функцию расчета точки выстрела. Почиткал тут. А вариант через луч прицеливания при не чисто горизонтальном прицеливании точнее формулы t = 2*V0*sinA0 / g или одинаково? Через g вроде проще считать и деления на 0 нет. это правило общепринято, и все немцы поймут, если написать таким образом. Да нам как бы точность не важна, думаю нам a-o-ss-u вполне сойдут, мы не фон-бароны. А для французского алфавита можете написать, а то там черт ногу сломит. Edited March 9, 2015 by StranikS_Scan @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 9, 2015 Author Share Posted March 9, 2015 Да нам как бы точность не важна, думаю нам a-o-ss-u вполне сойдут, мы не фон-бароны. А для французского алфавита можете написать, а то там черт ногу сломит.Реализовать в конфиге параметры замены символов юникода. Почиткал тут. А вариант через луч прицеливания при не чисто горизонтальном прицеливании точнее формулы t = 2*V0*sinA0 / g или одинаково? Через g вроде проще считать и деления на 0 нет.Упрощенные формулы через двойной угол (так получается после преобразований) можно использовать только при равенстве абсолютной высоты (цели на одном уровне). Если условие не выполняется, появляются дополнительные параметры (высота), уравнение хоть и остается квадратным, но решается значительно сложнее - оно становится уже тригонометрическим. В той формуле, что я написал, время полета рассчитывается через горизонтальную составляющую скорости и горизонтальную составляющую расстояния. Для определения горизонтальной составляющей скорости используется cos угла склонения орудия, угол вычисляется через сишные картофельные функции. Формулы для расчетов углов стрельбы с учетом разности высот я уже выкладывал в теме (поищи если интересно). Но вызвать одну функцию ИМХО проще, чем писать свою. Тебе же не нужна минометная траектория) Если самому найти эту функцию напряжно, пиши в ЛС, скину. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted March 9, 2015 Share Posted March 9, 2015 (edited) Если самому найти эту функцию напряжно, пиши в ЛС, скину. Почитав тут, я понял что при разности высот минимальная погрешность в оценки времени будет именно в формуле косинуса, а не синуса, если конечно за длину брать луч от игрока до вражеского танка. Именно увеличение длины этого луча и скорректирует погрешность, а вот формула синуса ни как не отреагирует на разность высот. Я дополнил скрипт французскими знаками, такой вариант полагаю будет достаточен для все случаев названий танков: def umlaut_converter(s): if s: if '\xc3\x84' in s: s = s.replace('\xc3\x84', 'A') if '\xc3\xa4' in s: s = s.replace('\xc3\xa4', 'a') if '\xc3\x82' in s: s = s.replace('\xc3\x82', 'A') if '\xc3\xa2' in s: s = s.replace('\xc3\xa2', 'a') if '\xc3\x80' in s: s = s.replace('\xc3\x80', 'A') if '\xc3\xa0' in s: s = s.replace('\xc3\xa0', 'a') if '\xc3\x87' in s: s = s.replace('\xc3\x87', 'C') if '\xc3\xa7' in s: s = s.replace('\xc3\xa7', 'c') if '\xc3\x89' in s: s = s.replace('\xc3\x89', 'E') if '\xc3\xa9' in s: s = s.replace('\xc3\xa9', 'e') if '\xc3\x8a' in s: s = s.replace('\xc3\x8a', 'E') if '\xc3\xaa' in s: s = s.replace('\xc3\xaa', 'e') if '\xc3\x88' in s: s = s.replace('\xc3\x88', 'E') if '\xc3\xa8' in s: s = s.replace('\xc3\xa8', 'e') if '\xc3\x8b' in s: s = s.replace('\xc3\x8b', 'E') if '\xc3\xab' in s: s = s.replace('\xc3\xab', 'e') if '\xc3\x8f' in s: s = s.replace('\xc3\x8f', 'I') if '\xc3\xaf' in s: s = s.replace('\xc3\xaf', 'i') if '\xc3\x8e' in s: s = s.replace('\xc3\x8e', 'I') if '\xc3\xae' in s: s = s.replace('\xc3\xae', 'i') if '\xc3\x96' in s: s = s.replace('\xc3\x96', 'O') if '\xc3\xB6' in s: s = s.replace('\xc3\xB6', 'o') if '\xc3\x94' in s: s = s.replace('\xc3\x94', 'O') if '\xc3\xb4' in s: s = s.replace('\xc3\xb4', 'o') if '\xe1\xba\x9e' in s: s = s.replace('\xe1\xba\x9e', 'SS') if '\xc3\x9f' in s: s = s.replace('\xc3\x9f', 'ss') if '\xc3\x9c' in s: s = s.replace('\xc3\x9c', 'U') if '\xc3\xbc' in s: s = s.replace('\xc3\xbc', 'u') if '\xc3\x9b' in s: s = s.replace('\xc3\x9b', 'U') if '\xc3\xbb' in s: s = s.replace('\xc3\xbb', 'u') if '\xc3\x99' in s: s = s.replace('\xc3\x99', 'U') if '\xc3\xb9' in s: s = s.replace('\xc3\xb9', 'u') if '\xc3\xb8' in s: s = s.replace('\xc3\xb8', 'Y') if '\xc3\xbf' in s: s = s.replace('\xc3\xbf', 'y') return unicode(s, 'utf-8') Edited March 9, 2015 by StranikS_Scan 1 1 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 9, 2015 Author Share Posted March 9, 2015 Публикация данного мода в иных источниках без согласия автора запрещается. The publication of this modification elsewhere without the consent of the author is prohibited. Версия 0.0.8 Alpha #1 (WoT Client 0.9.6). - Полностью переработана архитектура построения мода (внутренние изменения). - Полностью переработан файл конфигурации. Добавлена поддержка UTF-8. - Добавлена возможность локализации сообщения об обновлении. - Added English parameters description. - Оптимизация базовых функций и методов (внутренние изменения). - Оптимизированы элементы GUI (внутренние изменения). - Оптимизировано позиционирование маркера упреждения (внутренние изменения). - Изменена система позиционирования элементов GUI. - Оптимизация скриптов модуля SafeShot. - Оптимизированы алгоритмы вычисления высоты танка. - Оптимизирован модуль "Рентген". Исправлен баг с захватом цели в аркадном режиме. - Оптимизирован модуль захвата цели (внутренние изменения). - Изменена логика работы корректировщика дальномера при захвате цели. - Полностью переработана механика артоснайпинга. - Полностью переработано улучшения перка "Эксперт"."Важная информация" 1. Изменилась кодировка файла конфигурации (Windows-1251 -> UTF-8). Старый конфиг будет работать некорректно. 2. Координаты GUI теперь задаются по другой схеме (CENTER=0,0; TOP-RIGHT=1,1; BOTTOM-LEFT=-1,-1). 3. Захват цели теперь не привязан жестко к корректировке дальномера. 4. Координаты камеры в режиме артоснайпинга теперь определяются с учетом траектории полета снаряда. В случаях включения этого режима при наличии близких препятствий возможны баги. Как и при выводе камеры за пределы зоны поражения (не тестировалось). 5. Возможны зависания с вылетом через 5-10 сек в режиме артоснайпинга. Это связано с нахождением артиллерии игрока ниже базовой плоскости. В таких случаях уменьшаете значение zeroPlaneLevel в соответствующем блоке конфигурации. Желательно отписаться в теме, на какой карте и в каком квадрате это произошло (позиция игрока). 6. Понижение уровня базовой плоскости приводит к падению чувствительности системы прицеливания (реакции на перемещение мыши), а так же некоторому увеличению вычислительной нагрузки. Оптимальное значение - на 10-15 метров ниже уровня самой низкой точки на карте. Проблема в том, что эта точка на разных картах может отличаться на 200+ метров. Царских путей решения проблемы пока не нашел. 7. Игнор версии клиента необходимо отключить (если кто его включал). "Об альфа-версии" Альфа-версия - это тестовая версия, предназначенная для отладки новых функций и общего тестирования, может быть нестабильной, поэтому в шапку не заливаю. Скачать:Advanced Aiming System.zipPS В данной версии реализован не весь функционал, который обсуждался в теме. Остальное пойдет во вторую альфу. 5 @ Quote Link to comment Short link Share on other sites More sharing options...
lii Posted March 9, 2015 Share Posted March 9, 2015 Ухтышка, спасибо ) @ Quote Link to comment Short link Share on other sites More sharing options...
ger Gauf Posted March 9, 2015 Share Posted March 9, 2015 Благодарствуем. @ Quote Link to comment Short link Share on other sites More sharing options...
vasbelous Posted March 9, 2015 Share Posted March 9, 2015 Дождалися!!! @ Quote Link to comment Short link Share on other sites More sharing options...
lii Posted March 9, 2015 Share Posted March 9, 2015 (edited) GPCracker Не самая важная функция, но активировать не удалось. "конфиг" <deflectionMarker> <!-- Enable deflection marker. --> <!-- Разрешить маркер упреждения (может снижать FPS, когда активирован). --> <enabled>True</enabled> <!-- Deflection marker activation hot-key. --> <!-- "Горячая клавиша" активации маркера упреждения. --> <switchKey>KEY_LCONTROL+KEY_D</switchKey> <!-- Hot-key mode (True - switch, False - button). --> <!-- Режим работы "горячей клавиши" (True - переключатель, False - кнопка). --> <keySwitchMode>True</keySwitchMode> <!-- Activates deflection marker by default. --> <!-- Активировать маркер упреждения по умолчанию. --> <activated>True</activated> <!-- Deflection marker activation text message. --> <!-- Сообщение при активации маркера упреждения. --> <activateMessage>Вычисление упреждения включено.</activateMessage> <!-- Deflection marker deactivation text message. --> <!-- Сообщение при деактивации маркера упреждения. --> <deactivateMessage>Вычисление упреждения отключено.</deactivateMessage> <!-- Deflection marker texture. --> <!-- Текстура маркера упреждения. --> <textureName>gui/maps/ingame/aim/deflectionMarker.dds</textureName> <!-- Deflection marker size. --> <!-- Размер маркера упреждения. --> <textureSize>15 15</textureSize> </deflectionMarker> Ни по дефолту ни на клавишу, никак. В остальном конфиг грузится и все работает. "питон" [EXCEPTION] (, 348):Traceback (most recent call last): File "", line 342, in KT_arcade_update File "AASMX.py", line 1270, in new_Aim_updateAttributeError: AvatarInputHandler instance has no attribute 'XTargetInfo' Edited March 9, 2015 by lii 1 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 9, 2015 Author Share Posted March 9, 2015 GPCracker Не самая важная функция, но активировать не удалось. конфиг <deflectionMarker> <!-- Enable deflection marker. --> <!-- Разрешить маркер упреждения (может снижать FPS, когда активирован). --> <enabled>True</enabled> <!-- Deflection marker activation hot-key. --> <!-- "Горячая клавиша" активации маркера упреждения. --> <switchKey>KEY_LCONTROL+KEY_D</switchKey> <!-- Hot-key mode (True - switch, False - button). --> <!-- Режим работы "горячей клавиши" (True - переключатель, False - кнопка). --> <keySwitchMode>True</keySwitchMode> <!-- Activates deflection marker by default. --> <!-- Активировать маркер упреждения по умолчанию. --> <activated>True</activated> <!-- Deflection marker activation text message. --> <!-- Сообщение при активации маркера упреждения. --> <activateMessage>Вычисление упреждения включено.</activateMessage> <!-- Deflection marker deactivation text message. --> <!-- Сообщение при деактивации маркера упреждения. --> <deactivateMessage>Вычисление упреждения отключено.</deactivateMessage> <!-- Deflection marker texture. --> <!-- Текстура маркера упреждения. --> <textureName>gui/maps/ingame/aim/deflectionMarker.dds</textureName> <!-- Deflection marker size. --> <!-- Размер маркера упреждения. --> <textureSize>15 15</textureSize> </deflectionMarker> Ни по дефолту ни на клавишу, никак. В остальном конфиг грузится и все работает. питон [EXCEPTION] (, 348): Traceback (most recent call last): File "", line 342, in KT_arcade_update File "AASMX.py", line 1270, in new_Aim_update AttributeError: AvatarInputHandler instance has no attribute 'XTargetInfo' Хм... Есть некоторый косячок... Всего сразу не отдебажишь. Поправлю. Проверку дописать надо. Такое происходит, если включить маркер до первого захвата цели. Попробуй активировать маркер после первого захвата в бою. Всмысле поставить enable True, activated False, после первого захвата цели Ctrl+D в снайперском режиме (сообщение зеленое справа будет). З.Ы. Сочетания клавиш привязаны к режимам прицеливания, так же как и функции, которыми они управляют. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
snechinskij Posted March 9, 2015 Share Posted March 9, 2015 Спасибо-поехали катать-вопрос рентген твой тот что отдельным модом шел удалить или етот в конфиге отключать-сори если туплю @ Quote Link to comment Short link Share on other sites More sharing options...
vasbelous Posted March 9, 2015 Share Posted March 9, 2015 (edited) Покатал немного, пока все норма, маркер упреждения не использовал пока. На что обратить особое внимание? это что в логе? [NOTE] (scripts/common/fortified_regions.py, 207): fortified_regions.init()[NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 4 was selected.[NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 3 was selected.[sPACE] Loading space: spaces/hangar_premium_v2[WARNING] (scripts/client/account_helpers/CustomFilesCache.py, 33): Method "__run_read" takes too much time 0.230000019073[sPACE] Loading space: spaces/28_desertTraceback (most recent call last): File "ProEnemyIndicator.py", line 362, in <lambda.11> File "ProEnemyIndicator.py", line 364, in directionRepeatBigWorld.EntityIsDestroyedException: Avatar 21224547 has been destroyed[sPACE] Loading space: spaces/hangar_premium_v2PostProcessing.Phases.fini() Edited March 9, 2015 by vasbelous @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 9, 2015 Author Share Posted March 9, 2015 Спасибо-поехали катать-вопрос рентген твой тот что отдельным модом шел удалить или етот в конфиге отключать-сори если туплюВ данном случае под рентгеном подразумевается захват цели в автоприцел / корректировщик через текстуры. С модом на контуры он ничего общего не имеет. это что в логе?Протанки как всегда 2 @ Quote Link to comment Short link Share on other sites More sharing options...
vasbelous Posted March 9, 2015 Share Posted March 9, 2015 (edited) Я понял, что протанки... вот еще бой, новые (я гонял оба на арте) на всякий случай... [NOTE] (scripts/common/fortified_regions.py, 207): fortified_regions.init()[NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 4 was selected.[NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 3 was selected.[sPACE] Loading space: spaces/hangar_premium_v2[sPACE] Loading space: spaces/14_siegfried_lineTraceback (most recent call last): File "scripts/client/Avatar.py", line 1390, in updateGunMarker File "scripts/client/VehicleGunRotator.py", line 229, in setShotPositionTypeError: unsupported operand type(s) for -: 'NoneType' and 'Math.Vector3'[sPACE] Loading space: spaces/hangar_premium_v2PostProcessing.Phases.fini() Артоснайп просто сказка :) То, что доктор прописал! Немного не понял назначение клавиши пробел (еще не пробовал) И как я понял камера привязана к расстоянию от танка, чтобы перевестись на танк стоящий дальше, надо перейти в обычный арт прицел перевестись и снайп, я правильно понял? Edited March 9, 2015 by vasbelous @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 9, 2015 Author Share Posted March 9, 2015 Почитав тут, я понял что при разности высот минимальная погрешность в оценки времени будет именно в формуле косинуса, а не синуса, если конечно за длину брать луч от игрока до вражеского танка. Именно увеличение длины этого луча и скорректирует погрешность, а вот формула синуса ни как не отреагирует на разность высот.Функции расчета углов в BW используются для наведения орудия и отрисовки маркера. Как знаешь, погрешность в его позиционировании там весьма небольшая) Я дополнил скрипт французскими знаками, такой вариант полагаю будет достаточен для все случаев названий танков:Спасибо. Подумаю как прикрутить грамотно. ИМХО, условия там не нужны. И без них должно по сути работать. вот еще бой, новые (я гонял оба на арте)К моду вряд ли отношение имеет. @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted March 9, 2015 Share Posted March 9, 2015 (edited) @GPCracker, ха вот и первый подводный камень gunPitch то это угол склонения относительно корпуса, а не нулевой поверхности, выходит его недостаточно для расчета горизонтальной проекции начальной скорости снаряда (((((( нашел getTurretYawGunPitch И без них должно по сути работать. Угу и будет у тебя 20 перезаписей переменной, лучше 20 условий чем 20 перезаписей. Предполагается что срабатывать будет редко. Edited March 9, 2015 by StranikS_Scan @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 9, 2015 Author Share Posted March 9, 2015 (edited) Угу и будет у тебя 20 перезаписей переменной, лучше 20 условий чем 20 перезаписей. Предполагается что срабатывать будет редко.А это вопрос спорный. В условии есть явный поиск подстроки. А это не такая простая с точки зрения времени выполнения кода процедура. Давай не будем тут батл устраивать, вопрос не столь существеннен. Upd. Прогнал тесты по времени разница во времени между поиском и присваиванием меньше 1%. Так что без разницы. ) Немного не понял назначение клавиши пробел (еще не пробовал) И как я понял камера привязана к расстоянию от танка, чтобы перевестись на танк стоящий дальше, надо перейти в обычный арт прицел перевестись и снайп, я правильно понял?Эта супер-штука, которой рулит "пробел", блокирует полет камеры вдаль, т.е. удерживает камеру в пределах некоторого расстояния от игрока. Когда ты переходишь в артоснайп, это расстояние становится равным расстоянию до точки, куда ты перелетел (шифт/миникарта). А пробел выполняет перекалибровку расстояния по текущей точке прицеливания. То есть если тебе нужно перевести камеру вдаль от своей арты, для того, чтобы это сделать, нужно прицелиться куда нужно, и нажать пробел. Камера приблизится, угол наклона перекалибруется. Нужна эта фича для стрельбы по танкам на фоне неба / удаленных текстур. Чтобы камера не улетала. надо перейти в обычный арт прицел перевестись и снайпИли просто перевестись и нажать магический пробел) Edited March 9, 2015 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
vasbelous Posted March 10, 2015 Share Posted March 10, 2015 (edited) Или просто перевестись и нажать магический пробел) и правда - магический пробел! Вот чистый клиент + эта система, что за ошибка? /------------------------------------------------------------------------------------------------------------------------\ BigWorld Release Client (compiled at 18:46:19 Jan 21 2015) starting on Tue Mar 10 17:19:08 2015 Content Type: content Checking ./res_mods/0.9.6: mods found [ENOT]Loading mod: AASMX [AASMX] Config successfully loaded. [NOTE] (scripts/common/fortified_regions.py, 207): fortified_regions.init() [NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 4 was selected. [NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 3 was selected. [sPACE] Loading space: spaces/hangar_premium_v2 [sPACE] Loading space: spaces/06_ensk [ERROR] (scripts/client/AreaDestructibles.py, 664): Can't find hardpoint HP_module_0 in model content/Environment/env605_Dovecote/normal/lod0/env605_Dovecote.model [sPACE] Loading space: spaces/hangar_premium_v2 PostProcessing.Phases.fini() \------------------------------------------------------------------------------------------------------------------------/ Edited March 10, 2015 by vasbelous @ Quote Link to comment Short link Share on other sites More sharing options...
ger Gauf Posted March 10, 2015 Share Posted March 10, 2015 Сочетания клавиш привязаны к режимам прицеливания, так же как и функции, которыми они управляют. Имеется ввиду, что во всём конфиге сочетания клавиш менять не стоит ? Или я что то не понял .Опять... @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted March 10, 2015 Author Share Posted March 10, 2015 Имеется ввиду, что во всём конфиге сочетания клавиш менять не стоит ? Или я что то не понял .Опять...Имеется ввиду, что переключение артоснайпа только в арт-режиме, сочетания маркера упреждения только в снайперском. А арт-режим по клавише Е (по дефолту) работает только из аркадного режима и только для арты. Мод реагирует на сочетания только в тех режимах прицеливания, в секции которых это сочетание прописано. Вот чистый клиент + эта система, что за ошибка?Внутренняя обработанная ошибка клиента. Не парься) @ Quote Link to comment Short link Share on other sites More sharing options...
ger Gauf Posted March 10, 2015 Share Posted March 10, 2015 (edited) Имеется ввиду, что переключение артоснайпа только в арт-режиме, сочетания маркера упреждения только в снайперском. А арт-режим по клавише Е (по дефолту) работает только из аркадного режима и только для арты. Мод реагирует на сочетания только в тех режимах прицеливания, в секции которых это сочетание прописано. Хух....как камень с души )) ЗЫ только что повис , в самом начале боя прямо при входе в артоснайп .Карта Лайв-Окс , квадрат В-0. Гуслями немного на кучу щебня заехал, чтоб морду задрать. Спас ALT-F4 c последующим заходом в бой. Вроде всё норм... Угол наклона по кнопкам теперь не меняется ? <!-- "Горячая клавиша" увеличения угла наклона. --> <cameraRaiseKey>KEY_MOUSE5</cameraRaiseKey> <!-- "Горячая клавиша" уменьшения угла наклона. --> <cameraLowerKey>KEY_MOUSE4</cameraLowerKey> Edited March 10, 2015 by gergauf @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.