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

FREE FUN : 0.1 0.1

Нет прав для скачивания
C#:
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using System;
using System.Collections.Generic;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("FUN", "azp2033", "0.1")]
    public class FUN : RustPlugin
    {
        Dictionary<BasePlayer, int> active_now = new Dictionary<BasePlayer, int>();

        [ChatCommand("funoff")]
        void FunOffCommand(BasePlayer player, string command, string[] args)
        {
            if (player == null || !player.IsAdmin) return;
            if (active_now.ContainsKey(player))
                active_now.Remove(player);
            player.ChatMessage("Выключено!");
        }

        [ChatCommand("funfreeze")]
        void FunFreezeCommand(BasePlayer player, string command, string[] args)
        {
            if (player == null || !player.IsAdmin) return;
            if (active_now.ContainsKey(player)) { active_now.Remove(player); }
            player.ChatMessage("Включена заморозка игроков!");
            active_now.Add(player, 0);
        }

        [ChatCommand("funsc")]
        void FunScCommand(BasePlayer player, string command, string[] args)
        {
            if (player == null || !player.IsAdmin) return;
            if (active_now.ContainsKey(player)) { active_now.Remove(player); }
            player.ChatMessage("Включена выключение экранов игроков!");
            active_now.Add(player, 1);
        }

        [ChatCommand("fundrop")]
        void FunDropCommand(BasePlayer player, string command, string[] args)
        {
            if (player == null || !player.IsAdmin) return;
            if (active_now.ContainsKey(player)) { active_now.Remove(player); }
            player.ChatMessage("Включена дропов игроков!");
            active_now.Add(player, 2);
        }

        [ChatCommand("funpizda")]
        void FunPizdaCommand(BasePlayer player, string command, string[] args)
        {
            if (player == null || !player.IsAdmin) return;
            if (active_now.ContainsKey(player)) { active_now.Remove(player); }
            player.ChatMessage("Включена пизда игрокам!");
            active_now.Add(player, 3);
        }

        [ChatCommand("funpolnayapizda")]
        void FunPolnayaPizdaCommand(BasePlayer player, string command, string[] args)
        {
            if (player == null || !player.IsAdmin) return;
            if (active_now.ContainsKey(player)) { active_now.Remove(player); }
            player.ChatMessage("Включена полная пизда игрокам!");
            active_now.Add(player, 4);
        }

        [ChatCommand("funzalupa")]
        void FunZalupa(BasePlayer player, string command, string[] args)
        {
            if (player == null || !player.IsAdmin) return;
            if(args.Length < 1) { player.ChatMessage("/funzalupa <кол-во>"); return; }
            int a = 1;
            Int32.TryParse(args[0], out a);
            for(int x = 0; x < a; x++)
            {
                Vector3 launchPos = player.transform.position + new Vector3(GetRandom(), 25, GetRandom());
                Vector3 newTarget = Quaternion.Euler(GetRandom(), GetRandom(), GetRandom()) * player.transform.position;
                BaseEntity rocket = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", launchPos, new Quaternion(), true);
                Vector3 newDirection = (newTarget - launchPos);
                rocket.SendMessage("InitializeVelocity", (newDirection));
                rocket.Spawn();
            }
        }

        [ChatCommand("funcd")]
        void funcd(BasePlayer player, string command, string[] args)
        {
            if (player == null || !player.IsAdmin) return;
            if (args.Length < 1) return;
            BasePlayer target = BasePlayer.Find(args[0]);

            BaseEntity ent = GameManager.server.CreateEntity("assets/bundled/prefabs/static/chair.static.prefab", target.transform.position, target.transform.rotation, true);
            BaseEntity sentry = GameManager.server.CreateEntity("assets/content/props/sentry_scientists/sentry.scientist.static.prefab", target.transform.position + (target.transform.forward * 10));
            ent.Spawn();
            sentry.Spawn();
            BaseChair chair = ent as BaseChair;
            if(chair != null)
            {
                chair.MountPlayer(target);
            }
            NPCAutoTurret turret = sentry as NPCAutoTurret;
            if (turret != null)
            {
                turret.target = target;
            }
            timer.Once(5f, () =>
            {
                turret?.Kill();
                chair?.Kill();
            });
        }

        private float GetRandom() => UnityEngine.Random.Range(-1.5f * 0.2f, 1.5f * 0.2f);

        void OnPlayerAttack(BasePlayer attacker, HitInfo info)
        {
            if (attacker == null || !active_now.ContainsKey(attacker) || !(info.HitEntity is BasePlayer)) return;
            BasePlayer target = info.HitEntity as BasePlayer;
            if (target == null) return;
            int type = active_now[attacker];
            if(type == 0)
            {
                Vector3 pos = target.transform.position;
                Timer tmr = timer.Every(0.05f, () =>
                {
                    target?.Teleport(pos);
                });
                timer.Once(5f, () => { tmr.Destroy(); });
            }
            if (type == 1)
            {
                CuiHelper.DestroyUi(target, "fun.ui");
                var ui = new CuiElementContainer();
                ui.Add(new CuiPanel()
                {
                    Image = { Color = "0 0 0 1" },
                    RectTransform = { AnchorMin = "0 0", AnchorMax = "1 1" }
                }, "Hud", "fun.ui");
                CuiHelper.AddUi(target, ui);
                timer.Once(5f, () => { if(target != null) CuiHelper.DestroyUi(target, "fun.ui"); });
            }
            if (type == 2)
            {
                foreach (var a in target.inventory.AllItems())
                    a.Drop(target.transform.position, Vector3.up);
            }
            if (type == 3)
            {
                target.Teleport(target.transform.position + new Vector3(0, 999, 0));
            }
            if (type == 4)
            {
                Timer tmr = timer.Every(0.1f, () =>
                {
                    target.Teleport(target.transform.position + new Vector3(0, 1.5f, 0));
                });
                timer.Once(5f, () => { tmr.Destroy(); });
            }
        }
    }
}

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