Skip to content

LampLights

PolyacovYury edited this page Aug 10, 2019 · 1 revision

Эту фичу давно уже просили у Варгейминга, и она все-таки была реализована. Мной :heh:

Установщик источников света и моделей aka Фары для Танков

Оказывается, в клиенте есть возможность прикреплять к различным точкам танка не только модели, но и источники света.

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

ВНИМАНИЕ! Фары работают только на "Улучшенной" графике.

Скриншоты

v. 1.0

post-8065-0-43094700-1413582284_thumb.jpg

v. 1.4

post-8065-0-19679800-1456090716_thumb.jpgpost-8065-0-64428200-1456090720_thumb.jpg

v. 2.0

post-8065-0-05744900-1474787702_thumb.jpgpost-8065-0-44440500-1474787755_thumb.jpgpost-8065-0-80991600-1474787776_thumb.jpgpost-8065-0-98527000-1474787789_thumb.jpg

Настройка

Пользователям

post-8065-0-47468300-1480872776_thumb.png

Текстовые конфиги

mods/configs/PYmods/LampLights/LampLights.json

// Задействовать модуль фар // Значения: true/false "enabled": true, // Отображение фар в начале боя // Значения: true/false "enableAtStartup": true, // Кнопка переключения "hotKey" : ["KEY_F12", ["KEY_LCONTROL", "KEY_RCONTROL"]], // Включить сообщение о наличии модификации и ее авторе в системном канале при старте клиента // Появится только если PYmodsGUI не установлен "enableMessage" : true

Там есть еще значения, но они не про вас, дорогие мои :D

mods/configs/PYmods/LampLights/configs/any_name.json

// Задействовать данный конфиг "enable" : true, // К кому присоединить источники, прописанные в данном конфиге // Наличие всех трех параметров опционально, если параметра нет - предполагается, что он есть и там стоит true "attachToPlayer" : true, "attachToAlly" : true, "attachToEnemy" : true

Опять же, конфиги на этом далеко не кончаются, но вам там лучше ничего не трогать ;)

Мододелам

Не буду дублировать то, что уже есть выше.

mods/configs/PYmods/LampLights/LampLights.json

// Расширенный вывод в лог "Debug" : false, // Присоединение модели, прописанной в DebugPath, к каждому источнику света "DebugModel" : false, "DebugPath" : "Axes/Axes.model"

mods/configs/PYmods/LampLights/configs/any_name.json

