Пример #1
0
        void DisableAnimalNPC(BaseAnimalNPC animal)
        {
            if (animal == null || !animal.isServer)
            {
                return;
            }

            animal.CancelInvoke(animal.TickAi);
            animal.CurrentBehaviour = BaseNpc.Behaviour.Idle;
            animal.IsDormant        = true;

            AnimalSensesLoadBalancer.animalSensesLoadBalancer.Remove(animal);
        }
Пример #2
0
 public static void ESPText(BasePlayer adminPly, BaseAnimalNPC an)
 {
     adminPly.SendConsoleCommand("ddraw.text", new object[]
     {
         Variables.ESPSlowTickRate + 0.05f,
         Color.white,
         an.transform.position,
         string.Format("{0} - <color=#ffa500>{1} M</color> - {2} HP", new object[]
         {
             an.ShortPrefabName,
             Math.Floor((double)Vector3.Distance(an.transform.position, adminPly.transform.position)),
             (int)an.health
         })
     });
 }
Пример #3
0
 void OnEntitySpawned(BaseAnimalNPC animal) => DisableAnimalNPC(animal);
Пример #4
0
        public static void aiDebug_toggle(ConsoleSystem.Arg args)
        {
            int num = args.GetInt(0, 0);

            if (num == 0)
            {
                return;
            }
            BaseEntity baseEntity = BaseNetworkable.serverEntities.Find((uint)num) as BaseEntity;

            if (Object.op_Equality((Object)baseEntity, (Object)null))
            {
                return;
            }
            NPCPlayerApex npcPlayerApex = baseEntity as NPCPlayerApex;

            if (Object.op_Inequality((Object)npcPlayerApex, (Object)null))
            {
                TextTable textTable = new TextTable();
                textTable.AddColumn("type");
                textTable.AddColumn("state");
                textTable.AddColumn("posSync");
                textTable.AddColumn("health");
                textTable.AddColumn("stuckTime");
                textTable.AddColumn("hasPath");
                textTable.AddColumn("hasEnemyTarget");
                textTable.AddColumn("isMounted");
                textTable.AddRow(new string[8]
                {
                    npcPlayerApex.Family.ToString(),
                    npcPlayerApex.IsDormant ? "dormant" : "awake",
                    npcPlayerApex.syncPosition.ToString(),
                    npcPlayerApex.health.ToString("N2"),
                    npcPlayerApex.stuckDuration.ToString("N2"),
                    npcPlayerApex.HasPath.ToString(),
                    Object.op_Inequality((Object)npcPlayerApex.AttackTarget, (Object)null).ToString(),
                    npcPlayerApex.isMounted ? "true" : "false"
                });
                args.ReplyWith(((object)textTable).ToString());
            }
            else
            {
                BaseAnimalNPC baseAnimalNpc = baseEntity as BaseAnimalNPC;
                if (Object.op_Inequality((Object)baseAnimalNpc, (Object)null))
                {
                    TextTable textTable1 = new TextTable();
                    textTable1.AddColumn("type");
                    textTable1.AddColumn("state");
                    textTable1.AddColumn("posSync");
                    textTable1.AddColumn("health");
                    textTable1.AddColumn("stuckTime");
                    textTable1.AddColumn("hasPath");
                    textTable1.AddColumn("hasEnemyTarget");
                    textTable1.AddColumn("hasFoodTarget");
                    TextTable textTable2 = textTable1;
                    string[]  strArray   = new string[8]
                    {
                        baseAnimalNpc.Stats.Family.ToString(),
                              baseAnimalNpc.IsDormant ? "dormant" : "awake",
                              baseAnimalNpc.syncPosition.ToString(),
                              baseAnimalNpc.health.ToString("N2"),
                        baseAnimalNpc.stuckDuration.ToString("N2"),
                        baseAnimalNpc.HasPath.ToString(),
                        null,
                        null
                    };
                    bool flag = Object.op_Inequality((Object)baseAnimalNpc.AttackTarget, (Object)null);
                    strArray[6] = flag.ToString();
                    flag        = Object.op_Inequality((Object)baseAnimalNpc.FoodTarget, (Object)null);
                    strArray[7] = flag.ToString();
                    textTable2.AddRow(strArray);
                    args.ReplyWith(((object)textTable1).ToString());
                }
                else
                {
                    HTNPlayer htnPlayer = baseEntity as HTNPlayer;
                    if (!Object.op_Inequality((Object)htnPlayer, (Object)null))
                    {
                        return;
                    }
                    TextTable textTable = new TextTable();
                    textTable.AddColumn("type");
                    textTable.AddColumn("state");
                    textTable.AddColumn("posSync");
                    textTable.AddColumn("health");
                    textTable.AddColumn("hasEnemyTarget");
                    textTable.AddColumn("isMounted");
                    textTable.AddRow(new string[6]
                    {
                        htnPlayer.Family.ToString(),
                        htnPlayer.IsDormant ? "dormant" : "awake",
                        htnPlayer.syncPosition.ToString(),
                        htnPlayer.health.ToString("N2"),
                        Object.op_Inequality((Object)htnPlayer.MainTarget, (Object)null).ToString(),
                        htnPlayer.isMounted ? "true" : "false"
                    });
                    args.ReplyWith(((object)textTable).ToString());
                }
            }
        }
