> For the complete documentation index, see [llms.txt](https://lessons.sannybuilder.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lessons.sannybuilder.com/00100/00200/000137.-gruppy-v-gta-san-andreas.md).

# 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
