Jump to content
Korean Random

Leaderboard


Popular Content

Showing content with the highest reputation since 09/20/2020 in all areas

  1. 30 points
    Думаю на этой ноте буду заканчивать деятельность связанную с WoT. Ибо для меня уже подобное увлечение не приносит удовольствия. В саму игру я уже давно не играю, последнее что меня держало в ней это два режима (Стальной охотник и Линия фронта). Первый уже мне не так интересен, а второй после переделок вообще не заходит. Продолжал лишь обновлять моды/конфиг/сборку можно сказать что по привычке. Это всегда для меня было лишь хобби которое никогда не приносило никакого дохода. И занимался я этим лишь до того момента как было это самому интересно. Сейчас же интереса совсем не осталось, да и времени тратить уже самому на это все не хочется. Думаю стоит сказать спасибо тем кто пользовался по сей день моими поделками P.S.: Тему на какое то время пока оставлю открытой, но через определенное время закрою её.
  2. 14 points
    Описание Библиотека предзназначенная для облегчения написания установщиков модификаций для WoT. Основная функция -- поиск клиентов игры и получение информации о них (версия, локаль, реалм и прочее) а также помощь в разграничении контента для Wargaming/Lesta клиентов. Однако, есть и другие фишки, такие как: распаковка BigWorld XML работа с JSON конвертация PNG -> BMP поиск запущенных процессов в каталоге и их завершение отображение сплэшскрина замена в строке по регулярному выражению детектирование Wine поиск клиентов WGC / Steam / 360 / LGC Получение предпочительного клиента (текущий выбранный в WGC) работа с клиентом получение версии клиента и ее сверка по регулярному выражению получение версии исполняемого файла клиента получение реалма (EU/NA/ASIA/CN/RU) получение типа по контенту (SD/HD) получение типа лаунчера (WGC/Steam/360/LGC) получение типа релиза (Release/Common Test/Super Test/Sandbox) получение пути до активного в клиенте mods/res_mods получение языка клиента детектирование запуска и завершение клиента Как пользоваться 1) скачиваем 2) из комплекта поставки утягиваем два файла bin/openwg.utils.x86_32.dll innosetup/openwg.utils.iss 3) в своем корневом .iss файле прописываете #define OPENWGUTILS_DIR_SRC "bin" #define OPENWGUTILS_DIR_UNINST APP_DIR_UNINST #include "openwg.utils.iss" где OPENWGUTILS_DIR_SRC -- путь к каталогу куда вы положили .dll OPENWGUTILS_DIR_UNINST -- путь к каталогу файла деинсталляции относительно {app}, в подавляющем большинстве случаев должен совпадать с UninstallFilesDir 4) изучаем пример в innosetup_demo/openwg_utils_demo.iss и вызываем нужные вещи, подробности вызова можно подсмотреть в openwg.utils.iss и в *.h файлах в каталоге include Пользователи Название Сопровождающий Ссылка XVM.Installer v1 @Mixaill https://gitlab.com/xvm/xvm/-/tree/master/src/installer XVM.Installer v2 @ktulho https://gitlab.com/xvm/xvm.installer Protanki @Yusha https://protanki.tv/ Jove's @phantasm https://joves-modpack.ru/ KorbenTeam @phantasm https://korbenteam.org/modpack Amway921 @AtotIK https://wgmods.net/95/ Vspishka @AtotIK https://wgmods.net/131/ WGMods @AtotIK https://wgmods.net/16/ , RIP начиная с WoT 1.19.0 🥲 LeBwa team @POLIROID https://lebwa.tv/hub/modpack-lebwa-team Tomato.gg @POLIROID https://wgmods.net/6391/ напишите в комментариях если про вас забыл/не знал Скачать OpenWG.Utils_v2023.09.21.1.zip Исходный код https://gitlab.com/openwg/openwg.utils История версий v2022.12.04.1 первая для широкой публики v2023.03.17.1 переработано API для взаимодействия с JSON v2023.03.18.1 добавлены функции `JSON_SetDouble()`, `JSON_SetInteger()`, `JSON_SetString()` v2023.03.18.2 исправлена потеря комментариев в JSON-файлах v2023.08.01.1 исправлено дублирование клиентов WoT/МТ в случае если регистр имени каталога в файловой системе отличался от такового в конфигурационных файлах WGC/LGC v2023.09.01.1 добавлены фукнции `JSON_ContainsKey()`, `JSON_GetString()` v2023.09.17.1 добавлены функции WWISE_OpenFile(), WWISE_CloseFile(), WWISE_Close(), WWISE_LicenseGet(), WWISE_LicenseSet() v2023.09.21.1 добавлены конвертеры лицензий WWISE-файлов в виде exe-файлов: wwise_convert_to_unlicensed, wwise_convert_to_wg
  3. 8 points
    Вышло обновление программы 2.2.0 1. Оптимизированы и ускорены алгоритмы обработки файлов и создания wotmod-пакетов 2. Обновлен формат cfg-файлов, введены маски с поддержкой звездочки, файлы проверены и актуализированы под клиент игры 1.24.0.0 3. Внесены правки и улучшения в GUI-версию программы, добавлено окно выбора клиента игры из тех, что установлены на ПК, доработано окно выбора цвета, исправлены ошибки и вылеты при выборе цвета, исправлены опечатки в текстах 4. Файл 7z.dll вынесен из ресурсов exe-файла в папку с программой, при отсутствии файла он будет автоматически скачен с сайта программы 5. Убран код на передачу статистики автору программы, соответственно убран ключ --no-send-statistic 6. Убран ключ --split-2gb-parts, теперь все пакеты объемом более 2 Гб делятся программой на части автоматически 7. Если нет файлов для обработки, то пустые wotmod-пакеты не создаются 8. Добавлена вставка файла properties.xml в wotmod-пакеты, он содержит информацию о версии пакета, мода, игры и опциях, с которыми мод был создан 9. Добавлен ключ --downsizing-ratio для уменьшения размеров текстур камуфляжей и ускорения их обработки, поддерживаются коэффициенты сжатия 2, 4 и 8 10. Добавлен ключ --rewrite-log, для перезаписи лог-файла
  4. 7 points
    В общем, с модом mod_tooltipsCountItemsLimitExtend, замах был богатырский, но реально не так много сделал, меньше чем идей в голове, возможно потом продолжу, сейчас всё желание отпало, ночь была весёлая, отвык кодить. В общем, список "расширенный список танков, где находится оборудка" починил Дальше в голову пришла интересная идея, показывать затронутые модулем\расходником\скиллом параметры танка, и сразу это показывать во всплывающей подсказке. Пока разобрался откуда какие параметры подтягиваются, вся ночь и закончилась. в общем сделал только для расходников (аптечка, ремкомплект, кола и бензин), возможно не всё сработает или могут быть косяки, времени на дебаг уже не нашёл, спать хочется. Если идея не затеряется, то сделаю для оборудки и самое сложное умений\скиллов экипажа. Хотя возможно это никому и не надо.
  5. 7 points
    Unified Editor for WoT 1.22.0 https://download.openwg.net/editor/unified_editor_1.22.0.0.7z https://wgmods.net/4895 - больше не теряет секцию с камерой (однако в свои старые ангары копипастить до сих пор нужно самому, смотрите https://koreanrandom.com/forum/topic/45741-/?do=findComment&comment=534949 - внимание для Lesta: поскольку ассеты в клиенте другие (а именно, hangar_v3 в лесте другой/устаревший), у вас камера будет дохлая даже если добавите нужную секцию. Необходимо также скопипастить префабы из hangar_v3 в свой спейс и перебить пути в хмлках
  6. 7 points
    Всем привет! 16 сентября ожидается микропатч 1.14.0.3. Новые каталоги для размещения модификаций: ./mods/1.14.0.3/ и ./res_mods/1.14.0.3/ --- Hey all! Micropatch 1.14.0.3 is expected to be released on September, 16 The mods folders will be renamed to: ./mods/1.14.0.3/ and ./res_mods/1.14.0.3/
  7. 7 points
    Программа обновлена: Версия: 2.3.0.0 Изменения: Добавлена поддержка атласов из World of Warships без MIP maps.
  8. 7 points
  9. 6 points
    "Monochromatic Crash Tanks" Creator 2 СОЗДАНИЕ ОДНОТОННЫХ ТЕКСТУР ДЛЯ УНИЧТОЖЕННЫХ ТАНКОВ СБИТЫХ ГУСЕНИЦ, ВАГОНОВ, ПОЛУПРОЗРАЧНЫХ СЖАТЫХ КАМУФЛЯЖЕЙ Версия: 2.2.2 Совместимо с клиентом игры: 1.20.x и новее Описание: Программа "MCTCreator2Gui" позволяет быстро и удобно создавать готовые модификации, изменяющие текстуры моделей уничтоженных танков и другой техники, путём перекрашивания их в однотонный цвет. Также программа умеет менять прозрачность и размеры текстур камуфляжей в игре, делая их менее яркими. Возможности программы: Перекрашивание уничтоженных танков игроков Перекрашивание сбитых гусениц (отображается только при отключенной опции "Физика гусеничных лент" в настройках игры) Перекрашивание техники, статически расположенной на картах Перекрашивание вагонов и поездов Изменение яркости и размеров текстур камуфляжей Имеется консольная версия программы "MCTCreator2.exe" и графический интерфейс к ней "MCTCreator2Gui.exe" Программа использует конфигурационные файлы, новые версии которых автоматически загружаются из репозитария: https://github.com/StranikS-Scan/MCTCreator-Configs Модифицированные файлы по умолчанию сохраняются в виде wotmod-пакетов в папку "\mods\X.X.X\MCTCreator", также программа может сохранять не запакованные файлы в папку "\res_mods", если это необходимо Поддерживается два языка, есть много дополнительных опций Установка: Чтобы создать моды с помощью креатора необходимо: Скачать zip-архив с программой, распаковать содержимое в любую папку на диске Запустить графический интерфейс "MCTGui.exe", указать путь к игре, выбрать нужные моды и задать желаемые цвета Запустить создание wotmod-файлов, нажав на кнопку "Создать моды". Дождаться завершения работы консольного приложения, после чего можно играть в игру. Обратите внимание! Моды по умолчанию сохраняются в папку "World_of_Tanks\mods\X.X.X\MCTCreator\". При выходе обновления игры или нового патча моды следует ПЕРЕСОЗДАВАТЬ ЗАНОВО! иначе могут быть вылеты игры, при этом старые версии модов программа найдёт и удалит самостоятельно. Скачать: MCTCreator_2.2.2.251.zip __|__VirusTotal - 5/65 __|__Старые версии тут История версий: Ключи командной строки для запуска в консольном режиме с параметрами (обновлено 13.03.2024): Примеры запуска в консольном режиме с параметрами (обновлено 13.03.2024): Коды ошибок, возвращаемые консольной программой (обновлено 13.03.2024):
  10. 6 points
    Стиль "Леванте" для Char Futur 4 (в архиве и катки без стиля), клиент SD: F114_Projet_4_1.zip
  11. 6 points
    Всем привет! На следующей неделе выйдет обновление 1.18.0. Даты выхода по регионам: ASIA: 29 августа NA: 30 августа CIS: 31 августа EU: 31 августа Каталоги для размещения модификаций как обычно меняют названия: ./mods/1.18.0.0/ и ./res_mods/1.18.0.0/ --- Hey all! Patch 1.18.0 is going to be released since August, 29 Release dates: ASIA: August, 29 NA: August, 30 CIS: August, 31 EU: August, 31 The mods folders will be renamed to: ./mods/1.18.0.0/ and ./res_mods/1.18.0.0
  12. 6 points
  13. 6 points
    Обновил программу. Основные изменения версии 6.0 от 5.7 1. Удалена кнопка проверки обновления в связи со сложностями в работе программы. 2. Исправлен баг с кириллицей в файле для вывода трека на стрим (когда вместо букв были не читаемые символы). 3. Добавление сохранения позиции основного окна на экране. 4. Добавлена центровка дочерних окон относительно положения главного окна программы. 5. Добавлены подсказки некоторых элементов в программе которых ранее из за недосмотра автора не было. 6. Исправлен баг с записью названия трека в общий файл, когда помимо названия трека записывались системные строки. 7. В поле названия трека включена функция "только для чтения", теперь в данное поле не возможно прописать любые символы, а только их скопировать.
  14. 6 points
    Всем привет! 29 января ожидается микропатч 1.11.1.1. Новые каталоги для размещения модификаций: ./mods/1.11.1.1/ и ./res_mods/1.11.1.1/ --- Hey all! Micropatch 1.11.1.1 is expected to be released on January, 29 The mods folders will be renamed to: ./mods/1.11.1.1/ and ./res_mods/1.11.1.1/
  15. 6 points
    Вот и не чешы тут языком впустую. Если тебя что-то не устраивает, ты всегда можешь выйти с форума и пойти гулять во двор с друзьями. И вообще, если ты не в курсе, то обсуждать и уж тем более рекламировать (а ты уже не первый раз тут этим занимаешься) в теме авторов модов сторонние разработки - обычно не принято, а на многих форумах даже запрещается.
  16. 5 points
    Исправил совместимость с WG: aiming.py chancePenetration.py targetInfo.py infoAutoAim.py modesVehicle.py markerPosition.py reloading.py infoChargedShell.py quantityShells.py crosshair.py
  17. 5 points
    updated Lesta version - compatibility with Tanki 1.20.1.0
  18. 5 points
    updated - compatibility with WoT 1.19.1.0
  19. 5 points
    Январское обновление уже доступно! https://disk.yandex.ru/d/2hWy5IHwZ1kUdg
  20. 5 points
    @AtotIK у меня вот так UPD: Нашел причину. На стандартной графике работает. На улучшенной у меня вообще гусеницы нет. Буду смотреть в чем разница. UPD2: Локализовал проблему. Гусеницы не красятся, только если стоит Улучшенная графика и включена новая опция физики гусениц. В остальные случаях - работает ка обычно. Ща буду искать и править. А там где реплей с батшатом выше, там если графика Улучшенная, то гусеница улетает как бы в никуда и её просто нет. Ну то бишь так задумано ВГ, все ОК. ------------------------------------------ Покопался, увы ничего сделать не получится. Причина в том, что как только вы включаете опцию "Физика гусеничных лент", то клиент игры составляет гусеницу из сегментов. Сегмент это отдельная модель. И начиная с патча 1.18 эта модель едина, что для целых гусениц что для сбитых. Как результат перекрасить её нельзя, т.к. иначе гусеница будет цветной всегда. В патче 1.17.1 и более ранних, сегменты использовались, но только для целых гусениц, а сбитая гусеница бралась из crash-файла, что позволяло модифицировать последний и тем самым красить только сбитые гусли. Если опцию "Физика гусеничных лент" не юзать, то всё работает как раньше. Такие дела. Инфу добавлю в первый пост. ЗЫ: Если подходить глобально к решению проблемы, то надо делать копию моделей траков и писать python-мод в довесок, который бы перехватывал сбитие гусеницы CompoundAppearance.addCrashedTrack и вместо оригинальных моделей подсовывал копии, в которых юзаются крашенные текстуры. Но такое городить чего-то не хочется. Проще опцию физики не юзать.
  21. 5 points
    Обновил battleDamageIndicatorApp.swf в шапке для WoT 1.16.1.0.
  22. 5 points
    Всем привет! Вот-вот -- и выйдет обновление 1.16.0, которое можно будет заметить на игровых серверах начиная с 28 февраля (это следующий понедельник) Даты выхода по регионам: ASIA: 28 февраля NA: 1 марта CIS: 2 марта EU: 2 марта Каталоги для размещения модификаций как обычно меняют названия: ./mods/1.16.0.0/ и ./res_mods/1.16.0.0/ --- Hey all! Patch 1.16.0 is going to be released since February, 28 Release dates: ASIA: February, 28 NA: March, 1 CIS: March, 2 EU: March, 2 The mods folders will be renamed to: ./mods/1.16.0.0/ and ./res_mods/1.16.0.0/
  23. 5 points
  24. 5 points
    Исправил, обновил скрипт и флэш.
  25. 5 points
    Всем привет! 19 августа ожидается микропатч 1.14.0.1. Новые каталоги для размещения модификаций: ./mods/1.14.0.1/ и ./res_mods/1.14.0.1/ --- Hey all! Micropatch 1.14.0.1 is expected to be released on August, 19 The mods folders will be renamed to: ./mods/1.14.0.1/ and ./res_mods/1.14.0.1/
  26. 5 points
    Немного про механику игры, исходя из клиентского кода Разброс в механике игры задается сервером как тангенс половинного угла разброса орудия dispersionAngle. Эту цифру сервер обсчитывает с тиком 0,1 сек и шлет клиенту игры. Вычисляет её он как функцию от динамических характеристик танка, путем применения дополнительных коэффициентов к базовому тангенсу разброса орудия, прописанному в файлах ТТХ для дистанции 100 метров. Все эти коэффициенты и формулу можно посмотреть в коде игры, они дублируют расчеты на сервере чтобы сглаживать движение объектов в клиенте игры. Расчеты в клиенте вынесены в отдельную функцию getOwnVehicleShotDispersionAngle. Ниже её код, а вот тут его разбор в числах, правда он мог немного устареть. def getOwnVehicleShotDispersionAngle(self, turretRotationSpeed, withShot=0): descr = self.__getDetailedVehicleDescriptor() aimingStartTime, aimingStartFactor, multFactor, gunShotDispersionFactorsTurretRotation, chassisShotDispersionFactorsMovement, chassisShotDispersionFactorsRotation, aimingTime = self.__aimingInfo vehicleSpeed, vehicleRSpeed = self.getOwnVehicleSpeeds(True) vehicleMovementFactor = vehicleSpeed * chassisShotDispersionFactorsMovement vehicleMovementFactor *= vehicleMovementFactor vehicleRotationFactor = vehicleRSpeed * chassisShotDispersionFactorsRotation vehicleRotationFactor *= vehicleRotationFactor turretRotationFactor = turretRotationSpeed * gunShotDispersionFactorsTurretRotation turretRotationFactor *= turretRotationFactor if withShot == 0: shotFactor = 0.0 elif withShot == 1: shotFactor = descr.gun.shotDispersionFactors['afterShot'] else: shotFactor = descr.gun.shotDispersionFactors['afterShotInBurst'] shotFactor *= shotFactor idealFactor = vehicleMovementFactor + vehicleRotationFactor + turretRotationFactor + shotFactor additiveFactor = self.__getAdditiveShotDispersionFactor(descr) idealFactor *= additiveFactor ** 2 idealFactor = multFactor * math.sqrt(1.0 + idealFactor) currTime = BigWorld.time() aimingFactor = aimingStartFactor * math.exp((aimingStartTime - currTime) / aimingTime) isGunReloading = self.guiSessionProvider.shared.ammo.isGunReloading() if aimingFactor < idealFactor: aimingFactor = idealFactor self.__aimingInfo[0] = currTime self.__aimingInfo[1] = aimingFactor if abs(idealFactor - multFactor) < 0.001: if not self.__isAimingEnded and not isGunReloading: self.soundNotifications.play('sight_convergence') self.__isAimingEnded = True elif idealFactor / multFactor > 1.1: self.__isAimingEnded = False elif aimingFactor / multFactor > 1.1: self.__isAimingEnded = False return [descr.gun.shotDispersionAngle * aimingFactor, descr.gun.shotDispersionAngle * idealFactor] В механике игры снаряды летят по параболе, параметры которой зависят от дистанции от танка игрока до точки прицеливания. Сервер в игре вычисляет дистанции по прямой, либо от опорной точки модели танка, либо от точки вылета снаряда. При этом снаряд на всех моделях вылетает из точки крепления пушки, она же опорная точка орудия (трассер кстати рисуется из другой точки, из конца орудия - элемент модели _GunFire). Первое юзается в механике маскировки и в засвета, второе в баллистике и прицеливании. Опорная точка пушки вычисляется, например так: startPoint = player.getOwnVehiclePosition() startPoint += player.vehicleTypeDescriptor.hull.turretPositions[0] + player.vehicleTypeDescriptor.turret.gunPosition Дистанция прицеливания вычисляется в той точке, в которую указывает маркер игрока, т.е. в точке пересечения луча из маркера, ортогонального плоскости монитора, с поверхностью игрового мира. В клиенте есть код на её вычисление, поэтому самому считать не надо, а можно брать готовое значение из: markerPos = player.gunRotator.markerInfo[0] Отсюда получается, что дистанция от танка игрока до точки прицеливания в механике стрельбы это всегда: markerDist = startPoint.distTo(markerPos) Тогда радиус круга разброса в точке прицеливания для любого танка это: dispersionRadius = player.gunRotator.dispersionAngle * markerDist В клиенте игры это все есть в коде, который отвечает за отрисовку сведения. Для этого используются следующие функции: 1. Внеклассовая функция расчета баллистических параметров в точке прицеливания getCappedShotTargetInfos def getCappedShotTargetInfos(shotPos, shotVec, gravity, shotDescr, vehicleID, minBounds, maxBounds, collisionStrategy): endPos, direction, collData, usedMaxDistance = BigWorld.wg_getCappedShotTargetInfos(BigWorld.player().spaceID, shotPos, shotVec, gravity, shotDescr.maxDistance, vehicleID, minBounds, maxBounds, collisionStrategy) if collData != 0: collData = EntityCollisionData(*collData) else: collData = None return (endPos, direction, collData, usedMaxDistance) Она обсчитывает траекторию нативно, но как именно она считает можно глянуть под спойлером. В списке выходных параметров direction это вектор попадания снаряда с учетом баллистической траектории. 2. Классовая функция расчета баллистических параметров и разброса в точке прицеливания __getGunMarkerPosition, использующая функцию из п.1 def __getGunMarkerPosition(self, shotPos, shotVec, dispersionAngles): shotDescr = self._avatar.getVehicleDescriptor().shot gravity = Math.Vector3(0.0, -shotDescr.gravity, 0.0) testVehicleID = self.getAttachedVehicleID() collisionStrategy = AimingSystems.CollisionStrategy.COLLIDE_DYNAMIC_AND_STATIC minBounds, maxBounds = BigWorld.player().arena.getSpaceBB() endPos, direction, collData, usedMaxDistance = AimingSystems.getCappedShotTargetInfos(shotPos, shotVec, gravity, shotDescr, testVehicleID, minBounds, maxBounds, collisionStrategy) distance = shotDescr.maxDistance if usedMaxDistance else (endPos - shotPos).length markerDiameter = 2.0 * distance * dispersionAngles[0] idealMarkerDiameter = 2.0 * distance * dispersionAngles[1] replayCtrl = BattleReplay.g_replayCtrl if replayCtrl.isPlaying and replayCtrl.isClientReady: markerDiameter, endPos, direction = replayCtrl.getGunMarkerParams(endPos, direction) return (endPos, direction, markerDiameter, idealMarkerDiameter, collData) Как видим, диаметр круга разброса в точке прицеливания это удвоенное текущее значение тангенса половинного угла разброса орудия танка 2*dispersionAngles[0] помноженное на дистанцию distance = .... (endPos - shotPos).length между опорной точкой орудия shotPos и точкой прицеливания endPos. 3. Далее находим, где используется __getGunMarkerPosition. В функции обновления сведения прицела __updateGunMarker, которая вызывается пока игрок в бою с периодичностью 0,1 сек, что составляет тик сервера: def __updateGunMarker(self, forceRelaxTime=None): if self._avatar.getVehicleAttached() is None: return else: shotPos, shotVec = self.getCurShotPosition() markerPos, markerDir, markerSize, idealMarkerSize, collData = self.__getGunMarkerPosition(shotPos, shotVec, self.__dispersionAngles) replayCtrl = BattleReplay.g_replayCtrl if replayCtrl.isRecording and not replayCtrl.isServerAim: replayCtrl.setGunMarkerParams(markerSize, markerPos, markerDir) if not self.__targetLastShotPoint: self.__lastShotPoint = markerPos replayCtrl = BattleReplay.g_replayCtrl if replayCtrl.isPlaying and replayCtrl.isUpdateGunOnTimeWarp: self._avatar.inputHandler.updateGunMarker(markerPos, markerDir, (markerSize, idealMarkerSize), 0.001, collData) else: relaxTime = self.__ROTATION_TICK_LENGTH if forceRelaxTime is None else forceRelaxTime self._avatar.inputHandler.updateGunMarker(markerPos, markerDir, (markerSize, idealMarkerSize), relaxTime, collData) self.__markerInfo = (markerPos, markerDir, markerSize) if self._avatar.inCharge: self._updateMultiGunCollisionData() return А еще в дублирующей её setShotPosition, которая обеспечивает автовозвышение орудия танка и обновление, упомянутого выше публичного буфера player.gunRotator.markerInfo. 4. Теперь нужно лезть в дебри модулей, отвечающих за управление прицелом и отрисовку сведения через флэшку, именно туда ведет вызов _avatar.inputHandler.updateGunMarker из кода выше. Если опустить подробности то, передача данных идет через объект DataProvider, который по сути является прокладкой для передачи данных в код флэшки прицела. Здесь же стоит отметить, что версии провайдера разные для прицела арты и для остальных прицелов танков. Для прицела арты создается он так: def _makeSPGProvider(): dataProvider = GUI.WGSPGGunMarkerDataProvider(aih_constants.SPG_GUN_MARKER_ELEMENTS_COUNT, aih_constants.SPG_GUN_MARKER_ELEMENTS_RATE) dataProvider.positionMatrixProvider = Math.MatrixAnimation() dataProvider.maxTime = 5.0 dataProvider.serverTickLength = constants.SERVER_TICK_LENGTH dataProvider.sizeScaleRate = aih_constants.SPG_GUN_MARKER_SCALE_RATE dataProvider.sizeConstraint = (aih_constants.SPG_GUN_MARKER_MIN_SIZE, aih_constants.SPG_GUN_MARKER_MAX_SIZE) dataProvider.setRelaxTime(constants.SERVER_TICK_LENGTH) return dataProvider А для всех остальных вот так def _makeDefaultProvider(): dataProvider = GUI.WGGunMarkerDataProvider() dataProvider.positionMatrixProvider = Math.MatrixAnimation() dataProvider.setStartSize(_setupGunMarkerSizeLimits(dataProvider)[0]) return dataProvider Что означают доп.константы у прицела арты, думаю не сложно догадаться, их значения кстати вот такие: GUN_MARKER_MIN_SIZE = 32.0 SPG_GUN_MARKER_ELEMENTS_COUNT = 37 SPG_GUN_MARKER_ELEMENTS_RATE = 10 SPG_GUN_MARKER_MIN_SIZE = 50.0 SPG_GUN_MARKER_MAX_SIZE = 100.0 SPG_GUN_MARKER_SCALE_RATE = 10.0 Обращаем внимание на последний параметр, у сведения арты есть дополнительный коэф. масштаба SPG_GUN_MARKER_SCALE_RATE. Передача данных в провайдер прицела арты выглядит вот так: def update(self, markerType, position, direction, size, relaxTime, collData): super(_SPGGunMarkerController, self).update(markerType, position, direction, size, relaxTime, collData) positionMatrix = Math.Matrix() positionMatrix.setTranslate(position) self._updateMatrixProvider(positionMatrix, relaxTime) self._size = size[0] ################################################# self._update() def _update(self): pos3d, vel3d, gravity3d = self._getCurrentShotInfo() replayCtrl = BattleReplay.g_replayCtrl if replayCtrl.isPlaying and replayCtrl.isClientReady: self.__updateRelaxTime() self._updateDispersionData() self._dataProvider.update(pos3d, vel3d, gravity3d, self._size) def _getCurrentShotInfo(self): gunMat = AimingSystems.getPlayerGunMat(self._gunRotator.turretYaw, self._gunRotator.gunPitch) position = gunMat.translation velocity = gunMat.applyVector(Math.Vector3(0, 0, self._shotSpeed)) return (position, velocity, Math.Vector3(0, -self._shotGravity, 0)) ######################### def _updateDispersionData(self): dispersionAngle = self._gunRotator.dispersionAngle ######################### isServerAim = self._gunMarkerType == _MARKER_TYPE.SERVER replayCtrl = BattleReplay.g_replayCtrl if replayCtrl.isPlaying and replayCtrl.isClientReady: d, s = replayCtrl.getSPGGunMarkerParams() if d != -1.0 and s != -1.0: dispersionAngle = d elif replayCtrl.isRecording: if replayCtrl.isServerAim and isServerAim: replayCtrl.setSPGGunMarkerParams(dispersionAngle, 0.0) elif not isServerAim: replayCtrl.setSPGGunMarkerParams(dispersionAngle, 0.0) self._dataProvider.setupConicDispersion(dispersionAngle) В то время как для остальных танков вот так: def update(self, markerType, pos, direction, sizeVector, relaxTime, collData): super(_DefaultGunMarkerController, self).update(markerType, pos, direction, sizeVector, relaxTime, collData) positionMatrix = Math.Matrix() positionMatrix.setTranslate(pos) self._updateMatrixProvider(positionMatrix, relaxTime) size = sizeVector[0] idealSize = sizeVector[1] replayCtrl = BattleReplay.g_replayCtrl if replayCtrl.isPlaying and replayCtrl.isClientReady: s = replayCtrl.getArcadeGunMarkerSize() if s != -1.0: size = s elif replayCtrl.isRecording: if replayCtrl.isServerAim and self._gunMarkerType == _MARKER_TYPE.SERVER: replayCtrl.setArcadeGunMarkerSize(size) elif self._gunMarkerType == _MARKER_TYPE.CLIENT: replayCtrl.setArcadeGunMarkerSize(size) positionMatrixForScale = self.__checkAndRecalculateIfPositionInExtremeProjection(positionMatrix) worldMatrix = _makeWorldMatrix(positionMatrixForScale) currentSize = _calcScale(worldMatrix, size) * self.__screenRatio idealSize = _calcScale(worldMatrix, idealSize) * self.__screenRatio self.__sizeFilter.update(currentSize, idealSize) self.__curSize = self.__sizeFilter.getSize() if self.__replSwitchTime > 0.0: self.__replSwitchTime -= relaxTime self._dataProvider.updateSize(self.__curSize, 0.0) else: self._dataProvider.updateSize(self.__curSize, relaxTime) Рассмотрим сначала второй код. Для аркадного и снайперского прицелов размер сведения в пикселях вычисляется непосредственно в функции update() и затем отдается провайдеру. Для этого берется диаметр мгновенного значения круга разброса в текущей точке прицеливания size = sizeVector[0], высчитывается его масштаб для экрана игрока через функцию _calcScale и этот масштаб умножается на половину ширины экрана в пикселях self.__screenRatio. Последняя величина находится вот так self.__screenRatio = GUI.screenResolution()[0] * 0.5. Чтобы сведение в игре не было очень маленьким или очень большим, а оно будет таковыми, имеется фильтр self.__sizeFilter, который ограничивает минимально и максимально возможное значение круга сведения. Лимиты, которые задаются в него, вычисляются вот так: def _setupGunMarkerSizeLimits(dataProvider, scale=None): if scale is None: settingsCore = dependency.instance(ISettingsCore) scale = settingsCore.interfaceScale.get() limits = (aih_constants.GUN_MARKER_MIN_SIZE * scale, min(GUI.screenResolution())) dataProvider.sizeConstraint = limits return limits Переходим к арт-прицелу. У арты расчеты в пикселях в функции update() не выполняются, вместо этого данные о точке выстрела, векторах начальной скорости и гравитации и текущем диаметре круга разброса в точке прицеливания - pos3d, vel3d, gravity3d и self._size - передаются прямо в провайдер. А также в него передается текущее значение тангенса угла разброса орудия dispersionAngle. Что со всем этим делает провайдер WGSPGGunMarkerDataProvider сказать трудно, т.к. он нативный. Если глянуть список доступных атрибутов и функций у WGSPGGunMarkerDataProvider, то там можно увидеть: *** enableSmoothFiltering *** getPointsInside *** maxTime *** positionMatrixProvider *** relaxTime *** reset *** serverTickLength *** setRelaxTime *** setStartSize *** setupConicDispersion *** setupFlatRadialDispersion *** sizeConstraint *** sizeScaleRate *** update *** updateSize Функция setupFlatRadialDispersion тоже встречается в коде клиента игры. Это код, который отвечает за отрисовку новой игровой фичи - подсветки на игровом поле места, куда стреляет или будет стрелять арта. Код класса можно глянуть тут. В качестве аргумента в функцию передается игровая константа areaRadius.
  27. 5 points
    @Hawk1983x I got the same issue. If the garage is still not loaded, try to remove the file "displayingItems.py". hope this helps you out! google translated into russian: У меня была такая же ошибка. Если гараж все еще не загружен, попробуйте удалить файл "displayingItems.py". надеюсь, это поможет вам
  28. 5 points
    Unified Editor 6.6 for World of Tanks 1.11.0 * OpenWG: http://download.openwg.net/editor/unified_editor_1.11.0.0.zip * WGMods.net: https://wgmods.net/4895/
  29. 4 points
    Данная тема предназначена для тестирования и предложений по расширенному установщику XVM. В отличии от стандартного установщика XVM, здесь добавлено ещё два окна: На данный момент инсталлятор устанавливает только файлы конфигурации, то есть перед использованием данного инсталлятора, необходимо установить XVM. Список настроек: Боевой интерфейс Миникарта Альтернативный режим миникарты Выбор клавиши включения альтернативного режима (CTRL или ALT) Отображение очков прочности Очки прочности Увеличение миникарты при нажатии клавиши CTRL Увеличение по центру экрана Панель игроков Отключение отображения статистки Отображение очков прочности Маркеры над техникой Тонкие полоски ХП Рейтинг - звезда Лог полученного урона Включение подложки лога Лог нанесенного урона Группировать попадания по игроку Добавлять значения сверху Заголовок лога нанесенного урона "Новый" заголовок "Старый" заголовок Прицел Время полета снаряда (только в стратегическом режиме прицела) Время до полного сведения (только в стратегическом режиме прицела) Параметры камеры Отключение подсказок (переход в осадный режим, альт.режим АРТ-САУ) Отключение затемнения в снайперском режиме Отключение красной вспышки при получении урона Отключение эффекта отдачи от выстрела Отключение индикатора приближения (zoom) Индикатор суммарного очков прочности команд Средний урон на текущей технике Урон для получения медали "Основной калибр" Отображение на панели счета живых вместо мертвых Несколько изображений для "Шестого чувства" (лампочки) Таймер "Шестого чувства" 10 секунд Отключение панели после смерти Отключения зеркалирования иконок танков Ангар Автоматический вход в игру Панель техники (карусель) Автовозврат экипажа Возврат экипажа по умолчанию Счетчики уведомлений "Внешний вид" Замки Боны Свободный опыт Золото Отображение количества игроков на серверах В ангаре На экране логина Отображения пинга до серверов В ангаре На экране логина Кнопка "Купить премиум" Кнопка "Премиум магазин" Реклама премиум техники Виджеты Часы Статистика игрока Цветовые схемы Цветовая слепота Звуки "Шестое чувство" Если вы автор достаточно популярного конфига и хотите распространять его вместе с XVM, пишите. Если у кого-нибудь есть возможность заняться переводом, был бы благодарен. Инструкция по добавлению новых пунктов в окне "Настройка конфигурации": Настройка пунктов осуществляется в файле \installerXVM\src\SettingsInstall\default\default.xc. Описание параметров: "name" - название пункта, обязательный параметр. Здесь может быть указан ключ из файла перевода. Файлы перевода находятся в \installerXVM\src\SettingsInstall\default\l10n\*.lng секция [CheckListBox]. "description" - подробное описание пункта. Здесь может быть указан ключ из файла перевода. Файлы перевода находятся в \installerXVM\src\SettingsInstall\default\l10n\*.lng секция [DescriptionLabel]. "itemType" - задает тип пункта: radioButton, checkBox или group. Значение по умолчанию CheckBox. "checked" - определяет выбран пункт или нет (radioButton, checkBox). Может иметь значения true или false. Значение по умолчанию true. "imageIfSelected" - имя файла изображения, которое будет отображаться, если пункт выбран. Значение по умолчанию "empty.png". "imageIfNotSelected" - имя файла изображения, которое будет отображаться, если пункт не выбран. Значение по умолчанию "empty.png". "soundIfSelected" - имя звукового файла, который будет проигран, если пункт выбран. Поддерживаются форматы mp3 и ogg. Значение по умолчанию "". "soundIfNotSelected" - имя звукового файла, который будет проигран, если пункт не выбран. Поддерживаются форматы mp3 и ogg. Значение по умолчанию "". "valueIfSelected" - секция, значение которой будут вноситься в конфиг, если пункт выбран. Если параметр равен "", то изменения в конфиг не вносятся. Значение по умолчанию "". "valueIfNotSelected" - секция, значение которой будут вноситься в конфиг, если пункт не выбран. Если параметр равен "", то изменения в конфиг не вносятся. Значение по умолчанию "". "configFileName" - имя файла конфигурации XVM, в который будут вносится изменения из секции "value". "value" - значение данного параметра будет внесено в файл конфигурации XVM, указанный в параметре "configFileName". "isAdd" - определяет, буду элементы массива, описанного в параметре "value", добавлены (true), или массив будет полностью заменен (false). Значение по умолчанию true. "@files" - в данном параметре в квадратных скобках перечисляются через запятую файлы, которые будут скопированы при установке в каталог с игрой. "children" - секция, в которой настраиваются подпункты данного пункта. Значение по умолчанию "". Структура каталога \installerXVM\src\SettingsInstall\default\: каталог config - содержимое данной папки будет скопировано в каталог с игрой. каталог files - в данной папке находятся файлы, которые указаны в параметрах "@files". каталог images - в данной папке находятся файлы, которые указаны в параметрах "imageIfSelected" и "imageIfNotSelected". каталог l10n - в данной папке находятся файлы перевода инсталлятора. каталог sounds - в данной папке находятся файлы, которые указаны в параметрах "soundIfSelected" и "soundIfNotSelected". Для сборки необходимо использовать Inno Setup 6. Инсталлятор:setup_xvm_v2.exe Исходники:installerXVM.zip
  30. 4 points
    Обновил скрипт myHP.py из аддона Очки прочности своей техники.
  31. 4 points
    Уважаемые разработчики, спасибо за лучший мод для танков. Сделайте еще пожалуйста встроенный в XVM мод на 3 отметки, на данный момент это единственный мод кроме XVM который использую лично я. P.S. А здесь на форуме перенесите капчу под сообщение, потому что пока пишешь сообщение время капчи истекает. Спасибо и удачи
  32. 4 points
    Не большой мануал по добавлению иконок которых нет в клиенте игры, или замены уже имеющихся Сам мануал
  33. 4 points
    Мы изучаем эту проблему и обнаружили некоторые зацепки, но потребуется больше времени, чтобы найти и устранить саму причину проблемы.
  34. 4 points
  35. 4 points
    Что за скриншот выше ты прилепил? В первом посте выложена актуальная версия программы. И чеклист на вирустотале ничего не показывает при её проверке. Так что разбирайся давай, что там у тебя устарело и где И на будущее - если брендовые антивирусы типа Касперского ничего не показывают, то значит ничего там нет. А на 100500 всяких дешевых коммерческих недоантивирусов смотреть не надо. Они работают крайне топорно и там постоянно ложные срабатывания.
  36. 4 points
    Обновил. Поддержать развитие мода. СберБанк 4276 7400 1529 7732 Почта Банк 2200 7706 0914 5778 Альфа Банк 5521 7526 2954 3872 Qiwi +7 914 802 18 59 1.17.1.3 #1369 Download
  37. 4 points
    Всем привет! 11 августа ожидается микропатч 1.17.1.2. Новые каталоги для размещения модификаций: ./mods/1.17.1.2/ и ./res_mods/1.17.1.2/ --- Hey all! Micropatch 1.17.1.2 is expected to be released on August, 11 The mods folders will be renamed to: ./mods/1.17.1.2/ and ./res_mods/1.17.1.2/
  38. 4 points
    - compatibility with WoT 1.17.0.1
  39. 4 points
    Обязательно исправлю Не большой фикс. Чтобы не качать програму заново целиком выложу его сюда. Исправлено: 1. Латиница при добавлении своих станций теперь отображается читаемо. 2. Баг при котором при добавлении двух и более станций программа в список записывала ещё и предыдущие. Скачайте прикреплённый к сообщению архив, и из него скинет exe файл в папку с установленной программой соответствено с заменой Radio Your Wins.zip
  40. 4 points
    updated. - compatibility with WoT 1.16.1.0 with today's micropatch
  41. 4 points
    Ура. Вернулись!. Уже порвали от радости три баяна.
  42. 4 points
    @Slava7572 разобрался, нашел проблему. Еще что-то нужно сделать/поправить/добавить в программе?
  43. 4 points
    Обновил в шапке для WoT 1.13.0.0. скрипты в следующих дополнениях: 1) Таймер 2) Команда захватившая базу 3) Очки прочности своей техники 4) Макросы для "ушей", маркеров и миникарты 5) Начало боя 6) Информация о своей технике 7) Скоростной режим в начале боя 8) События по таймеру 9) Отключение лога уничтоженных (над миникартой)
  44. 4 points
  45. 4 points
    В шапке обновлены под патч WoT 1.11.1.0 следующие аддоны: - Сфера разлета осколков ОФ снаряда - Информация о захваченной цели
  46. 4 points
    WoT Version Manager - Play old replays, save space! by Noobkiller3759 Тема на EU форуме: http://forum.worldoftanks.eu/index.php?/topic/755268- This tool is completely open source: https://github.com/Manderius/WoT-VersionManager World of Tanks Version Manager is a free tool to archive and manage your older WoT versions. It can save up to 75 % of space used by World of Tanks clients. Unable to play a replay because of a micropatch? Not anymore! Save the correct WoT version with just one click and use it to play a replay any time. Just run Version Manager after WoT updates and you'll always be able to play any replay. You can also import older versions, if you have them. World of Tanks Version Manager - это бесплатный инструмент для архивирования старых версий WoT и управления ими. Это может сэкономить до 75% места, используемого клиентами World of Tanks. Не можете воспроизвести реплей после очередного микропатча? Больше такого не повторится! Сохраните правильную версию WoT одним щелчком мыши и используйте ее для воспроизведения реплеев в любое время. Просто запустите Диспетчер версий после обновлений WoT, и вы всегда сможете воспроизвести любой реплей. Вы также можете импортировать более старые версии, если они у вас есть. How does it work? You open WoT Version Manager, import your WoT client and that's it! When you import a World of Tanks client of any version, Version Manager compares its files to other versions you have imported previously. Different files get saved into Version Manager's directory and a new game folder is created for your imported version. Thanks to this, saved versions are usually just a couple of gigabytes large and you save space on your hard drive! Как это работает? Откройте WoT Version Manager и импортируйте свой клиент World of Tanks. При импорте клиента любой версии диспетчер версий сравнивает его файлы с другими версиями, импортированными ранее. Различные файлы сохраняются в каталоге диспетчера версий, а для импортированной версии создается новая папка с игрой. Благодаря этому сохраненные версии имеют размер всего несколько гигабайт, и существенно экономится место на диске. How much space does it actually save? Comparison of saving World of Tanks 1.10.0.1 HD, World of Tanks 1.10.0.2 HD, World of Tanks 1.10.0.4 HD: Saving three folders separately: 50.7 GB + 50.9 GB + 52.6 GB = 154.2 GB With Version Manager: 50.7 GB + 0.9 GB + 1.9 GB = 53.5 GB In this particular case, Version Manager saved you 100.7 GB. Сколько места на самом деле экономится? На примере клиентов World of Tanks 1.10.0.1 HD, World of Tanks 1.10.0.2 HD, World of Tanks 1.10.0.4 HD: Место занимаемое при традиционной установке трех клиентов в отдельности: 50.7 ГБ + 50.9 ГБ + 52.6 ГБ = 154.2 ГБ Место занимаемое при использовании WoT Version Manager: 50.7 ГБ 0.9 ГБ 1.9 ГБ = 53.5 ГБ. В этом конкретном случае диспетчер версий сэкономил 100.7 ГБ.
  47. 4 points
    Раздача для Steam Раздача продлится до 21 октября 2020-го. NiGHTS Into Dreams Вам необходимо: Перейти на страницу раздачи. Снизу принимаем использование технологии Cookie. Жмём "SIGN UP". Вводим почту (любую). Жмём "Steam" и привязываем его к сайту SEGA. Принимаем соглашение и жмём "FINISH SIGN UP". Игра автоматически добавится на аккаунт.
  48. 3 points
    Вот вопрос об ущербе очень интересный! Даже если предположить о том что ущерб имеет место (что сомнительно, если только не считать упущенную выгоду от бана ботов), то как эксперт от вг доказывает в этой экспертизе, что именно кибер танк имеет отношение к ущербу? Только на основании другой экспертизы, что его ПО является вредоносным? Это не прямое доказательство причастности именно кибертанка к ущербу. Туда можно было насчитать что угодно и свалить на бедного "козла отпущения". Ущерб могут причинить тысячи других программ возможно вместе с кибертанком но он не один это факт и подписей его на каждой операции связанной с ущербом стоять не может. Разводят пацана на бабки просто наглым образом.
  49. 3 points
    Я тут кое-что дебажил и случайно сгенерировал список танков, для которых в паке есть как минимум катки и для 3D-стилей которых нет ничего :) По идее, решается простой копипастой элементов с одной текстуры на другую.
  50. 3 points
×
×
  • Create New...