Пример #5
0
        private List <BaseAnimalNPC> GetAllAnimals()
        {
            var animals = new List <BaseAnimalNPC>(BaseAnimalNPC.FindObjectsOfType <BaseAnimalNPC>());

            return(animals);
        }
Пример #6
0
        public static void aiDebug_toggle(ConsoleSystem.Arg args)
        {
            BaseNpc.AiStatistics.FamilyEnum family;
            float single;
            bool  hasPath;
            int   num = args.GetInt(0, 0);

            if (num == 0)
            {
                return;
            }
            BaseEntity baseEntity = BaseNetworkable.serverEntities.Find((uint)num) as BaseEntity;

            if (baseEntity == null)
            {
                return;
            }
            NPCPlayerApex nPCPlayerApex = baseEntity as NPCPlayerApex;

            if (nPCPlayerApex != null)
            {
                TextTable textTable = new TextTable();
                textTable.AddColumn("type");
                textTable.AddColumn("state");
                textTable.AddColumn("posSync");
                textTable.AddColumn("health");
                textTable.AddColumn("stuckTime");
                textTable.AddColumn("hasPath");
                textTable.AddColumn("hasEnemyTarget");
                textTable.AddColumn("isMounted");
                TextTable textTable1 = textTable;
                string[]  str        = new string[8];
                family  = nPCPlayerApex.Family;
                str[0]  = family.ToString();
                str[1]  = (nPCPlayerApex.IsDormant ? "dormant" : "awake");
                str[2]  = nPCPlayerApex.syncPosition.ToString();
                single  = nPCPlayerApex.health;
                str[3]  = single.ToString("N2");
                str[4]  = nPCPlayerApex.stuckDuration.ToString("N2");
                hasPath = nPCPlayerApex.HasPath;
                str[5]  = hasPath.ToString();
                hasPath = nPCPlayerApex.AttackTarget != null;
                str[6]  = hasPath.ToString();
                str[7]  = (nPCPlayerApex.isMounted ? "true" : "false");
                textTable1.AddRow(str);
                args.ReplyWith(textTable.ToString());
                return;
            }
            BaseAnimalNPC baseAnimalNPC = baseEntity as BaseAnimalNPC;

            if (baseAnimalNPC != null)
            {
                TextTable textTable2 = new TextTable();
                textTable2.AddColumn("type");
                textTable2.AddColumn("state");
                textTable2.AddColumn("posSync");
                textTable2.AddColumn("health");
                textTable2.AddColumn("stuckTime");
                textTable2.AddColumn("hasPath");
                textTable2.AddColumn("hasEnemyTarget");
                textTable2.AddColumn("hasFoodTarget");
                TextTable textTable3 = textTable2;
                string[]  strArrays  = new string[] { baseAnimalNPC.Stats.Family.ToString(), null, null, null, null, null, null, null };
                strArrays[1] = (baseAnimalNPC.IsDormant ? "dormant" : "awake");
                strArrays[2] = baseAnimalNPC.syncPosition.ToString();
                single       = baseAnimalNPC.health;
                strArrays[3] = single.ToString("N2");
                strArrays[4] = baseAnimalNPC.stuckDuration.ToString("N2");
                hasPath      = baseAnimalNPC.HasPath;
                strArrays[5] = hasPath.ToString();
                hasPath      = baseAnimalNPC.AttackTarget != null;
                strArrays[6] = hasPath.ToString();
                hasPath      = baseAnimalNPC.FoodTarget != null;
                strArrays[7] = hasPath.ToString();
                textTable3.AddRow(strArrays);
                args.ReplyWith(textTable2.ToString());
                return;
            }
            HTNPlayer hTNPlayer = baseEntity as HTNPlayer;

            if (hTNPlayer == null)
            {
                return;
            }
            TextTable textTable4 = new TextTable();

            textTable4.AddColumn("type");
            textTable4.AddColumn("state");
            textTable4.AddColumn("posSync");
            textTable4.AddColumn("health");
            textTable4.AddColumn("hasEnemyTarget");
            textTable4.AddColumn("isMounted");
            TextTable textTable5 = textTable4;

            string[] str1 = new string[6];
            family  = hTNPlayer.Family;
            str1[0] = family.ToString();
            str1[1] = (hTNPlayer.IsDormant ? "dormant" : "awake");
            str1[2] = hTNPlayer.syncPosition.ToString();
            single  = hTNPlayer.health;
            str1[3] = single.ToString("N2");
            hasPath = hTNPlayer.MainTarget != null;
            str1[4] = hasPath.ToString();
            str1[5] = (hTNPlayer.isMounted ? "true" : "false");
            textTable5.AddRow(str1);
            args.ReplyWith(textTable4.ToString());
        }