// Информация о конфиге "meta" : { "en" : { "name" : "Test config", "desc" : "\t• Examples of different objects\n{attachTo}" }, "ru" : { "name" : "Тестовый конфиг", "desc" : "\t• Примеры настроек всяческих видов объектов\n{attachTo}" } }, // Уникальное (это ВАЖНО!) имя объекта "TestAnimatedModel" : { // Отображение данного источника "visible" : true, // Тип источника: omniLight, spotLight, model "type" : "model", // Место расположения: leftFront, rightFront, leftRear, rightRear, wheels_left, wheels_right, turret, hull "place" : "hull", // Режим работы: constant, stop, turn_left, turn_right, back, target "mode" : "constant", // Вращения осей координат в радианах Y X Z: // вращение вектора направления объекта, не затрагивающее его смещение относительно точки крепления "preRotate" : [ [0.0, [0.0, 0.0, 0.0]], // Первый компонент - время, в которое "кадр" [0.25, [1.5707, 0.0, 0.0]], // будет применен [0.5, [3.1415, 0.0, 0.0]], // Второй - вращение по осям Y X Z [0.75, [4.7124, 0.0, 0.0]], [1.0, [6.2831, 0.0, 0.0]] ], // вращение системы координат "postRotate" : [ [0.0, [0.0, 0.0, 0.0]], // Первый компонент - время, в которое "кадр" [0.25, [1.5707, 0.0, 0.0]], // будет применен [0.5, [3.1415, 0.0, 0.0]], // Второй - вращение по осям Y X Z [0.75, [4.7124, 0.0, 0.0]], [1.0, [6.2831, 0.0, 0.0]] ], // Сдвиги по осям координат (вправо/вверх/вперед) "vect" : [ [0.0, [0.0, 0.0, 0.0]], // Первый компонент - время, в которое "кадр" [0.25, [1.5707, 0.0, 0.0]], // будет применен [0.5, [3.1415, 0.0, 0.0]], // Второй - сдвиг по осям вправо/вверх/вперед [0.75, [4.7124, 0.0, 0.0]], [1.0, [6.2831, 0.0, 0.0]] ], // Путь к присоединяемой модели "path" : "objects/misc/TEST/Test.model", // Объекты, для которых текущая модель будет "родителем" "subLights" : { "TestSpotLight1" : { "visible" : true, "type" : "spotLight", "place" : "TestNode1", // если объект не находится в корне конфига - здесь вместо обычного параметра места указывается node, которая должна иметься у модели-родителя (подсказка - "" есть у любой модели) "mode" : "constant", "bright" : 1000, // яркость источника света "preRotate" : [0.0, 0.0, 0.0], "postRotate" : [0.0, 0.0, 0.0], "vect" : [0.0, 0.0, 0.0], "innerRadius" : 5, // внутренний радиус источника света "outerRadius" : 60, // внешний радиус источника света "ca" : 0.43, // угол между образующей конуса и его осью для spotLight, у omniLight игнорируется "cs" : true, // Не знаю, влияет ли на что-либо, просто оставил "dur" : 1.0, // полное время анимации цвета источника, если цвет не анимирован - игнорируется "colour" : [255, 0, 0, 0] // цвет источника в формате RGBA "colour" : [ // пример анимированного цвета [0.0, [255, 255, 0, 0]], // все так же, как и для положения, только во второй части кадра 4 числа :D [0.074, [255, 255, 0, 0]], [0.075, [0, 0, 0, 0]], [0.149, [0, 0, 0, 0]], [0.15, [255, 255, 0, 0]] ]

За примерами того, что, зачем и почему - под спойлер "Скачать", там все есть.

Скачать

Сам скрипт (без него остальное не работает)

ЯндексДиск GoogleDrive

В комплект входят

Собственно, сам мод :D
Моделька Axes/Axes.model, очень удобная для создания своих и отладки чужих конфигов (СПАСИБИЩЕ Algiz)
Отключенный конфиг modelDebug.json, в котором к каждой точке крепления на все танки прикрепляется по одной штуке Axes'а, чтобы наглядно было видно, где находятся точки крепления

Что будет, если включить modelDebug.json

post-8065-0-43105200-1474790694_thumb.jpgpost-8065-0-98048900-1474790718_thumb.jpg

Список файлов и их роли

mods/configs/PYmods/LampLights/LampLights.json - главный конфиг мода. mods/.../PYmods/LampLights.wotmod - собственно, сам мод :) (а также моделька, сделанная Algiz специально для этого мода, используется для наглядного отображения местоположения источников света.) mods/.../vxSettingsApi.wotmod - модуль настроек в клиенте, единственный обфусцированный из опубликованных мной файлов. mods/.../PYmods/PYmodsCore.wotmod - небольшая кодопомойка с всякими полезными алгоритмами, обязательна для работы мода. mods/configs/PYmods/LampLights/configs/modelDebug.json - был дважды упомянут в спойлерах выше. mods/configs/PYmods/LampLights/i18n - тут хранятся тексты, которые вы видите в клиенте (сообщения от мода и пункты в настройках).

Только фары

ЯндексДиск GoogleDrive

Как выглядит

post-8065-0-78083800-1474790872_thumb.jpg

Как сделано (только скрины, никаких текстов)

post-8065-0-14130000-1474790905_thumb.jpg

Список файлов

mods/configs/PYmods/LampLights/models/HeadLight/ - модель, имитирующая засветку воздуха от фар mods/configs/PYmods/LampLights/configs/headLamps.json - управляет источниками, имитирующими "лампы", находящиеся на танке. mods/configs/PYmods/LampLights/configs/headLights.json - управляет источниками, которые являются светом от фар. mods/configs/PYmods/LampLights/configs/headLightsParticles.json - управляет положением моделей с первой строки списка.

Неоновая подсветка днища

ЯндексДиск GoogleDrive

