# 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
```

Результат:

![](https://github.com/wmysterio/scm-scripting-lessons/raw/resources/_pu/1/18774195.png)

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