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); }
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 }) }); }
void OnEntitySpawned(BaseAnimalNPC animal) => DisableAnimalNPC(animal);
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()); } } }
private List <BaseAnimalNPC> GetAllAnimals() { var animals = new List <BaseAnimalNPC>(BaseAnimalNPC.FindObjectsOfType <BaseAnimalNPC>()); return(animals); }
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()); }
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()); } } }