Jump to content
Korean Random

Leaderboard


Popular Content

Showing content with the highest reputation since 08/16/2021 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. 6 points
    Стиль "Леванте" для Char Futur 4 (в архиве и катки без стиля), клиент SD: F114_Projet_4_1.zip
  8. 6 points
  9. 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
  10. 6 points
  11. 5 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):
  12. 5 points
    Исправил совместимость с WG: aiming.py chancePenetration.py targetInfo.py infoAutoAim.py modesVehicle.py markerPosition.py reloading.py infoChargedShell.py quantityShells.py crosshair.py
  13. 5 points
    updated Lesta version - compatibility with Tanki 1.20.1.0
  14. 5 points
    updated - compatibility with WoT 1.19.1.0
  15. 5 points
    Январское обновление уже доступно! https://disk.yandex.ru/d/2hWy5IHwZ1kUdg
  16. 5 points
    @AtotIK у меня вот так UPD: Нашел причину. На стандартной графике работает. На улучшенной у меня вообще гусеницы нет. Буду смотреть в чем разница. UPD2: Локализовал проблему. Гусеницы не красятся, только если стоит Улучшенная графика и включена новая опция физики гусениц. В остальные случаях - работает ка обычно. Ща буду искать и править. А там где реплей с батшатом выше, там если графика Улучшенная, то гусеница улетает как бы в никуда и её просто нет. Ну то бишь так задумано ВГ, все ОК. ------------------------------------------ Покопался, увы ничего сделать не получится. Причина в том, что как только вы включаете опцию "Физика гусеничных лент", то клиент игры составляет гусеницу из сегментов. Сегмент это отдельная модель. И начиная с патча 1.18 эта модель едина, что для целых гусениц что для сбитых. Как результат перекрасить её нельзя, т.к. иначе гусеница будет цветной всегда. В патче 1.17.1 и более ранних, сегменты использовались, но только для целых гусениц, а сбитая гусеница бралась из crash-файла, что позволяло модифицировать последний и тем самым красить только сбитые гусли. Если опцию "Физика гусеничных лент" не юзать, то всё работает как раньше. Такие дела. Инфу добавлю в первый пост. ЗЫ: Если подходить глобально к решению проблемы, то надо делать копию моделей траков и писать python-мод в довесок, который бы перехватывал сбитие гусеницы CompoundAppearance.addCrashedTrack и вместо оригинальных моделей подсовывал копии, в которых юзаются крашенные текстуры. Но такое городить чего-то не хочется. Проще опцию физики не юзать.
  17. 5 points
    Обновил battleDamageIndicatorApp.swf в шапке для WoT 1.16.1.0.
  18. 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/
  19. 5 points
  20. 5 points
    Исправил, обновил скрипт и флэш.
  21. 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/
  22. 4 points
    Обновил скрипт myHP.py из аддона Очки прочности своей техники.
  23. 4 points
    Уважаемые разработчики, спасибо за лучший мод для танков. Сделайте еще пожалуйста встроенный в XVM мод на 3 отметки, на данный момент это единственный мод кроме XVM который использую лично я. P.S. А здесь на форуме перенесите капчу под сообщение, потому что пока пишешь сообщение время капчи истекает. Спасибо и удачи
  24. 4 points
    Не большой мануал по добавлению иконок которых нет в клиенте игры, или замены уже имеющихся Сам мануал
  25. 4 points
    Мы изучаем эту проблему и обнаружили некоторые зацепки, но потребуется больше времени, чтобы найти и устранить саму причину проблемы.
  26. 4 points
  27. 4 points
    Что за скриншот выше ты прилепил? В первом посте выложена актуальная версия программы. И чеклист на вирустотале ничего не показывает при её проверке. Так что разбирайся давай, что там у тебя устарело и где И на будущее - если брендовые антивирусы типа Касперского ничего не показывают, то значит ничего там нет. А на 100500 всяких дешевых коммерческих недоантивирусов смотреть не надо. Они работают крайне топорно и там постоянно ложные срабатывания.
  28. 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
  29. 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/
  30. 4 points
    - compatibility with WoT 1.17.0.1
  31. 4 points
    Обязательно исправлю Не большой фикс. Чтобы не качать програму заново целиком выложу его сюда. Исправлено: 1. Латиница при добавлении своих станций теперь отображается читаемо. 2. Баг при котором при добавлении двух и более станций программа в список записывала ещё и предыдущие. Скачайте прикреплённый к сообщению архив, и из него скинет exe файл в папку с установленной программой соответствено с заменой Radio Your Wins.zip
  32. 4 points
    updated. - compatibility with WoT 1.16.1.0 with today's micropatch
  33. 4 points
    Ура. Вернулись!. Уже порвали от радости три баяна.
  34. 4 points
    @Slava7572 разобрался, нашел проблему. Еще что-то нужно сделать/поправить/добавить в программе?
  35. 3 points
  36. 3 points
    Пожалуйста восстановите тему, обновите шкурки...
  37. 3 points
  38. 3 points
    Когда-то давно натыкался на ошибочно запакованные в файлы клиента сорсы шейдеров салолётиков, сегодня случайно наткнулся повторно. Закину сюда в тему, может пригодится кому-нибудь. #include "stdinclude.fxh" #define DUAL_UV 1 #if SKINNED #include "skinned_effect_include.fxh" #else #include "unskinned_effect_include.fxh" #endif // BW_DIFFUSE_LIGHTING BW_SPECULAR_LIGHTING BW_ARTIST_EDITABLE_DOUBLE_SIDED BW_ARTIST_EDITABLE_DIFFUSE_MAP BW_ARTIST_EDITABLE_NORMAL_MAP texture reflectionMap : EnvMap; BW_ARTIST_EDITABLE_REFLECTION_AMOUNT BW_ARTIST_EDITABLE_ALPHA_TEST BW_ARTIST_EDITABLE_ADDRESS_MODE(BW_WRAP) sampler reflectionSampler = BW_SAMPLER(reflectionMap, WRAP) samplerCUBE reflectionCubeSampler = BW_SAMPLER_NON_MIPMAP_BIASED( reflectionMap, CLAMP ) //samplerCUBE reflectionCubeSampler = BW_SAMPLER( reflectionMap, CLAMP ) BW_ARTIST_EDITABLE_FRESNEL #include "common.fxh" texture specularPowerMap < bool artistEditable = true; string UIName = "Specular Parameters Map"; string UIDesc = "The specular and other parameters"; >; #ifndef AIRCRAFT_OBJECT texture camuflageMap : CamuflageMap; texture decals : DecalMap; texture selfShadowMap : SelfShadow; #endif float glossinessOffset : GlossinessOffset; #if defined(AIRCRAFT_OBJECT) float4 bottomColor : BottomColor; #endif // TODO #include "normalmap_chrome.fxh" OR "material_helpers.fxh" instead of the "materialSpecular" declaration /* float materialSpecular < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0.0; */ float4 materialSpecular\ < \ bool artistEditable = true;\ string UIWidget = "Color"; \ string UIName = "Specular Colour";\ string UIDesc = "The specular colour for the material";\ float UIMin = 0;\ float UIMax = 2;\ int UIDigits = 1;\ > = {1,1,1,1}; float selfIllumination < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0.0; /* float specularPower < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0.0; */ /* float glossiness_shift < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0; */ float normalmap_weight < bool artistEditable = true; string UIName = "Normalmap Weight"; string UIDesc = "Normalmap Weight"; float UIMin = 0; float UIMax = 1; int UIDigits = 2; > = 1.0; bool gloss_const_enabled < bool artistEditable = true; string UIName = "Glossiness Constant Enabled"; string UIDesc = "Whether to use the constant value for glossiness"; > = false; float gloss_const < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0.5; /* float gloss_const_weight < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0; */ /* float cubemap_saturation < bool artistEditable = true; string UIName = "Not used"; string UIDesc = "Not used"; > = 0; */ sampler diffuseSampler = BW_SAMPLER(diffuseMap, BW_TEX_ADDRESS_MODE) sampler normalSampler = BW_SAMPLER(normalMap, BW_TEX_ADDRESS_MODE) sampler specularPowerSampler = BW_SAMPLER(specularPowerMap, BW_TEX_ADDRESS_MODE) #ifndef AIRCRAFT_OBJECT sampler camuflageSampler = BW_SAMPLER(camuflageMap, BW_TEX_ADDRESS_MODE) sampler decalSampler = BW_SAMPLER(decals, BW_TEX_ADDRESS_MODE) #ifndef AIRCRAFT_NO_SELFSHADOW sampler selfShadowSampler = BW_SAMPLER(selfShadowMap, BW_TEX_ADDRESS_MODE) #endif #endif float4x4 worldViewProj : WorldViewProjection; float4x4 worldView : WorldView; struct PS_INPUT { float4 pos : POSITION; float2 tc : TEXCOORD0; float3 wPos : TEXCOORD1; float3 vPos : TEXCOORD2; float3 vBinormal : TEXCOORD3; float3 vTangent : TEXCOORD4; float3 vNormal : TEXCOORD5; float2 tc2: TEXCOORD8; }; #if SKINNED PS_INPUT vs_main_uv1(VertexXYZNUVIIIWWTB i) #else PS_INPUT vs_main_uv1(VertexXYZNUVTB i) #endif { PS_INPUT o=(PS_INPUT)0; PROJECT_POSITION( o.pos ) o.tc = i.tc; o.tc2 = float2(0,0); o.wPos = worldPos.xyz; o.vPos = mul(float4(worldPos.xyz, 1.0f), g_viewMat); // // // #if SKINNED CALCULATE_TS_MATRIX float3 vBinormal = normalize(mul(tsMatrix[1], g_viewMat)).xyz; float3 vTangent = normalize(mul(tsMatrix[0], g_viewMat)).xyz; float3 vNormal = normalize(mul(tsMatrix[2], g_viewMat)).xyz; #else float3 vBinormal = normalize(mul(i.binormal, worldView)).xyz; float3 vTangent = normalize(mul(i.tangent, worldView)).xyz; float3 vNormal = normalize(mul(i.normal, worldView)).xyz; #endif o.vBinormal = vBinormal; o.vTangent = vTangent; o.vNormal = vNormal; return o; }; PS_INPUT vs_main_uv2(BUMPED_VERTEX_FORMAT i) { PS_INPUT o=(PS_INPUT)0; PROJECT_POSITION( o.pos ) o.tc = i.tc; o.tc2 = i.tc2; o.wPos = worldPos.xyz; o.vPos = mul(float4(worldPos.xyz, 1.0f), g_viewMat); // // // #if SKINNED CALCULATE_TS_MATRIX float3 vBinormal = normalize(mul(tsMatrix[1], g_viewMat)).xyz; float3 vTangent = normalize(mul(tsMatrix[0], g_viewMat)).xyz; float3 vNormal = normalize(mul(tsMatrix[2], g_viewMat)).xyz; #else float3 vBinormal = normalize(mul(i.binormal, worldView)).xyz; float3 vTangent = normalize(mul(i.tangent, worldView)).xyz; float3 vNormal = normalize(mul(i.normal, worldView)).xyz; #endif o.vBinormal = vBinormal; o.vTangent = vTangent; o.vNormal = vNormal; return o; }; float4 ps_main(PS_INPUT i, uniform bool useUV2, uniform bool reflection, uniform bool lighting, uniform bool normalmapping, float face : VFACE) : COLOR0 { // // albedo // float4 albedo = tex2D(diffuseSampler, i.tc); #ifndef AIRCRAFT_OBJECT float4 camuflageMap = tex2D( camuflageSampler, i.tc ); float4 decals = 0; if(useUV2) { decals = tex2D( decalSampler, i.tc2.xy ) * max( face, 0.0 ); } albedo.rgb = lerp( lerp( camuflageMap.rgb, decals.rgb, decals.w ), albedo.rgb, albedo.w ); #else albedo.rgb = lerp( bottomColor.rgb, albedo.rgb, albedo.w); #endif // else // { // decals = 0; // } albedo = gamma_to_linear_4(albedo); // // TBN // float3 vTangent = normalize(i.vTangent); float3 vBinormal = normalize(i.vBinormal); float3 vNormal = normalize(i.vNormal); // // normal // if( normalmapping ) { float2 normalMapValue = tex2D( normalSampler, i.tc ).xy; normalMapValue.xy = normalMapValue.xy * (255.0 / 256.0) * 2.0 - 1.0; // 128 - normalmap zero value float3 tNormal = normalize(float3(normalMapValue.xy, 1.0)); tNormal = lerp(float3(0, 0, 1.0), tNormal, normalmap_weight); vNormal = float3( dot(tNormal, float3(vTangent.x, vBinormal.x, vNormal.x)), dot(tNormal, float3(vTangent.y, vBinormal.y, vNormal.y)), dot(tNormal, float3(vTangent.z, vBinormal.z, vNormal.z))); vNormal = normalize( vNormal ); } float3 wNormal = normalize(mul(float4(vNormal, 0), g_invViewMat).xyz); // // view vectors // float3 wViewVec = i.wPos - g_cameraPos; float3 vViewVec = normalize(i.vPos); float dist = length(wViewVec); wViewVec /= dist; // // fresnel term // float fresnelExp_ = 5.0; float fresnelConstant_ = 0.04; float fresnel_out = fresnel(-vViewVec, vNormal, fresnelExp_, fresnelConstant_); //TODO //float fresnel_in = fresnel(i.vLightVec.xyz, vNormal, fresnelExp, fresnelConstant); // // shadowmapping // #ifndef AIRCRAFT_OBJECT #ifdef AIRCRAFT_NO_SELFSHADOW float shadowing = 1; #else float shadowing = tex2D(selfShadowSampler, i.tc).a; #endif #else float shadowing = 1; #endif // // lighting // //materialProps - x - specular multiplier, y - glossiness (specular power), z - alpha test value, w - nonmetal parameter float4 materialProps = tex2D(specularPowerSampler, i.tc); float glossiness = materialProps.y; float glossiness_corrected = glossiness; if (glossinessOffset > 0) { glossiness_corrected = lerp(glossiness, 1.0, glossinessOffset); } else { glossiness_corrected = lerp(0, glossiness, 1.0 + glossinessOffset); } glossiness = lerp(glossiness_corrected, glossiness, albedo.w); glossiness = (gloss_const_enabled) ? gloss_const : glossiness; /* float ags = 0.9 * abs(glossiness_shift); // float glossiness_shift_power = pow(2, 2.0 * -sign(glossiness_shift) * ags / (1.0 - ags)); float glossiness_shift_power = exp(-sign(glossiness_shift) * ags / (1.0 - ags)); float gloss_remap_val = 0.7; // remap texture range glossiness = pow(glossiness, gloss_remap_val * glossiness_shift_power); */ glossiness = glossiness * 0.9999 + 0.0001; /* { float gloss_remap_val = 0.7; // remap texture range glossiness = pow(glossiness, gloss_remap_val); } */ // remap gloss texture { float gloss_remap = 0.2; float a = sqrt(0.25 + 1 / gloss_remap); glossiness = -1.0 / (gloss_remap * (glossiness + a - 0.5)) + a + 0.5; } // float specular_absorbtion = pow(glossiness, 0.5); // float specular_absorbtion = 1.0 - pow(1.0 - glossiness, 4); float NdotV = dot(wNormal, -wViewVec); // float specular_absorbtion = 1.0 - pow(1.0 - glossiness, 2.0 + 2.0 * NdotL); float invgloss = 1.0 - glossiness; float invgloss2 = invgloss * invgloss; float invgloss4 = invgloss2 * invgloss2; float invgloss8 = invgloss4 * invgloss4; float specular_absorbtion = 1.0 - lerp(invgloss2, invgloss8, NdotV); // // metalliness // // float nonmetal = camuflageMap.a * materialProps.w; #if !defined(AIRCRAFT_OBJECT) float nonmetal = (1.0 - (1.0 - camuflageMap.a) * (1.0 - decals.w)) * materialProps.w; #else // float nonmetal = materialProps.w * bottomColor.a; float nonmetal = materialProps.w * lerp(bottomColor.a, 1.0, albedo.w); #endif // nonmetal = gamma_to_linear_1(nonmetal); // float4 fresnel_complex = lerp(albedo, fresnel_out, nonmetal); // metal color defined by diffuse textures // float4 fresnel_complex = lerp(1.0, fresnel_out * specular_absorbtion, nonmetal); // metal color is 1 float4 fresnel_complex = lerp(float4(materialSpecular.xyz, 1.0), fresnel_out * specular_absorbtion, nonmetal); // metal color defined by material specular color // // lighting // float3 diffuse = 0; float3 specular = 0; if(lighting) { for (int light = 0; light < nPointLights; light++) { float3 wL = normalize( pointLights[light].position - i.wPos ); float distance = dot( pointLights[light].position - i.wPos, wL ); float attenuation = saturate((-distance + pointLights[light].attenuation.x) * pointLights[light].attenuation.y); float fresnel_in = fresnel(wL, wNormal, fresnelExp_, fresnelConstant_); attenuation *= blinn_phong_mod( wNormal, -wViewVec, normalize(pointLights[light].position - i.wPos), glossiness ).x; diffuse += pointLights[light].colour.rgb * attenuation * (1.0 - fresnel_in * specular_absorbtion); } for (int light = 0; light < nSpecularPointLights; light++) { float3 wL = normalize( specularPointLights[light].position - i.wPos ); float distance = dot( specularPointLights[light].position - i.wPos, wL ); float attenuation = saturate((-distance + specularPointLights[light].attenuation.x) * specularPointLights[light].attenuation.y); float fresnel_in = fresnel(wL, wNormal, fresnelExp_, fresnelConstant_); attenuation *= blinn_phong_mod( wNormal, -wViewVec, normalize(specularPointLights[light].position - i.wPos), glossiness ).y; specular += specularPointLights[light].colour.rgb * attenuation; } for (int light = 0; light < nSpotLights; light++) { float3 wL = normalize( spotLights[light].position - i.wPos ); float distance = dot( spotLights[light].position - i.wPos, wL ); float fresnel_in = fresnel(wL, wNormal, fresnelExp_, fresnelConstant_); float attenuation = ((-distance + spotLights[light].attenuation.x) * spotLights[light].attenuation.y) * //distance attenuation (dot( -spotLights[light].direction, wL ) -spotLights[light].attenuation.z) / (1.0 - spotLights[light].attenuation.z); //cone angle attenuation attenuation = saturate(attenuation); float4 lightLevels = blinn_phong_mod( wNormal, -wViewVec, normalize(spotLights[light].position - i.wPos), glossiness ); lightLevels *= attenuation; lightLevels.x *= (1.0 - fresnel_in * specular_absorbtion); diffuse += spotLights[light].colour.rgb * lightLevels.x; specular += spotLights[light].colour.rgb * lightLevels.y; } } // // cubemap // float4 reflectionColour = 0; if(reflection) { float3 wReflVec = reflect(wViewVec, wNormal); wReflVec = lerp(wReflVec, wNormal, invgloss8); // reflectionColour = texCUBElod(reflectionCubeSampler, float4(wReflVec, (1.0 - glossiness) * 7.0)); // reflectionColour = texCUBElod(reflectionCubeSampler, float4(wReflVec, pow((1.0 - glossiness), 1.2) * 6.0)); // reflectionColour = texCUBElod(reflectionCubeSampler, float4(wReflVec, pow((1.0 - glossiness), 1) * 4.0)); reflectionColour = texCUBElod(reflectionCubeSampler, float4(wReflVec, (1.0 - glossiness) * 6.0)); // reflectionColour.rgb = color_saturation(reflectionColour.rgb, cubemap_saturation); } //specular float reflectionMask = materialProps.x; //add reflection specular += reflectionColour.rgb; // // combine everything // float3 ambient = nonmetal * ambientColour * albedo.rgb; // TODO leave just arrived ambient light if(reflection) { // ambient = texCUBElod(reflectionCubeSampler, float4(wNormal, 5.0)) * nonmetal * albedo.rgb; // ambient = color_saturation(texCUBElod(reflectionCubeSampler, float4(wNormal, 5.0)), cubemap_saturation) * nonmetal * albedo.rgb; ambient = texCUBElod(reflectionCubeSampler, float4(wNormal, 5.0)) * nonmetal * albedo.rgb; } // float4 colour = float4( (nonmetal * albedo.rgb * diffuse + specular.rgb * reflectionMask * fresnel_complex/* * reflectionAmount*/) * shadowing + ambient, albedo.w); float4 colour = float4((nonmetal * albedo.rgb * diffuse + specular.rgb * reflectionMask * fresnel_complex) * shadowing + ambient, albedo.w); float3 fogColour = skyDomeColor(skyDomeSampler, wViewVec, -directionalLights[0].direction); float fog = opticalDepth(dist); colour.rgb = lerp(colour.rgb, fogColour, fog); #ifdef DAMAGE_TEXTURE //make holes colour.a = materialProps.z; #endif return pack_hdr_value(colour); }; #ifndef AIRCRAFT_OBJECT technique AircraftHangarHigh < bool dualUV = true; #if SKINNED bool skinned = true; #endif > { pass Pass_0 { #ifdef DAMAGE_TEXTURE ALPHATESTENABLE = TRUE; ALPHAREF = 128;//TODO REMOVE THIS( must be removed in all materials ) #else ALPHATESTENABLE = FALSE; #endif ZENABLE = TRUE; ZWRITEENABLE = TRUE; ALPHABLENDENABLE = FALSE; BW_FOG FOGENABLE = TRUE; FOGTABLEMODE = NONE; FOGVERTEXMODE = LINEAR; CULLMODE = None; VertexShader = compile vs_3_0 vs_main_uv2(); PixelShader = compile ps_3_0 ps_main(true,true,true,true); } } #endif technique AircraftHangarHigh_UV2_fallback < string link_fallback = "AircraftHangarHigh"; #if SKINNED bool skinned = true; #endif > { pass Pass_0 { #ifdef DAMAGE_TEXTURE ALPHATESTENABLE = TRUE; ALPHAREF = 128;//TODO REMOVE THIS( must be removed in all materials ) #else ALPHATESTENABLE = FALSE; #endif ZENABLE = TRUE; ZWRITEENABLE = TRUE; ALPHABLENDENABLE = FALSE; BW_FOG FOGENABLE = TRUE; FOGTABLEMODE = NONE; FOGVERTEXMODE = LINEAR; CULLMODE = None; VertexShader = compile vs_3_0 vs_main_uv1(); PixelShader = compile ps_3_0 ps_main(false,true,true,true); } } shaders.zip
  39. 3 points
  40. 3 points
    RU Обновление Версия 1.9.0 для WoT 1.18.1.1 Изменения - Minor changes and fixes EN Update report Version 1.9.0 для WoT 1.18.1.1 Changelog: - Незначительные изменения и фиксы Скачать | Download WGMods GitHub - предпочтительный вариант, обновляется быстрее чем тот же WGMods
  41. 3 points
    @ktulho есть предложение: если будет желание сделать полезный мод средствами XVM - аналог винтика (ремонт и лечение экипажа) с конфигом ---- В самом моде там куча ненужного: кнопки, окна настроек и прочего. А так был бы скрипт + файл-конфиг для настроек. Типо этого: { "class_specific": { "AT-SPG": { "crew": [ "loader", "gunner", "commander", "driver" ], "device": [ "ammoBay", "gun", "engine", "turretRotator", "chassis" ] }, "None": { "crew": [ "commander", "driver", "loader", "gunner" ], "device": [ "turretRotator", "ammoBay", "engine", "gun", "chassis" ] }, "SPG": { "crew": [ "commander", "loader", "gunner", "driver" ], "device": [ "ammoBay", "engine", "gun", "turretRotator", "chassis" ] }, "heavyTank": { "crew": [ "commander", "loader", "gunner", "driver" ], "device": [ "turretRotator", "ammoBay", "engine", "gun", "chassis" ] }, "lightTank": { "crew": [ "driver", "commander", "gunner", "loader" ], "device": [ "engine", "chassis", "ammoBay", "gun", "turretRotator" ] }, "mediumTank": { "crew": [ "loader", "driver", "commander", "gunner" ], "device": [ "turretRotator", "engine", "ammoBay", "gun", "chassis" ] } }, содержание можно обсудить. Но точно должна быть отключалка, один или два хоткея (один гуслю, второй остальное). ---- 100% будет востребован
  42. 3 points
    По поводу Release 7: Вторая ревизия - изменения следующие: - Исправление звука выстрелов танков - NPC - Улучшенное распространение звуков выстрелов, попаданий некоторыми снарядами и взрывов. - Исправление звука перезарядки между снарядами на танках с КД между снарядами < 1.6 секунды. "Ревизии" - обновления, включающие изменения, которые по тем или иным причинам не смогли войти в основной релиз. Они пришли на смену номерным версиям типа "Х.Х". Также в целях сохранения баланса в игре, максимальная дальность звука попадания в землю составляет 750 метров, при необходимости она может быть снижена. Также после закрытия мода моя деятельность сместиться на мой личный Discord-сервер. Чтобы не потерять меня из виду - заходите. Тем более, я планирую его развивать и дальше. https://discord.gg/JqkyVMdcTW
  43. 3 points
  44. 3 points
    Обновление программы 1.1.4 [Upd] Сервер обновлений переведен на защищенный https-протокол [Upd] Обновлены модули, работающие с сервером обновлений
  45. 3 points
    Обновление Версия 1.1.1 для WoT 1.14.1.3 Что нового: - Исправлено отображения статуса "AFK" в ангаре, будучи в очереди в бой, спасибо @EngineExt Скачать WGMods Dropbox P.S. Модификацию на WGMods добавил, ожидаю аппрува. Как только добавят на сайт, добавлю ссылку и сюда.
  46. 3 points
    https://en.wikipedia.org/wiki/Quality_control
  47. 3 points
  48. 3 points
    1.14.0.4. UT_announcer: Исправлены редкие глюки анимации текста. Ремодомод: Больше не мешает Шкуродёру наносить белые трупы. КамоСелектор: В бесплатной версии появилась возможность увидеть, а за что, собственно, платить деняк просят. Исправлен выбор начальной вкладки в режиме установки. Исправлено переключение вкладки при смене режима установки/покупки. Запускаем модпак, работяги! Lite-версия - всё, кроме ремоделингов: ЯндексДиск Полная версия - включает полтора гига ремоделингов: ЯндексДиск
  49. 3 points
    19.08.21 Обновлена сборка модов: * Обновлено для версии игрового клиента v1.14.0.1 * Обновлён мод "Комплексный мод XVM" до версии v8.8.2-dev (0020)
  50. 3 points
    1. Установка Wine sudo apt-add-repository ppa:ubuntu-wine/ppa sudo apt-get update sudo apt-get install wine 2. Установка зависимостей через winetricks winetricks d3dx9 d3dx9_43 d3dcompiler_43 lucida ie8 msxml6 vcrun2008 wininet 3. Установка WoTЗагрузите клиент для EU, NA или RU регионов и установите игру. Вы также можете использовать клиент, предварительно установленный на Windows. Обратите внимание: производительность WoT на NTFS разделах ниже, чем на ext* разделах. 4. Установка XVM Загрузите релиз XVM или ночную сборку Распакуйте архив в папку, где установлен WoT. В папке res_mods/xvm/configs/ переименуйте папку Default во что-нибудь другое, например ваш ник (в данном примере используется koreanrandom). В папке res_mods/xvm/configs/ переименуйте файл xvm.xc.sample в xvm.xc (т.е. уберите расширение .sample) В файле res_mods/xvm/configs/xvm.xc, который у вас получился после переименования, укажите путь к вашей конфигурации: ${"/koreanrandom/@xvm.xc":"."} вместо стандартного ${"Default/@xvm.xc":"."} В файле res_mods/xvm/configs/koreanrandom/rating.xc измените значение параметра showPlayersStatistics на true (по умолчанию стоит false). 5. Запуск WoT 5.1. Только одна видеокарта Дважды щелкните по WorldOfTanks.exe или выполните wine WorldofTanks.exe в терминале. 5.2. Intel HD graphics + NVidia Optimus (bumblebee) выполните bumblebee wine WorldofTanks.exe в терминале 5.3. Intel HD graphics + NVidia Optimus (PRIME) 1. Откройте Nvidia X Server Settings 2. Включите видеокарту NVidia в PRIME profiles 3. Выйдите из системы и снова зайдите в неё 4. Дважды щелкните по WorldOfTanks.exe или выполните wine WorldofTanks.exe в терминале.
×
×
  • Create New...