# 00090. Работа с гаражами

Работа с гаражами|В этом уроке мы будем работать с гаражами.|wmysterio|wmysterio||||Всем привет! Ещё один материал, который относится к курсу "базовый", я что то забыл о них =) Ну, ничего страшного, выложу в курсе "Продвинутый". Думаю нет смысла объяснять что такое гараж, по этому перейдём сразу к делу.

Для начала рассмотрим типы гаражей. Всего их восемь. Вот таблица типов:

| Таблица 1. |                                                                            |
| ---------- | -------------------------------------------------------------------------- |
| Тип        | Описание                                                                   |
| 1          | Заготовка для гаража ( не открывается ).                                   |
| 2          | 8-ball ( бомба, которая взрывается через некоторое время, после зарядки ). |
| 3          | 8-ball ( бомба, которая взрывается, если кто-то сядет в машину).           |
| 4          | 8-ball ( бомба на радиоуправлении ).                                       |
| 5          | Перекраска.                                                                |
| 32         | Обыкновенный гараж на 4 машины.                                            |
| 33         | Гараж с дверью, сквозь которую можно передвигаться :)                      |
| 38         | Гараж, который не закрывается, если в нём есть машина.                     |

Все остальные скорее всего повторяются или не работают. Каждый гараж в игре имеет свой ID или, правильнее, название. Подробно о них вы можете посмотреть в нашей [базе данных](https://github.com/wmysterio/scm-scripting-lessons/blob/main/dir/gta_sa/gta_san_andreas_nazvanija_garazhej/1-1-0-24/README.md). Рассмотрим опкоды для работы с гаражами:

```
0299: activate_garage 'VECMOD'
02B9: deactivate_garage 'VECMOD'
```

Опкоды активируют и деактивируют гараж с названием "VECMOD".

```
0360: open_garage 'VECMOD'
0361: close_garage 'VECMOD'
```

Опкоды открывают или закрывают гараж "VECMOD".

```
03B0: garage 'VECMOD' door_open
03B1: garage 'VECMOD' door_closed
```

Проверки для гаража "VECMOD": **03B0** - "Гараж открыт?", **03B1** - "Гараж закрыт?". Не понимаю только зачем было два опкода, ведь опкод "83B0" аналогичный опкоду "03B1".

```
02FA: set_garage 'VECMOD' type 5
```

Опкод задаёт гаражу "VECMOD" тип, тип смотрите в таблице 1.

```
021B: set_garage 'VECMOD' to_accept_only_car #MANANA
```

Гараж "VECMOD" будет принимать только автомобиль с моделью #MANANA.

Давайте напишем простой скрипт, который запрещает перекраску автомобиля в районе Аилдвуда:

```
{$CLEO}
0000:

:NAME
thread 'NAME'
wait 0
Garage.Close('SPRLAE')
Garage.Deactivate('SPRLAE')
0A93: end_custom_thread
```

Для начала нужно закрыть гараж, что бы не было возможности заезжать туда. Так как если деактивировать его и не закрыть, то перекраска осуществится, но выехать с гаража не получится. Результат не заставил себя долго ждать:

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

Давайте изменим тип гаража. Что бы в место перекраски, нам ставили бомбу:

```
{$CLEO}
0000:

:NAME
thread 'NAME'
wait 0
garage.ChangeType('SPRLAE', 2)
0A93: end_custom_thread
```

Думаю, с этого краткого урока Вы сделали для себя полезные выводы и можете использовать гаражи для своих миссий или скриптов.|1288|1|0|46914387`jpg`500`300`400\`240\`\`||rabota\_s\_garazhami|1503135012


---

# 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/00090.-rabota-s-garazhami.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.
