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

FREE TopF : 1.0.0 1.0.0

Нет прав для скачивания
C#:
using Oxide.Core;
using System;
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
using ConVar;
using System.IO;
using System.Text;
using Network;
using UnityEngine;
using Oxide.Game.Rust.Cui;

namespace Oxide.Plugins
{
    [Info("TopF", "sdapro", "1.0.0")]
	//YouTube https://www.youtube.com/channel/UCaatLYzqycP6He7TEbK-IDA
	//https://t.me/+jb13FvJyK4o5MTli
    public class TopF : CovalencePlugin
    {
        int bigRocketCount = 20;
        int littleRocketCount = 12;

        bool jerichoBlowUp = true;
        bool heatSeekerBlowUp = false;
        bool followBlowUp = false;
        bool javalinBlowUp = false;


        int xSize = 100;
        int ySize = 1;
        int maxRange = 250;

        int scatterSize = 3;

        float flashDuration = 4.0f;

        ulong javalin = 2657315108;
		ulong medSkin = 1637846750;
        ulong extramSkin = 2425947331;
        ulong extrasSkin = 2489546178;
        ulong extraSkin = 2842283317;
        ulong defaultSkin = 2790782587;
		ulong chSkin = 2333017465;

        int instaHealAmount = 15;
        int passiveHealAmount = 50;

        bool spawnFlares = true;
        int stunDuration = 4;

        HashSet<ulong> skins = new HashSet<ulong>();
        #region Config

        private void Init()
        {
			permission.RegisterPermission("topf.rs", this);
			permission.RegisterPermission("topf.nrs", this);
            javalinBlowUp = (bool)Config["javalinDestroyOnShoot"];
			javalin = ulong.Parse(Config["javalinSkin"].ToString());
            extramSkin = ulong.Parse(Config["extramSkin"].ToString());
			medSkin = ulong.Parse(Config["medSkin"].ToString());
            extrasSkin = ulong.Parse(Config["extrasSkin"].ToString());
            extraSkin = ulong.Parse(Config["extraSkin"].ToString());
            defaultSkin = ulong.Parse(Config["defaultSkin"].ToString());
			chSkin = ulong.Parse(Config["chSkin"].ToString());


            if (Config["SpawnFlares"] == null)
            {
                Config["SpawnFlares"] = true;
                SaveConfig();

            }

            
            spawnFlares = (bool)Config["SpawnFlares"];

            skins.Add(javalin);
            skins.Add(extramSkin);
            skins.Add(extrasSkin);
			skins.Add(medSkin);
            skins.Add(extraSkin);
            skins.Add(defaultSkin);
			skins.Add(chSkin);

        }


        protected override void LoadDefaultConfig()
        {
			Config["javalinDestroyOnShoot"] = true;
			Config["javalinSkin"] = 2657315108;
            Config["extramSkin"] = 2425947331;
            Config["extrasSkin"] = 2489546178;
            Config["extraSkin"] = 2842283317;
            Config["defaultSkin"] = 2790782587;
			Config["medSkin"] = 1637846750;
			Config["chSkin"] = 2333017465;
        }

        #endregion



