000127. Обзор класса Group
Обзор класса Group||wmysterio|wmysterio|[email protected]|||Как и в 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, пока не получил ошибку скрипта, и в результате получилось такое крошечное количество:
На этом урок окончен. До встречи в следующем
|714|1|0|62721357



png
600525
400350\|98136388
png600
525400
350||obzor_klassa_group|1392794866