• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

Платное Vehicles 0.1.8

JSON:
List<Tuple<string, string, string>> GetConfig()

Возвращает суффикс, его название и префаб для каждого транспортного средства в файле конфигурации.
Пример:

JSON:
List<Tuple<string, string, string>> suffixes = Vehicles.Call<List<Tuple<string, string, string>>>("GetConfig");
if (suffixes == null) return;
for (int i = 0; i < suffixes.Count; i++)
{
    string suffix = suffixes[i].Item1;
    string name = suffixes[i].Item2;
    string prefab = suffixes[i].Item3;
}


JSON:
List<ulong> GetEntities(ulong playerID, string suffix)

Возвращает List<ulong> с сетевыми идентификаторами всех доступных сущностей, порожденных игроком с данным суффиксом, возвращает null, если ни одна не найдена.
Пример:

JSON:
List<ulong> minis = Vehicles.Call<List<ulong>>("GetEntities", player.userID, "mini");
if (minis == null) return;
BaseEntity newestMini = BaseNetworkable.serverEntities.Find(new NetworkableId(minis[minis.Count - 1])) as BaseEntity;
BaseEntity oldestMini = BaseNetworkable.serverEntities.Find(new NetworkableId(minis[0])) as BaseEntity;


JSON:
Dictionary<string, List<ulong>> GetAllEntities(ulong playerID)

Возвращает Dictionary<string, List<ulong>> с Key в качестве суффикса и Value в качестве сетевого ID всех доступных сущностей, порожденных игроком, возвращает null, если ни одна не найдена.
Пример:

JSON:
Dictionary<string, List<ulong>> entities = Vehicles.Call<Dictionary<string, List<ulong>>>("GetAllEntities", player.userID);
if (entities == null) return;

JSON:
List<ulong> minis;
if (entities.TryGetValue("mini", out minis))
{
    BaseEntity newestMini = BaseNetworkable.serverEntities.Find(new NetworkableId(minis[minis.Count - 1])) as BaseEntity;
    BaseEntity oldestMini = BaseNetworkable.serverEntities.Find(new NetworkableId(minis[0])) as BaseEntity;
}
List<ulong> boats;
if (entities.TryGetValue("boat", out boats))
{
    BaseEntity newestBoat = BaseNetworkable.serverEntities.Find(new NetworkableId(boats[boats.Count - 1])) as BaseEntity;
    BaseEntity oldestBoat = BaseNetworkable.serverEntities.Find(new NetworkableId(boats[0])) as BaseEntity;
}


JSON:
bool IsPlayerEntity(ulong entityID)

Проверяет, принадлежит ли данная сущность к Vehicles.
Пример:

JSON:
bool isPlayerEntity = Vehicles.Call<bool>("IsPlayerEntity", entity.net.ID.Value);


JSON:
string GetSuffix(ulong entityID)

Возвращает суффикс сущности, возвращает null, если сущность не принадлежит к Vehicles.
Пример:

string suffix = Vehicles.Call<string>("GetSuffix", entity.net.ID.Value);
if (string.IsNullOrWhiteSpace(suffix)) return;


JSON:
ulong GetOwnerUserID(ulong entityID)

Возвращает идентификатор пользователя игрока, породившего сущность (не идентификатор владельца сущности), возвращает 0uL, если сущность не принадлежит к Vehicles.
Пример:

JSON:
ulong playerID = Vehicles.Call<ulong>("GetOwnerUserID", entity.net.ID.Value);
if (playerID == 0uL) return;


JSON:
bool DespawnNewestEntity(ulong playerID, string suffix, bool refundFuel = false, bool notify = false)

Снимает депауэр с самого нового доступного существа, порожденного игроком с этим суффиксом, возвращает false, если оно не найдено.
Примеры:

JSON:
bool success = Vehicles.Call<bool>("DespawnNewestEntity", player.userID, "mini");
bool success = Vehicles.Call<bool>("DespawnNewestEntity", player.userID, "mini", true, true);


JSON:
int DespawnAllEntities(ulong playerID, string suffix = "", bool refundFuel = false, bool notify = false)

Развоплощает все сущности (опционально по суффиксу), порожденные игроком, возвращает количество развоплощенных сущностей.
Примеры:

JSON:
int despawnedAmount = Vehicles.Call<int>("DespawnAllEntities", player.userID);
int despawnedAmount = Vehicles.Call<int>("DespawnAllEntities", player.userID, "", true, true);
int despawnedAmount = Vehicles.Call<int>("DespawnAllEntities", player.userID, "mini");
int despawnedAmount = Vehicles.Call<int>("DespawnAllEntities", player.userID, "mini", true, true);


