public void Execute(IRocketPlayer caller, string[] args) { PlayerLook look = ((UnturnedPlayer)caller).Player.look; if (PhysicsUtility.raycast(new Ray(look.aim.position, look.aim.forward), out RaycastHit hit, Mathf.Infinity, RayMasks.BARRICADE_INTERACT)) { InteractableDoorHinge hinge = hit.transform.GetComponent <InteractableDoorHinge>(); if (hinge != null) { InteractableDoor door = hinge.door; bool open = !door.isOpen; BarricadeManager.tryGetInfo(door.transform, out byte x, out byte y, out ushort plant, out ushort index, out BarricadeRegion region); door.updateToggle(open); BarricadeManager.instance.channel.send("tellToggleDoor", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { x, y, plant, index, open }); UnturnedChat.Say(caller, Util.Translate("door_toggle", open ? "opened" : "closed")); } else { UnturnedChat.Say(caller, Util.Translate("invalid_door")); } }
public void Execute(IRocketPlayer caller, string[] args) { PlayerLook look = ((UnturnedPlayer)caller).Player.look; if (PhysicsUtility.raycast(new Ray(look.aim.position, look.aim.forward), out RaycastHit hit, Mathf.Infinity, RayMasks.BARRICADE_INTERACT)) { InteractableDoorHinge hinge = hit.transform.GetComponent <InteractableDoorHinge>(); if (hinge != null) { InteractableDoor door = hinge.door; bool open = !door.isOpen; Util.ToggleDoor(door, open); UnturnedChat.Say(caller, Util.Translate("door_toggle", open ? "opened" : "closed")); if (open && BreakAndEnter.instance.Configuration.Instance.AutoCloseDoors) { BreakAndEnter.instance.AutoCloseDoor(door); } } else { UnturnedChat.Say(caller, Util.Translate("invalid_door")); } }
public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer Player = (UnturnedPlayer)caller; Transform trans = Base.Tracer.TraceToHit(Player).transform; if (trans == null) { Base.Messages.CommonMessage(Utilities.Messages.CommonMessages.CNoObjectFound, caller); return; } if (trans.GetComponent <InteractableDoorHinge>() != null) { InteractableDoorHinge Hinge = trans.GetComponent <InteractableDoorHinge>(); Hinge.door.updateToggle(Hinge.door.isOpen ? false : true); //**This sets the state to open/closed, but DOES NOT animate it.**// Hinge.enabled = true; UnturnedChat.Say(caller, Base.Instance.Translate("toggledoor")); return; } if (BarricadeManager.tryGetInfo(trans, out byte x, out byte y, out ushort plant, out ushort index, out BarricadeRegion BarricRegion)) { ItemStorageAsset itemstore = (ItemStorageAsset)BarricRegion.barricades[index].barricade.asset; InteractableStorage IStorage = (InteractableStorage)BarricRegion.drops[index].interactable; IStorage.isOpen = true; IStorage.opener = Player.Player; Player.Inventory.isStoring = true; Player.Inventory.storage = IStorage; Player.Inventory.updateItems(PlayerInventory.STORAGE, IStorage.items); Player.Inventory.sendStorage(); return; } Base.Messages.CommonMessage(Utilities.Messages.CommonMessages.CNoObjectFound, caller); }
public void Execute(IRocketPlayer caller, string[] args) { var PlayerCaller = (UnturnedPlayer)caller; InteractableDoorHinge component = raycastdoor.Getdoor(PlayerCaller); if (component != null) { bool isregistered = false; InteractableDoor door = component.door; bool flag = !door.isOpen; byte x; byte y; ushort plant; ushort index; BarricadeRegion barricadeRegion; BarricadeManager.tryGetInfo(door.transform, out x, out y, out plant, out index, out barricadeRegion); BarricadeDrop barricadedrop = barricadeRegion.drops[index]; var ID = barricadedrop.instanceID; foreach (Registereddoortype doorinfo in miscstuff.Instance.Configuration.Instance.listofregistereddoors) { if (doorinfo.ID == ID) { isregistered = true; if (caller.HasPermission(doorinfo.permission)) { //OPEN THE DOOOOOOOR Rocket.Core.Logging.Logger.Log("Player has perm: " + doorinfo.permission); SteamCaller steamCaller = (BarricadeManager)typeof(BarricadeManager).GetField("manager", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null); door.updateToggle(flag); steamCaller.channel.send("tellToggleDoor", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { x, y, plant, index, flag }); Rocket.Core.Logging.Logger.Log("Player toggled door " + doorinfo.ID); UnturnedChat.Say(caller, doorinfo.name + " door toggled", Color.yellow); } else { UnturnedChat.Say(caller, "You do not have the right permissions to open this door", Color.red); } } } if (isregistered == false) { UnturnedChat.Say(caller, "Door is not registered!", Color.red); } } }
public static InteractableDoorHinge Getdoor(UnturnedPlayer player) { PlayerLook look = player.Player.look; RaycastHit raycastHit; if (!PhysicsUtility.raycast(new Ray(look.aim.position, look.aim.forward), out raycastHit, 100, RayMasks.BARRICADE, 0)) { return(null); } InteractableDoorHinge interactabledoorhinge = raycastHit.transform.GetComponent <InteractableDoorHinge>(); return(interactabledoorhinge); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); var look = player.Look; if (PhysicsUtility.raycast(new Ray(look.aim.position, look.aim.forward), out RaycastHit hit, Mathf.Infinity, RayMasks.BARRICADE)) { InteractableDoorHinge hinge = hit.transform.GetComponent <InteractableDoorHinge>(); if (hinge != null) { InteractableDoor door = hinge.door; bool open = !door.isOpen; BarricadeManager.tryGetInfo(door.transform, out byte x, out byte y, out ushort plant, out ushort index, out BarricadeRegion region); BarricadeManager manager = (BarricadeManager)typeof(BarricadeManager).GetField("manager", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); door.updateToggle(open); manager.channel.send("tellToggleDoor", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { x, y, plant, index, open }); EssLang.Send(src, "DOOR_TOGGLED", open ? "opened" : "closed"); return(CommandResult.Success()); } else { return(CommandResult.LangError("DOOR_INVALID")); } }
public void Execute(IRocketPlayer caller, string[] args) { var PlayerCaller = (UnturnedPlayer)caller; InteractableDoorHinge component = raycastdoor.Getdoor(PlayerCaller); if (component != null) { InteractableDoor door = component.door; bool flag = !door.isOpen; byte x; byte y; ushort plant; ushort index; BarricadeRegion barricadeRegion; BarricadeManager.tryGetInfo(door.transform, out x, out y, out plant, out index, out barricadeRegion); BarricadeDrop barricadedrop = barricadeRegion.drops[index]; var ID = barricadedrop.instanceID; UnturnedChat.Say(caller, "Index of this door is: " + index); UnturnedChat.Say(caller, "Instance ID of this door is:" + ID); return; } }
public static Transform GetBarricadeTransform(Player player, out BarricadeData barricadeData, out BarricadeDrop drop) { barricadeData = null; drop = null; RaycastHit hit; if (PhysicsUtility.raycast(new Ray(player.look.aim.position, player.look.aim.forward), out hit, 3, RayMasks.BARRICADE_INTERACT)) { Transform transform = hit.transform; InteractableDoorHinge doorHinge = hit.transform.GetComponent <InteractableDoorHinge>(); if (doorHinge != null) { transform = doorHinge.door.transform; } if (BarricadeManager.tryGetInfo(transform, out _, out _, out _, out ushort index, out BarricadeRegion region, out drop)) { barricadeData = region.barricades[index]; return(region.drops[index].model); } } return(null); }
public static IEnumerator UpdateObjectList() { for (; ;) { bool flag = !DrawUtilities.ShouldRun(); if (flag) { yield return(new WaitForSeconds(2f)); } else { List <ESPObject> objects = ESPVariables.Objects; objects.Clear(); List <ESPTarget> targets = (from k in ESPOptions.PriorityTable.Keys orderby ESPOptions.PriorityTable[k] descending select k).ToList <ESPTarget>(); int num; for (int i = 0; i < targets.Count; i = num + 1) { ESPTarget target = targets[i]; ESPVisual vis = ESPOptions.VisualOptions[(int)target]; bool flag2 = !vis.Enabled; if (!flag2) { Vector2 pPos = OptimizationVariables.MainPlayer.transform.position; switch (target) { case ESPTarget.Игроки: { SteamPlayer[] objarray = (from p in Provider.clients orderby VectorUtilities.GetDistance(pPos, p.player.transform.position) descending select p).ToArray <SteamPlayer>(); bool useObjectCap = vis.UseObjectCap; if (useObjectCap) { objarray = objarray.TakeLast(vis.ObjectCap).ToArray <SteamPlayer>(); } for (int j = 0; j < objarray.Length; j = num + 1) { SteamPlayer sPlayer = objarray[j]; Player plr = sPlayer.player; bool flag3 = plr.life.isDead || plr == OptimizationVariables.MainPlayer; if (!flag3) { objects.Add(new ESPObject(target, plr, plr.gameObject)); sPlayer = null; plr = null; } num = j; } break; } case ESPTarget.Зомби: { Zombie[] objarr = (from obj in ZombieManager.regions.SelectMany((ZombieRegion r) => r.zombies) orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <Zombie>(); bool useObjectCap2 = vis.UseObjectCap; if (useObjectCap2) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray <Zombie>(); } for (int k2 = 0; k2 < objarr.Length; k2 = num + 1) { Zombie obj9 = objarr[k2]; objects.Add(new ESPObject(target, obj9, obj9.gameObject)); obj9 = null; num = k2; } break; } case ESPTarget.Предметы: { InteractableItem[] objarr2 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableItem>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableItem>(); bool useObjectCap3 = vis.UseObjectCap; if (useObjectCap3) { objarr2 = objarr2.TakeLast(vis.ObjectCap).ToArray <InteractableItem>(); } for (int l = 0; l < objarr2.Length; l = num + 1) { InteractableItem obj2 = objarr2[l]; bool flag4 = ItemUtilities.Whitelisted(obj2.asset, ItemOptions.ItemESPOptions) || !ESPOptions.FilterItems; if (flag4) { objects.Add(new ESPObject(target, obj2, obj2.gameObject)); } obj2 = null; num = l; } break; } case ESPTarget.Турели: { InteractableSentry[] objarr3 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableSentry>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableSentry>(); bool useObjectCap4 = vis.UseObjectCap; if (useObjectCap4) { objarr3 = objarr3.TakeLast(vis.ObjectCap).ToArray <InteractableSentry>(); } for (int m = 0; m < objarr3.Length; m = num + 1) { InteractableSentry obj3 = objarr3[m]; objects.Add(new ESPObject(target, obj3, obj3.gameObject)); obj3 = null; num = m; } break; } case ESPTarget.Кровати: { InteractableBed[] objarr4 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableBed>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableBed>(); bool useObjectCap5 = vis.UseObjectCap; if (useObjectCap5) { objarr4 = objarr4.TakeLast(vis.ObjectCap).ToArray <InteractableBed>(); } for (int n = 0; n < objarr4.Length; n = num + 1) { InteractableBed obj4 = objarr4[n]; objects.Add(new ESPObject(target, obj4, obj4.gameObject)); obj4 = null; num = n; } break; } case ESPTarget.КлеймФлаги: { InteractableClaim[] objarr5 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableClaim>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableClaim>(); bool useObjectCap6 = vis.UseObjectCap; if (useObjectCap6) { objarr5 = objarr5.TakeLast(vis.ObjectCap).ToArray <InteractableClaim>(); } for (int j2 = 0; j2 < objarr5.Length; j2 = num + 1) { InteractableClaim obj5 = objarr5[j2]; objects.Add(new ESPObject(target, obj5, obj5.gameObject)); obj5 = null; num = j2; } break; } case ESPTarget.Транспорт: { InteractableVehicle[] objarr6 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableVehicle>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableVehicle>(); bool useObjectCap7 = vis.UseObjectCap; if (useObjectCap7) { objarr6 = objarr6.TakeLast(vis.ObjectCap).ToArray <InteractableVehicle>(); } for (int j3 = 0; j3 < objarr6.Length; j3 = num + 1) { InteractableVehicle obj6 = objarr6[j3]; bool isDead = obj6.isDead; if (!isDead) { objects.Add(new ESPObject(target, obj6, obj6.gameObject)); obj6 = null; } num = j3; } break; } case ESPTarget.Ящики: { InteractableStorage[] objarr7 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableStorage>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableStorage>(); bool useObjectCap8 = vis.UseObjectCap; if (useObjectCap8) { objarr7 = objarr7.TakeLast(vis.ObjectCap).ToArray <InteractableStorage>(); } for (int j4 = 0; j4 < objarr7.Length; j4 = num + 1) { InteractableStorage obj7 = objarr7[j4]; objects.Add(new ESPObject(target, obj7, obj7.gameObject)); obj7 = null; num = j4; } break; } case ESPTarget.Генераторы: { InteractableGenerator[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableGenerator>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableGenerator>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableGenerator>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableGenerator obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Животные: { Animal[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <Animal>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <Animal>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <Animal>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { Animal obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Ловшуки: { InteractableTrap[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableTrap>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableTrap>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableTrap>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableTrap obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Аирдропы: { Carepackage[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <Carepackage>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <Carepackage>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <Carepackage>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { Carepackage obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Двери: { InteractableDoorHinge[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableDoorHinge>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableDoorHinge>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableDoorHinge>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableDoorHinge obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Ягоды: { InteractableForage[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableForage>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableForage>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableForage>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableForage obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.астения: { InteractableFarm[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableFarm>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableFarm>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableFarm>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableFarm obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.C4: { InteractableCharge[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableCharge>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableCharge>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableCharge>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableCharge obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Fire: { InteractableFire[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableFire>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableFire>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableFire>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableFire obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Лампы: { InteractableSpot[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableSpot>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableSpot>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableSpot>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableSpot obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Топливо: { InteractableObjectResource[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableObjectResource>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableObjectResource>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableObjectResource>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableObjectResource obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Генератор_безопасной_зоны: { InteractableSafezone[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableSafezone>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableSafezone>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableSafezone>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableSafezone obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.Генератор_Воздуха: { InteractableOxygenator[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableOxygenator>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableOxygenator>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableOxygenator>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableOxygenator obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } case ESPTarget.NPC: { ResourceManager[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <ResourceManager>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <ResourceManager>(); bool useObjectCap9 = vis.UseObjectCap; if (useObjectCap9) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <ResourceManager>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { ResourceManager obj8 = objarr8[j5]; objects.Add(new ESPObject(target, obj8, obj8.gameObject)); obj8 = null; num = j5; } break; } } } num = i; } yield return(new WaitForSeconds(5f)); objects = null; targets = null; } } }
public void OV_Update() { bool flag = !DrawUtilities.ShouldRun(); if (!flag) { bool flag2 = OptimizationVariables.MainPlayer.stance.stance != EPlayerStance.DRIVING && OptimizationVariables.MainPlayer.stance.stance != EPlayerStance.SITTING && !OptimizationVariables.MainPlayer.life.isDead && !OptimizationVariables.MainPlayer.workzone.isBuilding; if (flag2) { bool flag3 = Time.realtimeSinceStartup - OV_PlayerInteract.lastInteract > 0.1f; if (flag3) { int num = 0; bool flag4 = InteractionOptions.InteractThroughWalls && !PlayerCoroutines.IsSpying; if (flag4) { bool flag5 = !InteractionOptions.NoHitBarricades; if (flag5) { num |= RayMasks.BARRICADE; } bool flag6 = !InteractionOptions.NoHitItems; if (flag6) { num |= RayMasks.ITEM; } bool flag7 = !InteractionOptions.NoHitResources; if (flag7) { num |= RayMasks.RESOURCE; } bool flag8 = !InteractionOptions.NoHitStructures; if (flag8) { num |= RayMasks.STRUCTURE; } bool flag9 = !InteractionOptions.NoHitVehicles; if (flag9) { num |= RayMasks.VEHICLE; } bool flag10 = !InteractionOptions.NoHitEnvironment; if (flag10) { num |= (RayMasks.LARGE | RayMasks.MEDIUM | RayMasks.ENVIRONMENT | RayMasks.GROUND); } } else { num = RayMasks.PLAYER_INTERACT; } OV_PlayerInteract.lastInteract = Time.realtimeSinceStartup; float num2 = (InteractionOptions.InteractThroughWalls && !PlayerCoroutines.IsSpying) ? 20f : 4f; PhysicsUtility.raycast(new Ray(Camera.main.transform.position, Camera.main.transform.forward), out OV_PlayerInteract.hit, (OptimizationVariables.MainPlayer.look.perspective == EPlayerPerspective.THIRD) ? (num2 + 2f) : num2, num, QueryTriggerInteraction.UseGlobal); } Transform transform = (!(OV_PlayerInteract.hit.collider != null)) ? null : OV_PlayerInteract.hit.collider.transform; bool flag11 = transform != OV_PlayerInteract.focus; if (flag11) { bool flag12 = OV_PlayerInteract.focus != null && PlayerInteract.interactable != null; if (flag12) { InteractableDoorHinge componentInParent = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>(); bool flag13 = componentInParent != null; if (flag13) { HighlighterTool.unhighlight(componentInParent.door.transform); } else { HighlighterTool.unhighlight(PlayerInteract.interactable.transform); } } OV_PlayerInteract.focus = null; OV_PlayerInteract.target = null; OV_PlayerInteract.interactable = null; OV_PlayerInteract.interactable2 = null; bool flag14 = transform != null; if (flag14) { OV_PlayerInteract.focus = transform; OV_PlayerInteract.interactable = OV_PlayerInteract.focus.GetComponentInParent <Interactable>(); OV_PlayerInteract.interactable2 = OV_PlayerInteract.focus.GetComponentInParent <Interactable2>(); bool flag15 = PlayerInteract.interactable != null; if (flag15) { OV_PlayerInteract.target = PlayerInteract.interactable.transform.FindChildRecursive("Target"); bool flag16 = PlayerInteract.interactable.checkInteractable(); if (flag16) { bool isEnabled = PlayerUI.window.isEnabled; if (isEnabled) { bool flag17 = PlayerInteract.interactable.checkUseable(); if (flag17) { Color green; bool flag18 = !PlayerInteract.interactable.checkHighlight(out green); if (flag18) { green = Color.green; } InteractableDoorHinge componentInParent2 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>(); bool flag19 = componentInParent2 != null; if (flag19) { HighlighterTool.highlight(componentInParent2.door.transform, green); } else { HighlighterTool.highlight(PlayerInteract.interactable.transform, green); } } else { Color red = Color.red; InteractableDoorHinge componentInParent3 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>(); bool flag20 = componentInParent3 != null; if (flag20) { HighlighterTool.highlight(componentInParent3.door.transform, red); } else { HighlighterTool.highlight(PlayerInteract.interactable.transform, red); } } } } else { OV_PlayerInteract.target = null; OV_PlayerInteract.interactable = null; } } } } } else { bool flag21 = OV_PlayerInteract.focus != null && PlayerInteract.interactable != null; if (flag21) { InteractableDoorHinge componentInParent4 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>(); bool flag22 = componentInParent4 != null; if (flag22) { HighlighterTool.unhighlight(componentInParent4.door.transform); } else { HighlighterTool.unhighlight(PlayerInteract.interactable.transform); } } OV_PlayerInteract.focus = null; OV_PlayerInteract.target = null; OV_PlayerInteract.interactable = null; OV_PlayerInteract.interactable2 = null; } bool isDead = OptimizationVariables.MainPlayer.life.isDead; if (!isDead) { bool flag23 = PlayerInteract.interactable != null; if (flag23) { EPlayerMessage message; string text; Color color; bool flag24 = PlayerInteract.interactable.checkHint(out message, out text, out color) && !PlayerUI.window.showCursor; if (flag24) { bool flag25 = PlayerInteract.interactable.CompareTag("Item"); if (flag25) { PlayerUI.hint((!(OV_PlayerInteract.target != null)) ? OV_PlayerInteract.focus : OV_PlayerInteract.target, message, text, color, new object[] { ((InteractableItem)PlayerInteract.interactable).item, ((InteractableItem)PlayerInteract.interactable).asset }); } else { PlayerUI.hint((!(OV_PlayerInteract.target != null)) ? OV_PlayerInteract.focus : OV_PlayerInteract.target, message, text, color, new object[0]); } } } else { bool flag26 = OV_PlayerInteract.purchaseAsset != null && OptimizationVariables.MainPlayer.movement.purchaseNode != null && !PlayerUI.window.showCursor; if (flag26) { PlayerUI.hint(null, EPlayerMessage.PURCHASE, string.Empty, Color.white, new object[] { OV_PlayerInteract.purchaseAsset.itemName, OptimizationVariables.MainPlayer.movement.purchaseNode.cost }); } else { bool flag27 = OV_PlayerInteract.focus != null && OV_PlayerInteract.focus.CompareTag("Enemy"); if (flag27) { Player player = DamageTool.getPlayer(OV_PlayerInteract.focus); bool flag28 = player != null && player != Player.player && !PlayerUI.window.showCursor; if (flag28) { PlayerUI.hint(null, EPlayerMessage.ENEMY, string.Empty, Color.white, new object[] { player.channel.owner }); } } } } EPlayerMessage message2; float data; bool flag29 = PlayerInteract.interactable2 != null && PlayerInteract.interactable2.checkHint(out message2, out data) && !PlayerUI.window.showCursor; if (flag29) { PlayerUI.hint2(EPlayerMessage.ENEMY, (!OV_PlayerInteract.isHoldingKey) ? 0f : ((Time.realtimeSinceStartup - OV_PlayerInteract.lastKeyDown) / this.salvageTime), 1f); } bool flag30 = (OptimizationVariables.MainPlayer.stance.stance == EPlayerStance.DRIVING || OptimizationVariables.MainPlayer.stance.stance == EPlayerStance.SITTING) && !Input.GetKey(KeyCode.LeftShift); if (flag30) { bool keyDown = Input.GetKeyDown(KeyCode.F1); if (keyDown) { this.hotkey(0); } bool keyDown2 = Input.GetKeyDown(KeyCode.F2); if (keyDown2) { this.hotkey(1); } bool keyDown3 = Input.GetKeyDown(KeyCode.F3); if (keyDown3) { this.hotkey(2); } bool keyDown4 = Input.GetKeyDown(KeyCode.F4); if (keyDown4) { this.hotkey(3); } bool keyDown5 = Input.GetKeyDown(KeyCode.F5); if (keyDown5) { this.hotkey(4); } bool keyDown6 = Input.GetKeyDown(KeyCode.F6); if (keyDown6) { this.hotkey(5); } bool keyDown7 = Input.GetKeyDown(KeyCode.F7); if (keyDown7) { this.hotkey(6); } bool keyDown8 = Input.GetKeyDown(KeyCode.F8); if (keyDown8) { this.hotkey(7); } bool keyDown9 = Input.GetKeyDown(KeyCode.F9); if (keyDown9) { this.hotkey(8); } bool keyDown10 = Input.GetKeyDown(KeyCode.F10); if (keyDown10) { this.hotkey(9); } } bool keyDown11 = Input.GetKeyDown(ControlsSettings.interact); if (keyDown11) { OV_PlayerInteract.lastKeyDown = Time.realtimeSinceStartup; OV_PlayerInteract.isHoldingKey = true; } bool flag31 = Input.GetKeyDown(ControlsSettings.inspect) && ControlsSettings.inspect != ControlsSettings.interact && OptimizationVariables.MainPlayer.equipment.canInspect; if (flag31) { OptimizationVariables.MainPlayer.channel.send("askInspect", ESteamCall.SERVER, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, new object[0]); } bool flag32 = OV_PlayerInteract.isHoldingKey; if (flag32) { bool keyUp = Input.GetKeyUp(ControlsSettings.interact); if (keyUp) { OV_PlayerInteract.isHoldingKey = false; bool showCursor = PlayerUI.window.showCursor; if (showCursor) { bool flag33 = OptimizationVariables.MainPlayer.inventory.isStoring && OptimizationVariables.MainPlayer.inventory.shouldInteractCloseStorage; if (flag33) { PlayerDashboardUI.close(); PlayerLifeUI.open(); } else { bool active = PlayerBarricadeSignUI.active; if (active) { PlayerBarricadeSignUI.close(); PlayerLifeUI.open(); } else { bool active2 = PlayerBarricadeStereoUI.active; if (active2) { PlayerBarricadeStereoUI.close(); PlayerLifeUI.open(); } else { bool active3 = PlayerBarricadeLibraryUI.active; if (active3) { PlayerBarricadeLibraryUI.close(); PlayerLifeUI.open(); } else { bool active4 = PlayerBarricadeMannequinUI.active; if (active4) { PlayerBarricadeMannequinUI.close(); PlayerLifeUI.open(); } else { bool active5 = PlayerNPCDialogueUI.active; if (active5) { bool dialogueAnimating = PlayerNPCDialogueUI.dialogueAnimating; if (dialogueAnimating) { PlayerNPCDialogueUI.skipText(); } else { bool dialogueHasNextPage = PlayerNPCDialogueUI.dialogueHasNextPage; if (dialogueHasNextPage) { PlayerNPCDialogueUI.nextPage(); } else { PlayerNPCDialogueUI.close(); PlayerLifeUI.open(); } } } else { bool active6 = PlayerNPCQuestUI.active; if (active6) { PlayerNPCQuestUI.closeNicely(); } else { bool active7 = PlayerNPCVendorUI.active; if (active7) { PlayerNPCVendorUI.closeNicely(); } } } } } } } } } else { bool flag34 = OptimizationVariables.MainPlayer.stance.stance == EPlayerStance.DRIVING || OptimizationVariables.MainPlayer.stance.stance == EPlayerStance.SITTING; if (flag34) { VehicleManager.exitVehicle(); } else { bool flag35 = OV_PlayerInteract.focus != null && PlayerInteract.interactable != null; if (flag35) { bool flag36 = PlayerInteract.interactable.checkUseable(); if (flag36) { PlayerInteract.interactable.use(); } } else { bool flag37 = OV_PlayerInteract.purchaseAsset != null; if (flag37) { bool flag38 = OptimizationVariables.MainPlayer.skills.experience >= OptimizationVariables.MainPlayer.movement.purchaseNode.cost; if (flag38) { OptimizationVariables.MainPlayer.skills.sendPurchase(OptimizationVariables.MainPlayer.movement.purchaseNode); } } else { bool flag39 = ControlsSettings.inspect == ControlsSettings.interact && OptimizationVariables.MainPlayer.equipment.canInspect; if (flag39) { OptimizationVariables.MainPlayer.channel.send("askInspect", ESteamCall.SERVER, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, new object[0]); } } } } } } else { bool flag40 = Time.realtimeSinceStartup - OV_PlayerInteract.lastKeyDown > this.salvageTime; if (flag40) { OV_PlayerInteract.isHoldingKey = false; bool flag41 = !PlayerUI.window.showCursor && PlayerInteract.interactable2 != null; if (flag41) { PlayerInteract.interactable2.use(); } } } } } } }
// Token: 0x06000187 RID: 391 RVA: 0x00002B7C File Offset: 0x00000D7C public static IEnumerator UpdateObjectList() { for (;;) { bool flag = !DrawUtilities.ShouldRun(); bool flag5 = flag; if (flag5) { yield return(new WaitForSeconds(2f)); } else { List <ESPObject> objects = ESPVariables.Objects; objects.Clear(); List <ESPTarget> targets = (from k in ESPOptions.PriorityTable.Keys orderby ESPOptions.PriorityTable[k] descending select k).ToList <ESPTarget>(); int num; for (int i = 0; i < targets.Count; i = num + 1) { ESPTarget target = targets[i]; ESPVisual vis = ESPOptions.VisualOptions[(int)target]; bool flag2 = !vis.Enabled; bool flag6 = !flag2; if (flag6) { Vector3 pPos = OptimizationVariables.MainPlayer.transform.position; switch (target) { case ESPTarget.Игроки: { SteamPlayer[] objarray = (from p in Provider.clients orderby VectorUtilities.GetDistance(pPos, p.player.transform.position) descending select p).ToArray <SteamPlayer>(); bool useObjectCap = vis.UseObjectCap; bool flag7 = useObjectCap; if (flag7) { objarray = objarray.TakeLast(vis.ObjectCap).ToArray <SteamPlayer>(); } for (int j = 0; j < objarray.Length; j = num + 1) { SteamPlayer sPlayer = objarray[j]; Player plr = sPlayer.player; bool flag3 = plr.life.isDead || plr == OptimizationVariables.MainPlayer; bool flag8 = !flag3; if (flag8) { objects.Add(new ESPObject(target, plr, plr.gameObject)); sPlayer = null; plr = null; } num = j; sPlayer = null; plr = null; } break; } case ESPTarget.Зомби: { Zombie[] objarr = (from obj in ZombieManager.regions.SelectMany((ZombieRegion r) => r.zombies) orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <Zombie>(); bool useObjectCap2 = vis.UseObjectCap; bool flag9 = useObjectCap2; if (flag9) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray <Zombie>(); } for (int k2 = 0; k2 < objarr.Length; k2 = num + 1) { Zombie obj9 = objarr[k2]; objects.Add(new ESPObject(target, obj9, obj9.gameObject)); obj9 = null; num = k2; obj9 = null; } break; } case ESPTarget.Предметы: { InteractableItem[] objarr2 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableItem>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableItem>(); bool useObjectCap3 = vis.UseObjectCap; bool flag10 = useObjectCap3; if (flag10) { objarr2 = objarr2.TakeLast(vis.ObjectCap).ToArray <InteractableItem>(); } for (int l = 0; l < objarr2.Length; l = num + 1) { InteractableItem obj10 = objarr2[l]; bool flag4 = ItemUtilities.Whitelisted(obj10.asset, ItemOptions.ItemESPOptions) || !ESPOptions.FilterItems; bool flag11 = flag4; if (flag11) { objects.Add(new ESPObject(target, obj10, obj10.gameObject)); } obj10 = null; num = l; obj10 = null; } break; } case ESPTarget.Турели: { InteractableSentry[] objarr3 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableSentry>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableSentry>(); bool useObjectCap4 = vis.UseObjectCap; bool flag12 = useObjectCap4; if (flag12) { objarr3 = objarr3.TakeLast(vis.ObjectCap).ToArray <InteractableSentry>(); } for (int m = 0; m < objarr3.Length; m = num + 1) { InteractableSentry obj11 = objarr3[m]; objects.Add(new ESPObject(target, obj11, obj11.gameObject)); obj11 = null; num = m; obj11 = null; } break; } case ESPTarget.Кровати: { InteractableBed[] objarr4 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableBed>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableBed>(); bool useObjectCap5 = vis.UseObjectCap; bool flag13 = useObjectCap5; if (flag13) { objarr4 = objarr4.TakeLast(vis.ObjectCap).ToArray <InteractableBed>(); } for (int n = 0; n < objarr4.Length; n = num + 1) { InteractableBed obj12 = objarr4[n]; objects.Add(new ESPObject(target, obj12, obj12.gameObject)); obj12 = null; num = n; obj12 = null; } break; } case ESPTarget.КлеймФлаги: { InteractableClaim[] objarr5 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableClaim>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableClaim>(); bool useObjectCap6 = vis.UseObjectCap; bool flag14 = useObjectCap6; if (flag14) { objarr5 = objarr5.TakeLast(vis.ObjectCap).ToArray <InteractableClaim>(); } for (int j2 = 0; j2 < objarr5.Length; j2 = num + 1) { InteractableClaim obj13 = objarr5[j2]; objects.Add(new ESPObject(target, obj13, obj13.gameObject)); obj13 = null; num = j2; obj13 = null; } break; } case ESPTarget.Транспорт: { InteractableVehicle[] objarr6 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableVehicle>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableVehicle>(); bool useObjectCap7 = vis.UseObjectCap; bool flag15 = useObjectCap7; if (flag15) { objarr6 = objarr6.TakeLast(vis.ObjectCap).ToArray <InteractableVehicle>(); } for (int j3 = 0; j3 < objarr6.Length; j3 = num + 1) { InteractableVehicle obj14 = objarr6[j3]; bool isDead = obj14.isDead; bool flag16 = !isDead; if (flag16) { objects.Add(new ESPObject(target, obj14, obj14.gameObject)); obj14 = null; } num = j3; obj14 = null; } break; } case ESPTarget.Ящики: { InteractableStorage[] objarr7 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableStorage>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableStorage>(); bool useObjectCap8 = vis.UseObjectCap; bool flag17 = useObjectCap8; if (flag17) { objarr7 = objarr7.TakeLast(vis.ObjectCap).ToArray <InteractableStorage>(); } for (int j4 = 0; j4 < objarr7.Length; j4 = num + 1) { InteractableStorage obj15 = objarr7[j4]; objects.Add(new ESPObject(target, obj15, obj15.gameObject)); obj15 = null; num = j4; obj15 = null; } break; } case ESPTarget.Генераторы: { InteractableGenerator[] objarr8 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableGenerator>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableGenerator>(); bool useObjectCap9 = vis.UseObjectCap; bool flag18 = useObjectCap9; if (flag18) { objarr8 = objarr8.TakeLast(vis.ObjectCap).ToArray <InteractableGenerator>(); } for (int j5 = 0; j5 < objarr8.Length; j5 = num + 1) { InteractableGenerator obj16 = objarr8[j5]; objects.Add(new ESPObject(target, obj16, obj16.gameObject)); obj16 = null; num = j5; obj16 = null; } break; } case ESPTarget.Животные: { Animal[] objarr9 = (from obj in UnityEngine.Object.FindObjectsOfType <Animal>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <Animal>(); bool useObjectCap10 = vis.UseObjectCap; bool flag19 = useObjectCap10; if (flag19) { objarr9 = objarr9.TakeLast(vis.ObjectCap).ToArray <Animal>(); } for (int j6 = 0; j6 < objarr9.Length; j6 = num + 1) { Animal obj17 = objarr9[j6]; objects.Add(new ESPObject(target, obj17, obj17.gameObject)); obj17 = null; num = j6; obj17 = null; } break; } case ESPTarget.Ловшуки: { InteractableTrap[] objarr10 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableTrap>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableTrap>(); bool useObjectCap11 = vis.UseObjectCap; bool flag20 = useObjectCap11; if (flag20) { objarr10 = objarr10.TakeLast(vis.ObjectCap).ToArray <InteractableTrap>(); } for (int j7 = 0; j7 < objarr10.Length; j7 = num + 1) { InteractableTrap obj18 = objarr10[j7]; objects.Add(new ESPObject(target, obj18, obj18.gameObject)); obj18 = null; num = j7; obj18 = null; } break; } case ESPTarget.Аирдропы: { Carepackage[] objarr11 = (from obj in UnityEngine.Object.FindObjectsOfType <Carepackage>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <Carepackage>(); bool useObjectCap12 = vis.UseObjectCap; bool flag21 = useObjectCap12; if (flag21) { objarr11 = objarr11.TakeLast(vis.ObjectCap).ToArray <Carepackage>(); } for (int j8 = 0; j8 < objarr11.Length; j8 = num + 1) { Carepackage obj19 = objarr11[j8]; objects.Add(new ESPObject(target, obj19, obj19.gameObject)); obj19 = null; num = j8; obj19 = null; } break; } case ESPTarget.Двери: { InteractableDoorHinge[] objarr12 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableDoorHinge>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableDoorHinge>(); bool useObjectCap13 = vis.UseObjectCap; bool flag22 = useObjectCap13; if (flag22) { objarr12 = objarr12.TakeLast(vis.ObjectCap).ToArray <InteractableDoorHinge>(); } for (int j9 = 0; j9 < objarr12.Length; j9 = num + 1) { InteractableDoorHinge obj20 = objarr12[j9]; objects.Add(new ESPObject(target, obj20, obj20.gameObject)); obj20 = null; num = j9; obj20 = null; } break; } case ESPTarget.Ягоды: { InteractableForage[] objarr13 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableForage>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableForage>(); bool useObjectCap14 = vis.UseObjectCap; bool flag23 = useObjectCap14; if (flag23) { objarr13 = objarr13.TakeLast(vis.ObjectCap).ToArray <InteractableForage>(); } for (int j10 = 0; j10 < objarr13.Length; j10 = num + 1) { InteractableForage obj21 = objarr13[j10]; objects.Add(new ESPObject(target, obj21, obj21.gameObject)); obj21 = null; num = j10; obj21 = null; } break; } case ESPTarget.астения: { InteractableFarm[] objarr14 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableFarm>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableFarm>(); bool useObjectCap15 = vis.UseObjectCap; bool flag24 = useObjectCap15; if (flag24) { objarr14 = objarr14.TakeLast(vis.ObjectCap).ToArray <InteractableFarm>(); } for (int j11 = 0; j11 < objarr14.Length; j11 = num + 1) { InteractableFarm obj22 = objarr14[j11]; objects.Add(new ESPObject(target, obj22, obj22.gameObject)); obj22 = null; num = j11; obj22 = null; } break; } case ESPTarget.C4: { InteractableCharge[] objarr15 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableCharge>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableCharge>(); bool useObjectCap16 = vis.UseObjectCap; bool flag25 = useObjectCap16; if (flag25) { objarr15 = objarr15.TakeLast(vis.ObjectCap).ToArray <InteractableCharge>(); } for (int j12 = 0; j12 < objarr15.Length; j12 = num + 1) { InteractableCharge obj23 = objarr15[j12]; objects.Add(new ESPObject(target, obj23, obj23.gameObject)); obj23 = null; num = j12; obj23 = null; } break; } case ESPTarget.Fire: { InteractableFire[] objarr16 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableFire>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableFire>(); bool useObjectCap17 = vis.UseObjectCap; bool flag26 = useObjectCap17; if (flag26) { objarr16 = objarr16.TakeLast(vis.ObjectCap).ToArray <InteractableFire>(); } for (int j13 = 0; j13 < objarr16.Length; j13 = num + 1) { InteractableFire obj24 = objarr16[j13]; objects.Add(new ESPObject(target, obj24, obj24.gameObject)); obj24 = null; num = j13; obj24 = null; } break; } case ESPTarget.Лампы: { InteractableSpot[] objarr17 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableSpot>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableSpot>(); bool useObjectCap18 = vis.UseObjectCap; bool flag27 = useObjectCap18; if (flag27) { objarr17 = objarr17.TakeLast(vis.ObjectCap).ToArray <InteractableSpot>(); } for (int j14 = 0; j14 < objarr17.Length; j14 = num + 1) { InteractableSpot obj25 = objarr17[j14]; objects.Add(new ESPObject(target, obj25, obj25.gameObject)); obj25 = null; num = j14; obj25 = null; } break; } case ESPTarget.Топливо: { InteractableObjectResource[] objarr18 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableObjectResource>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableObjectResource>(); bool useObjectCap19 = vis.UseObjectCap; bool flag28 = useObjectCap19; if (flag28) { objarr18 = objarr18.TakeLast(vis.ObjectCap).ToArray <InteractableObjectResource>(); } for (int j15 = 0; j15 < objarr18.Length; j15 = num + 1) { InteractableObjectResource obj26 = objarr18[j15]; objects.Add(new ESPObject(target, obj26, obj26.gameObject)); obj26 = null; num = j15; obj26 = null; } break; } case ESPTarget.Генератор_безопасной_зоны: { InteractableSafezone[] objarr19 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableSafezone>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableSafezone>(); bool useObjectCap20 = vis.UseObjectCap; bool flag29 = useObjectCap20; if (flag29) { objarr19 = objarr19.TakeLast(vis.ObjectCap).ToArray <InteractableSafezone>(); } for (int j16 = 0; j16 < objarr19.Length; j16 = num + 1) { InteractableSafezone obj27 = objarr19[j16]; objects.Add(new ESPObject(target, obj27, obj27.gameObject)); obj27 = null; num = j16; obj27 = null; } break; } case ESPTarget.Генератор_Воздуха: { InteractableOxygenator[] objarr20 = (from obj in UnityEngine.Object.FindObjectsOfType <InteractableOxygenator>() orderby VectorUtilities.GetDistance(pPos, obj.transform.position) descending select obj).ToArray <InteractableOxygenator>(); bool useObjectCap21 = vis.UseObjectCap; bool flag30 = useObjectCap21; if (flag30) { objarr20 = objarr20.TakeLast(vis.ObjectCap).ToArray <InteractableOxygenator>(); } for (int j17 = 0; j17 < objarr20.Length; j17 = num + 1) { InteractableOxygenator obj28 = objarr20[j17]; objects.Add(new ESPObject(target, obj28, obj28.gameObject)); obj28 = null; num = j17; obj28 = null; } break; } } } num = i; vis = null; } yield return(new WaitForSeconds(5f)); objects = null; targets = null; objects = null; targets = null; } } yield break; }
public void punch(EPlayerPunch mode) { if (Player.player.channel.isOwner) { Player.player.playSound((AudioClip)Resources.Load("Sounds/General/Punch")); Ray ray = new Ray(Player.player.look.aim.position, Player.player.look.aim.forward); RaycastInfo raycastInfo = DamageTool.raycast(ray, MP_Player.farPunch ? 12f : 1.75f, RayMasks.DAMAGE_CLIENT); //1.75 default if (raycastInfo.player != null && DAMAGE_PLAYER_MULTIPLIER.damage > 1f && (Player.player.channel.owner.playerID.group == CSteamID.Nil || raycastInfo.player.channel.owner.playerID.group != Player.player.channel.owner.playerID.group) && Provider.isPvP) { PlayerUI.hitmark(0, raycastInfo.point, false, (raycastInfo.limb != ELimb.SKULL) ? EPlayerHit.ENTITIY : EPlayerHit.CRITICAL); } else if ((raycastInfo.zombie != null && DAMAGE_ZOMBIE_MULTIPLIER.damage > 1f) || (raycastInfo.animal != null && DAMAGE_ANIMAL_MULTIPLIER.damage > 1f)) { PlayerUI.hitmark(0, raycastInfo.point, false, (raycastInfo.limb != ELimb.SKULL) ? EPlayerHit.ENTITIY : EPlayerHit.CRITICAL); } else if (raycastInfo.transform != null && raycastInfo.transform.CompareTag("Barricade") && DAMAGE_BARRICADE > 1f) { InteractableDoorHinge component = raycastInfo.transform.GetComponent <InteractableDoorHinge>(); if (component != null) { raycastInfo.transform = component.transform.parent.parent; } ushort id; if (ushort.TryParse(raycastInfo.transform.name, out id)) { ItemBarricadeAsset itemBarricadeAsset = (ItemBarricadeAsset)Assets.find(EAssetType.ITEM, id); if (itemBarricadeAsset != null && itemBarricadeAsset.isVulnerable) { PlayerUI.hitmark(0, raycastInfo.point, false, EPlayerHit.BUILD); } } } else if (raycastInfo.transform != null && raycastInfo.transform.CompareTag("Structure") && DAMAGE_STRUCTURE > 1f) { ushort id2; if (ushort.TryParse(raycastInfo.transform.name, out id2)) { ItemStructureAsset itemStructureAsset = (ItemStructureAsset)Assets.find(EAssetType.ITEM, id2); if (itemStructureAsset != null && itemStructureAsset.isVulnerable) { PlayerUI.hitmark(0, raycastInfo.point, false, EPlayerHit.BUILD); } } } else if (raycastInfo.vehicle != null && !raycastInfo.vehicle.isDead && DAMAGE_VEHICLE > 1f) { if (raycastInfo.vehicle.asset != null && raycastInfo.vehicle.asset.isVulnerable) { PlayerUI.hitmark(0, raycastInfo.point, false, EPlayerHit.BUILD); } } else if (raycastInfo.transform != null && raycastInfo.transform.CompareTag("Resource") && DAMAGE_RESOURCE > 1f) { byte x; byte y; ushort index; if (ResourceManager.tryGetRegion(raycastInfo.transform, out x, out y, out index)) { ResourceSpawnpoint resourceSpawnpoint = ResourceManager.getResourceSpawnpoint(x, y, index); if (resourceSpawnpoint != null && !resourceSpawnpoint.isDead) { PlayerUI.hitmark(0, raycastInfo.point, false, EPlayerHit.BUILD); } } } else if (raycastInfo.transform != null && DAMAGE_OBJECT > 1f) { InteractableObjectRubble component2 = raycastInfo.transform.GetComponent <InteractableObjectRubble>(); if (component2 != null) { raycastInfo.section = component2.getSection(raycastInfo.collider.transform); if (!component2.isSectionDead(raycastInfo.section)) { PlayerUI.hitmark(0, raycastInfo.point, false, EPlayerHit.BUILD); } } } Player.player.input.sendRaycast(raycastInfo); } if (mode == EPlayerPunch.LEFT) { Player.player.animator.play("Punch_Left", false); if (Provider.isServer) { Player.player.animator.sendGesture(EPlayerGesture.PUNCH_LEFT, false); } } else if (mode == EPlayerPunch.RIGHT) { Player.player.animator.play("Punch_Right", false); if (Provider.isServer) { Player.player.animator.sendGesture(EPlayerGesture.PUNCH_RIGHT, false); } } if (Provider.isServer) { if (!Player.player.input.hasInputs()) { return; } InputInfo input = Player.player.input.getInput(true); if (input == null) { return; } if ((input.point - Player.player.look.aim.position).sqrMagnitude > 36f) { return; } DamageTool.impact(input.point, input.normal, input.material, input.type != ERaycastInfoType.NONE && input.type != ERaycastInfoType.OBJECT); EPlayerKill ePlayerKill = EPlayerKill.NONE; uint num = 0u; float num2 = 1f; num2 *= 1f + Player.player.channel.owner.player.skills.mastery(0, 0) * 0.5f; if (input.type == ERaycastInfoType.PLAYER) { typeof(PlayerEquipment).GetField("lastPunching", BindingFlags.Instance | BindingFlags.Public).SetValue(null, Time.realtimeSinceStartup); if (input.player != null && (Player.player.channel.owner.playerID.group == CSteamID.Nil || input.player.channel.owner.playerID.group != Player.player.channel.owner.playerID.group) && Provider.isPvP) { DamageTool.damage(input.player, EDeathCause.PUNCH, input.limb, Player.player.channel.owner.playerID.steamID, input.direction, DAMAGE_PLAYER_MULTIPLIER, num2, true, out ePlayerKill); } } else if (input.type == ERaycastInfoType.ZOMBIE) { if (input.zombie != null) { DamageTool.damage(input.zombie, input.limb, input.direction, DAMAGE_ZOMBIE_MULTIPLIER, num2, true, out ePlayerKill, out num); if (Player.player.movement.nav != 255) { input.zombie.alert(base.transform.position, true); } } } else if (input.type == ERaycastInfoType.ANIMAL) { typeof(PlayerEquipment).GetField("lastPunching", BindingFlags.Instance | BindingFlags.Public).SetValue(null, Time.realtimeSinceStartup); if (input.animal != null) { DamageTool.damage(input.animal, input.limb, input.direction, DAMAGE_ANIMAL_MULTIPLIER, num2, out ePlayerKill, out num); input.animal.alertPoint(base.transform.position, true); } } else if (input.type == ERaycastInfoType.VEHICLE) { typeof(PlayerEquipment).GetField("lastPunching", BindingFlags.Instance | BindingFlags.Public).SetValue(null, Time.realtimeSinceStartup); if (input.vehicle != null && input.vehicle.asset != null && input.vehicle.asset.isVulnerable) { DamageTool.damage(input.vehicle, false, DAMAGE_VEHICLE, num2, true, out ePlayerKill); } } else if (input.type == ERaycastInfoType.BARRICADE) { typeof(PlayerEquipment).GetField("lastPunching", BindingFlags.Instance | BindingFlags.Public).SetValue(null, Time.realtimeSinceStartup); ushort id3; if (input.transform != null && input.transform.CompareTag("Barricade") && ushort.TryParse(input.transform.name, out id3)) { ItemBarricadeAsset itemBarricadeAsset2 = (ItemBarricadeAsset)Assets.find(EAssetType.ITEM, id3); if (itemBarricadeAsset2 != null && itemBarricadeAsset2.isVulnerable) { DamageTool.damage(input.transform, false, DAMAGE_BARRICADE, num2, out ePlayerKill); } } } else if (input.type == ERaycastInfoType.STRUCTURE) { typeof(PlayerEquipment).GetField("lastPunching", BindingFlags.Instance | BindingFlags.Public).SetValue(null, Time.realtimeSinceStartup); ushort id4; if (input.transform != null && input.transform.CompareTag("Structure") && ushort.TryParse(input.transform.name, out id4)) { ItemStructureAsset itemStructureAsset2 = (ItemStructureAsset)Assets.find(EAssetType.ITEM, id4); if (itemStructureAsset2 != null && itemStructureAsset2.isVulnerable) { DamageTool.damage(input.transform, false, input.direction, DAMAGE_STRUCTURE, num2, out ePlayerKill); } } } else if (input.type == ERaycastInfoType.RESOURCE) { typeof(PlayerEquipment).GetField("lastPunching", BindingFlags.Instance | BindingFlags.Public).SetValue(null, Time.realtimeSinceStartup); byte x2; byte y2; ushort index2; if (input.transform != null && input.transform.CompareTag("Resource") && ResourceManager.tryGetRegion(input.transform, out x2, out y2, out index2)) { ResourceSpawnpoint resourceSpawnpoint2 = ResourceManager.getResourceSpawnpoint(x2, y2, index2); if (resourceSpawnpoint2 != null && !resourceSpawnpoint2.isDead) { DamageTool.damage(input.transform, input.direction, DAMAGE_RESOURCE, num2, 1f, out ePlayerKill, out num); } } } else if (input.type == ERaycastInfoType.OBJECT && input.transform != null && input.section < 255) { InteractableObjectRubble component3 = input.transform.GetComponent <InteractableObjectRubble>(); if (component3 != null && !component3.isSectionDead(input.section)) { DamageTool.damage(input.transform, input.direction, input.section, DAMAGE_OBJECT, num2, out ePlayerKill, out num); } } if (Level.info.type == ELevelType.HORDE) { if (input.zombie != null) { if (input.limb == ELimb.SKULL) { Player.player.skills.askPay(10u); } else { Player.player.skills.askPay(5u); } } if (ePlayerKill == EPlayerKill.ZOMBIE) { if (input.limb == ELimb.SKULL) { Player.player.skills.askPay(50u); } else { Player.player.skills.askPay(25u); } } } else { if (ePlayerKill == EPlayerKill.PLAYER) { Player.player.sendStat(EPlayerStat.KILLS_PLAYERS); if (Level.info.type == ELevelType.ARENA) { Player.player.skills.askPay(100u); } } else if (ePlayerKill == EPlayerKill.ZOMBIE) { Player.player.sendStat(EPlayerStat.KILLS_ZOMBIES_NORMAL); } else if (ePlayerKill == EPlayerKill.MEGA) { Player.player.sendStat(EPlayerStat.KILLS_ZOMBIES_MEGA); } else if (ePlayerKill == EPlayerKill.ANIMAL) { Player.player.sendStat(EPlayerStat.KILLS_ANIMALS); } else if (ePlayerKill == EPlayerKill.RESOURCE) { Player.player.sendStat(EPlayerStat.FOUND_RESOURCES); } if (num > 0u) { Player.player.skills.askPay(num); } } } }
public void Execute(IRocketPlayer caller, string[] command) { var uPlayer = caller as UnturnedPlayer; if (command.Length != 1) { ChatManager.serverSendMessage(Syntax, Color.red, null, uPlayer.SteamPlayer(), EChatMode.GLOBAL, Main.Instance.Configuration.Instance.LogoImage, true); } else { if (command[0] == "add") { if (PhysicsUtility.raycast(new Ray(uPlayer.Player.look.aim.position, uPlayer.Player.look.aim.forward), out RaycastHit ahit, Mathf.Infinity, RayMasks.BARRICADE_INTERACT)) { InteractableDoorHinge door = ahit.transform.GetComponent <InteractableDoorHinge>(); Interactable2SalvageBarricade barri = ahit.transform.GetComponent <Interactable2SalvageBarricade>(); if (door != null) { BarricadeManager.tryGetInfo(door.door.transform, out byte x, out byte y, out ushort index, out ushort bindex, out BarricadeRegion barricadeR); var Bindex = barricadeR.barricades[bindex]; var Bx = Bindex.point.x; var By = Bindex.point.y; var Bz = Bindex.point.z; var n_blacklist = new DoorBlackList { x = Bx, y = By, z = Bz }; Main.Instance.AddPlayer(n_blacklist); ChatManager.serverSendMessage("You have successfully added this door/storage to the blacklist!", Color.red, null, uPlayer.SteamPlayer(), EChatMode.GLOBAL, Main.Instance.Configuration.Instance.LogoImage, true); } else if (barri != null) { BarricadeManager.tryGetInfo(ahit.transform, out byte x, out byte y, out ushort index, out ushort bindex, out BarricadeRegion barricadeR); var Bindex = barricadeR.barricades[bindex]; var Bx = Bindex.point.x; var By = Bindex.point.y; var Bz = Bindex.point.z; var n_blacklist = new DoorBlackList { x = Bx, y = By, z = Bz }; Main.Instance.AddPlayer(n_blacklist); ChatManager.serverSendMessage("You have successfully added this door/storage to the blacklist!", Color.red, null, uPlayer.SteamPlayer(), EChatMode.GLOBAL, Main.Instance.Configuration.Instance.LogoImage, true); } } else if (command[0] == "remove") { if (PhysicsUtility.raycast(new Ray(uPlayer.Player.look.aim.position, uPlayer.Player.look.aim.forward), out RaycastHit rhit, Mathf.Infinity, RayMasks.BARRICADE_INTERACT)) { var rdoor = rhit.transform.GetComponent <InteractableDoorHinge>(); var rbarri = rhit.transform.GetComponent <Interactable2SalvageBarricade>(); if (rdoor != null) { BarricadeManager.tryGetInfo(rdoor.transform, out byte x, out byte y, out ushort index, out ushort bindex, out BarricadeRegion barricadeR); var Bindex = barricadeR.barricades[bindex]; var Bx = Bindex.point.x; var By = Bindex.point.y; var Bz = Bindex.point.z; var n_blacklist = new DoorBlackList { x = Bx, y = By, z = Bz }; Main.Instance.RemovePlayer(n_blacklist); ChatManager.serverSendMessage("You have successfully removed this door/storage from the blacklist!", Color.red, null, uPlayer.SteamPlayer(), EChatMode.GLOBAL, Main.Instance.Configuration.Instance.LogoImage, true); } else if (rbarri != null) { BarricadeManager.tryGetInfo(rhit.transform, out byte x, out byte y, out ushort index, out ushort bindex, out BarricadeRegion barricadeR); var Bindex = barricadeR.barricades[bindex]; var Bx = Bindex.point.x; var By = Bindex.point.y; var Bz = Bindex.point.z; var n_blacklist = new DoorBlackList { x = Bx, y = By, z = Bz }; Main.Instance.RemovePlayer(n_blacklist); ChatManager.serverSendMessage("You have successfully removed this door/storage from the blacklist!", Color.red, null, uPlayer.SteamPlayer(), EChatMode.GLOBAL, Main.Instance.Configuration.Instance.LogoImage, true); } } else { ChatManager.serverSendMessage("Please look at a barricade to remove it to the blacklist for picklocking!", Color.red, null, uPlayer.SteamPlayer(), EChatMode.GLOBAL, Main.Instance.Configuration.Instance.LogoImage, true); } } }
public void Execute(IRocketPlayer caller, string[] args) { var PlayerCaller = (UnturnedPlayer)caller; // actually get the door you are looking at if (args.Length != 2) { UnturnedChat.Say(caller, "Invalid arguments", Color.red); return; } InteractableDoorHinge component = raycastdoor.Getdoor(PlayerCaller); if (component != null) { var name = args[0]; var permissionname = args[1]; InteractableDoor door = component.door; byte x; byte y; ushort plant; ushort index; BarricadeRegion barricadeRegion; BarricadeManager.tryGetInfo(door.transform, out x, out y, out plant, out index, out barricadeRegion); var permission = "Registereddoor." + permissionname; Registereddoortype tempvar = new Registereddoortype(); tempvar.name = name; tempvar.permission = permission; tempvar.steamid = PlayerCaller.CSteamID.ToString(); tempvar.doorposition = door.transform.position; BarricadeDrop barricadedrop = barricadeRegion.drops[index]; var ID = barricadedrop.instanceID; tempvar.ID = ID; if (miscstuff.Instance.Configuration.Instance.listofregistereddoors.Count > 0) { foreach (Registereddoortype doorinfo in miscstuff.Instance.Configuration.Instance.listofregistereddoors) { if (doorinfo.name == tempvar.name) { UnturnedChat.Say(caller, "A door already exists with that name!", Color.red); return; } else if (doorinfo.ID == ID) { UnturnedChat.Say(caller, "This door " + doorinfo.name + " is already registered!", Color.red); return; } } } miscstuff.Instance.Configuration.Instance.listofregistereddoors.Add(tempvar); UnturnedChat.Say(caller, "Door Registered!", Color.blue); miscstuff.Instance.Configuration.Save(); } else { UnturnedChat.Say(caller, "Not looking at a door!"); return; } }
// Token: 0x06000118 RID: 280 RVA: 0x0000B6FC File Offset: 0x000098FC public static EPlayerHit CalcHitMarker(ItemGunAsset PAsset, ref RaycastInfo ri) { EPlayerHit eplayerHit = EPlayerHit.NONE; bool flag = ri == null || PAsset == null; bool flag2 = flag; EPlayerHit result; if (flag2) { result = eplayerHit; } else { bool flag3 = ri.animal || ri.player || ri.zombie; bool flag4 = flag3; if (flag4) { eplayerHit = EPlayerHit.ENTITIY; bool flag5 = ri.limb == ELimb.SKULL; bool flag6 = flag5; if (flag6) { eplayerHit = EPlayerHit.CRITICAL; } } else { bool flag7 = ri.transform; bool flag8 = flag7; if (flag8) { bool flag9 = ri.transform.CompareTag("Barricade") && PAsset.barricadeDamage > 1f; bool flag10 = flag9; if (flag10) { InteractableDoorHinge component = ri.transform.GetComponent <InteractableDoorHinge>(); bool flag11 = component != null; bool flag12 = flag11; if (flag12) { ri.transform = component.transform.parent.parent; } ushort id; bool flag13 = !ushort.TryParse(ri.transform.name, out id); bool flag14 = flag13; if (flag14) { return(eplayerHit); } ItemBarricadeAsset itemBarricadeAsset = (ItemBarricadeAsset)Assets.find(EAssetType.ITEM, id); bool flag15 = itemBarricadeAsset == null || (!itemBarricadeAsset.isVulnerable && !PAsset.isInvulnerable); bool flag16 = flag15; if (flag16) { return(eplayerHit); } bool flag17 = eplayerHit == EPlayerHit.NONE; bool flag18 = flag17; if (flag18) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag19 = ri.transform.CompareTag("Structure") && PAsset.structureDamage > 1f; bool flag20 = flag19; if (flag20) { ushort id2; bool flag21 = !ushort.TryParse(ri.transform.name, out id2); bool flag22 = flag21; if (flag22) { return(eplayerHit); } ItemStructureAsset itemStructureAsset = (ItemStructureAsset)Assets.find(EAssetType.ITEM, id2); bool flag23 = itemStructureAsset == null || (!itemStructureAsset.isVulnerable && !PAsset.isInvulnerable); bool flag24 = flag23; if (flag24) { return(eplayerHit); } bool flag25 = eplayerHit == EPlayerHit.NONE; bool flag26 = flag25; if (flag26) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag27 = ri.transform.CompareTag("Resource") && PAsset.resourceDamage > 1f; bool flag28 = flag27; if (flag28) { byte x; byte y; ushort index; bool flag29 = !ResourceManager.tryGetRegion(ri.transform, out x, out y, out index); bool flag30 = flag29; if (flag30) { return(eplayerHit); } ResourceSpawnpoint resourceSpawnpoint = ResourceManager.getResourceSpawnpoint(x, y, index); bool flag31 = resourceSpawnpoint == null || resourceSpawnpoint.isDead || resourceSpawnpoint.asset.bladeID != PAsset.bladeID; bool flag32 = flag31; if (flag32) { return(eplayerHit); } bool flag33 = eplayerHit == EPlayerHit.NONE; bool flag34 = flag33; if (flag34) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag35 = PAsset.objectDamage > 1f; bool flag36 = flag35; if (flag36) { InteractableObjectRubble component2 = ri.transform.GetComponent <InteractableObjectRubble>(); bool flag37 = component2 == null; bool flag38 = flag37; if (flag38) { return(eplayerHit); } ri.section = component2.getSection(ri.collider.transform); bool flag39 = component2.isSectionDead(ri.section) || (!component2.asset.rubbleIsVulnerable && !PAsset.isInvulnerable); bool flag40 = flag39; if (flag40) { return(eplayerHit); } bool flag41 = eplayerHit == EPlayerHit.NONE; bool flag42 = flag41; if (flag42) { eplayerHit = EPlayerHit.BUILD; } } } } } } else { bool flag43 = ri.vehicle && !ri.vehicle.isDead && PAsset.vehicleDamage > 1f; bool flag44 = flag43; if (flag44) { bool flag45 = ri.vehicle.asset != null && (ri.vehicle.asset.isVulnerable || PAsset.isInvulnerable); bool flag46 = flag45; if (flag46) { bool flag47 = eplayerHit == EPlayerHit.NONE; bool flag48 = flag47; if (flag48) { eplayerHit = EPlayerHit.BUILD; } } } } } result = eplayerHit; } return(result); }
public void Execute(IRocketPlayer caller, string[] args) { if (args.Length > 2 || args.Length < 1) { UnturnedChat.Say(caller, "invalid arguments", Color.red); return; } else if (args.Length == 2) { var doorname = args[0]; var newperm = args[1]; bool isregistered = false; foreach (Registereddoortype doorinfo in miscstuff.Instance.Configuration.Instance.listofregistereddoors) { if (doorinfo.name == doorname) { isregistered = true; doorinfo.permission = "Registereddoor." + newperm; miscstuff.Instance.Configuration.Save(); UnturnedChat.Say(caller, "Door perm changed successfully to " + newperm); return; } } if (isregistered == false) { UnturnedChat.Say(caller, "door does not exist with that name", Color.red); return; } } else if (args.Length == 1) { var newperm = args[0]; bool isregistered = false; var PlayerCaller = (UnturnedPlayer)caller; InteractableDoorHinge component = raycastdoor.Getdoor(PlayerCaller); if (component != null) { InteractableDoor door = component.door; bool flag = !door.isOpen; byte x; byte y; ushort plant; ushort index; BarricadeRegion barricadeRegion; BarricadeManager.tryGetInfo(door.transform, out x, out y, out plant, out index, out barricadeRegion); BarricadeDrop barricadedrop = barricadeRegion.drops[index]; var ID = barricadedrop.instanceID; foreach (Registereddoortype doorinfo in miscstuff.Instance.Configuration.Instance.listofregistereddoors) { if (doorinfo.ID == ID) { isregistered = true; doorinfo.permission = "Registereddoor." + newperm; UnturnedChat.Say(caller, "Door perm changed successfully to " + newperm); miscstuff.Instance.Configuration.Save(); } } if (isregistered == false) { UnturnedChat.Say(caller, "door is not registered", Color.red); } } else { UnturnedChat.Say(caller, "Not looking at a valid door!", Color.red); } } }
public void OV_Update() { if (!DrawUtilities.ShouldRun()) { return; } if (Player.player.stance.stance != EPlayerStance.DRIVING) { if (Player.player.stance.stance != EPlayerStance.SITTING) { if (!Player.player.life.isDead && !Player.player.workzone.isBuilding) { if (Time.realtimeSinceStartup - OV_PlayerInteract.lastInteract > 0.1f) { int num = 0; if (InteractionOptions.InteractThroughWalls && !PlayerCoroutines.IsSpying) { if (!InteractionOptions.NoHitBarricades) { num |= RayMasks.BARRICADE; } if (!InteractionOptions.NoHitItems) { num |= RayMasks.ITEM; } if (!InteractionOptions.NoHitResources) { num |= RayMasks.RESOURCE; } if (!InteractionOptions.NoHitStructures) { num |= RayMasks.STRUCTURE; } if (!InteractionOptions.NoHitVehicles) { num |= RayMasks.VEHICLE; } if (!InteractionOptions.NoHitEnvironment) { num |= (RayMasks.LARGE | RayMasks.MEDIUM | RayMasks.ENVIRONMENT | RayMasks.GROUND); } } else { num = RayMasks.PLAYER_INTERACT; } OV_PlayerInteract.lastInteract = Time.realtimeSinceStartup; float num2 = (!InteractionOptions.InteractThroughWalls || PlayerCoroutines.IsSpying) ? 4f : 20f; PhysicsUtility.raycast(new Ray(OptimizationVariables.MainCam.transform.position, OptimizationVariables.MainCam.transform.forward), out OV_PlayerInteract.hit, (Player.player.look.perspective == EPlayerPerspective.THIRD) ? (num2 + 2f) : num2, num, QueryTriggerInteraction.UseGlobal); } Transform transform = (!(OV_PlayerInteract.hit.collider != null)) ? null : OV_PlayerInteract.hit.collider.transform; if (!(transform != OV_PlayerInteract.focus)) { goto IL_39E; } if (OV_PlayerInteract.focus != null && PlayerInteract.interactable != null) { InteractableDoorHinge componentInParent = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>(); if (componentInParent != null) { HighlighterTool.unhighlight(componentInParent.door.transform); } else { HighlighterTool.unhighlight(PlayerInteract.interactable.transform); } } OV_PlayerInteract.focus = null; OV_PlayerInteract.target = null; OV_PlayerInteract.interactable = null; OV_PlayerInteract.interactable2 = null; if (!(transform != null)) { goto IL_39E; } OV_PlayerInteract.focus = transform; OV_PlayerInteract.interactable = OV_PlayerInteract.focus.GetComponentInParent <Interactable>(); OV_PlayerInteract.interactable2 = OV_PlayerInteract.focus.GetComponentInParent <Interactable2>(); if (!(PlayerInteract.interactable != null)) { goto IL_39E; } OV_PlayerInteract.target = PlayerInteract.interactable.transform.FindChildRecursive("Target"); if (!PlayerInteract.interactable.checkInteractable()) { OV_PlayerInteract.target = null; OV_PlayerInteract.interactable = null; goto IL_39E; } if (!PlayerUI.window.isEnabled) { goto IL_39E; } if (!PlayerInteract.interactable.checkUseable()) { Color color = Color.red; InteractableDoorHinge componentInParent2 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>(); if (componentInParent2 != null) { HighlighterTool.highlight(componentInParent2.door.transform, color); goto IL_39E; } HighlighterTool.highlight(PlayerInteract.interactable.transform, color); goto IL_39E; } else { Color color; if (!PlayerInteract.interactable.checkHighlight(out color)) { color = Color.green; } InteractableDoorHinge componentInParent3 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>(); if (componentInParent3 != null) { HighlighterTool.highlight(componentInParent3.door.transform, color); goto IL_39E; } HighlighterTool.highlight(PlayerInteract.interactable.transform, color); goto IL_39E; } } } } if (OV_PlayerInteract.focus != null && PlayerInteract.interactable != null) { InteractableDoorHinge componentInParent4 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>(); if (componentInParent4 != null) { HighlighterTool.unhighlight(componentInParent4.door.transform); } else { HighlighterTool.unhighlight(PlayerInteract.interactable.transform); } } OV_PlayerInteract.focus = null; OV_PlayerInteract.target = null; OV_PlayerInteract.interactable = null; OV_PlayerInteract.interactable2 = null; IL_39E: if (!Player.player.life.isDead) { EPlayerMessage message; string text; Color color2; if (!(PlayerInteract.interactable != null)) { if (OV_PlayerInteract.purchaseAsset != null && Player.player.movement.purchaseNode != null && !PlayerUI.window.showCursor) { PlayerUI.hint(null, EPlayerMessage.PURCHASE, string.Empty, Color.white, new object[] { OV_PlayerInteract.purchaseAsset.itemName, Player.player.movement.purchaseNode.cost }); } else if (OV_PlayerInteract.focus != null && OV_PlayerInteract.focus.CompareTag("Enemy")) { Player player = DamageTool.getPlayer(OV_PlayerInteract.focus); if (player != null && player != Player.player && !PlayerUI.window.showCursor) { PlayerUI.hint(null, EPlayerMessage.ENEMY, string.Empty, Color.white, new object[] { player.channel.owner }); } } } else if (PlayerInteract.interactable.checkHint(out message, out text, out color2) && !PlayerUI.window.showCursor) { if (!PlayerInteract.interactable.CompareTag("Item")) { PlayerUI.hint((!(OV_PlayerInteract.target != null)) ? OV_PlayerInteract.focus : OV_PlayerInteract.target, message, text, color2, Array.Empty <object>()); } else { PlayerUI.hint((!(OV_PlayerInteract.target != null)) ? OV_PlayerInteract.focus : OV_PlayerInteract.target, message, text, color2, new object[] { ((InteractableItem)PlayerInteract.interactable).item, ((InteractableItem)PlayerInteract.interactable).asset }); } } EPlayerMessage message2; float data; if (PlayerInteract.interactable2 != null && PlayerInteract.interactable2.checkHint(out message2, out data) && !PlayerUI.window.showCursor) { PlayerUI.hint2(message2, (!OV_PlayerInteract.isHoldingKey) ? 0f : ((Time.realtimeSinceStartup - OV_PlayerInteract.lastKeyDown) / this.salvageTime), data); } if ((Player.player.stance.stance == EPlayerStance.DRIVING || Player.player.stance.stance == EPlayerStance.SITTING) && !Input.GetKey(KeyCode.LeftShift)) { if (Input.GetKeyDown(KeyCode.F1)) { this.hotkey(0); } if (Input.GetKeyDown(KeyCode.F2)) { this.hotkey(1); } if (Input.GetKeyDown(KeyCode.F3)) { this.hotkey(2); } if (Input.GetKeyDown(KeyCode.F4)) { this.hotkey(3); } if (Input.GetKeyDown(KeyCode.F5)) { this.hotkey(4); } if (Input.GetKeyDown(KeyCode.F6)) { this.hotkey(5); } if (Input.GetKeyDown(KeyCode.F7)) { this.hotkey(6); } if (Input.GetKeyDown(KeyCode.F8)) { this.hotkey(7); } if (Input.GetKeyDown(KeyCode.F9)) { this.hotkey(8); } if (Input.GetKeyDown(KeyCode.F10)) { this.hotkey(9); } } if (Input.GetKeyDown(ControlsSettings.interact)) { OV_PlayerInteract.lastKeyDown = Time.realtimeSinceStartup; OV_PlayerInteract.isHoldingKey = true; } if (Input.GetKeyDown(ControlsSettings.inspect)) { if (ControlsSettings.inspect != ControlsSettings.interact) { if (Player.player.equipment.canInspect) { Player.player.channel.send("askInspect", ESteamCall.SERVER, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, Array.Empty <object>()); } } } if (OV_PlayerInteract.isHoldingKey) { if (!Input.GetKeyUp(ControlsSettings.interact)) { if (Time.realtimeSinceStartup - OV_PlayerInteract.lastKeyDown > this.salvageTime) { OV_PlayerInteract.isHoldingKey = false; if (!PlayerUI.window.showCursor && PlayerInteract.interactable2 != null) { PlayerInteract.interactable2.use(); } } } else { OV_PlayerInteract.isHoldingKey = false; if (!PlayerUI.window.showCursor) { if (Player.player.stance.stance != EPlayerStance.DRIVING) { if (Player.player.stance.stance != EPlayerStance.SITTING) { if (OV_PlayerInteract.focus != null && PlayerInteract.interactable != null) { if (PlayerInteract.interactable.checkUseable()) { PlayerInteract.interactable.use(); return; } return; } else if (OV_PlayerInteract.purchaseAsset == null) { if (ControlsSettings.inspect != ControlsSettings.interact) { return; } if (Player.player.equipment.canInspect) { Player.player.channel.send("askInspect", ESteamCall.SERVER, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, Array.Empty <object>()); return; } return; } else { if (Player.player.skills.experience >= Player.player.movement.purchaseNode.cost) { Player.player.skills.sendPurchase(Player.player.movement.purchaseNode); return; } return; } } } VehicleManager.exitVehicle(); return; } if (Player.player.inventory.isStoring && Player.player.inventory.shouldInteractCloseStorage) { PlayerDashboardUI.close(); PlayerLifeUI.open(); return; } if (PlayerBarricadeSignUI.active) { PlayerBarricadeSignUI.close(); PlayerLifeUI.open(); return; } if (PlayerBarricadeStereoUI.active) { PlayerBarricadeStereoUI.close(); PlayerLifeUI.open(); return; } if (PlayerBarricadeLibraryUI.active) { PlayerBarricadeLibraryUI.close(); PlayerLifeUI.open(); return; } if (PlayerBarricadeMannequinUI.active) { PlayerBarricadeMannequinUI.close(); PlayerLifeUI.open(); return; } if (PlayerNPCDialogueUI.active) { if (PlayerNPCDialogueUI.dialogueAnimating) { PlayerNPCDialogueUI.skipText(); return; } if (PlayerNPCDialogueUI.dialogueHasNextPage) { PlayerNPCDialogueUI.nextPage(); return; } PlayerNPCDialogueUI.close(); PlayerLifeUI.open(); return; } else { if (PlayerNPCQuestUI.active) { PlayerNPCQuestUI.closeNicely(); return; } if (PlayerNPCVendorUI.active) { PlayerNPCVendorUI.closeNicely(); return; } } } } return; } }
public static EPlayerHit CalcHitMarker(ItemGunAsset PAsset, ref RaycastInfo ri) { EPlayerHit eplayerHit = EPlayerHit.NONE; bool flag = ri == null || PAsset == null; EPlayerHit result; if (flag) { result = eplayerHit; } else { bool flag2 = ri.animal || ri.player || ri.zombie; if (flag2) { eplayerHit = EPlayerHit.ENTITIY; bool flag3 = ri.limb == ELimb.SKULL; if (flag3) { eplayerHit = EPlayerHit.CRITICAL; } } else { bool flag4 = ri.transform; if (flag4) { bool flag5 = ri.transform.CompareTag("Barricade") && PAsset.barricadeDamage > 1f; if (flag5) { InteractableDoorHinge component = ri.transform.GetComponent <InteractableDoorHinge>(); bool flag6 = component != null; if (flag6) { ri.transform = component.transform.parent.parent; } bool flag7 = !ushort.TryParse(ri.transform.name, out ushort id); if (flag7) { return(eplayerHit); } ItemBarricadeAsset itemBarricadeAsset = (ItemBarricadeAsset)Assets.find(EAssetType.ITEM, id); bool flag8 = itemBarricadeAsset == null || (!itemBarricadeAsset.isVulnerable && !PAsset.isInvulnerable); if (flag8) { return(eplayerHit); } bool flag9 = eplayerHit == EPlayerHit.NONE; if (flag9) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag10 = ri.transform.CompareTag("Structure") && PAsset.structureDamage > 1f; if (flag10) { bool flag11 = !ushort.TryParse(ri.transform.name, out ushort id2); if (flag11) { return(eplayerHit); } ItemStructureAsset itemStructureAsset = (ItemStructureAsset)Assets.find(EAssetType.ITEM, id2); bool flag12 = itemStructureAsset == null || (!itemStructureAsset.isVulnerable && !PAsset.isInvulnerable); if (flag12) { return(eplayerHit); } bool flag13 = eplayerHit == EPlayerHit.NONE; if (flag13) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag14 = ri.transform.CompareTag("Resource") && PAsset.resourceDamage > 1f; if (flag14) { bool flag15 = !ResourceManager.tryGetRegion(ri.transform, out byte x, out byte y, out ushort index); if (flag15) { return(eplayerHit); } ResourceSpawnpoint resourceSpawnpoint = ResourceManager.getResourceSpawnpoint(x, y, index); bool flag16 = resourceSpawnpoint == null || resourceSpawnpoint.isDead || !PAsset.hasBladeID(resourceSpawnpoint.asset.bladeID); if (flag16) { return(eplayerHit); } bool flag17 = eplayerHit == EPlayerHit.NONE; if (flag17) { eplayerHit = EPlayerHit.BUILD; } } else { bool flag18 = PAsset.objectDamage > 1f; if (flag18) { InteractableObjectRubble component2 = ri.transform.GetComponent <InteractableObjectRubble>(); bool flag19 = component2 == null; if (flag19) { return(eplayerHit); } ri.section = component2.getSection(ri.collider.transform); bool flag20 = component2.isSectionDead(ri.section) || (!component2.asset.rubbleIsVulnerable && !PAsset.isInvulnerable); if (flag20) { return(eplayerHit); } bool flag21 = eplayerHit == EPlayerHit.NONE; if (flag21) { eplayerHit = EPlayerHit.BUILD; } } } } } } else { bool flag22 = ri.vehicle && !ri.vehicle.isDead && PAsset.vehicleDamage > 1f; if (flag22) { bool flag23 = ri.vehicle.asset != null && (ri.vehicle.asset.isVulnerable || PAsset.isInvulnerable); if (flag23) { bool flag24 = eplayerHit == EPlayerHit.NONE; if (flag24) { eplayerHit = EPlayerHit.BUILD; } } } } } result = eplayerHit; } return(result); }
public static EPlayerHit CalcHitMarker(ItemGunAsset PAsset, ref RaycastInfo ri) { EPlayerHit eplayerhit = EPlayerHit.NONE; if (ri == null || PAsset == null) { return(eplayerhit); } if (ri.animal || ri.player || ri.zombie) { eplayerhit = EPlayerHit.ENTITIY; if (ri.limb == ELimb.SKULL) { eplayerhit = EPlayerHit.CRITICAL; } } else if (ri.transform) { if (ri.transform.CompareTag("Barricade") && PAsset.barricadeDamage > 1f) { InteractableDoorHinge component = ri.transform.GetComponent <InteractableDoorHinge>(); if (component != null) { ri.transform = component.transform.parent.parent; } if (!ushort.TryParse(ri.transform.name, out ushort id)) { return(eplayerhit); } ItemBarricadeAsset itemBarricadeAsset = (ItemBarricadeAsset)Assets.find(EAssetType.ITEM, id); if (itemBarricadeAsset == null || !itemBarricadeAsset.isVulnerable && !PAsset.isInvulnerable) { return(eplayerhit); } if (eplayerhit == EPlayerHit.NONE) { eplayerhit = EPlayerHit.BUILD; } } else if (ri.transform.CompareTag("Structure") && PAsset.structureDamage > 1f) { if (!ushort.TryParse(ri.transform.name, out ushort id2)) { return(eplayerhit); } ItemStructureAsset itemStructureAsset = (ItemStructureAsset)Assets.find(EAssetType.ITEM, id2); if (itemStructureAsset == null || !itemStructureAsset.isVulnerable && !PAsset.isInvulnerable) { return(eplayerhit); } if (eplayerhit == EPlayerHit.NONE) { eplayerhit = EPlayerHit.BUILD; } } else if (ri.transform.CompareTag("Resource") && PAsset.resourceDamage > 1f) { if (!ResourceManager.tryGetRegion(ri.transform, out byte x, out byte y, out ushort index)) { return(eplayerhit); } ResourceSpawnpoint resourceSpawnpoint = ResourceManager.getResourceSpawnpoint(x, y, index); if (resourceSpawnpoint == null || resourceSpawnpoint.isDead || resourceSpawnpoint.asset.bladeID != PAsset.bladeID) { return(eplayerhit); } if (eplayerhit == EPlayerHit.NONE) { eplayerhit = EPlayerHit.BUILD; } } else if (PAsset.objectDamage > 1f) { InteractableObjectRubble component2 = ri.transform.GetComponent <InteractableObjectRubble>(); if (component2 == null) { return(eplayerhit); } ri.section = component2.getSection(ri.collider.transform); if (component2.isSectionDead(ri.section) || !component2.asset.rubbleIsVulnerable && !PAsset.isInvulnerable) { return(eplayerhit); } if (eplayerhit == EPlayerHit.NONE) { eplayerhit = EPlayerHit.BUILD; } } } else if (ri.vehicle && !ri.vehicle.isDead && PAsset.vehicleDamage > 1f) { if (ri.vehicle.asset != null && (ri.vehicle.asset.isVulnerable || PAsset.isInvulnerable)) { if (eplayerhit == EPlayerHit.NONE) { eplayerhit = EPlayerHit.BUILD; } } } return(eplayerhit); }
public void Execute(IRocketPlayer caller, string[] args) { if (args.Length > 1) { UnturnedChat.Say(caller, "invalid arguments", Color.red); return; } else if (args.Length == 1) { bool isregistered = false; foreach (Registereddoortype doorinfo in miscstuff.Instance.Configuration.Instance.listofregistereddoors) { if (doorinfo.name == args[0]) { isregistered = true; miscstuff.Instance.Configuration.Instance.listofregistereddoors.Remove(doorinfo); UnturnedChat.Say(caller, "Door" + doorinfo.name + " Unregistered!"); miscstuff.Instance.Configuration.Save(); } } if (isregistered == false) { UnturnedChat.Say(caller, "Registered Door does not exist with that name", Color.red); } } else if (args.Length == 0) { var PlayerCaller = (UnturnedPlayer)caller; InteractableDoorHinge component = raycastdoor.Getdoor(PlayerCaller); if (component != null) { InteractableDoor door = component.door; bool flag = !door.isOpen; byte x; byte y; ushort plant; ushort index; BarricadeRegion barricadeRegion; BarricadeManager.tryGetInfo(door.transform, out x, out y, out plant, out index, out barricadeRegion); BarricadeDrop barricadedrop = barricadeRegion.drops[index]; var ID = barricadedrop.instanceID; bool isregistered = false; foreach (Registereddoortype doorinfo in miscstuff.Instance.Configuration.Instance.listofregistereddoors) { if (doorinfo.ID == ID) { isregistered = true; miscstuff.Instance.Configuration.Instance.listofregistereddoors.Remove(doorinfo); UnturnedChat.Say(caller, "Door" + doorinfo.name + " Unregistered!"); miscstuff.Instance.Configuration.Save(); } } if (isregistered == false) { UnturnedChat.Say(caller, "That door is not registered!", Color.red); } } else { UnturnedChat.Say(caller, "You are not looking at a valid object", Color.red); } } }