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

FREE TCmap : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("TCmap", "WuyZar", "1.0.0")]
    [Description("https://discord.gg/R9McPkST96")]
    public class TCmap : RustPlugin
    {
        private Dictionary<BuildingPrivlidge, VendingMachineMapMarker> markerByEntity = new Dictionary<BuildingPrivlidge, VendingMachineMapMarker>();

        private const string prefabPath = "assets/prefabs/deployable/vendingmachine/vending_mapmarker.prefab";

        private void Init()
        {
            Unsubscribe(nameof(OnEntitySpawned));
        }

        private void OnServerInitialized()
        {
            Subscribe(nameof(OnEntitySpawned));

            foreach (var entity in UnityEngine.Object.FindObjectsOfType<BuildingPrivlidge>())
            {
                OnEntitySpawned(entity);
            }
        }

        private void Unload()
        {
            foreach (var marker in markerByEntity.Values)
            {
                if (marker.IsValid() && !marker.IsDestroyed)
                {
                    marker.Kill();
                }
            }

            var markers = UnityEngine.Object.FindObjectsOfType<VendingMachineMapMarker>();
            foreach (var marker in markers)
            {
                if (marker.IsValid() && !marker.IsDestroyed)
                {
                    marker.Kill();
                }
            }
        }

        private void OnEntitySpawned(BuildingPrivlidge entity)
        {
            var marker = GameManager.server.CreateEntity(prefabPath, entity.transform.position) as VendingMachineMapMarker;
            if (marker == null) return;

            marker.enableSaving = false;
            marker.SetFlag(BaseEntity.Flags.Busy, true);
            marker.Spawn();

            markerByEntity[entity] = marker;
        }

        private void OnEntityDeath(BaseCombatEntity entity, HitInfo info)
        {
            var buildingPrivlidge = entity as BuildingPrivlidge;
            if (buildingPrivlidge == null) return;

            VendingMachineMapMarker marker;
            if (!markerByEntity.TryGetValue(buildingPrivlidge, out marker)) return;

            marker.SetFlag(BaseEntity.Flags.Busy, false);
            marker.SendNetworkUpdate();

            markerByEntity.Remove(buildingPrivlidge);
        }

        [ChatCommand("tcremove")]
        private void RemoveMarkersCommand(BasePlayer player, string command, string[] args)
        {
            if (!player.IsAdmin)
            {
                SendReply(player, "You must be an admin to use this command.");
                return;
            }

            foreach (var marker in markerByEntity.Values)
            {
                if (marker.IsValid() && !marker.IsDestroyed)
                {
                    marker.Kill();
                }
            }

            var markers = UnityEngine.Object.FindObjectsOfType<VendingMachineMapMarker>();
            foreach (var marker in markers)
            {
                if (marker.IsValid() && !marker.IsDestroyed)
                {
                    marker.Kill();
                }
            }

            markerByEntity.Clear();
            SendReply(player, "All markers removed from the map.");
        }
    }
}

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