JSON:
bool AddEntity(ulong playerID, string suffix, ulong entityID)

Добавляет сущность в качестве последней порожденной сущности игрока с данным суффиксом, возвращает false, если суффикс не существует.
Пример:

JSON:
bool success = Vehicles.Call<bool>("AddEntity", player.userID, "mini", entity.net.ID.Value);


JSON:
bool RemoveEntity(ulong entityID, string suffix = "", ulong playerID = 0uL)

Удаляет сущность так, чтобы она больше не принадлежала Vehicles, быстрее, если указаны два необязательных аргумента, возвращает false, если сущность не принадлежит Vehicles или списку сущностей игрока для этого суффикса.
Примеры:

JSON:
bool success = RemoveEntity(entity.net.ID.Value);
bool isPlayerEntity = Vehicles.Call<bool>("IsPlayerEntity", entity.net.ID.Value);
if (!isPlayerEntity) return;
string suffix = Vehicles.Call<string>("GetSuffix", entity.net.ID.Value);
ulong playerID = Vehicles.Call<ulong>("GetOwnerUserID", entity.net.ID.Value);
bool success = Vehicles.Call<bool>("RemoveEntity", entity.net.ID.Value, suffix, playerID);


JSON:
double GetCooldownLeft(ulong playerID, string suffix, bool fetch = false)

Возвращает, сколько секунд осталось до истечения срока действия суффикса для игрока; возвращает отрицательное число, если срок действия суффикса истек; возвращает 0.0, если суффикс не существует; возвращает 0.0, если в разрешениях игрока нет суффикса для этого суффикса; или возвращает -1.0, если игрок еще не содержит суффикса для этого суффикса.
Примеры:

JSON:
double left = Vehicles.Call<double>("GetCooldownLeft", player.userID, "mini");
bool canSpawn = (left <= 0 && left != -1);
bool onSpawnCooldown = (left > 0.0);
bool notFound = (left == -1);
double left = Vehicles.Call<double>("GetCooldownLeft", player.userID, "mini", true);
bool canFetch = (left <= 0 && left != -1);
bool onFetchCooldown = (left > 0.0);
bool notFound = (left == -1);


JSON:
bool AddCooldown(ulong playerID, string suffix, bool fetch = false)

Добавляет игроку свертывание с текущей меткой времени для этого суффикса, возвращает false, если суффикс не существует.
Примеры:

JSON:
bool success = Vehicles.Call<bool>("AddCooldown", player.userID, "mini");
bool success = Vehicles.Call<bool>("AddCooldown", player.userID, "mini", true);


JSON:
bool ClearCooldowns(ulong playerID, string suffix = "", bool fetch = false)

Очищает спаун или кулдауны для игрока, очищает для каждого суффикса, если не указан один, возвращает false, если у игрока нет кулдаунов или если у игрока нет кулдауна для указанного суффикса.
Примеры:

JSON:
bool success = Vehicles.Call<bool>("ClearCooldowns", player.userID, "mini");
bool success = Vehicles.Call<bool>("ClearCooldowns", player.userID, "mini", true);
bool success = Vehicles.Call<bool>("ClearCooldowns", player.userID);
bool success = Vehicles.Call<bool>("ClearCooldowns", player.userID, "", true);


JSON:
string CooldownToString(double cooldown)

Возвращает отформатированную строку с промежутком времени.
Пример:

JSON:
double left = Vehicles.Call<double>("GetCooldownLeft", player.userID, "mini");
if (left == -1.0 || left > 0.0) return;
string duration = Vehicles.Call<string>("CooldownToString", left);


JSON:
bool HasPermission(string playerId, string suffix, bool fetch = false)

Проверяет, есть ли у игрока разрешение на порождение или получение данного суффикса, возвращает false, если суффикс не существует.
Примеры:

JSON:
bool canSpawn = Vehicles.Call<bool>("HasPermission", player.UserIDString, "mini");
bool canFetch = Vehicles.Call<bool>("HasPermission", player.UserIDString, "mini", true);


JSON:
bool CanSpawn(BasePlayer player)

Проверяет, может ли игрок спауниться или забираться в соответствии с параметрами конфигурации.
Пример:

JSON:
bool canspawn = Vehicles.Call<bool>("CanSpawn", player);


JSON:
bool CheckSurface(string suffix, Vector3 position, out bool water)

Проверяет, может ли этот суффикс быть порожден или найден на поверхности в данной позиции, возвращает false, если суффикс не существует, параметр out возвращает true, если проверяемая поверхность является водой.
Пример:

