# 00068. Использование RC

Использование RC|Этот урок посвящен ещё одному режиму - режиму RC. Его чаще называют режимом удалённого управления ( управление на расстоянии ).|wmysterio|wmysterio||||Пример такого режима можно было наблюдать в миссия Зеро. Мы управляли маленьким самолётиком и уничтожали фургоны. Вот скрин с этим режимом:

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

Сегодня мы рассмотрим опкоды для работы с этим режимом а так же напишем простенькие примеры. Начнем, опкоды:

Помещает игрока в режиме RC в машину:

```
0715: put_player $PLAYER_CHAR in_RC_mode_in_car $CAR
```

Здесь:\
$PLAYER\_CHAR - хендл игрока\
$CAR - хендл созданной ранее машины ( лодки, вертолёта, самолёта )

Опкод считывает в переменную текущую RC-машину игрока:

```
0484: $CAR = player $PLAYER_CHAR RC_car
```

Выход игрока с режима RC:

```
04DB: exit_RC_mode
```

Для реальности разработчики сделали миниатюрные модели транспорта. Их имена начинаются с "#RC". Вот список всех доступных RC-моделей:

| Модель    |
| --------- |
| #RCBANDIT |
| #RCBARON  |
| #RCCAM    |
| #RCGOBLIN |
| #RCRAIDER |
| #RCTIGER  |

Однако возможно использовать и другие модели транспорта. Например: #INFERNUS. Вот скрин:

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

Если присмотреться, то заметно, что водитель отсутствует! Можно сказать, что призрак водит авто :) Нужно так же помнить, что здесь работает функция уничтожения. Она действует в любом транспорте! После детонации транспорта, возвращается контроль к самому CJ.

Минусы режима:

* Управляя транспортом, мы одновременно управляем и CJ. Поэтому его нужно перемещать в точку, где нет угрозы для жизни;
* В RC-режиме действуют номера клавиш когда СЖ идёт пешком, тоесть, чтобы ехать вперёд на транспорте, то нужно нажать пробел;

Что бы избавится от этих минусов нужно всего три шага:

* Создать автомобиль в любой точке ( желательно не далеко от RC-машинки );
* Поместить СЖ в эту машину ( "072A" ) и закрепить её в текущей позиции;
* Поместить СЖ в режим RC;

Вот образец:

```
072A: put_actor $PLAYER_ACTOR into_car 1@ driverseat
car.LockInCurrentPosition(1@) = true
0715: put_player $PLAYER_CHAR in_RC_mode_in_car 0@
```

Таким образом мы можем нормально управлять RC-транспортом. Давайте напишем скрипт, что бы возле дома СЖ стоял самолётик. Возле него так же будет стоять #INFERNUS. Если СЖ сядет в инфернус, то ему дают удалённое управление самолётиком.

```
{$CLEO}
0000:

:NAME
thread 'NAME'
wait 0
model.Load(#INFERNUS)
model.Load(#RCBARON)
038B: load_requested_models

:NAME_1
wait 0
if AND
model.available(#INFERNUS)
model.available(#RCBARON)
jf @NAME_1
0@ = car.Create(#RCBARON, 2499.4604, -1684.9598, 13.4366)
car.Angle(0@) = 19.615
car.SetImmunities(0@, 1, 1, 1, 1, 1)
1@ = car.Create(#INFERNUS, 2509.5298, -1686.9619, 13.0763)
car.Angle(1@) = 45.9011
car.SetImmunities(1@, 1, 1, 1, 1, 1)
model.destroy(#INFERNUS)
model.destroy(#RCBARON)

:NAME_2
wait 0
if AND
car.Defined(0@)
car.Defined(1@)
then
 if AND
 8119: not car 0@ wrecked
 actor.InCar($PLAYER_ACTOR, 1@)
 then
 car.LockInCurrentPosition(1@) = true
 0715: put_player $PLAYER_CHAR in_RC_mode_in_car 0@
 jump @NAME_3
 end
end
jump @NAME_2

:NAME_3
wait 0
if
0119: car 0@ wrecked
jf @NAME_3
car.LockInCurrentPosition(1@) = false
car.SetImmunities(1@, 0, 0, 0, 0, 0)
0A93: end_custom_thread
```

Результат:

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

Естественно скрипт одноразовый. После уничтожения RC-машинки скрипт завершит свою работу. Думаю, основную теорию я вам предоставил. Вы можете использовать её для своих миссий и скриптов :)|1248|1|0|98696836`png`600`360`400`240``\|89041466`png`600`360`400`240``\|52657795`png`600`360`400`240``||ispolzovanie\_rc|1499703465


---

# 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/00068.-ispolzovanie-rc.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.
