Как и в San Andreas мы можем создавать и управлять группами людей в 4-ке. Этот урок посвящен именно этой теме. Для создания групп существует класс Group. Конструктор выглядит следующим образом:
Group Fr = new Group(Player.Character)
Мы указывает переменную класса, которому присваивается результат конструктора. В качестве параметра указывается пед, который будет лидером этой группы, в нашем случаи это игрок. После создания группы, мы получаем доступ к следующим командам этого класса:
Fr.AddMember(MyPed);

Добавить педа в группу. Можно использовать команду как проверку

MyPed - лидер, объект класса Ped

Возвращаемый параметр: bool

Примеры в Sanny Builder:
0631: put_actor 1@ in_group 0@
Fr.Delete();

Уничтожает группу(как объект)

Примеры в Sanny Builder:
0632: release_group 0@
Fr.EnterVehicle(Veh, true, true);

Заставляет группу сесть в транспорт.

Veh
- транспорт, объект класса Vehicle
true - включая лидера / false - без него
true - закрепить водителя в транспорте

Примеры в Sanny Builder:
0940: set_group 0@ enters_leaders_vehicle 1
Fr.Exists()

Проверка: "Группа существует?"

Примеры в Sanny Builder: (возможный вариант)
07FD:   group 0@ alive
Fr.FollowStatus = 1;

Установить статус следования за лидером.

1 - статус, число(int)

Примеры в Sanny Builder: (возможный вариант)
07B3: set_group 0@ give_command 1
Fr.Formation = 4;

??? Установить формирование. Возможно устанавливает максимальное количество братков, которых можно нанять ???

4 - число(int)

Примеры в Sanny Builder: неизвестно
Fr.FormationSpacing = 4.0F;

??? Устанавливает расстояние, при которых формируется группа. Если чел находится дальше указанного радиуса, то он не добавляется в группу ???

4.0F - число(float)

Примеры в Sanny Builder: неизвестно
Fr.GetMember(1);

Получить члена группы, находящийся по заданному индексу

1 - индекс(оно же место) в группе, число(int)

Возвращаемый параметр: объект класса Ped

Примеры в Sanny Builder:
092B: 1@ = group 0@ member 1
Fr.isLeader(MyPed)

Проверка: "Пед является лидером группы?"

MyPed - лидер, объект класса Ped

Примеры в Sanny Builder:
06EF:   actor 1@ leading_group 0@
Fr.isMember(MyPed)

Проверка: "Пед находится в группе?"

MyPed - пед, объект класса Ped

Примеры в Sanny Builder:
06EE:   actor 1@ in_group 0@
Fr.Leader = MyPed;

Получить или задать лидера группы.

MyPed - пед, объект класса Ped

Возвращаемый параметр: пед, объект класса Ped

Примеры в Sanny Builder:
0630: put_actor 1@ in_group 0@ as_leader
Fr.MaxMemberCount;

Получить максимальное количество участников группы

Возвращаемый параметр: число(int)

Примеры в Sanny Builder: (возможный вариант)
07F6: get_group 0@ number_of_leaders_to 1@ number_of_members_to 2@
Fr.MemberCount;

Получить текущее количество участников группы

Возвращаемый параметр: число(int)

Примеры в Sanny Builder: (возможный вариант)
07F6: get_group 0@ number_of_leaders_to 1@ number_of_members_to 2@
Fr.RemoveAllMembers();

Распустить группу.

Примеры в Sanny Builder: (возможные варианты)
0A31: set_player 0@ group_to_follow_never 1
0A20: disable_player 0@ group_control_back 1
Fr.RemoveMember(1);
Fr.RemoveMember(MyPed);

Отчислить актёра из группы. Эта команда имеет 2 перегрузки. В одном случаи мы можем уволить педа по его индексу, в другом - уволить по хэндлу

1 - индекс(оно же место) в группе, число(int)
MyPed - пед, объект класса Ped

Примеры в Sanny Builder:
06C9: remove_actor 1@ from_group
.
Fr.SeparationRange = 30.0F;

??? Установить максимальную дистанцию, при котором участники будут следовать лидеру ???

30.0F - дистанция, число(float)

Примеры в Sanny Builder: (возможный вариант)
06F0: set_group 0@ distance_limit_to 30.0
Fr.ToArray(true);

Получить массив всех участников группы

true - включая лидера

Возвращаемый параметр: массив Ped[]

Примеры в Sanny Builder: нет
Fr.ToList(true);

Получить список всех участников группы

true - включая лидера

Возвращаемый параметр: список, объект PedCollection

Примеры в Sanny Builder: нет
Давайте напишем простой пример: при нажатии кнопки TAB, возле Нико спавнятся 3 случайных человека, которые будут участниками группы игрока:
Код
using System;
using System.Windows.Forms;
using System.Drawing;
using GTA;

namespace TestScript {
    public class Thread : Script {
        public Thread() {
            while (true) {
                if(Game.isKeyPressed(Keys.Tab)){
                    Vector3 Pos = Player.Character.Position;
                    Group Fr = new Group(Player.Character);
                    for (int Temp = 0; Temp < 3; Temp++ ) {
                        Pos.X += 2.0F;
                        Fr.AddMember(World.CreatePed(Pos));
                    }
                    Fr.FollowStatus = 1;
                }
                Wait(0);
            }
        }
    }
}
Результат: удалось натравить группу на пешехода


Я не знаю сколько людей можно завербовать, нажимал TAB, пока не получил ошибку скрипта, и в результате получилось такое крошечное количество:


На этом урок окончен. До встречи в следующем wink
Вход на сайт

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

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
wmysterio
Реклама