JSON:
//bool water;
//bool allowedSurface = CheckSurface("mini", position, out water);
//if (!allowedSurface)
//{
//    if (water) player.ChatMessage("Can't spawn on water.");
//    else player.ChatMessage("Can't spawn on land.");
//}


JSON:
bool TryMoveToTrainTrack(TrainCar train, Vector3 position)

Перемещает TrainCar на ближайший железнодорожный путь в данной позиции, возвращает false, если железнодорожных путей не найдено.
Пример:

JSON:
bool moved = Vehicles.Call<bool>("TryMoveToTrainTrack", train, position);


JSON:
Vector3 GetGroundPositionLookingAt(BasePlayer player, float maxDistance)

Возвращает положение поверхности на максимальном расстоянии от точки, на которую смотрит игрок. Возвращает Vector3.zero, если расстояние между положением поверхности и положением игрока больше максимального расстояния.
Пример:

JSON:
Vector3 position = Vehicles.Call<Vector3>("GetGroundPositionLookingAt", player, 15.0f);
if (position == Vector3.zero) return;


JSON:
void RemoveMapMarker(BaseEntity entity)

Удаляет маркер карты с частушек.
Пример:

JSON:
Vehicles.Call("RemoveMapMarker", entity);


JSON:
bool SetFuelConsumption(BaseEntity entity)

Устанавливает расход топлива сущности и/или блокирует контейнер с топливом в соответствии с ее суффиксом, возвращает false, если сущность не принадлежит к Vehicles.
Пример:

JSON:
bool success = Vehicles.Call<bool>("SetFuelConsumption", entity);


JSON:
bool SetModuleEngineFuelConsumption(VehicleModuleEngine moduleEngine)

Устанавливает расход топлива двигателя модуля, настроенный для суффикса, на котором установлен двигатель; возвращает false, если сущность, на которой установлен двигатель, не принадлежит к Vehicles.
Пример:


JSON:
bool success = Vehicles.Call<bool>("SetModuleEngineFuelConsumption", moduleEngine);


JSON:
int AddFuel(EntityFuelSystem fuelSystem)

Добавляет стартовое топливо в топливную систему сущности в соответствии с ее суффиксом, возвращает количество добавленного топлива или возвращает 0, если в конфиге установлено значение 0, или возвращает -1, если сущность не принадлежит к Vehicles.
Пример:


JSON:
int addedFuel = Vehicles.Call<int>("AddFuel", vehicle.GetFuelSystem());
bool success = (addedFuel >= 1);
bool configNoFuel = (addedFuel == 0);
bool failed = (addedFuel == -1);


JSON:
int RefundFuel(EntityFuelSystem fuelSystem, BasePlayer player)

Возвращает игроку топливо, оставшееся в топливном баке существа, возвращает количество возвращенного топлива или возвращает 0, если топлива не осталось.
Пример:


JSON:
int returnedFuel = Vehicles.Call<int>("RefundFuel", vehicle.GetFuelSystem(), player);
bool success = (returnedFuel >= 1);
bool empty = (returnedFuel == 0);


JSON:
List<BaseVehicle.MountPointInfo> AddMounts(string playerId, string suffix, BaseVehicle vehicle)

Добавляет точки крепления к транспортному средству в соответствии с правами игрока на этот суффикс, должен быть вызван до порождения существа, возвращает List<BaseVehicle.MountPointInfo> точек крепления, которые были добавлены к транспортному средству.
Пример:

JSON:
BaseEntity entity = Vehicles.Call("CreateEntity", player.userID, "mini", position) as BaseEntity;
if (entity == null) return;

BaseVehicle vehicle = entity as BaseVehicle;
if (vehicle != null)
{
    List<BaseVehicle.MountPointInfo> mounts = Vehicles.Call<List<BaseVehicle.MountPointInfo>>("AddMounts", player.UserIDString, "mini", vehicle);
    int mountsAdded = mounts.Count;
}

entity.Spawn();


JSON:
List<BaseEntity> AddSeats(string playerId, string suffix, BaseEntity entity)

Добавляет места в транспортное средство в соответствии с правами игрока на этот суффикс, возвращает List<BaseEntity> мест, которые были добавлены в транспортное средство.
Пример:

JSON:
List<BaseEntity> seats = Vehicles.Call<List<BaseEntity>>("AddSeats", player.UserIDString, "mini", entity);
int seatsAdded = seats.Count;


JSON:
 List<BasePlayer> GetMountedOccupants(BaseEntity entity)