Как выглядит

post-8065-0-40315100-1474790978_thumb.jpg

Как сделано (только скрины, никаких текстов)

post-8065-0-72313400-1474790996_thumb.jpg

Список файлов

mods/configs/PYmods/LampLights/configs/bottomNeon.json - конфиг, управляющий источниками света, имитирующими подсветку днища.

Подсветка танка в прицеле

ЯндексДиск GoogleDrive

Как выглядит

post-8065-0-44270600-1474791048_thumb.jpg

Как сделано (только скрины, никаких текстов)

post-8065-0-78851700-1474791069_thumb.jpg

Список файлов

mods/configs/PYmods/LampLights/configs/targetLight.json - управляет источниками света, которые "высвечивают" танк в прицеле.

Полицейская мигалка на танке игрока

ЯндексДиск GoogleDrive

Как выглядит

post-8065-0-26905700-1474791161_thumb.jpgpost-8065-0-34430200-1474791172_thumb.jpg

Как сделано (только скрины, никаких текстов)

post-8065-0-00415500-1474791207_thumb.jpgpost-8065-0-11559700-1474791218_thumb.jpg

Список файлов

mods/configs/PYmods/LampLights/models/FlashLight/ - составные части "мигалки" (корпус и два отражателя) mods/configs/PYmods/LampLights/configs/turretFlashLight.json - здесь прописано положение и анимация составных частей "мигалки" и привязанных к ней источников света.

Автомобильный пак (фары, поворотники, габариты, стоп-сигналы и сигналы заднего хода)

ЯндексДиск GoogleDrive

Как выглядит

post-8065-0-56571700-1474791366_thumb.jpgpost-8065-0-29763500-1474791383_thumb.jpgpost-8065-0-25565600-1474791402_thumb.jpgpost-8065-0-94389100-1474791417_thumb.jpgpost-8065-0-40965700-1474791431_thumb.jpg

Как сделано (только скрины, никаких текстов)

post-8065-0-80076100-1474791498_thumb.jpgpost-8065-0-45306800-1474791509_thumb.jpgpost-8065-0-49655700-1474791534_thumb.jpgpost-8065-0-61152200-1474791555_thumb.jpg

Список файлов

mods/configs/PYmods/LampLights/models/HeadLight/ - модель, имитирующая засветку воздуха от фар mods/configs/PYmods/LampLights/configs/backLamps.json - "лампы" сигналов заднего хода mods/configs/PYmods/LampLights/configs/backLights.json - "лучи" сигналов заднего хода mods/configs/PYmods/LampLights/configs/backLightsParticles.json - "засветка воздуха" от сигналов заднего хода mods/configs/PYmods/LampLights/configs/headLamps.json - "лампы" от фар mods/configs/PYmods/LampLights/configs/headLights.json - "лучи" от фар mods/configs/PYmods/LampLights/configs/headLightsParticles.json - "засветка воздуха" от фар mods/configs/PYmods/LampLights/configs/headTurnLamps.json - передние "поворотники" mods/configs/PYmods/LampLights/configs/markLamps.json - габаритные огни mods/configs/PYmods/LampLights/configs/rearTurnLamps.json - задние "поворотники" mods/configs/PYmods/LampLights/configs/stopLamps.json - стоп-сигналы

Список изменений

Ссылка на GitHub (там всегда свежее)

02.10.2018

Весенняя уборка в коде.

12.07.2018

Ядро: обновлён код, отвечающий за хранение настроек горячих клавиш.

10.07.2018

Большой рефакторинг кода.

12/19.04.2018

Действительно исправлен вылет при выходе из боя.

2.2.3.1 (06.04.2018)

Исправлен вылет при выходе из боя.

2.2.3 (09.02.2018; 20.03.2018)

Правки под 1.0.0.

15.11.2017

Новая версия Ядра.

28.10.2017

Аналитика теперь сообщает дату компиляции мода.

09.09.2017

Точечная правка формата вывода сообщения об ошибке при нажатии на какую-либо клавишу.

28.08.2017 (Скрипт изменен 04.08.2017)

Мод обновлен под 0.9.20.

2.2.2 (18.06.2017)

