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

FREE ZealFallingCars : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("ZealFallingCars", "Kira", "1.0.0")]
    public class ZealFallingCars : RustPlugin
    {
        private const string Minicopter = "assets/content/vehicles/minicopter/minicopter.entity.prefab";

        private const string ScrapMinicopter =
            "assets/content/vehicles/scrap heli carrier/scraptransporthelicopter.prefab";

        private const string RowBoat = "assets/content/vehicles/boats/rowboat/rowboat.prefab";
        private const string Rhib = "assets/content/vehicles/boats/rhib/rhib.prefab";
        private const string Parachute = "assets/prefabs/misc/parachute/parachute.prefab";

        public class FallEntity : MonoBehaviour
        {
            public BaseEntity entity;
            public BaseEntity parachute;
            public Rigidbody entityRigidbody;

            private void Awake()
            {
                entity = GetComponent<BaseEntity>();
                entityRigidbody = entity.GetComponent<Rigidbody>();
                AddParachute();
            }

            public void AddParachute()
            {
                entityRigidbody.useGravity = false;
                parachute = GameManager.server.CreateEntity(Parachute);
                parachute.SetParent(entity, "parachute_attach");
                parachute.Spawn();
                parachute.SendNetworkUpdateImmediate(true);
            }

            public void RemoveParachute()
            {
                entityRigidbody.useGravity = true;
                parachute.Kill();
                parachute.SendNetworkUpdateImmediate(true);
                parachute = null;
            }

            private void FixedUpdate()
            {
                if (WaterLevel.Test(entity.transform.position, false, entity)) Destroy(this);
                if (parachute.IsValid()) entity.transform.position -= new Vector3(0, 5f * Time.deltaTime, 0);
            }

            private void OnCollisionEnter()
            {
                Destroy(this);
            }

            private void OnDestroy()
            {
                RemoveParachute();
            }
        }

        // ReSharper disable once UnusedMember.Local
        // ReSharper disable once UnusedParameter.Local
        private void OnExplosiveDropped(BasePlayer player, BaseEntity entity, ThrownWeapon item)
        {
            if (item.GetItem().info.shortname != "flare") return;
            var flare = item.GetItem();
            if (flare.skin == 0) return;
            CallDropper(flare.skin, player.transform.position);
        }

        // ReSharper disable once UnusedMember.Local
        // ReSharper disable once UnusedParameter.Local
        private void OnExplosiveThrown(BasePlayer player, BaseEntity entity, ThrownWeapon item)
        {
            if (item.GetItem().info.shortname != "flare") return;
            var flare = item.GetItem();
            if (flare.skin == 0) return;
            CallDropper(flare.skin, player.transform.position);
        }

        // ReSharper disable once UnusedMember.Local
        private void OnEntitySpawned(BaseVehicle vehicle)
        {
            if (vehicle == null) return;
            NextTick((() =>
            {
                var fuelsystem = vehicle.GetFuelSystem();
                if (fuelsystem == null) return;
                fuelsystem.AddStartingFuel(200);
            }));
        }

        private void CallDropper(ulong entity, Vector3 pos)
        {
            BaseEntity obj = null;
            var position = pos;
            pos = new Vector3(position.x + Core.Random.Range(-5, 5), position.y + 100,
                position.z + Core.Random.Range(-5, 5));
            switch (entity)
            {
                case 2162376657:
                    obj = GameManager.server.CreateEntity(ScrapMinicopter, pos);
                    break;
                case 1674659844:
                    obj = GameManager.server.CreateEntity(Minicopter, pos);
                    break;
                case 2:
                    obj = GameManager.server.CreateEntity(Rhib, pos);
                    break;
                case 2244621543:
                    obj = GameManager.server.CreateEntity(RowBoat, pos);
                    break;
            }

            if (obj != null)
            {
                obj.Spawn(); 
                obj.gameObject.AddComponent<FallEntity>();
            }
            else PrintError($"#1 {entity} {pos}");
        }

        [ConsoleCommand("give.fallcar")]
        // ReSharper disable once UnusedMember.Local
        private void GiveFallCar(ConsoleSystem.Arg args)
        {
            if (args.Args[0].IsNullOrEmpty() | args.Args[1].IsNullOrEmpty()) return;
            var player = BasePlayer.FindByID(Convert.ToUInt64(args.Args[0]));
            var item = ItemManager.CreateByName("flare");
            switch (args.Args[1])
            {
                case "minicopter":
                    item.skin = 1674659844;
                    item.name = "Вызов миникоптера";
                    player.GiveItem(item);
                    break;
                case "scraptransporthelicopter":
                    item.skin = 2162376657;
                    item.name = "Вызов транспортного вертолёта";
                    player.GiveItem(item);
                    break;
                case "rhib":
                    item.skin = 2;
                    item.name = "Вызов военной лодки";
                    player.GiveItem(item);
                    break;
                case "rowboat":
                    item.skin = 2244621543;
                    item.name = "Вызов обычной лодки";
                    player.GiveItem(item);
                    break;
            }
        }
    }
}

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