Jump to content
Korean Random

Leaderboard


Popular Content

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

  1. 8 points
    Сделал вам тут новую штукень. Назвал ShutLoggersUp. Если коротко, ВГ наделали в куче мест вызовов на logging.getLogger().info('blablabla'), к примеру, в обработчик персональных жетонов. И всё бы хорошо, но оно СПАМИТ. Причём эти сообщения никому вообще не нужны. Так вот. Я сделал так, что модуль logging игнорирует всё, что INFO или ниже. Варнинги и и прочие эрроры всё ещё работают. Скачать можно тут: ЯндексДиск GoogleDrive
  2. 6 points
    В шапку добавлено три новых мода. Скопипастил ниже их описания. ShutLoggersUp Затыкатель логгеров ВГ наделали в куче мест вызовов на logging.getLogger().info('blablabla'), к примеру, в обработчике персональных жетонов. И всё бы хорошо, но оно СПАМИТ. Причём эти сообщения никому вообще не нужны. Так вот. Я сделал так, что модуль logging игнорирует всё, что INFO или ниже. Варнинги и и прочие эрроры всё ещё работают. Скачать: ЯндексДиск GoogleDrive ReorderProgressionDecals Переупорядочиватель прогрессионных декалей В обновлении 1.9.1 ВГ добавили в игру проекционные декали, которые выдаются за определённые достижения при игре на танке. За количество боёв, за фраги, за знаки Мастер и т.д. Проблема в том, что в той менюшке, где их можно выбрать и поставить на танк, они упорядочены в совершенно не понятном мне порядке. Этот мелкий модик переупорядочивает эти самые декали в порядке сложности получения награды. Сначала идут бои, потом фраги, ну и так далее. Скачать: ЯндексДиск GoogleDrive DamagePercentIndicator Процент прочности танка на индикаторах полученного урона Возможно, модик для нубов, но мне зашло. Суть вот в чём. Я катаюсь на разных машинах разных уровней и классов. И не всегда сразу и быстро понятно, если мне влетело на 250 урона - это можно бояться или продолжать танковать. И чем меньше урона, тем меньше понятно. Соответственно, я сделал модик, который добавляет к индикаторам полученного урона вторую строчку с процентом этого самого урона от полной прочности моего танка. Скачать: ЯндексДиск GoogleDrive
  3. 6 points
    ЦА с картофельного форума,которые почему то считают,что им должны бесплатно моды пилить денно и нощно
  4. 6 points
    Всем привет! Микропатч 1.10.0.4 ожидается 28 сентября. Новые каталоги для размещения модификаций: ./mods/1.10.0.4/ и ./res_mods/1.10.0.4/ .4 потому что .3 уже существует на CN реалме. --- Hey all! Micropatch 1.10.0.4 is expected to be released on September, 28 The mods folders will be renamed to: ./mods/1.10.0.4/ and ./res_mods/1.10.0.4/ Please note, the last digit is .4
  5. 5 points
    Ну пока с восьмеркой сначала надо разобраться. Потом уже и до 9 и 10 надеюсь руки дойдут @Slava7572, 9-ка по быстрому (SD) Cz16_TNH_T_vz51.zip
  6. 5 points
    Написал патчер для Киберпанка. Исправляет проблему, связанную с тем, что игра использует в работе лишь половину логических ядер на процессорах AMD (см. статью на Хабре). Тесты ДО патча Тесты ПОСЛЕ патча Сигнатуры актуальны на момент написания комментария, как и сама проблема. При запуске патчер подтягивает сигны с репозитория, потому после каждой обновы игры можно не перекачивать сам патчер. Если, конечно, не было какой-то большой переделки.Репозиторий Cyberpunk-2077-AMD-Optimization-PatcherРелизы (сейчас актуальная версия v1.01)
  7. 5 points
    получите и распишитесь Обновление в отдельной форме архивы будут обновлены немного позже
  8. 4 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.
  9. 4 points
    Адаптированная для 2.92 версия. tank_viewer_alpha.7z
  10. 4 points
    Добавил в шапку аддон: Показать/скрыть чат в бою
  11. 4 points
    Навигация по теме: Установка и знакомство Подсветка синтаксиса Установка Файл расширения Расширения Список и ссылки на расширения Настройка некоторых расширений Темы Некоторые возможности редактора Горячие клавиши Решил я попробовать использовать Visual Studio Code (VSC) для редактирования файлов конфигурации XVM. Сам я им только начал пользоваться (до этого использовал Notepad++), поэтому буду рад, если желающие поделятся опытом работы в нем. У меня пока только положительные впечатления от работы в нем. Итак, согласно Википедии: Скачать дистрибутив можно с официальной страницы. После установки имеем: Первое, что захотелось сделать, это русифицировать интерфейс. Для этого кликаем по иконке Extensions (Расширения) на левой панели и набираем в строке поиска Russian Language Pack. В первой строчке будет нужный нам результат. Нажимаем Install и после установки расширения перезапускаем программу. Теперь откроем папку с нашим конфиг XVM (Файл->Открыть папку...). VSC из "коробки" поддерживает языковой режим "JSON с комментариями" (файлы конфигурации XVM это немного расширенный формат JSON с поддержкой комментариев). Если языковой режим не определился автоматически, то нужно кликнуть в правом нижнем углу и выбрать в списке "JSON with Comments". Что же, неплохо, но это несложно сделать и в Notepad++. Приступим к поиску полезных и не очень расширений (список в конце сообщения). В результате установки и небольшой настройки расширений перечисленных в списке ниже, у меня получился следующий вид: Хорошо заметны отступы, блоки кода и концевые пробелы, выделены парные скобки и теги. Единственное, что смущает это скудная подсветка синтаксиса. Немного покурив Google, сделал подсветку для файлов *.xc. В разных темах она может выглядеть по разному. В стандартной темной теме она выглядит так: Для установки данной подсветки необходимо: скачать файл xc-X.X.X.vcix (файл находиться в конце сообщения), где X.X.X - версия расширения запустить VSC в право верхнем углу панели "Расширения" (Ctrl + Shift + X) нажать кнопку в выпавшем меню выбрать пункт "Установка из VSIX..." и выбрать скачанный файл После этого в панели "Расширения" у вас должно появиться расширение: Расширения: Существует несколько способов установки расширений. Для меня самый простой способ это пользоваться поиском расширений в самой программе. Bracket Pair Colorizer 2 - добавляет подсветку для скобок, окружающих блоки кода. indent-rainbow - расширение делает отступы более читабельными. Indenticator - еще одно расширение помогающее облегчить восприятия блоков (секций) кодов. Subtle Match Brackets - выделяет парные скобки возле которых находиться курсор. Color Highlight - подсвечивает CSS / веб-цвета, найденные в вашем документе. К сожалению на данный момент не поддерживает цвета в виде 0xFFFFFF, хотя судя по репозиторию попытки были (Пересобрал данное расширение, теперь поддерживает цвета в виде 0xFFFFFF. Скачать расширение можно в конце данного сообщения). Trailing Spaces - выделяет и может удалять конечные пробелы (ALT+SHIFT+T). Highlight Matching Tag - выделения соответствующих открывающих или закрывающих тегов. Russian - Code Spell Checker - русский словарь проверки орфографии. Вместе с ним установиться Code Spell Checker и английский словарь. TabSpacer - конвертирует табы в пробелы (Ctrl + Shift + T). Project Manager - менеджер проектов. Будет полезен, если вы настраиваете несколько конфигураций. Path Autocomplete - автозаполнение пути к каталогам и файлам. Markdown Preview Enhanced - предпросмотр файлов в формате Markdown. Пригодится для редактирования файлов README.md на GitHub или BitBucket. (Ctrl + K, V или Ctrl + Shift + V) L13 Diff - Сравнение двух папок (Ctrl + L Ctrl + L). Почти все расширения имеют настройки (Файл->Параметры->Параметры->Расширения). Темы (переключаться между темами можно сочетанием CTRL+K, CTRL+T): Atom One Dark Theme Solarized Custom (3 темы) Yi Dark & Yi Light Themes (2 темы) Расширение для подсветкой синтаксиса файлов конфигурации XVM: xc-1.0.0.vsix Пересобранное расширение Color Highlight: color-highlight-2.3.1.vsix
  12. 4 points
  13. 4 points
    Man waths wrong with you? The work hard and made it. So many problem at this update :( MFG SicFunzler
  14. 4 points
    @night_dragon_on нужен фикс, так как ширина атласа стала по дефолту 4512 - это сегодня с микропатчем завезли такой размер. При массовом сохранении атласов ошибку выдает на размер атласа. Нужно в "еще" изменить в "ширина атласа" значение с 4096 на 4512.
  15. 3 points
    1.14.1 – – XVM (config 13.10.21).zip ---
  16. 3 points
    WOT Mods Cleaner Версия: 1.3.1 Дата обновления: 01/08/2021 Описание: Программа предназначена для поиска и удаления модификаций, установленных в клиенте игры WorldOfTanks. Она позволяет найти все сторонние файлы, подключенные к клиенту и удалить их в автоматическом режиме, предварительно сделав бэкап в случае необходимости. Функционал программы включает в себя: Поиск файлов в "mods" и "res_mods" папках клиента (Internal mods) Анализ и восстановление файла "paths.xml", определение сторонних ссылок на файлы и папки в нём (External mods and files) Расширенный поиск посторонних файлов в каталоге "WorldOfTanks\res" путем загрузки и анализа данных с сервера обновлений WG (External mods and files) Удаление файлов и папок по расширенному списку, загружаемому с GitHub: WMCleaner-ExtendedList Очистка кэша игры в каталоге "Wargaming.net\WorldOfTanks\" (Cache-folder) Поиск и удаление log-файлов (Logs-files) Поиск и удаление скриншотов (Screenshots-files) Поиск и удаление реплеев (Wotreplays-files) Создание zip-архива с бэкапом Через программу можно скачать напрямую с сервера обновлений WG последние версии: WOTLauncher для RU, EU, NA и ASIA регионов WGCheck для RU, EU, NA и ASIA регионов Для работы с программой достаточно положить exe-файл программы в корень клиента игры (папка "WorldOfTanks\"), после чего запустить его. Программа автоматически проанализирует клиент игры и выдаст список файлов и модов, которые можно удалить. Удаляете их, закрываете программу, всё готово. Также для упрощения задания искомой папки вы можете просто перенести мышкой в запущенную программу любой файл из корневого каталога игры. Программа сама по нему определит правильный путь.... Особенности: ОС Windows Vista/7/8/10 Локализация RUS/ENG Программа тестировалась на совместимость с игровым и тестовым (СТ) клиентами игры Расширенный анализ файлов клиента игры со 100% выявлением всех запускаемых модов (External mods and files) доступен только при загрузке программой актуальных данных с сервера обновлений WG Загрузка данных с сервера обновлений WG производится для версии клиента игры, указанной в файле game_info.xml. Если версия клиента отличается от той, что на сервере игры, то программа предлагает пользователю выбор - можно либо продолжить на свой страх и риск, либо отказаться от углубленного анализа файлов. Если вы соглашаетесь, то после анализа необходимо тщательно проверить, что программой добавила в перечень удаляемых файлов Программа не очищает полностью весь каталог клиента игры от посторонних файлов, она ориентирована в первую очередь на обнаружение и удаление тех файлов и модификаций, которые загружаются или могут быть загружены клиентом игры и тем самым влиять на его работу и работоспособность Чтобы программный сканер или сама программа по какой-либо причине или ошибке не удалила каталог с игрой в коде программы реализована защита от такого удаления. Скачать: WMCleaner_1.3.1_200.zip | VirusTotal: 0/67 | Старые версии тут Аргументы командной строки для запуска в консольном режиме с параметрами Примеры запуска в консольном режиме с параметрами История версий:
  17. 3 points
    обновлено под новый патч
  18. 3 points
    @Kustarnik Если только такое.
  19. 3 points
    Вне зависимости от версии, все механики реализуются на сервере. На клиенте лишь визуальное отображение. Всё, что отправляет клиент, проверяется на сервере так же.
  20. 3 points
    Тут ввели новый экспериментальный режим Разведка боем Стоит ли на нём заморачиваться (адаптировать скрипты аддонов) либо нужно отключить? имхо: режим по типу "стандартного" и думаю стоит адаптировать
  21. 3 points
    Раздача для Steam Раздача продлится до 30 мая 2021-го (20:00 МСК). Little Nightmares Вам необходимо: Открыть клиент Steam. Перейти на страницу игры в магазине. Нажать кнопку "Добавить на аккаунт". Теперь игра навсегда останется на вашем аккаунте.
  22. 3 points
    Раздача для Epic Games Store Раздача продлится с 15 по 22 апреля 2021-го (18:00 МСК). Вам необходимо: 1. Зайти на сайт. 2. Зарегистрироваться / Войти. Deponia: The Complete Journey 3. Добавить игру на аккаунт на странице акции. Ken Follett's The Pillars of the Earth 4. Добавить игру на аккаунт на странице акции. The First Tree 5. Добавить игру на аккаунт на странице акции. 6. После этого продукт навсегда привязывается к учетной записи. 7. Установить его можно будет при помощи фирменного лаунчера Epic Games.
  23. 3 points
    Ну да, у меня проблема с прокладками сидений... ))) Гугл странно мстит...
  24. 3 points
    09.02.21 Обновлена сборка модов: * Обновлено для версии игрового клиента v1.11.1.3 * Обновлён мод "Комплексный мод XVM" до версии v8.7.6-dev
  25. 3 points
    Математическая модель платформы Стюарта. Давайте реально рассчитаем нашу платформу для средней части туловища будущего робота. Ниже две вырезки из замечательной книги «Анатомия для скульпторов», которые отображают места и площади срезов в женском теле человека. Расстояния между зеленым и фиолетовыми срезами - равно примерно стандартной единице измерения человеческого тела (голова) - в нашем случае это 125 мм. (для робота ростом 1 м и идеальным соотношением голов к росту в 8 единиц). Спасибо создателям этой книги - в этом рисунке они постарались учесть пропорции и размеры по максимуму - и можно говорить что в фиолетовый и зеленый срезы можно примерно вписать окружность с диаметром 100 мм. Эти начальные параметры мы и берем за основу - расчетная высота нашей платформы будет 125, а расчетные окружности основной и подвижной плоскостей с диаметром 100 или радиусом 50 мм. Получилось как то так. Угол между точками составляет 15° (где есть отрезок) и 105°. подвижная платформа смещена по оси Z на 60 градусов. Весь смысл приведения в движение платформу - нахождение длин отрезков совмещающих точки на основной и подвижной плоскостях, ну и в нашем случае приведение актюаторов в правильное соответствие, я эти отрезки отобразил также. Давайте условимся сразу об именовании точек, соединяющих точки основы и подвижной части - предлагаю отрезки назвать по цветам белый-черный-красный-синий-зеленый-желтый и принадлежность основа-подвижный, таким образом точки у нас будут: white_base_p; white_move_p; black_base_p; black_move_p; red_base_p; red_move_p; blue_base_p; blue_move_p; green_base_p; green_move_p; yelow_base_p; yellow_move_p. Ну и соответственно отрезки: white; black; red; blue; green; yellow. Если посмотреть внимательней - для основы это трехмерные векторы с началом в точке O, которая будет являться у нас началом координат всей платформы и в этом случае искомые точки для базы у нас равны координатам векторов. Например на моем рисунке выше, где у есть обозначение длины отрезка этот вектор будет с координатами (50, 0, 0), и точка имеет эти координаты. Так как у нас точки все лежат на одной плоскости и не двигаются по оси Z - мы не берем это в расчет. Формулы для нахождения координат вектора при повороте на угол Ɵ ниже, знак выбирается в зависимости от системы координат - правосторонняя или левосторонняя, в формуле так же нужно использовать радианы, вместо градусов . Забьем эти формулы в табличку и получим следующие значения координат точек для базовой платформы. x y z angle white_base_p 50,0000 0,0000 0,0000 0 black_base_p 48,2963 -12,9410 0,0000 15 red_base_p -25,0000 -43,3013 0,0000 120 blue_base_p -35,3553 -35,3553 0,0000 135 green_base_p -25,0000 43,3013 0,0000 -120 yelow_base_p -12,9410 48,2963 0,0000 -105 blue_move_p -50,0000 0,0000 125,0000 0 green_move_p -48,2963 12,9410 125,0000 15 yellow_move_p 25,0000 43,3013 125,0000 120 white_move_p 35,3553 35,3553 125,0000 135 red_move_p 12,9410 -48,2963 125,0000 -105 black_move_p 25,0000 -43,3013 125,0000 -120 Вот теперь мы можем вычислить наши отрезки, для этого найдем вектор начало которого будет на основе, а конец на подвижной части и найдем модуль этого вектора. В принципе можно просто искать отрезок - формулы одинаковы, но будем использовать векторы. x y z length white -14,6447 35,3553 125,0000 130,7267 black -23,2963 -30,3603 125,0000 130,7267 red 37,9410 -4,9950 125,0000 130,7267 blue -14,6447 35,3553 125,0000 130,7267 green -23,2963 -30,3603 125,0000 130,7267 yelow 37,9410 -4,9950 125,0000 130,7267 Ну вроде все правильно - у нас получилось что все отрезки в стартовом состоянии равны 131 мм. Посмотрим на чертеж линейных актюаторов из поднебесной. Китайцы делают их с ходом 10, 21, 30, 50 и 100 мм. Начальное состояние у нас должно быть для актюатора где-то не в самом начале, а примерно посередине, чтобы должна быть возможность хода в обе стороны. Таким образом для хода в 50 мм у нас получиться (для центра отверстий): ; . Т.е. 131 мм. - как раз чуть больше середины: . Теперь думаю понятно что перемещая или вращая подвижную часть относительно базы, нам нужно вычислять соответствующие точки, затем вычислять по ним модуль векторов (отрезков) и выдвигать актюаторы на нужную длину. Здесь есть несколько проблем, заранее нужно условится, что расчет будет всегда происходить от начального состояния и первым мы делаем расчет вращения подвижной части, а затем применяем к ней перемещение . С перемещением подвижной части все относительно просто - берем вектор , где начальная точка с координатами , а ' конечная точка и перемещаем все наши точки по формуле: А вот с вращением все немного интереснее. Углы Крылова или Эйлера имеют ограничения в виде определенности последовательности поворотов и так называемый «шарнирный замок» - так что будем использовать кватернионы. Находим векторы в начальном состоянии - это просто, нужно от конечной точки отнять конечную. x y z blue_move_v -50 0 0 green_move_v -48,2963 12,941 0 yellow_move_v 25 43,3013 0 white_move_v 35,3553 35,3553 0 red_move_v 12,941 -48,2963 0 black_move_v 25 -43,3013 0 Для поворота вектора кватернионом необходимо: Создать кватернион из нашего вектора, добавив к нему скалярную нулевую часть blue_move_q = (0, 50, 0, 0) (как пример). Кватренион состоит из скалярной части qw и векторной qx, qy, qz. Умножить наш кватернион поворота на созданный и затем умножить на сопряженный blue_move_q' = q • blue_move_q • . Таким образом мы применяем поворот, который описывает наш кватернион к вектору. Отбрасываем скалярную часть чтобы получить наш повернутый вектор blue_move_v'. Так как у нас используется нулевая скалярная часть, и для получения вектора она нам тоже не нужна - умные люди сильно упростили данное вычисление и оно выполняется быстрее. Где - исходный вектор, - векторная часть кватерниона, - скалярная часть кватерниона, - произведение, • - скалярное произведение и - искомый вектор. Вернемся к нашей платформе, мы будем получать два кватерниона для робота - один говорит нам о повороте основы в глобальном пространстве, второй о повороте подвижной части. Для получения поворота подвижной части в координатах основы (то как повернуть подвижную часть нужно относительно координат основы) необходимо кватернион основы умножить на кватернион подвижной части и мы получим кватернион который описывает вращение как будто основа у нас неподвижна и находиться в центре координат. Формула умножения: ; Где - векторное произведение, а - скалярное. Приводить полную формулу не буду - легко гуглиться ;) Итак, у нас есть кватернион поворота для локальной системы координат подвижной части платформы, базовый для расчета берем тождественный, с координатами (1, 0, 0, 0). Давайте разберем на примере что куда в табличках. Возьмем кватернион, который описывает в углах Эйлера поворот по всем осям на 15° - q(0.972, 0.145, 0.111, 0.145) и повернем векторы подвижной части платформы на него. x y z blue_move_v_q -46,665 -15,704 8,687 green_move_v_q -48,307 -3,316 12,455 yellow_move_v_q 12,521 47,511 9,256 white_move_v_q 24,170 43,486 4,962 red_move_v_q 24,137 -40,170 -17,417 black_move_v_q 34,145 -31,808 -17,943 Для того чтобы получить наши точки концов векторов необходимо к значениям координат вектора прибавить координаты точки начала, в нашем случае при любых поворотах она осталась прежней с координатами (0, 0, 125), таким образом нам необходимо только скорректировать столбец с Z. x y z blue_move_p -46,665 -15,704 133,687 green_move_p -48,307 -3,316 137,455 yellow_move_p 12,521 47,511 134,256 white_move_p 24,170 43,486 129,962 red_move_p 24,137 -40,170 107,583 black_move_p 34,145 -31,808 107,057 Так а что относительно перемещения? Так как основная идея робота максимально пробовать использовать физиологию человека, то моя идея такова. У нас есть еще один вектор - соединяющий центр основы и подвижной части, что-то наподобие позвоночника у человека. В итоге когда мы двигаем телом верхняя часть туловища и нижняя взаимосвязаны, та часть позвоночника между этими частями всегда принимает какое-то промежуточное значение между положениями верхней и нижней части туловища. Мы попробуем поступить так же. Сумма двух кватернионов даст нам «средний» поворот между двумя. Именно этот кватернион будет применятся к вектору между центрами, таким образом получим новый вектор, который соединяет два центра основы и подвижной части платформы, отняв от которого существующий базовый можно получить наш вектор перемещения. w x y z q 0,9723 0,1452 0,1114 0,1452 q_middle_norm 0,9931 0,0731 0,0561 0,0731 q_middle 1,9723 0,1452 0,1114 0,1452 q_base 1,00 0,00 0,00 0,00 center_v 0,00 0,00 125,00 center_v_q 15,26142 -17,12509 122,87726 center_move_v 15,26142 -17,12509 -2,12274 Теперь можно рассчитать нужные нам точки для подвижной платформы, векторы от нижней к верхней платформе и их модули (т.е. длину отрезков). x y z length white -10,5906 26,3752 127,8356 130,9571 black 1,1160 -35,9661 104,8885 110,8891 red 64,4099 -13,9746 105,4204 124,3277 blue 3,9661 2,4949 131,6004 131,6838 green -23,2964 -63,7759 135,3758 151,4486 yelow 40,7022 -17,9041 132,1429 139,4237 Ну вроде как вкладываемся в ход актюаторов ;) В общем как-то так. P.S. Пошу прощения, делал все в текстовом редакторе - немного поломалась разметка ;)
  26. 3 points
  27. 3 points
  28. 3 points
    fix: change @overrideMethod(ConsumablesPanel, '_ConsumablesPanel__makeShellTooltip') def ConsumablesPanel__makeShellTooltip(base, self, descriptor, piercingPower, shotSpeed): to overrideMethod(ConsumablesPanel, '_makeShellTooltip') def ConsumablesPanel_makeShellTooltip(base, self, descriptor, piercingPower, shotSpeed):
  29. 3 points
    Актуально для XVM 8.7.9 World of Tanks 1.12.1.2 Значение полей: Особенности: Таймер перезарядки показывает красным цветом время до конца перезарядки. Когда снаряд заряжен, показывает "ОК" для цикличных танков, или время перезарядки снарядов внутри барабана. Ниже показывается полное время перезарядки снаряда или барабана. Поле дистанции до цели/точки прицеливания становится красным при наведении прицела на цель: Количество и тип снарядов окрашены цветом голдовости снаряда. Когда снарядов остается <=5, цифры кол-ва становятся красными: Конфиг 08-06-2021.zip Необходимые скрипты: chancePenetration.py (Вероятность пробития) reloading.py (Перезарядка орудия) quantityShells.py (Количество снарядов) infoChargedShell.py (Информация о текущем снаряде) targetInfo.py (Информация о технике в прицеле) markerPosition.py (Точка прицеливания) aiming.py (Сведение) Из темы Сборник py_macro: aimingSystem.py (Режим прицела) myHP.py (Очки прочности своей техники) colorMacros.py (Макросы плавного перехода цветов)
  30. 3 points
    ✯✯✯ ≈ Версия игры 1.12.0 ≈ ✯✯✯ Все моды собраны в новом формате - файл с расширением wotmod, и теперь размещаются не в "res_mods", а в "mods" Содержимое архива распаковать в ...\World_of_Tanks\mods\[версия патча]\ Для удобства все моды будут сохраняться в папку ...\xZirus\ !!! ВНИМАНИЕ !!! Начиная с версии 1.10 моды обновляю по запросу, т.е. вы в списке ниже находите интересующий вас мод(ы) и пишите об этом в теме. Для удобства над кнопкой СКАЧАТЬ указана версия под которую этот мод был собран. ✯ Загрузочный экран ✯ ✯ Анимированное колесо загрузки ✯ ✯ Интерфейс ✯ ✯ Экран загрузки боя и по нажатию Tab ✯ ✯ Финальная статистика ✯ ✯ Иконки танков для "ушей" ✯ История изменений
  31. 2 points
    Да, это место существует. И я даю вам уникальнейшую возможность заглянуть сюда. Витрина Ссылочки Модпак: Lite-версия - всё, кроме ремоделингов: ЯндексДиск Полная версия - включает полтора гига ремоделингов: ЯндексДиск Cюда сложу ссылки на другие свои топики, чтобы при вопросе "а какие у тебя еще есть моды" можно было просто пинать людей в сторону сюда. КамоСелектор: здесь, на официальном Ремодомод, Шкуродёр: здесь, на официальном Реплейсор, Ангарный Краскопульт, Отладчик Текстов: здесь, на официальном BanksLoader, SoundEventInjector, UT_announcer, Гудки: здесь, на официальном Громовые Орудия, как пак конфигов к Инъектору: на официальном Настраиваемая Роза Команд (сломана): здесь, на официальном SunContoller (сломан), Фары: здесь, на официальном Хранилище Здесь повыкладываю свои мелкомодики, которыми пользуются некоторые люди, многие спрашивают, где скачать, но сам мод слишком мелок, чтобы заслужить отдельную тему. AppreciationBadges Нашивки Увожения Вы наверняка уже видели этот вотмодик в архивах с моими модами. Многие спрашивают, что это и зачем. Мод, как лично мне понятно из названия, добавляет игрокам нашивки. Как минимум - мне, любимому. Чтобы если вдруг меня кто-то в бою встретит - не было большого недоумения на тему "а чего это он так отыграл посредственно". В ангаре (окно тренировочной комнаты, результаты боя и создание взвода) - полная кастомность, в бою же я могу выбрать только одну из существующих. Изначальная благородная цель - дать возможность другим авторам тоже как-то "обозначить" себя в игре. Авторы таких вещей, как шкурки, ремоделинги или звуки, в большинстве случаев не имеют возможности залесть в питон и чего-то там добавить себе самостоятельно, и я решил дать им такую возможность. (Не то чтобы оно кому-то, кроме меня, было особо нужно...) Скриншотики Добавляем свою нашивку Скачать: ЯндексДиск GoogleDrive HangarScreenshots Скриншоты ангара Изначально меня попросили починить модик HideHangarUI от @alphasave1. Потом - зафиксировать камеру в ангаре. И получилось вот это. Все настройки есть в ангарном интерфейсе, там же, где и у остальных модов, и достаточно подробно описаны. Скрин настроек: Скачать: ЯндексДиск GoogleDrive PlayersPanelHP ХП в ушах Nuff said. Исходный топик: http://forum.worldoftanks.ru/index.php?/topic/884307-. Данная функция есть и в XVM (если кто помнит мой конфиг - полоски стырены именно оттуда :) ), но все же. Настройки довольно простые, базового знания синтаксиса JSON и гуглопереводчика должно хватить. Скачать: ЯндексДиск GoogleDrive PlayerHPAnnouncer Оповещение о низком здоровье игрока Тут даже скринить нечего. Просто, когда Ваше здоровье опустится ниже 50%, 25% и 10%, вы услышите звук. В стандартной поставке мод использует слегка обрезанные фразы Корабля-Базы из Звёздных Волков. Почему не закидываю к Звуковым Скриптам по ссылке выше? Не знаю. Там и так много всего. Скачать: ЯндексДиск GoogleDrive InsigniaOnGun Нарисованные отметки на орудиях Изначально модик делался только для ангара и только для ремоделлеров, чтобы им было удобнее подгонять настройки для отредактированных орудий. Но потом на мод-портале я наткнулся на творение, изменяющее текстуры отметок, чтобы их всегда и у всех было 3. Мне такой изврат запал в душу, и к изначально скрипту на 5 строчек прикрутился ангарный интерфейс и боевой модуль. Кстати, на скрине HangarScreenshots у КВ-2 три отметки на стволе именно благодаря этому модику. :) По доброй традиции, скриншот окна настроек: Скачать: ЯндексДиск GoogleDrive LogSwapper Смена местами логов полученного и и нанесенного урона Не знаю, как так получилось, что в стандартном интерфейсе от WG лог нанесенного урона находится рядом с дамаг-панелью, а лог полученного - возле левой панели команд, но данный скрипт исправляет это недоразумение. Мод не нужен, если у Вас установлен BattleObserver - там эта фича есть. Любителям пообвинять в плагиате - во-первых, Armagomen упомянут в сообщении о загрузке мода. Во-вторых, несмотря на то, что идея изначально его, у него в моде сейчас моя реализация. Скачать: ЯндексДиск GoogleDrive ShowVehicle Отображение корпуса танка в снайперском режиме Исходные топики: изначальный - http://forum.worldoftanks.ru/index.php?/topic/884602-, недолгое время поддерживаемый: http://forum.worldoftanks.ru/index.php?/topic/1610063- Все настройки есть в ангаре. Скрин: Скачать: ЯндексДиск GoogleDrive StatPaints СтатПокрасчик Раскрашивает машины в зависимости от рейтинга WGR игрока. Полностью совместим с КамоСелектором. Раскрашиваются только те машины, на которые можно нанести краску. Потому что на те, на кого нельзя, она не наносится даже в обход фильтра по технике. WG fix pls. Скачать: ЯндексДиск GoogleDrive IngameGUITextTweaks Твики боевого интерфейса Опять же, nuff said. Также позволяет убрать отображение ников. Скачать: ЯндексДиск GoogleDrive VMTFix Фикс для прозрачных деталей на машине игрока С модом/без мода (за примеры спасибо GoodmanTech): По неведомым мне причинам обводка игрока, позволяющая увидеть свой танк сквозь препятствия, ломает отображение частичной прозрачности и светящихся деталей (шейдеры lightonly_alpha.fx и glow.fx соответственно) на машине игрока. Данный мод убирает эту обводку, возвращая детали на место. Скачать: ЯндексДиск GoogleDrive VoiceOverrider Переопределение режима внутриигрового голосового оповещения Мод на принудительное включение любого режима голосовой озвучки на любом танке с любым составом экипажа. Нужно выключить Буффона или включить женскую озвучку? Это к нам. Скачать: ЯндексДиск GoogleDrive Дополнительный банк от ВГ: ЯндексДиск GoogleDrive - нужен для работы режимов "Valkyrie Chronicles: мужской" и "Valkyrie Chronicles: женский". ShutLoggersUp Затыкатель логгеров ВГ наделали в куче мест вызовов на logging.getLogger().info('blablabla'), к примеру, в обработчике персональных жетонов. И всё бы хорошо, но оно СПАМИТ. Причём эти сообщения никому вообще не нужны. Так вот. Я сделал так, что модуль logging игнорирует всё, что INFO или ниже. Варнинги и и прочие эрроры всё ещё работают. Скачать: ЯндексДиск GoogleDrive HangarGUITweaks Твики ангарного интерфейса В обновлении 1.9.1 ВГ добавили в игру проекционные декали, которые выдаются за определённые достижения при игре на танке. За количество боёв, за фраги, за знаки Мастер и т.д. Проблема в том, что в той менюшке, где их можно выбрать и поставить на танк, они упорядочены в совершенно не понятном мне порядке. Этот мелкий модик переупорядочивает эти самые декали в порядке сложности получения награды. Сначала идут бои, потом фраги, ну и так далее. Также мод делает так, что на Складе резервы сортируются сначала по "крутости", потом по типу, а потом по продолжительности действия. У ВГ сортировка идёт сначала по типу, потом по крутости, потом по времени действия. В итоге я без лишнего клацанья могу себе сразу набрать резервов на часик (или два) и В БОЙ, вместо того, чтобы для каждого типа отдельно резерв выбирать. Ещё мод добавляет список совместимой техники во всплывающие подсказки к модулям в дереве исследования. Таким образом, чтобы посмотреть, стоит ли мне исследовать очередную рацию или можно подождать, мне не нужно делать аж три клика (два для открытия окошка информации о модуе и один для закрытия.) И напоследок, мод добавляет в контекстные меню оборудования и элементов внешнего вида опцию, позволяющую снять его с другого танка. Опция добавляется только для тех вещей, которые не могут быть установлены на текущий танк без снятия с другого (не могут быть куплены и кончились на складе). Скачать: ЯндексДиск GoogleDrive DamagePercentIndicator Процент прочности танка на индикаторах полученного урона Возможно, модик для нубов, но мне зашло. Суть вот в чём. Я катаюсь на разных машинах разных уровней и классов. И не всегда сразу и быстро понятно, если мне влетело на 250 урона - это можно бояться или продолжать танковать. И чем меньше урона, тем меньше понятно. Соответственно, я сделал модик, который добавляет к индикаторам полученного урона вторую строчку с процентом этого самого урона от полной прочности моего танка. Скачать: ЯндексДиск GoogleDrive Автоклавная, она же мастерская Кто там опять булькает, эй? Здесь, возможно, буду писать то, что сейчас в работе/в планах. Переписать гайд по КамоСелектору - жду @DDragun907. Дописать гайд по Ремодомоду - к нему же. :) Внетанковый стафф А вопросы, предложения, запросы на новые моды и прочее буду принимать в самом топике. Типа багтрекер и ЦПП в одном флаконе. @angelsoft, к тебе обращаюсь :) А то спам в иррелевантных топиках уже много кому надоел. ... Ну, как минимум мне надоел. :)
  32. 2 points
    После входа в игру, буквально через минуту "Связь с сервером потеряна". python.rar xvm.rar configs.rar
  33. 2 points
    11.08.21 Обновлен конфиг: * Адаптация под последнюю версию мода Дополнения: * Обновлено дополнение "Иконки техники" ◉ Изменения в коде с версии: 8.8.1 >> 8.8.2
  34. 2 points
    Проблема с одним из серверов. Ведётся работа по исправлению. Кнопка входа снова доступна. В ближайшее время возможны прерывания доступности сервисов.
  35. 2 points
  36. 2 points
    все верно. Так и вставляй: {{py:isHardening('{{name}}')?Закален}}
  37. 2 points
    UE 1.12.1 works on WOT 1.13, no need of update.
  38. 2 points
    Раздача для Epic Games Store Раздача продлится с 08 до 15 июля 2021-го (18:00 МСК). Bridge Constructor: The Walking Dead Вам необходимо: Зайти на сайт. Зарегистрироваться / Войти. Добавить игру на аккаунт на странице акции. После этого продукт навсегда привязывается к учетной записи. Установить его можно будет при помощи фирменного лаунчера Epic Games. Раздача для Epic Games Store Раздача продлится с 08 до 15 июля 2021-го (18:00 МСК). Ironcast Вам необходимо: Зайти на сайт. Зарегистрироваться / Войти. Добавить игру на аккаунт на странице акции. После этого продукт навсегда привязывается к учетной записи. Установить его можно будет при помощи фирменного лаунчера Epic Games.
  39. 2 points
    Обновил конфиг до релиза XVM 8.7.8. Из настроек конфигурации удален пункт: Отключение предела вращения (для техники с ограниченным УГН)
  40. 2 points
    ShuraBB! 1.12.1.0 не пускает в игру, постоянно крутится шестерёнка.
  41. 2 points
  42. 2 points
    Так, скоро микропатч, обнову буду сейчас делать и отправлять. Ничего не измениться, только название папки в архиве. Release 3 уже готовиться и настраивается, придется подождать еще ~2-3 дня. UPD[23:46]: Пока секции для нового микропатча не завезли, мб завтра будет UPD[12:07]: Наврал немного по поводу изменений, будет введена национальная озвучка, в отдельном моде она тоже будет обновлена!
  43. 2 points
    WWise project for World of Tanks 1.11.1 WoT_Sound_Mod_1.11.1.7z
  44. 2 points
    Отличные новости! Национальной озвучку БЫТЬ! Спасибо @Andre_V за помощь с пониманием этой всей хренотени
  45. 2 points
    В шапке обновил звуки выстрелов, теперь они включают в себя и звуки перезарядки. Это версия и озвучка уже проверяется на WGMods
  46. 2 points
    0.1.4 Поддержка WoT 1.7.0 0.1.5 добавлена поддержка 64-разрядного клиента 0.1.6 исправлен вылет клиента на некоторых конфигурациях 0.1.7 исправлена несовместимость с модом OffHangar https://bitbucket.org/IzeBerg/mod_offhangar 0.1.8 изменён подход к подписке на функции IDXGISwapChain NVIDIA_Ansel_v0.1.8.zip --- Также засветилось тут :)
  47. 2 points
    Они так скоро домашку начнут в танках решать :))
  48. 2 points
    %AppData%\TankIconMaker2\ Также вы можете экспортировать стили в любое место, а затем их импортировать.
  49. 2 points
    Ещё немного доработан скрипт.
  50. 2 points
    отдаление для камеры в ангаре перестало работать, поправь плиз. h20_wot_bday_2020.wotmod
×
×
  • Create New...