SA:MP Single Lua "Объёмный" свет от фар

БеzликиЙ

Автор темы
Автор темы
Проверенный
893
511
Версия SA-MP
  1. Любая
"О нет, ему опять стало скучно!"
Шарился на днях по серверам МТА, на одном увидел шейдерный свет от фар. Задумался - ну не может же быть такого, чтобы никто не попытался сделать это в одиночке или сампе, на клео или луа - т.е. без всех этих ваших ЕНБ.

Попытались.

Я попробовал. Мне не зашло, поэтому я полез и написал свой.
Отличия от скрипта по ссылке выше:
- всего одна корона вместо трёх
- у "света" есть коллизия, он упирается в стены (и меняет от этого размер, чтобы выглядело чуточку реалистичнее)
- "свет" реагирует исключительно на состояние фар вашей машины (оригинал работал в любой ситуации ночью по игровым часам). если вы разобьёте одну фару, "свет" станет меньше, разобьёте обе - он пропадёт
- "свет" есть только у машины, в которой сидите вы (аналогично GTA 4/5/Online, где только у машины локального игрока прорисовывается дальний свет)
- а ещё это неплохой пример того, как можно в луа получить состояние всех четырёх фар машины, потому что ВНЕЗАПНО в игре нет для этого опкода

Осталось только дождаться, когда какой-нибудь гений самповского мододела вроде Чапо заметит эту тему, задумается об идее и напишет шейдерный свет от фар на Moonloader DirectX API.



1740325814399.jpeg

1740325825443.jpeg

1740325838982.jpeg

Нет фар - нет света.
 

Вложения

  • 3DCarHeadlights.lua
    1.9 KB · Просмотры: 68

Den629

Участник
157
17
когда-то на мта видел такое, думал никто не сделает как отдельный скрипт для сампа. выглядит кайф)
 

БеzликиЙ

Автор темы
Автор темы
Проверенный
893
511
забыл упомянуть, рекомендую использовать с ImVehFT
 

Den629

Участник
157
17
кстати рекомендую сделать так, чтобы скрипт использовал отдельную текстуру для обьемных фар. у меня модифицированная сборка и тут это:
1740333589868.png
 

БеzликиЙ

Автор темы
Автор темы
Проверенный
893
511
кстати рекомендую сделать так, чтобы скрипт использовал отдельную текстуру для обьемных фар. у меня модифицированная сборка и тут это
он использует опкод рисования объекта света, а там на выбор даётся всего четыре текстуры:
0-1 - звезда/фонарь/свет по умолчанию (1 - мерцает)
2 - Луна
3 - отражение на мокрой дороге
4 - маленький источник света в передних фарах

моддинг вики говорит, что есть ещё 5 (восьмиугольник), 6 (круглый чекпоинт), 7 (свет от аксов на арз) и 8 (растянутый свет от фар, как в GTA Vice City), но эти четыре типа объекта вырезаны из СА и при их выборе ВООБЩЕ ничего не происходит.

впрочем, не всё так безнадёжно - маленький источник света почти не видно на фоне обычного света фар, поэтому его вполне можно заменить. например, на вот этот ПНГ света от фонарика

в строчках 22 и 24 замени 0 на 4, замени в particle.txd текстуру "coronaheadlightline" на приложенный пнг через MagicTXD, сохрани, готово
1740340519823.jpeg
1740340487542.png


з.ы. наконец-то у поезда заработали фары!

1740400313521.jpeg
 

Вложения

  • flashlight.png
    flashlight.png
    18.8 KB · Просмотры: 20
Последнее редактирование:

Den629

Участник
157
17
теперь выглядит лучше, спасибо! а ещё вопрос, можно ли сделать, чтобы эта корона создавалась ещё дальше от фар?
1740426546339.png
 
Последнее редактирование:

БеzликиЙ

Автор темы
Автор темы
Проверенный
893
511
Тут какая текстура? Или смысла не понимаю?
processLineOfSight нестабильная функция(редкая смерть cannot resume non-suspended coroutine), лучше использовать аналог из библиотеки выше
тут на каждый фонарь вешается поисковый прожектор от вертолёта, это другое. поисковым прожекторам становится очень плохо, если их направлять горизонтально, баг движка - а поскольку машины большую часть времени едут именно горизонтально, нам это не подходит

теперь выглядит лучше, спасибо! а ещё вопрос, можно ли сделать, чтобы эта корона создавалась ещё дальше от фар?
можно
1740466514853.png