Обновленная версия Ядра.

2.1.1 (02.03.2017)

Переезд в .wotmod-пакет.

2.1.0 (13.12.2016)

Переход на modsCore 2.0.
Исправлена временнАя "черная дыра" в функции, которая переключает состояние у светильников из "Авто-пака".

2.0 (25.09.2016)

Ну тут все понятно и без описания :D

1.5.0 (21.03.2016)

Добавлен мультиконфиг. Теперь лампочек можно понапрописывать сколько душе угодно.
Добавлена поддержка анимированного цвета.
Также можно добавить лампочку, прикрепленную к стволу. Пример - в архиве LampLights_GunLamp
Исправлен баг с незаходом в реплей.
Мод переехал в scripts/client/gui/mods.
Конфиги для фар теперь поставляются отдельными архивами.

1.4.0 (22.02.2016)

Изменено сообщение при логине. Теперь оно Синенькое, а не Желтенькое.
Добавлены светящиеся "точки испускания света" (лампами не назовешь).
Подкрутил параметры у света. Теперь его видно.

1.3.0 (04.02.2016)

Переработано под 0.9.13.
Добавлена возможность не только отключить солнце в бою, но и включить его обратно :)

1.2.4 (15.12.2014)

В мод фар добавлена опция выключения сообщения при логине.

1.2.3 (30.11.2014)

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

1.2.2 (20.11.2014)

Добавлены сообщения над миникартой о включении\отключении фар и модуль управления солнцем (при включении по кнопке ночь наступает сразу, если его не выключали, то он так и работает, если же его выключить - он отключится со следующего боя.) (Взято из мода NightWar от lsdmax (который, в свою очередь, взял код у lportii))

1.2.1 (24.10.2014)

Исправлено неисчезновение фар при исчезновении\уничтожении танка (огромное спасибо MakcT40)

1.2 (20.10.2014)

Добавлена кнопка отключения фар - блок hotkey, по умолчанию - F2. Блок enable отвечает за состояние фар до начала боя, полное отключение - блоки visl и visr (левая и правая соответсвенно).

1.1 (18.10.2014)

Дополнен конфигурационный файл. Теперь через него можно изменить ВСЕ параметры света для каждой фары отдельно.

1.0 (18.10.2014)

Базовый функционал
Добавлен файл конфигурации
Добавлена возможность настройки яркости фар

Спасибки

Товарищам MakcT40 и spoter - за неоценимую помощь в первичной разработке мода; Товарищу LSDMAX и, насколько я понял, его твинку с ником Поллюция - за код отключения солнца (Автор - lportii), ну и, конечно, за доставленные лулзы :)

Товарищу Torsus_SD за добавление скрипта в зимний мод и команде WoT Fan за то, что почувствовал себя нужным :)

И пользователям мода за фидбек

Контроллер времени суток на картах (SunController (ex-SunDisabler 2.0)) (Мод на ночные бои)

В стандартной поставке мод служит для приглушения освещения на всех картах игрока. Активация контроллера солнца происходит через 5 секунд игрового времени после загрузки карты во избежание всяческих глюков.

Однако через конфиг можно изменить устанавливаемое время в пределах от 0:00 до 23:00 с шагом в 1 час. При установке времени в значение "24:00" будет устанавливаться текущее системное время с поминутным обновлением.

В 1.0.0 мод был сломан. Он все еще успешно меняет время суток, вот только на картах теперь для любого времени освещение одинаковое.

Настройка

post-8065-0-62828200-1480872802_thumb.png

mods/configs/PYmods/SunController/SunController.json

// Задействовать модуль контроллера солнца // Значения: true/false "enabled": true, // Время (в часах), устанавливаемое Контроллером на картах в бою "time": 0, // Контроль солнце при старте клиента // Значения: true/false "enableAtStartup": true, // Горячая клавиша Контроллера "hotKey" : ["KEY_F12", ["KEY_LCONTROL", "KEY_RCONTROL"]], // Включить сообщение о наличии модификации и ее авторе в системном канале при старте клиента // Появится только если PYmodsGUI не установлен "enableMessage": true

Скачать

ЯндексДиск GoogleDrive