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

FREE Bradley : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("Bradley", "Kira", "1.0.0")]
    [Description("Нормальный танк")]
    public class Bradley : RustPlugin
    {
        public Dictionary<BasePlayer, BradleyCore> Cores = new Dictionary<BasePlayer, BradleyCore>();
        private const string CHAIR_PREFAB = "assets/bundled/prefabs/static/chair.invisible.static.prefab";
        private static Bradley _;

        public class BradleyCore : MonoBehaviour
        {
            public BasePlayer Player;
            public BradleyAPC BradleyApc;
            public BaseChair Seat;

   
            private void Awake()
            {
                BradleyApc = GetComponent<BradleyAPC>();
                BradleyApc.enabled = false;
                BradleyApc.CancelInvoke(BradleyApc.UpdateTargetList);
                BradleyApc.CancelInvoke(BradleyApc.UpdateTargetVisibilities);
            }

            private void Start()
            {
                
                SpawnChair();
                _.Cores.Add(Player, this);
            }

            private void FixedUpdate() 
            {
                var Ptransform = Player.eyes.GetLookRotation().eulerAngles;
                BradleyApc.CannonMuzzle.LookAt(Ptransform);
                BradleyApc.turretAimVector = Ptransform;
                BradleyApc.AimWeaponAt(BradleyApc.mainTurret, BradleyApc.coaxPitch, Ptransform, 1, 1);
                BradleyApc.AimWeaponAt(BradleyApc.mainTurret, BradleyApc.CannonPitch, Ptransform, 1, 1);
                BradleyApc.SendNetworkUpdate();
                Player.transform.position = new Vector3(0, 3.5f, 0); 
                Player.ChatMessage(Ptransform.ToString());
            }

            private void SpawnChair() 
            {
                Player.SetParent(BradleyApc, 0);   
                Player.Command("client.camoffset", new object[] { new Vector3(0, 3.5f, 0) });     
                Player.spectateFilter = "@123nofilter123";
                Player.SetPlayerFlag(BasePlayer.PlayerFlags.Spectating, true); 
                Player.SetPlayerFlag(BasePlayer.PlayerFlags.ThirdPersonViewmode, true);
                Player.gameObject.SetLayerRecursive(10); 
                Player.CancelInvoke("InventoryUpdate");
            }

            private void OnDestroy()
            {
                Player.SetParent(null);
                Player.spectateFilter = string.Empty;
                Player.SetParent(null);
                Player.SetPlayerFlag(BasePlayer.PlayerFlags.Spectating, false);
                Player.SetPlayerFlag(BasePlayer.PlayerFlags.ThirdPersonViewmode, false);
                Player.gameObject.SetLayerRecursive(17);
                Player.InvokeRepeating("InventoryUpdate", 1f, 0.1f * UnityEngine.Random.Range(0.99f, 1.01f));
                Player.Command("client.camoffset", new object[] { new Vector3(0, 1.2f, 0) });
            }
        }

        private void StartSpectating(BasePlayer player, BradleyCore controller, bool isOperator)
        {
            // player.spectateFilter = "@123nofilter123";
            // player.SetPlayerFlag(BasePlayer.PlayerFlags.Spectating, true); 
            // player.SetPlayerFlag(BasePlayer.PlayerFlags.ThirdPersonViewmode, true);
            // player.gameObject.SetLayerRecursive(10);
            // player.CancelInvoke("InventoryUpdate");
            player.SendNetworkUpdateImmediate();
 
            timer.In(0.5f, () =>
            { 
                player.transform.position = controller.transform.position;
                player.SetParent(controller.BradleyApc, 0);
                // player.Command("client.camoffset", new object[] { new Vector3(0, 3.5f, 0) });
            });
        }
        private void EndSpectating(BasePlayer player, BradleyCore commander, bool isOperator)
        {
            player.spectateFilter = string.Empty;
            player.SetParent(null);
            player.SetPlayerFlag(BasePlayer.PlayerFlags.Spectating, false);
            player.SetPlayerFlag(BasePlayer.PlayerFlags.ThirdPersonViewmode, false);
            player.gameObject.SetLayerRecursive(17);
            player.InvokeRepeating("InventoryUpdate", 1f, 0.1f * UnityEngine.Random.Range(0.99f, 1.01f));
            player.Command("client.camoffset", new object[] { new Vector3(0, 1.2f, 0) });
            player.transform.position = commander.transform.position + Vector3.up + (commander.transform.right * 3);

        }
        private void OnServerInitialized()
        {
            _ = this;
        }

        private void Unload()
        {
            foreach (var core in Cores) UnityEngine.Object.Destroy(core.Value);
        }

        [ChatCommand("bradley")]
        private void SpawnBradley(BasePlayer player)
        {
            var bradley = GameManager.server.CreateEntity("assets/prefabs/npc/m2bradley/bradleyapc.prefab");
            bradley.transform.SetPositionAndRotation(player.transform.position, player.eyes.rotation);
            bradley.Spawn();
            var component = bradley.gameObject.AddComponent<BradleyCore>();
            component.Player = player;
        }
    }
}

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