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

FREE EffectTimer : 1.0.1 1.0.1

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

namespace Oxide.Plugins
{
    [Info("EffectTimer", "Kaho", "1.0.1")]
    [Description("Plays an effect to all players on the server when triggered by an RCON command")]

    public class EffectTimer : RustPlugin
    {
        private Timer effectTimer;

        private void Init()
        {
            permission.RegisterPermission("effecttimer.use", this);
            AddCovalenceCommand("effecttimer", "cmdEffectTimer");
        }

        private void cmdEffectTimer(IPlayer player, string command, string[] args)
        {
            if (!player.HasPermission("effecttimer.use"))
            {
                player.Reply("You don't have permission to use this command.");
                return;
            }

            if (args.Length < 2)
            {
                player.Reply("Usage: effecttimer length broadcast text");
                return;
            }

            float length;
            if (!float.TryParse(args[0], out length))
            {
                player.Reply("Invalid Timer length");
                return;
            }

            string message = string.Join(" ", args, 1, args.Length - 1);

            foreach (var basePlayer in BasePlayer.activePlayerList)
            {
                Alert(basePlayer.transform.position, basePlayer.Connection, message);
            }

            CreateBroadcastTipAll(message, length);

            Puts($"Effect and GameTip played by {player.Name}!");
        }

        private void Alert(Vector3 position, Network.Connection connection, string message)
        {
            var effect = new Effect();
            effect.Init(Effect.Type.Generic, position, Vector3.zero);
            effect.pooledString = "assets/bundled/prefabs/fx/invite_notice.prefab";
            EffectNetwork.Send(effect, connection);
        }

        private void Alert(BasePlayer player, string message) => Alert(player.transform.position, player.Connection, message);

        private void CreateBroadcastTip(string text, BasePlayer player, float length = 30f)
        {
            if (player == null)
                return;
            player.SendConsoleCommand("gametip.hidegametip");
            player.SendConsoleCommand("gametip.showgametip", text);
            timer.Once(length, () => player?.SendConsoleCommand("gametip.hidegametip"));
        }

        private void CreateBroadcastTipAll(string text, float length = 30f)
        {
            foreach (BasePlayer player in BasePlayer.activePlayerList)
                CreateBroadcastTip(text, player, length);
        }

        private void Unload()
        {
            if (effectTimer != null && !effectTimer.Destroyed)
            {
                effectTimer.Destroy();
            }
        }
    }
}

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