Возвращает List<BasePlayer> смонтированных игроков.
Пример:

JSON:
List<BasePlayer> mounted = Vehicles.Call<List<BasePlayer>>("GetMountedOccupants", entity);
int numMounted = mounted.Count;


JSON:
 List<BasePlayer> GetParentedOccupants(BaseEntity entity)

Возвращает List<BasePlayer> игроков, являющихся родителями.
Пример:

JSON:
List<BasePlayer> parented = Vehicles.Call<List<BasePlayer>>("GetParentedOccupants", entity);
int numParented = parented.Count;


JSON:
void DismountOccupants(List<BasePlayer> mounted)

Снимает всех игроков этого списка с транспортного средства.
Пример:

JSON:
List<BasePlayer> mounted = Vehicles.Call<List<BasePlayer>>("GetMountedOccupants", entity);
Vehicles.Call("DismountOccupants", mounted);


JSON:
 void UnparentOccupants(List<BasePlayer> parented)

Снимает с сущности всех игроков этого списка.
Пример:

JSON:
List<BasePlayer> parented = Vehicles.Call<List<BasePlayer>>("GetParentedOccupants", entity);
Vehicles.Call("UnparentOccupants", parented);


JSON:
 string GetMapGrid(Vector3 position)

Возвращает сетку карты из данной позиции.
Примеры:

JSON:
string mapGrid = Vehicles.Call<string>("GetMapGrid", entity.transform.position);
string mapGrid = Vehicles.Call<string>("GetMapGrid", player.transform.position);

JSON:
 BaseEntity CreateEntity(ulong playerID, string suffix, Vector3 position, float YrotationOffset = -90.0f)

Создает суффикс для данного идентификатора пользователя, возвращает BaseEntity или возвращает null, если суффикс не существует.
Пример:

JSON:
bool hasSpawnPerm = Vehicles.Call<bool>("HasPermission", player.UserIDString, "mini");
if (!hasSpawnPerm) return;

double left = Vehicles.Call<double>("GetCooldownLeft", player.userID, "mini");
if (left > 0.0) return;

bool canSpawn = Vehicles.Call<bool>("CanSpawn", player);
if (!canSpawn) return;

Vector3 position = Vehicles.Call<Vector3>("GetGroundPositionLookingAt", player, 15.0f);
if (position == Vector3.zero) return;

BaseEntity entity = Vehicles.Call("CreateEntity", player.userID, "mini", position) as BaseEntity;
if (entity == null) return;

entity.Spawn();
Vehicles.Call("AddEntity", player.userID, "mini", entity.net.ID.Value);

BaseVehicle vehicle = entity as BaseVehicle;
if (vehicle != null)
{
    Vehicles.Call("SetFuelConsumption", entity);
    Vehicles.Call("AddFuel", vehicle.GetFuelSystem());
}

Vehicles.Call("AddCooldown", player.userID, "mini");

JSON:
BaseEntity FetchEntity(ulong playerID, string suffix, Vector3 position, float YrotationOffset = -90.0f)

Находит последнюю доступную сущность, порожденную игроком с этим суффиксом, возвращает BaseEntity или возвращает null, если не найдена. Пример:

JSON:
bool hasFetchPerm = Vehicles.Call<bool>("HasPermission", player.UserIDString, "mini", true);
if (!hasFetchPerm) return;

List<ulong> minis = Vehicles.Call<List<ulong>>("GetEntities", player.userID, "mini");
if (minis == null) return;
BaseEntity entity = BaseNetworkable.serverEntities.Find(new NetworkableId(minis[minis.Count - 1])) as BaseEntity;

double left = Vehicles.Call<double>("GetCooldownLeft", player.userID, "mini", true);
if (left > 0.0) return;

bool canSpawn = Vehicles.Call<bool>("CanSpawn", player);
if (!canSpawn) return;

Vector3 position = Vehicles.Call<Vector3>("GetGroundPositionLookingAt", player, 15.0f);
if (position == Vector3.zero) return;

List<BasePlayer> mounted = Vehicles.Call<List<BasePlayer>>("GetMountedOccupants", entity);
List<BasePlayer> parented = Vehicles.Call<List<BasePlayer>>("GetParentedOccupants", entity);
if (!config.AllowFetchingWhenOccupied && (mounted.Count > 0 || parented.Count > 0)) return;
if (config.DismountOccupantsWhenFetching)
{
    Vehicles.Call("DismountOccupants", mounted);
    Vehicles.Call("UnparentOccupants", parented);
}

object obj = Vehicles.Call("FetchEntity", player.userID, "mini", position);