Пример #7
0
        public static void aiDebug_toggle(Arg args)
        {
            int @int = args.GetInt(0);

            if (@int == 0)
            {
                return;
            }
            BaseEntity baseEntity = BaseNetworkable.serverEntities.Find((uint)@int) as BaseEntity;

            if (baseEntity == null)
            {
                return;
            }
            NPCPlayerApex nPCPlayerApex = baseEntity as NPCPlayerApex;

            if (nPCPlayerApex != null)
            {
                TextTable textTable = new TextTable();
                textTable.AddColumn("type");
                textTable.AddColumn("state");
                textTable.AddColumn("posSync");
                textTable.AddColumn("health");
                textTable.AddColumn("stuckTime");
                textTable.AddColumn("hasPath");
                textTable.AddColumn("hasEnemyTarget");
                textTable.AddColumn("isMounted");
                textTable.AddRow(nPCPlayerApex.Family.ToString(), nPCPlayerApex.IsDormant ? "dormant" : "awake", nPCPlayerApex.syncPosition.ToString(), nPCPlayerApex.health.ToString("N2"), nPCPlayerApex.stuckDuration.ToString("N2"), nPCPlayerApex.HasPath.ToString(), (nPCPlayerApex.AttackTarget != null).ToString(), nPCPlayerApex.isMounted ? "true" : "false");
                args.ReplyWith(textTable.ToString());
                return;
            }
            BaseAnimalNPC baseAnimalNPC = baseEntity as BaseAnimalNPC;

            if (baseAnimalNPC != null)
            {
                TextTable textTable2 = new TextTable();
                textTable2.AddColumn("type");
                textTable2.AddColumn("state");
                textTable2.AddColumn("posSync");
                textTable2.AddColumn("health");
                textTable2.AddColumn("stuckTime");
                textTable2.AddColumn("hasPath");
                textTable2.AddColumn("hasEnemyTarget");
                textTable2.AddColumn("hasFoodTarget");
                textTable2.AddRow(baseAnimalNPC.Stats.Family.ToString(), baseAnimalNPC.IsDormant ? "dormant" : "awake", baseAnimalNPC.syncPosition.ToString(), baseAnimalNPC.health.ToString("N2"), baseAnimalNPC.stuckDuration.ToString("N2"), baseAnimalNPC.HasPath.ToString(), (baseAnimalNPC.AttackTarget != null).ToString(), (baseAnimalNPC.FoodTarget != null).ToString());
                args.ReplyWith(textTable2.ToString());
            }
            else
            {
                HTNPlayer hTNPlayer = baseEntity as HTNPlayer;
                if (hTNPlayer != null)
                {
                    TextTable textTable3 = new TextTable();
                    textTable3.AddColumn("type");
                    textTable3.AddColumn("state");
                    textTable3.AddColumn("posSync");
                    textTable3.AddColumn("health");
                    textTable3.AddColumn("hasEnemyTarget");
                    textTable3.AddColumn("isMounted");
                    textTable3.AddRow(hTNPlayer.Family.ToString(), hTNPlayer.IsDormant ? "dormant" : "awake", hTNPlayer.syncPosition.ToString(), hTNPlayer.health.ToString("N2"), (hTNPlayer.MainTarget != null).ToString(), hTNPlayer.isMounted ? "true" : "false");
                    args.ReplyWith(textTable3.ToString());
                }
            }
        }