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

FREE BlockBlockElevators : 1.0.1 1.0.1

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
// Reference: Oxide.Ext.Rust

using System.Collections.Generic;
using System;
using System.Reflection;
using System.Data;
using UnityEngine;
using Oxide.Core;

namespace Oxide.Plugins
{
    [Info("BlockBlockElevators", "Reneb", "1.0.1")]
    class BlockBlockElevators : RustPlugin
    {

        BuildingBlock cachedBlock;
        TriggerBase cachedTrigger;
        BasePlayer cachedPlayer;
        int playerMask;
        int blockLayer;
        int triggerLayer;

        bool hasStarted = false;

        void OnServerInitialized()
        {
            hasStarted = true;
            playerMask = LayerMask.GetMask(new string[] { "Player (Server)" });
            triggerLayer = UnityEngine.LayerMask.NameToLayer("Trigger");
            blockLayer = UnityEngine.LayerMask.NameToLayer("Construction");
        }

        void OnEntityBuilt(Planner planner, GameObject gameObject)
        {
            cachedBlock = gameObject.GetComponent<BuildingBlock>();
            if (cachedBlock == null) return;
            if (cachedBlock.blockDefinition == null) return;
            if (cachedBlock.blockDefinition.fullName != "build/block.halfheight") return;
            cachedBlock.GetComponentInChildren<MeshCollider>().gameObject.AddComponent<TriggerBase>();
            cachedBlock.GetComponentInChildren<TriggerBase>().gameObject.layer = triggerLayer;
            cachedBlock.GetComponentInChildren<TriggerBase>().interestLayers = playerMask;
            timer.Once(0.1f, () => ResetBlock(cachedBlock) );

        }
        void ResetBlock(BuildingBlock block)
        {
            if (block == null) return;
            block.constructionCollision.UpdateLayer(false);
            GameObject.Destroy(block.GetComponentInChildren<TriggerBase>());
        }
        void OnEntityEnter(TriggerBase triggerbase, BaseEntity entity)
        {
            if (!hasStarted) return;
            cachedBlock = triggerbase.GetComponentInParent<BuildingBlock>();
            if (cachedBlock == null) return;
            if (cachedBlock.blockDefinition.fullName != "build/block.halfheight") return;
            cachedPlayer = entity.GetComponent<BasePlayer>();
            if (cachedPlayer == null) return;
            cachedBlock.Kill(BaseNetworkable.DestroyMode.Gib);
            cachedPlayer.SendConsoleCommand("chat.add", new object[] { "0", string.Format("<color=orange>{0}:</color> {1}", "Warning", "You are not allowed to build blocks over you"), 1.0 });
        }
    }
}

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