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

FREE MindFreeze : 2.1.0 2.1.0

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

namespace Oxide.Plugins
{
    [Info("Mind Freeze", "PaiN", "2.1.0", ResourceId = 1198)]
    [Description("Allows you to freeze players with a legit way.")]
    class MindFreeze : RustPlugin
    {
        private Timer _timer;

        private class FrozenPlayerInfo
        {
            public BasePlayer Player { get; set; }
            public Vector3 FrozenPosition { get; set; }

            public FrozenPlayerInfo(BasePlayer player)
            {
                Player = player;
                FrozenPosition = player.transform.position;
            }
        }

        List<FrozenPlayerInfo> frozenPlayers = new List<FrozenPlayerInfo>();

        void Loaded()
        {
            if (!permission.PermissionExists("canmindfreeze")) permission.RegisterPermission("canmindfreeze", this);
            //LoadDefaultConfig(); Maybe gonna add this later._timer= timer.Every(1, OnTimer);
        }

        [ChatCommand("freeze")]
        void cmdFreeze(BasePlayer player, string cmd, string[] args)
        {
			var target = BasePlayer.Find(args[0]);
			string steamId = Convert.ToString(player.userID);
			if (args.Length == 1)
			{
				if (!permission.UserHasPermission(steamId, "canmindfreeze"))
				{
					SendReply(player, "No Permission!");
					return;
				}

				
				if (!target)
				{
					SendReply(player, "Player not found!");
					return;
				}				
				if (target == null) return;
				if (frozenPlayers.Any(t => t.Player == target)) return; 
				frozenPlayers.Add(new FrozenPlayerInfo(target));
				SendReply(target, "You have been frozen by " + player.displayName);
				SendReply(player, "You have frozen " + target.displayName);
			}
			else
				{
					SendReply(player, "Syntax: /freeze \"player\" ");
					return;
				}
		}
		
		

        [ChatCommand("unfreeze")]
        void cmdUnFreeze(BasePlayer player, string cmd, string[] args)
        {
			var target = BasePlayer.Find(args[0]);
			string steamId = Convert.ToString(player.userID);
			if (args.Length == 1)
			{
				if (!permission.UserHasPermission(steamId, "canmindfreeze"))
				{
				SendReply(player, "No Permission!");
				return;
				}
				
				
				if (!target)
				{
				SendReply(player, "Player not found!");
				return;
				}
				
				
				if (target == null) return; 
				frozenPlayers.RemoveAll(t => t.Player == target);
				SendReply(target, "You have been unfrozen by " + player.displayName);
				SendReply(player, "You have unfrozen " + target.displayName);
			}
				else
				{
					SendReply(player, "Syntax: /unfreeze \"player\" ");
					return;
				}	
		}

        [ChatCommand("unfreezeall")]
        void cmdUnFreezeAll(BasePlayer player, string cmd, string[] args)
        {
			string steamId = Convert.ToString(player.userID);
			if (permission.UserHasPermission(steamId, "canmindfreeze"))
			{
            frozenPlayers.Clear();
			}
			else
			{
				SendReply(player, "No Permission!");
			}
        }

        void OnTimer()
        {
            foreach (FrozenPlayerInfo current in frozenPlayers)
            {
                if (Vector3.Distance(current.Player.transform.position, current.FrozenPosition) < 1) continue;
                current.Player.ClientRPCPlayer(null, current.Player, "ForcePositionTo", new object[] { current.FrozenPosition });
                current.Player.TransformChanged();
            }
        }

        void Unloaded()
        {
            _timer.Destroy();
            frozenPlayers.Clear();
        }
    }
}

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