# 00056. Специальные актёры

Специальные актёры|В этом уроке мы рассмотрим специальных актёров.|wmysterio|wmysterio||||Доброго времени времени суток, уважаемые пользователи. Думаю, Вы уже не мало создали актёров в своих скриптах. Пришло время познакомится ещё и со специальными актёрами. Что значит "специальные"? Это те актёры, которых не встретишь на улицах. Например: Свита, Райдера и других "сюжетных" актёров. Загрузка спец.актёров немного другая, чем у обычных актёров. В спец.актёров есть свои имена ( см. [Специальные актёры](https://github.com/wmysterio/scm-scripting-lessons/blob/main/dir/gta_sa/specialnyt_aktjory_v_gta_sa/1-1-0-25/README.md) ).

Для начала, нужно загрузить модель актёра опкодом:

```
023C: load_special_actor 'TENPEN' as 1
```

Здесь:\
'TENPEN' - имя модели актёра\
1 - указывается номер актёра

Дальше необходимо проверить на загруженность:

```
023D: special_actor 1 loaded
```

Здесь:\
1 - указанный ранее номер актёра

Обратите, внимание, что конкретной модели специальные актёры не имеют. Но нужно всё же как то их создать :) А создаются они как и обычные:

```
$TEMPEN = actor.Create(4, #SPECIAL011, 0.0, 0.0, 0.0)
```

Здесь:\
$TEMPEN - естественно указываем переменную, которая будет хранить актёра\
4 - тип актёра\
0.0, 0.0, 0.0 - координаты появления\
\#SPECIAL01 - вот это уже интереснее. Для специальных актёров существуют и специальные модели, которые подходят любым специальным актёрам. Всего их 10 штук.× \*\*Примечание:\*\* Номер актёра должен совпадать с окончанием возле #SPECIAL ( #SPECIAL <с 01 по 10> )

Так же необходимо выгрузить с памяти модель, после создания ( на актёра это не повлияет, действует как "model.destroy()":

```
0296: unload_special_actor 1
```

Теперь давайте напишем простой скрипт, что бы Темпени появлялся рядом с CJ:

```
{$CLEO}
0000:

:TEMP
thread 'TEMP'
wait 0
023C: load_special_actor 'TENPEN' as 1 // загружаем Темпени
038B: load_requested_models

:TEMP_1
wait 0
if
023D: special_actor 1 loaded // проверяем на загрузку
jf @TEMP_1
00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@ // считываем координаты CЖ
2@ += 2.0 // смещаем позицию y на 2.0
$TEMPEN = actor.Create(4, #SPECIAL01, 1@, 2@, 3@) // создаём Темпени возле СЖ
actor.Angle($TEMPEN) = 0.0
0296: unload_special_actor 1 // выгружаем модель
0A93: end_custom_thread
```

Как видим, Темпени появился как миленький:

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

Все опкоды, связанные с актёрами, действуют и на специальных актёров. Теперь задание: при нажатии кнопки R `создаются два спец. актёра. Устройте поединок между ними ( чтобы били друг друга ).|1974|1|0|20576223`png`600`375`400`250\`\`||specialnye\_aktjory|1499526491
