# 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lessons.sannybuilder.com/00100/00200/00072.-rabota-so-svetom.-prozhektor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
