Рейтинг - 4.8 (6)

Всем привет! В этот юбилейный, сотый урок по скриптингу GTA SA от меня, я хотел-бы посвятить группам, известные Вам ещё как банды.

Максимальное количество людей в банде составляет 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 - максимальная дистанция

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

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

Результат:

На этом урок окончен. Спасибо, что не поленились почитать этой материал :)


Теги: group, группы

Cool_T   (30.03.14 12:34)
Полезный материал.а есть команды для группы чтобы они например:нападали на гг или защишали его?

wmysterio   (30.03.14 19:37)
Есть опкоды, которые устанавливают "репутацию" CJ к группе: урок.
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Кто из главных героев GTA 5 круче?
Всего ответов: 7
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 2
Гостей: 1
Пользователей: 1
wmysterio
Сегодня нас посетили:
wmysterio, Dyabda
Реклама