# 000137. Группы в GTA San Andreas

Группы в GTA San Andreas|Всем привет! В этот юбилейный, сотый урок по скриптингу GTA SA от меня, я хотел-бы посвятить группам, известные Вам ещё как банды.|wmysterio|wmysterio||||Максимальное количество людей в банде составляет 8 человек. Создаётся группа следующим опкодом:

```
062F: 0@ = create_group_type 0
```

Здесь:\
0@ - имя группы\
0 - тип группы. Я пока не разобрался что значит этот параметр

Группа всегда состоит из её лидера и людей, слушающихся его. Для добавления лидера в группу существует опкод:

```
0630: put_actor 1@ in_group 0@ as_leader
```

Здесь:\
1@ - актёр, который будет лидером\
0@ - имя группы

Чтобы добавить члена группы, нужно использовать опкод:

```
0631: put_actor 2@ in_group 0@
```

Здесь:\
2@ - актёр, который подчиняется лидеру\
0@ - имя группы

Дать группе соответствующие команды:

```
07B3: set_group 0@ give_command 2
```

Здесь:\
0@ - имя группы\
2 - команда группе ( см. таблицу ниже )

| Номер | Описание                                                                                                                                                                                                               |
| ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0, 1  | Следовать за лидером, пока не знаю чем отличаются типы 0 и 1                                                                                                                                                           |
| 2, 4  | Тупо стоят                                                                                                                                                                                                             |
| 3     | Члены группы будут жестикулировать руками, общаються в общем между собой                                                                                                                                               |
| 5     | Самая интересная на мой взгляд команда - лидер начинает набирать ближайших пешеходов себе в банду. Собирает примерно 6-7 человек, но не больше и подбирает, я так заметил людей, которые имеют одинаковый тип пешехода |

Также можно приказать группе садится в транспорт лидера группы:

```
0940: set_group 0@ enters_leaders_vehicle 1
```

Здесь:\
0@ - имя группы\
1 - будут садится, 0 - запретить садится

Чтобы выгнать актёра из группы, используем:

```
06C9: remove_actor 1@ from_group
```

Можно распустить группу опкодом:

```
0632: release_group 0@
```

Обычно ещё задают группе максимальный лимит дистанции от лидера:

```
06F0: set_group 0@ distance_limit_to 30.0
```

Здесь:\
0@ - имя группы\
30.0 - максимальная дистанция<br>

Среди проверок можно отметить следующие:

```
06EE: actor 1@ in_group 0@ // Актёр 1@ в группе 0@?
06EF: actor 1@ leading_group 0@ // Актёр является лидером группы?
07FD: group 0@ alive // Группа существует?
```

Давайте напишем простенький скрипт, где возле игрока будет создаваться группа. Лидер будет набирать людей к себе в банду.

```
{$CLEO}
04C4: store_coords_to 10@ 11@ 12@ from_actor $PLAYER_ACTOR with_offset -2.0 2.0 0.0
04C4: store_coords_to 13@ 14@ 15@ from_actor $PLAYER_ACTOR with_offset 0.0 2.0 0.0
04C4: store_coords_to 16@ 17@ 18@ from_actor $PLAYER_ACTOR with_offset 2.0 2.0 0.0
0376: 1@ = create_random_actor_at 10@ 11@ 12@
0376: 2@ = create_random_actor_at 13@ 14@ 15@
0376: 3@ = create_random_actor_at 16@ 17@ 18@
062F: 0@ = create_group_type 0
0630: put_actor 1@ in_group 0@ as_leader
0631: put_actor 2@ in_group 0@
0631: put_actor 3@ in_group 0@
07B3: set_group 0@ give_command 5 // даём группе команду
0A93: end_custom_thread
```

Результат:

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

На этом урок окончен. Спасибо, что не поленились почитать этой материал :)|1615|1|0|95563313`png`500`281`400\`224\`\`||gruppy\_v\_gta\_san\_andreas|1504593040


---

# 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/000137.-gruppy-v-gta-san-andreas.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.
