# 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
