Иконка ресурса

FREE Turret : 1.0.0 1.0.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using UnityEngine;
using System.Collections.Generic;
using Oxide.Core;

namespace Oxide.Plugins
{
    [Info("Turret Controller", "begemonzazbat", "1.0.0")]
    public class Turret : RustPlugin
    {
        private const string PERMISSION_USE = "turret.use";
        private StoredData storedData;

        private sealed class StoredData
        {
            public HashSet<string> ActiveTurrets = new HashSet<string>();
        }

        private void Init()
        {
            permission.RegisterPermission(PERMISSION_USE, this);
            LoadData();
        }

        private void OnServerInitialized()
        {
            foreach (string turretId in storedData.ActiveTurrets)
            {
                AutoTurret turret = BaseNetworkable.serverEntities.Find(uint.Parse(turretId)) as AutoTurret;
                if (turret?.IsOnline() == false)
                {
                    turret.InitiateStartup();
                }
            }
        }

        private void LoadData()
        {
            storedData = Interface.Oxide.DataFileSystem.ReadObject<StoredData>(Name) ?? new StoredData();
        }

        private void SaveData()
        {
            Interface.Oxide.DataFileSystem.WriteObject(Name, storedData);
        }

        private void OnServerSave()
        {
            SaveData();
        }

        [ChatCommand("turret")]
        private void TurretCommand(BasePlayer player, string command, string[] args)
        {
            if (!permission.UserHasPermission(player.UserIDString, PERMISSION_USE))
            {
                SendReply(player, "У вас нет прав на использование этой команды");
                return;
            }

            RaycastHit hit;
            if (!Physics.Raycast(player.eyes.HeadRay(), out hit, 3f))
            {
                SendReply(player, "Вы должны смотреть на турель");
                return;
            }

            AutoTurret turret = hit.GetEntity() as AutoTurret;
            if (turret == null)
            {
                SendReply(player, "Вы должны смотреть на турель");
                return;
            }

            if (!turret.IsAuthed(player))
            {
                SendReply(player, "Вы должны быть авторизованы на этой турели");
                return;
            }

            string turretId = turret.net.ID.ToString();

            if (turret.IsOnline())
            {
                turret.InitiateShutdown();
                storedData.ActiveTurrets.Remove(turretId);
                SendReply(player, "Турель выключена");
            }
            else
            {
                turret.InitiateStartup();
                storedData.ActiveTurrets.Add(turretId);
                SendReply(player, "Турель включена");
            }

            SaveData();
        }

        private void Unload()
        {
            SaveData();
        }
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху