00072. Работа со светом. Прожектор
Работа со светом. Прожектор|В э том уроке мы рассмотрим базовые опкоды для работы со светом.|wmysterio|wmysterio||||Думаю с название этого краткого урока вы догадались, что речь пойдёт о свете ( это не имя девушки :D ). Это небольшой источник света и используется в качестве слабого освещения. Примером света можно назвать фары автомобиля и прожекторы на вертолётах. Начнём с опкодов:
06B1: 0@ = create_searchlight_at -1200.0 500.0 20.0 radius 5.0 target -1300.0 490.0 13.0 radius 25.0
Здесь:
0@ - переменная, в которую записывается источник света
-1200.0 500.0 20.0 - координаты создания света
5.0 - начальный радиус света
-1300.0 490.0 13.0 - координаты цели, то есть место, куда будет направлен этот источник
25.0 - соответственно радиус возле цели
06C1: create_searchlight 0@ on_car 1@ with_offset 0.0 1.0 -0.5 radius 0.4 target 2228.36 -1171.48 25.82 radius 5.0
Создаёт источник света и цепляет его к автомобилю.
Здесь:
0@ - переменная, в которую записывается источник света
1@ - хендл машины, к которой будет прицеплен свет
0.0 1.0 -0.5 - координаты размещения света относительно машины
0.4 - начальный радиус света
2228.36 -1171.48 25.82 - координаты, куда будет направлен свет
5.0 - радиус возле цели
06C4: create_marker_above_searchlight 0@ handle_as 1@
Создаёт маркер над источником света.
Здесь:
0@ - указатель на свет
1@ - переменная маркера
06B6: set_searchlight 0@ follow_actor $PLAYER_ACTOR speed 0.2
Заставляет следовать свет за актёром.
Здесь:
0@ - указатель на свет
$PLAYER_ACTOR - актёр, за которым будет двигаться свет
0.2 - скорость перемещения координат направление света
06B4: set_searchlight 0@ path_between 2228.36 -1171.48 25.82 and 2215.41 -1142.51 25.5 speed 0.5
Заставляет прожектор следовать с одной точки в другую.
Здесь:
0@ - указатель на свет
2228.36 -1171.48 25.82 - изначальная точка перемещения
2215.41 -1142.51 25.5 - конечная точка перемещения
0.5 - соответственно скорость перемещения света
06CA: attach_searchlight 0@ to_tower 1@ to_housing 2@ to_bulb 3@ with_offset 0.0 1.181 0.768
Опкод цепляет свет к прожектору.
Здесь:
0@ - указатель на свет
1@ - указатель на основание прожектора
2@ - указатель на сам прожектора
3@ - указатель на стекло прожектора
0.0 1.181 0.768 - координаты сцепления света, относительно прожектора
06B2: destroy_searchlight 0@
Уничтожает источник света.
Так же есть проверки для света:
06B3: searchlight 0@ active // активный ( существует ) источник света?
06B7: searchlight 0@ spotted_actor $PLAYER_ACTOR // Актёра находится в источнике света? ( актёр замечен источником света? )
Для примера напишем самый простой скрипт:
{$CLEO}
0000:
:LIGHT
thread 'LIGHT'
wait 0
06B1: 0@ = create_searchlight_at 2480.4573 -1754.0773 24.2714 radius 4.0 target 2481.6211 -1748.3218 13.5469 radius 15.0
0A93: end_custom_thread
Результат:

Думаю, о источнике света я вам рассказал всё необходимое =)|1084|1|0|18774195
png
600360
400`240``||rabota_so_svetom|1499707648