        #region Commands
        [Command("ch"), Permission("topf.ch")]
        private void ch(IPlayer iplayer, string command, string[] args)
        {
            BasePlayer player = iplayer.Object as BasePlayer;

            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, chSkin),
                          player.inventory.containerBelt);
        }
		[Command("med"), Permission("topf.med")]
        private void med(IPlayer iplayer, string command, string[] args)
        {
            BasePlayer player = iplayer.Object as BasePlayer;

            player.inventory.GiveItem(ItemManager.CreateByName("syringe.medical", 1, medSkin),
                          player.inventory.containerBelt);
        }
        [Command("Jav"), Permission("topf.jav")]
        private void Jav(IPlayer iplayer, string command, string[] args)
        {
            BasePlayer player = iplayer.Object as BasePlayer;

            player.inventory.GiveItem(ItemManager.CreateByName("rocket.launcher", 1, javalin),
                          player.inventory.containerBelt);
        }
        [Command("extram"), Permission("topf.admin")]
        private void extram(IPlayer iplayer, string command, string[] args)
        {
            BasePlayer player = iplayer.Object as BasePlayer;

            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, extramSkin),
                          player.inventory.containerBelt);
        }
        [Command("extras"), Permission("topf.admin")]
        private void extras(IPlayer iplayer, string command, string[] args)
        {
            BasePlayer player = iplayer.Object as BasePlayer;

            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, extrasSkin),
                          player.inventory.containerBelt);
        }
        [Command("extrad"), Permission("topf.admin")]
        private void extrad(IPlayer iplayer, string command, string[] args)
        {
            BasePlayer player = iplayer.Object as BasePlayer;

            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, defaultSkin), 
                          player.inventory.containerBelt);
        }
        [Command("extra"), Permission("topf.extra")]
        private void extra(IPlayer iplayer, string command, string[] args)
        {
            BasePlayer player = iplayer.Object as BasePlayer;

            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, extraSkin),
                          player.inventory.containerBelt);
        }
        [Command("givetop"), Permission("topf.admin")]
        private void giveallnades(IPlayer iplayer, string command, string[] args)
        {
            BasePlayer player = iplayer.Object as BasePlayer;

            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, extramSkin),
                           player.inventory.containerBelt);
            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, extrasSkin),
                          player.inventory.containerBelt);
            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, extraSkin),
                          player.inventory.containerBelt);
            player.inventory.GiveItem(ItemManager.CreateByName("grenade.f1", 1, defaultSkin),
                          player.inventory.containerBelt);
        }
        #endregion

        #region Hooks
        void OnRocketLaunched(BasePlayer player, BaseEntity entity)
        {
            HeldEntity item = player.GetHeldEntity();
            Item invItem = item.GetItem();
            if(permission.UserHasPermission(player.userID.ToString(), "topf.rs"))
            {
            if(invItem.skin == javalin)
            {
                entity.Kill();
                JavalinRocket(player.IPlayer);
                if(!permission.UserHasPermission(player.userID.ToString(), "topf.nrs"))
                {
                if(javalinBlowUp)
                    invItem.DoRemove();
                }
            }
            }

            return;    
        }
        private object OnExplosiveFuseSet(TimedExplosive ent, float fuseLength)
        {
            if(ent.skinID == extrasSkin)
            {
                ulong ownerId = ent.OwnerID;
                timer.Once(fuseLength - 1.0f, () =>
                {
                    Vector3 location = ent.transform.position;
                    Vector3 entityRight = ent.transform.right;
                    Vector3 entityForward = ent.transform.forward;
                    Quaternion rotation = ent.transform.rotation;
                    //grenade in a grenade
                    timer.Repeat(0.3f, 6, () => {


                        int randomRight = UnityEngine.Random.Range(scatterSize * 1, scatterSize);
                        int radonomForward = UnityEngine.Random.Range(scatterSize * 0, scatterSize);
                        BaseEntity entity = GameManager.server.CreateEntity("assets/content/vehicles/mlrs/rocket_mlrs.prefab", location + (Vector3.forward) + (Vector3.up * 300f), rotation);
                        TimedExplosive newNade = entity as TimedExplosive;
                        entity.OwnerID = ownerId;
                        entity.creatorEntity = (BaseEntity)ent;
                        entity.Spawn();
                        newNade.SetFuse(20.1f);

                    });



                });
            }
            else if(ent.skinID == extraSkin)
            {
                ulong ownerId = ent.OwnerID;
                timer.Once(fuseLength - 0.05f, () =>
                {
                    Vector3 location = ent.transform.position;
                    Vector3 entityRight = ent.transform.right;
                    Vector3 entityForward = ent.transform.forward;
                    Quaternion rotation = ent.transform.rotation;
                    //grenade in a grenade
                    timer.Repeat(0.001f, 1, () => {


                        int randomRight = UnityEngine.Random.Range(scatterSize * 1, scatterSize);
                        int radonomForward = UnityEngine.Random.Range(scatterSize * 0, scatterSize);
                        BaseEntity entity = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", location + (Vector3.forward) + (Vector3.up * 1), rotation);
                        TimedExplosive newNade = entity as TimedExplosive;
                        entity.OwnerID = ownerId;
                        entity.creatorEntity = (BaseEntity)ent;
                        entity.Spawn();
                        newNade.SetFuse(0.001f);
						Effect.server.Run("assets/content/effects/explosions/underwater/explosion_underwater.prefab", location);
						Effect.server.Run("assets/bundled/prefabs/fx/kill_notify.prefab", location);

                    });



                });
            }
            else if(ent.skinID == chSkin)
            {
                ulong ownerId = ent.OwnerID;
                timer.Once(fuseLength - 0.05f, () =>
                {
                    Vector3 location = ent.transform.position;
                    Vector3 entityRight = ent.transform.right;
                    Vector3 entityForward = ent.transform.forward;
                    //grenade in a grenade
                    timer.Repeat(0.001f, 1, () => {


                        int randomRight = UnityEngine.Random.Range(scatterSize * 1, scatterSize);
                        int radonomForward = UnityEngine.Random.Range(scatterSize * 0, scatterSize);
                        BaseEntity entity = GameManager.server.CreateEntity("assets/prefabs/npc/ch47/ch47.entity.prefab", location + (Vector3.up * 1));
                        TimedExplosive newNade = entity as TimedExplosive;
                        entity.OwnerID = ownerId;
                        entity.creatorEntity = (BaseEntity)ent;
                        entity.Spawn();

                    });



                });
            }
            else if(ent.skinID == extramSkin)
            {
                ulong ownerId = ent.OwnerID;
                timer.Once(fuseLength - 0.05f, () =>
                {
                    Vector3 location = ent.transform.position;
                    Vector3 entityRight = ent.transform.right;
                    Vector3 entityForward = ent.transform.forward;
                    Quaternion rotation = ent.transform.rotation;
                    //grenade in a grenade
                    timer.Repeat(0.001f, 1, () => {


                        int randomRight = UnityEngine.Random.Range(scatterSize * 1, scatterSize);
                        int radonomForward = UnityEngine.Random.Range(scatterSize * 0, scatterSize);
                        BaseEntity entity = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", location + (Vector3.forward) + (Vector3.up * 1), rotation);
                        TimedExplosive newNade = entity as TimedExplosive;
                        entity.OwnerID = ownerId;
                        entity.creatorEntity = (BaseEntity)ent;
                        entity.Spawn();
                        newNade.SetFuse(0.001f);
						Effect.server.Run("assets/content/effects/explosions/underwater/explosion_underwater.prefab", location);

                    });



                });
            }
            else if(ent.skinID == defaultSkin)
            {
                ulong ownerId = ent.OwnerID;
                timer.Once(fuseLength - 0.05f, () =>
                {
                    Vector3 location = ent.transform.position;
                    Vector3 entityRight = ent.transform.right;
                    Vector3 entityForward = ent.transform.forward;
                    Quaternion rotation = ent.transform.rotation;
                    //grenade in a grenade
                    timer.Repeat(0.0001f, 1, () => {


                        int randomRight = UnityEngine.Random.Range(scatterSize * 1, scatterSize);
                        int radonomForward = UnityEngine.Random.Range(scatterSize * 0, scatterSize);
                        BaseEntity entity = GameManager.server.CreateEntity("assets/prefabs/npc/patrol helicopter/rocket_heli.prefab", location + (Vector3.forward) + (Vector3.up * 0), rotation);
                        TimedExplosive newNade = entity as TimedExplosive;
                        entity.OwnerID = ownerId;
                        entity.creatorEntity = (BaseEntity)ent;
                        entity.Spawn();
                        newNade.SetFuse(0.1f);
						Effect.server.Run("assets/content/effects/explosions/underwater/explosion_underwater.prefab", location);

                    });



                });
            }
            
            return null;
        }
        object CanCombineDroppedItem(DroppedItem item, DroppedItem targetItem)
        {
            if (skins.Contains(targetItem.item.skin) || skins.Contains(item.item.skin) && item.item.skin == targetItem.item.skin)
            {
                return false;
            }
            return null;
        }
        object CanStackItem(Item item, Item targetItem)
        {
            if ((skins.Contains(targetItem.skin) || skins.Contains(item.skin)) && item.skin != targetItem.skin)
            {
                return false;
            }
            return null;
        }
        #endregion
        private void JavalinRocket(IPlayer iplayer)
        {
            BasePlayer player = iplayer.Object as BasePlayer;
            Vector3 firingDir = player.GetNetworkRotation() * Vector3.forward;

            RaycastHit hitInfo;
            Vector3 firingPos = player.eyes.transform.position + Vector3.up + Vector3.up;
            Vector3 target;
            if (UnityEngine.Physics.Raycast(firingPos, firingDir, out hitInfo, maxRange, 1236478737))
            {
                target = hitInfo.point;
            }
            else
            {
                target = firingPos + (firingDir.normalized * maxRange);

            }
			BaseEntity entitys = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entity = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            
            BaseEntity entityq = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityw = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entitye = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityr = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityt = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityy = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityu = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityi = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityo = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityp = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityz = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityx = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityc = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityv = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityb = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            BaseEntity entityn = GameManager.server.CreateEntity("assets/prefabs/ammo/rocket/rocket_basic.prefab", firingPos + firingDir);
            
            
            ServerProjectile projectileq = entityq.GetComponent<ServerProjectile>();
            ServerProjectile projectilew = entityw.GetComponent<ServerProjectile>();
            ServerProjectile projectilee = entitye.GetComponent<ServerProjectile>();
            ServerProjectile projectiler = entityr.GetComponent<ServerProjectile>();
            ServerProjectile projectilet = entityt.GetComponent<ServerProjectile>();
            ServerProjectile projectiley = entityy.GetComponent<ServerProjectile>();
            ServerProjectile projectileu = entityu.GetComponent<ServerProjectile>();
            ServerProjectile projectilei = entityi.GetComponent<ServerProjectile>();
            ServerProjectile projectileo = entityo.GetComponent<ServerProjectile>();
            ServerProjectile projectilep = entityp.GetComponent<ServerProjectile>();
            ServerProjectile projectilez = entityz.GetComponent<ServerProjectile>();
            ServerProjectile projectilex = entityx.GetComponent<ServerProjectile>();
            ServerProjectile projectilec = entityc.GetComponent<ServerProjectile>();
            ServerProjectile projectilev = entityv.GetComponent<ServerProjectile>();
            ServerProjectile projectileb = entityb.GetComponent<ServerProjectile>();
            ServerProjectile projectilen = entityn.GetComponent<ServerProjectile>();
            
            ServerProjectile projectile = entity.GetComponent<ServerProjectile>();
			ServerProjectile projectiles = entitys.GetComponent<ServerProjectile>();
			
			
			Vector3 vector3q = projectileq.initialVelocity + firingDir * 1;
			Vector3 vector3w = projectilew.initialVelocity + firingDir * 1;
			Vector3 vector3e = projectilee.initialVelocity + firingDir * 1;
			Vector3 vector3r = projectiler.initialVelocity + firingDir * 1;
			Vector3 vector3t = projectilet.initialVelocity + firingDir * 1;
			Vector3 vector3y = projectiley.initialVelocity + firingDir * 1;
			Vector3 vector3u = projectileu.initialVelocity + firingDir * 1;
			Vector3 vector3i = projectilei.initialVelocity + firingDir * 1;
			Vector3 vector3o = projectileo.initialVelocity + firingDir * 1;
			Vector3 vector3p = projectilep.initialVelocity + firingDir * 1;
			Vector3 vector3z = projectilez.initialVelocity + firingDir * 1;
			Vector3 vector3x = projectilex.initialVelocity + firingDir * 1;
			Vector3 vector3c = projectilec.initialVelocity + firingDir * 1;
			Vector3 vector3v = projectilev.initialVelocity + firingDir * 1;
			Vector3 vector3b = projectileb.initialVelocity + firingDir * 1;
			Vector3 vector3n = projectilen.initialVelocity + firingDir * 1;
			
            Vector3 vector3 = projectile.initialVelocity + firingDir * 1;
			Vector3 vectors3 = projectiles.initialVelocity + firingDir * 1;
            //projectile.speed
            projectileq.gravityModifier = 0;
            projectileq.InitializeVelocity(vector3);
            projectilew.gravityModifier = 0;
            projectilew.InitializeVelocity(vector3);
            projectilee.gravityModifier = 0;
            projectilee.InitializeVelocity(vector3);
            projectiler.gravityModifier = 0;
            projectiler.InitializeVelocity(vector3);
            projectilet.gravityModifier = 0;
            projectilet.InitializeVelocity(vector3);
            projectiley.gravityModifier = 0;
            projectiley.InitializeVelocity(vector3);
            projectileu.gravityModifier = 0;
            projectileu.InitializeVelocity(vector3);
            projectilei.gravityModifier = 0;
            projectilei.InitializeVelocity(vector3);
            projectileo.gravityModifier = 0;
            projectileo.InitializeVelocity(vector3);
            projectilep.gravityModifier = 0;
            projectilep.InitializeVelocity(vector3);
            projectilez.gravityModifier = 0;
            projectilez.InitializeVelocity(vector3);
            projectilex.gravityModifier = 0;
            projectilex.InitializeVelocity(vector3);
            projectilec.gravityModifier = 0;
            projectilec.InitializeVelocity(vector3);
            projectilev.gravityModifier = 0;
            projectilev.InitializeVelocity(vector3);
            projectileb.gravityModifier = 0;
            projectileb.InitializeVelocity(vector3);
            projectilen.gravityModifier = 0;
            projectilen.InitializeVelocity(vector3);
            
            projectile.gravityModifier = 0;
            projectile.InitializeVelocity(vector3);
			projectiles.gravityModifier = 0;
            projectiles.InitializeVelocity(vectors3);
            
            entityq.creatorEntity = (BaseEntity)player;
            entityq.OwnerID = player.userID;
            entityw.creatorEntity = (BaseEntity)player;
            entityw.OwnerID = player.userID;
            entitye.creatorEntity = (BaseEntity)player;
            entitye.OwnerID = player.userID;
            entityr.creatorEntity = (BaseEntity)player;
            entityr.OwnerID = player.userID;
            entityt.creatorEntity = (BaseEntity)player;
            entityt.OwnerID = player.userID;
            entityy.creatorEntity = (BaseEntity)player;
            entityy.OwnerID = player.userID;
            entityu.creatorEntity = (BaseEntity)player;
            entityu.OwnerID = player.userID;
            entityi.creatorEntity = (BaseEntity)player;
            entityi.OwnerID = player.userID;
            entityo.creatorEntity = (BaseEntity)player;
            entityo.OwnerID = player.userID;
            entityp.creatorEntity = (BaseEntity)player;
            entityp.OwnerID = player.userID;
            entityz.creatorEntity = (BaseEntity)player;
            entityz.OwnerID = player.userID;
            entityx.creatorEntity = (BaseEntity)player;
            entityx.OwnerID = player.userID;
            entityc.creatorEntity = (BaseEntity)player;
            entityc.OwnerID = player.userID;
            entityv.creatorEntity = (BaseEntity)player;
            entityv.OwnerID = player.userID;
            entityb.creatorEntity = (BaseEntity)player;
            entityb.OwnerID = player.userID;
            entityn.creatorEntity = (BaseEntity)player;
            entityn.OwnerID = player.userID;

            entity.creatorEntity = (BaseEntity)player;
            entity.OwnerID = player.userID;
			entitys.creatorEntity = (BaseEntity)player;
            entitys.OwnerID = player.userID;
            entity.Spawn();
            entityq.Spawn();
            entityw.Spawn();
            entitye.Spawn();
            entityr.Spawn();
            entityt.Spawn();
            entityy.Spawn();
            entityu.Spawn();
            entityi.Spawn();
            entityo.Spawn();
            entityp.Spawn();
            entityz.Spawn();
            entityx.Spawn();
            entityc.Spawn();
            entityv.Spawn();
            entityb.Spawn();
            entityn.Spawn();
			entitys.Spawn();
			
			timer.Once(0.3f, () => // Start up motion
            {
                if (entityq == null || projectileq == null || entityq.IsDestroyed) return;
                PlayEffect("assets/content/vehicles/mlrs/effects/pfx_mlrs_backfire.prefab", entityq);
                projectileq.gravityModifier = 0.1f;
                Vector3 newVel = projectileq.initialVelocity + firingDir * 100;
                projectileq.InitializeVelocity(newVel);
            });
            timer.Once(0.4f, () => // Start up motion
            {
                if (entityw == null || projectilew == null || entityw.IsDestroyed) return;
                projectilew.gravityModifier = 0.1f;
                Vector3 newVel = projectilew.initialVelocity + firingDir * 100;
                projectilew.InitializeVelocity(newVel);
            });
            timer.Once(0.5f, () => // Start up motion
            {
                if (entitye == null || projectilee == null || entitye.IsDestroyed) return;
                projectilee.gravityModifier = 0.1f;
                Vector3 newVel = projectilee.initialVelocity + firingDir * 100;
                projectilee.InitializeVelocity(newVel);
            });
            timer.Once(0.6f, () => // Start up motion
            {
                if (entityr == null || projectiler == null || entityr.IsDestroyed) return;
                projectiler.gravityModifier = 0.1f;
                Vector3 newVel = projectiler.initialVelocity + firingDir * 100;
                projectiler.InitializeVelocity(newVel);
            });
            timer.Once(0.7f, () => // Start up motion
            {
                if (entityt == null || projectilet == null || entityt.IsDestroyed) return;
                projectilet.gravityModifier = 0.1f;
                Vector3 newVel = projectilet.initialVelocity + firingDir * 100;
                projectilet.InitializeVelocity(newVel);
            });
            timer.Once(0.8f, () => // Start up motion
            {
                if (entityy == null || projectiley == null || entityy.IsDestroyed) return;
                projectiley.gravityModifier = 0.1f;
                Vector3 newVel = projectiley.initialVelocity + firingDir * 100;
                projectiley.InitializeVelocity(newVel);
            });
            timer.Once(0.9f, () => // Start up motion
            {
                if (entityu == null || projectileu == null || entityu.IsDestroyed) return;
                projectileu.gravityModifier = 0.1f;
                Vector3 newVel = projectileu.initialVelocity + firingDir * 100;
                projectileu.InitializeVelocity(newVel);
            });
            timer.Once(0.10f, () => // Start up motion
            {
                if (entityi == null || projectilei == null || entityi.IsDestroyed) return;
                projectilei.gravityModifier = 0.1f;
                Vector3 newVel = projectilei.initialVelocity + firingDir * 100;
                projectilei.InitializeVelocity(newVel);
            });
            timer.Once(0.11f, () => // Start up motion
            {
                if (entityo == null || projectileo == null || entityo.IsDestroyed) return;
                projectileo.gravityModifier = 0.1f;
                Vector3 newVel = projectileo.initialVelocity + firingDir * 100;
                projectileo.InitializeVelocity(newVel);
            });
            timer.Once(0.12f, () => // Start up motion
            {
                if (entityp == null || projectilep == null || entityp.IsDestroyed) return;
                projectilep.gravityModifier = 0.1f;
                Vector3 newVel = projectilep.initialVelocity + firingDir * 100;
                projectilep.InitializeVelocity(newVel);
            });
            timer.Once(0.13f, () => // Start up motion
            {
                if (entityz == null || projectilez == null || entityz.IsDestroyed) return;
                projectilez.gravityModifier = 0.1f;
                Vector3 newVel = projectilez.initialVelocity + firingDir * 100;
                projectilez.InitializeVelocity(newVel);
            });
            timer.Once(0.14f, () => // Start up motion
            {
                if (entityx == null || projectilex == null || entityx.IsDestroyed) return;
                projectilex.gravityModifier = 0.1f;
                Vector3 newVel = projectilex.initialVelocity + firingDir * 100;
                projectilex.InitializeVelocity(newVel);
            });
            timer.Once(0.15f, () => // Start up motion
            {
                if (entityc == null || projectilec == null || entityc.IsDestroyed) return;
                projectilec.gravityModifier = 0.1f;
                Vector3 newVel = projectilec.initialVelocity + firingDir * 100;
                projectilec.InitializeVelocity(newVel);
            });
            timer.Once(0.16f, () => // Start up motion
            {
                if (entityv == null || projectilev == null || entityv.IsDestroyed) return;
                projectilev.gravityModifier = 0.1f;
                Vector3 newVel = projectilev.initialVelocity + firingDir * 100;
                projectilev.InitializeVelocity(newVel);
            });
            timer.Once(0.17f, () => // Start up motion
            {
                if (entityb == null || projectileb == null || entityb.IsDestroyed) return;
                projectileb.gravityModifier = 0.1f;
                Vector3 newVel = projectileb.initialVelocity + firingDir * 100;
                projectileb.InitializeVelocity(newVel);
            });
            timer.Once(0.18f, () => // Start up motion
            {
                if (entityn == null || projectilen == null || entityn.IsDestroyed) return;
                projectilen.gravityModifier = 0.1f;
                Vector3 newVel = projectilen.initialVelocity + firingDir * 100;
                projectilen.InitializeVelocity(newVel);
            });
			
            timer.Once(0.19f, () => // Start up motion
            {
                if (entity == null || projectile == null || entity.IsDestroyed) return;
                projectile.gravityModifier = 0.1f;
                Vector3 newVel = projectile.initialVelocity + firingDir * 100;
                projectile.InitializeVelocity(newVel);
            });
			
			
			
			timer.Once(0.20f, () => // Start up motion
            {
                if (entitys == null || projectiles == null || entitys.IsDestroyed) return;
                projectiles.gravityModifier = 0.1f;
                Vector3 newVel = projectiles.initialVelocity + firingDir * 100;
                projectiles.InitializeVelocity(newVel);
            });
        }

        private List<BasePlayer> FindAllPlayersNear(Vector3 pos, float radius)
        {
            Collider[] cast = UnityEngine.Physics.OverlapSphere(pos, radius);
            List<BasePlayer> ents = new List<BasePlayer>();
            foreach (Collider item in cast)
            {
                BaseEntity entity = item.gameObject.ToBaseEntity();
                if (entity.IsValid() && entity is BasePlayer && entity is ScientistNPC == false && entity.IsVisible(pos))
                {
                    ents.Add(entity as BasePlayer);
                }
            }
            return ents;
        }
        
        private static void PlayEffect(string effect, BaseEntity entity)
        {
            BaseEntity playerEntity = entity;
            Effect reusableInstance = new Effect();
            reusableInstance.Clear();

            reusableInstance.Init(Effect.Type.Generic, playerEntity, 0, new Vector3(0, 0, 0), new Vector3(0, 0, 0), null);
            reusableInstance.scale = false ? 0.0f : 1f;


            reusableInstance.pooledString = effect;
            EffectNetwork.Send(reusableInstance);
        }
        public class OnCollisionExplode : MonoBehaviour
        {
            public TimedExplosive ent { get; set; }


            void OnCollisionEnter(Collision collision)
            {
                ent.Explode();
                Destroy(this);
            }
        }
    }
}

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