000127. Обзор класса Group
Last updated
Last updated
Обзор класса Group||wmysterio|wmysterio|wmysterio@yandex.ru|||Как и в San Andreas мы можем создавать и управлять группами людей в 4-ке. Этот урок посвящен именно этой теме. Для создания групп существует класс Group. Конструктор выглядит следующим образом:
Мы указывает переменную класса, которому присваивается результат конструктора. В качестве параметра указывается пед, который будет лидером этой группы, в нашем случаи это игрок. После создания группы, мы получаем доступ к следующим командам этого класса:
Давайте напишем простой пример: при нажатии кнопки 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, пока не получил ошибку скрипта, и в результате получилось такое крошечное количество:
На этом урок окончен. До встречи в следующем |714|1|0|62721357png
600525
400350\|98136388
png600
525400
350||obzor_klassa_group|1392794866
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: нет
0631: put_actor 1@ in_group 0@
0632: release_group 0@
07FD: group 0@ alive
07B3: set_group 0@ give_command 1
092B: 1@ = group 0@ member 1
06EF: actor 1@ leading_group 0@
06EE: actor 1@ in_group 0@
0630: put_actor 1@ in_group 0@ as_leader
07F6: get_group 0@ number_of_leaders_to 1@ number_of_members_to 2@
07F6: get_group 0@ number_of_leaders_to 1@ number_of_members_to 2@
0A31: set_player 0@ group_to_follow_never 1 0A20: disable_player 0@ group_control_back 1
06C9: remove_actor 1@ from_group
06F0: set_group 0@ distance_limit_to 30.0