public static void Prefix(byte amount, Vector3 newRagdoll, EDeathCause newCause, ELimb newLimb, CSteamID newKiller, ref EPlayerKill kill, bool trackKill, ERagdollEffect newRagdollEffect, bool canCauseBleeding, PlayerLife __instance) { Player ply = __instance.channel.owner.player; if (ply is null) return; if (amount >= ply.life.health) { Transform deathboxTransform = BarricadeManager.dropBarricade(new Barricade(1283),ply.transform, ply.transform.position, 0f, 0f, 0f, (ulong) ply.channel.owner.playerID.steamID, 0UL); byte x; byte y; ushort plant; ushort index; BarricadeRegion region; if (!BarricadeManager.tryGetInfo(deathboxTransform, out x, out y, out plant, out index, out region)) return; InteractableStorage storage = deathboxTransform.GetComponent<InteractableStorage>(); storage.items.resize(10, 10); for (byte page = 0; page < 6; page++) { for (byte i = 0; i < ply.inventory.items[page].getItemCount(); i++) { ItemJar item = ply.inventory.items[page].getItem(i); storage.items.tryAddItem(item.item); } } TTTPlayer.ClearInventoryUnsafe(__instance.channel.owner); // Clears clothing to prevent players aqquiring detective vest ect. } }
private void OnPlayerDeath(UnturnedPlayer player, EDeathCause cause, ELimb limb, CSteamID murderer) { List <ItemJar> droppedInventory = new List <ItemJar>(); UnityEngine.Vector3 deathlocation = player.Position + new UnityEngine.Vector3(0, (float)0.60, 0); moveInventoryItems(player, droppedInventory); if (Instance.Configuration.Instance.StoreClothes) { removeClothing(player, droppedInventory); } // use the specified unturned storage asset Barricade deathBag = new Barricade(Instance.Configuration.Instance.DeathBagId); UnityEngine.Transform barricadeTransform = new UnityEngine.GameObject().transform; barricadeTransform.localPosition = deathlocation; // create the physical bag to be dropped into the scene InteractableStorage deathBagStorage = BarricadeManager.dropBarricade(deathBag, barricadeTransform, deathlocation, 0, 0, 0, 0, 0).GetComponent <InteractableStorage>(); foreach (ItemJar itemjar in droppedInventory) { // add the inventory into the bag deathBagStorage.items.tryAddItem(itemjar.item); } TaskDispatcher.QueueOnMainThread(() => { DamageTool.damage(deathBagStorage.transform, false, 100000, 1, out EPlayerKill kill); }, (float)Instance.Configuration.Instance.Delay); }
public void CmdSwitchPickupMode() { // Switch the pickup mode of the storage in the active hand InteractableStorage storage = null; foreach (var itemSlot in itemStorage.GetNamedItemSlots(NamedSlot.rightHand)) { if (itemSlot.ItemObject != null && itemSlot.ItemObject.TryGetComponent <InteractableStorage>(out storage)) { break; } } if (storage == null) { foreach (var itemSlot in itemStorage.GetNamedItemSlots(NamedSlot.leftHand)) { if (itemSlot.ItemObject != null && itemSlot.ItemObject.TryGetComponent <InteractableStorage>(out storage)) { break; } } } if (storage != null) { storage.ServerSwitchPickupMode(gameObject); } }
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 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)) { InteractableStorage storage = hit.transform.GetComponent <InteractableStorage>(); if (storage != null) { storage.isOpen = true; storage.opener = player.UnturnedPlayer; player.Inventory.isStoring = true; player.Inventory.isStorageTrunk = false; player.Inventory.storage = storage; player.Inventory.updateItems(PlayerInventory.STORAGE, storage.items); player.Inventory.sendStorage(); EssLang.Send(src, "STORAGE_OPEN"); return(CommandResult.Success()); } else { return(CommandResult.LangError("STORAGE_INVALID")); } }
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; } InteractableVehicle vehicle = trans.gameObject.GetComponent <InteractableVehicle>(); if (vehicle != null) { return; } if (trans.GetComponent <InteractableDoorHinge>() != null) { return; } if (BarricadeManager.tryGetInfo(trans, out byte x, out byte y, out ushort plant, out ushort index, out BarricadeRegion BarricRegion)) { UnturnedChat.Say(caller, Base.Instance.Translate("unlocked")); ItemStorageAsset itemstore = (ItemStorageAsset)BarricRegion.barricades[index].barricade.asset; InteractableStorage IStorage = (InteractableStorage)BarricRegion.drops[index].interactable; IStorage.isOpen = false; IStorage.enabled = true; IStorage.opener = null; IStorage.use(); } }
public void Execute(IRocketPlayer caller, string[] args) { Player player = ((UnturnedPlayer)caller).Player; PlayerLook look = player.look; if (PhysicsUtility.raycast(new Ray(look.aim.position, look.aim.forward), out RaycastHit hit, Mathf.Infinity, RayMasks.BARRICADE_INTERACT)) { InteractableStorage storage = hit.transform.GetComponent <InteractableStorage>(); if (storage != null) { storage.isOpen = true; storage.opener = player; player.inventory.isStoring = true; player.inventory.isStorageTrunk = false; player.inventory.storage = storage; player.inventory.updateItems(PlayerInventory.STORAGE, storage.items); player.inventory.sendStorage(); UnturnedChat.Say(caller, Util.Translate("storage_open")); } else { UnturnedChat.Say(caller, Util.Translate("invalid_storage")); } }
private void SaveState(InteractableStorage storage, byte[] state, int size) { if (storage.transform == Container.transform) { ItemCount = Container.items.getItemCount(); State = new byte[size]; Array.Copy(state, State, size); } }
/// <summary> /// Informs the recipient that they can now show/hide the UI popup for observing a particular /// storage or any children. /// </summary> /// <param name="recipient"></param> /// <param name="storage"></param> /// <param name="observed">true indicates they should show the popup, false indicates it should be hidden</param> public static void Send(GameObject recipient, InteractableStorage storage, bool observed) { var msg = new ObserveInteractableStorageMessage() { Storage = storage.gameObject.NetId(), Observed = observed }; msg.SendTo(recipient); }
public void Execute(IRocketPlayer caller, string[] command) { Rocket.Unturned.Player.UnturnedPlayer player = (Rocket.Unturned.Player.UnturnedPlayer)caller; if (player == null) { return; } foreach (VaultStorage vaults in Uber_VaultS.vaultList) { if (vaults.SteamID == player.CSteamID) { byte x, y; ushort plant, index; BarricadeRegion regionBarricade; if (BarricadeManager.tryGetInfo(vaults.Locker, out x, out y, out plant, out index, out regionBarricade)) { InteractableStorage IStorage = (InteractableStorage)regionBarricade.drops[index].interactable; IStorage.isOpen = true; IStorage.opener = player.Player; //IStorage.name = "U" + player.CSteamID.ToString(); if (vaults.alreadyOpened == false) { IStorage.items.resize((byte)vaults.SizeX, (byte)vaults.SizeY); IStorage.items.clear(); if (vaults.ItemList.getItemCount() > 0) { for (byte i = 0; i < vaults.ItemList.getItemCount(); i++) { ItemJar currentItemJar = vaults.ItemList.getItem(i); Item CurrentItem = currentItemJar.item; IStorage.items.addItem(vaults.ItemList.getItem(i).x, vaults.ItemList.getItem(i).y, vaults.ItemList.getItem(i).rot, vaults.ItemList.getItem(i).item); } } vaults.alreadyOpened = true; } player.Inventory.isStoring = true; player.Inventory.storage = IStorage; player.Inventory.updateItems(PlayerInventory.STORAGE, IStorage.items); player.Inventory.sendStorage(); } } } }
private void OnCollisionEnter(Collision collision) { if (isExploded) { return; } if (collision.collider.isTrigger) { return; } isExploded = true; Transform t = BarricadeManager.dropBarricade(new Barricade(1374), null, base.transform.position, 0f, 0f, 0f, 0UL, 0UL); if (t == null) { return; } InteractableStorage component = transform.GetComponent <InteractableStorage>(); component.despawnWhenDestroyed = true; if (component.items != null) { foreach (AirdropItem ai in AirdropManager.GetAirdropItems(type)) { for (int i = 0; i < ai.amount; i++) { component.items.tryAddItem(new Item((ushort)ai.id, EItemOrigin.ADMIN, (byte)ai.durability), false); } } component.items.onStateUpdated(); } EffectManager.sendEffectReliable((ushort)AirdropPlugin.Conf.AirdropEffectId, EffectManager.INSANE, transform.position); }
private ObserveStorageRelationship(InteractableStorage observedStorage, RegisterPlayer observer, float maxRange, Action <ObserveStorageRelationship> onObservationEnded) : base(observedStorage.GetComponent <RegisterTile>(), observer, maxRange, (rship) => onObservationEnded.Invoke(rship as ObserveStorageRelationship)) { this.ObservedStorage = observedStorage; this.ObserverPlayer = observer; //check if the observed storage is in a player's inventory, and if so, populate the fields / event hooks var rootStorage = observedStorage.ItemStorage.GetRootStorage(); this.observedPlayerMove = rootStorage.GetComponent <PlayerMove>(); if (observedPlayerMove != null) { this.observedRegisterPlayer = rootStorage.GetComponent <RegisterPlayer>(); this.observedPlayerHealth = rootStorage.GetComponent <PlayerHealthV2>(); //add listeners for non-range-based ways in which the relationship can end observedPlayerMove.OnCuffChangeServer.AddListener(OnCuffChangeServer); observedRegisterPlayer.OnSlipChangeServer.AddListener(OnSlipChangeServer); observedPlayerHealth.OnConsciousStateChangeServer.AddListener(OnConsciousStateChangeServer); } }
private void OnOpenStorageRequested(CSteamID steamId, InteractableStorage storage, ref bool shouldAllow) { var drop = BarricadeManager.FindBarricadeByRootTransform(storage.transform); if (drop == null) { return; } var buildable = new UnturnedBarricadeBuildable(drop); var nativePlayer = PlayerTool.getPlayer(steamId); var player = GetUnturnedPlayer(nativePlayer); var @event = new UnturnedStorageOpeningEvent(buildable, player) { IsCancelled = !shouldAllow }; Emit(@event); shouldAllow = [email protected]; }
public GOUpdate(InteractableStorage storage) { this.instance = storage; this.gameObject = storage.gameObject; this.type = EGOUpdate.STORAGE; }
private void Awake() { script = GetComponent <PlayerScript>(); interactableStorage = GetComponent <InteractableStorage>(); }
/// <summary> /// Checks if the indicated item can fit in this slot. /// </summary> /// <param name="toStore"></param> /// <param name="ignoreOccupied">if true, does not check if an item is already in the slot</param> /// <param name="examineRecipient">if not null, when validation fails, will output an appropriate examine message to this recipient</param> /// <returns></returns> public bool CanFit(Pickupable toStore, bool ignoreOccupied = false, GameObject examineRecipient = null) { if (toStore == null) { return(false); } if (IsEnabled == false) { return(false); } ItemStorage storageToCheck = itemStorage; StorageIdentifier storeIdentifier = toStore.GetComponent <StorageIdentifier>(); //Check if there is a deny entry for this toStore item if (storageToCheck != null && storeIdentifier != null) { InteractableStorage interactiveStorage = storageToCheck.GetComponent <InteractableStorage>(); if (interactiveStorage != null) { if (interactiveStorage.denyStorageOfStorageItems.HasFlag(storeIdentifier.StorageItemName)) { Logger.LogTrace($"Cannot fit {toStore} in slot {ToString()}, item was blacklisted.", Category.Inventory); if (examineRecipient) { Chat.AddExamineMsg(examineRecipient, $"{toStore.gameObject.ExpensiveName()} can't be placed there!"); } return(false); } } } //go through this slot's ancestors and make sure none of them ARE toStore, //as that would create a loop in the inventory hierarchy int count = 0; while (storageToCheck != null) { if (storageToCheck.gameObject == toStore.gameObject) { Logger.LogTraceFormat( "Cannot fit {0} in slot {1}, this would create an inventory hierarchy loop (putting the" + " storage inside itself)", Category.Inventory, toStore, ToString()); if (examineRecipient) { Chat.AddExamineMsg(examineRecipient, $"{toStore.gameObject.ExpensiveName()} can't go inside itself!"); } return(false); } //get parent item storage if it exists var pickupable = storageToCheck.GetComponent <Pickupable>(); if (pickupable != null && pickupable.ItemSlot != null) { storageToCheck = pickupable.ItemSlot.ItemStorage; } else { storageToCheck = null; } count++; if (count > 5) { Logger.LogTraceFormat( "Something went wrong when adding {0} in slot {1}, aborting!", Category.Inventory, toStore, ToString()); return(false); } } //if the slot already has an item, it's allowed to stack only if the item to add can stack with //the existing item. if (!ignoreOccupied && item != null) { var thisStackable = item.GetComponent <Stackable>(); var otherStackable = toStore.GetComponent <Stackable>(); var stackResult = thisStackable != null && otherStackable != null && thisStackable.CanAccommodate(otherStackable); if (!stackResult) { Logger.LogTraceFormat( "Cannot stack {0} in slot {1}", Category.Inventory, toStore, ToString()); } else { Logger.LogTraceFormat( "Can stack {0} in slot {1}", Category.Inventory, toStore, ToString()); } return(stackResult); } //no item in slot and no inventory loop created, //check if this storage can fit this according to its specific capacity logic var canFit = itemStorage.ItemStorageCapacity.CanFit(toStore, this.slotIdentifier); if (canFit) { return(true); } if (examineRecipient) { //if this is going in a player's inventory, use a more appropriate message. var targetPlayerScript = ItemStorage.GetComponent <PlayerScript>(); if (targetPlayerScript != null) { //going into a top-level inventory slot of a player Chat.AddExamineMsg(examineRecipient, $"{toStore.gameObject.ExpensiveName()} can't go in that slot."); } else { //going into something else Chat.AddExamineMsg(examineRecipient, $"{toStore.gameObject.ExpensiveName()} doesn't fit in the {ItemStorage.gameObject.ExpensiveName()}."); } } return(false); }
public IEnumerator updateStuff() { while (true) { float aim_distanceAway = float.MaxValue; object aim_nextTarget = null; MP_ESP.draw.Clear(); lock (collections) { for (int i = 0; i < collections.Count; i++) { if (collections[i] == null || collections[i].gameObject == null || collections[i].instance == null) { continue; } GOUpdate updateObject = collections[i]; #region Players if (updateObject.type == EGOUpdate.PLAYER) { if (!((SteamPlayer)updateObject.instance).player.life.isDead && ((SteamPlayer)updateObject.instance).player != Player.player) { int distance = (int)Tools.getDistance(updateObject.gameObject.transform.position); #region Aimbot & SilentAim if ((MP_Aimbot.aimbot || MP_Aimbot.silentAim) && MP_Aimbot.aim_players && !MP_Players.isFriend((SteamPlayer)updateObject.instance)) { if (aim_distanceAway > distance && (distance <= MP_Aimbot.distance || MP_Aimbot.ignoreDistance)) { aim_distanceAway = distance; aim_nextTarget = updateObject.instance; } } #endregion #region ESP if (MP_ESP.ESP_Enabled && MP_ESP.ESP_Players_Enabled && (((SteamPlayer)updateObject.instance).player != Player.player)) { if (distance <= MP_ESP.ESP_Distance || MP_ESP.ESP_IgnoreDistance) { bool isFriend = MP_Players.isFriend((SteamPlayer)updateObject.instance); updateObject.screenPosition = MainCamera.instance.WorldToScreenPoint(updateObject.gameObject.transform.position); updateObject.text = ""; updateObject.color = (isFriend ? MP_ESP.ESP_Friends_Color.selectedColor : MP_ESP.ESP_Players_Color.selectedColor); if (updateObject.screenPosition.z > 0) { updateObject.screenPosition.y = (Screen.height - (updateObject.screenPosition.y + 1f)) - 12f; SteamPlayer p = (SteamPlayer)updateObject.instance; if (MP_ESP.ESP_Players_ShowNames) { updateObject.text += p.playerID.characterName + "\n"; } if (MP_ESP.ESP_Players_ShowDistances) { updateObject.text += "Distance: " + distance + "\n"; } if (MP_ESP.ESP_Players_ShowWeapons) { updateObject.text += "Weapon: " + (p.player.equipment.asset == null ? "None" : p.player.equipment.asset.itemName) + "\n"; } if (MP_ESP.ESP_Players_ShowIsAdmin) { updateObject.text += "Is Admin: " + (p.isAdmin ? "Yes" : "No") + "\n"; } if (MP_ESP.ESP_Box) { updateObject.box = Tools.BoundsToScreenRect(new Bounds(p.player.transform.position + new Vector3(0, 1.1f, 0), p.player.transform.localScale + new Vector3(0, .95f, 0))); } MP_ESP.draw.Add(new ESPDraw(updateObject.text, updateObject.gameObject, EESPItem.PLAYER, updateObject.screenPosition, updateObject.box, updateObject.color, distance)); } } } #endregion #region Chams Renderer[] renderers = ((SteamPlayer)updateObject.instance).player.gameObject.GetComponentsInChildren <Renderer>(); for (int a = 0; a < renderers.Length; a++) { for (int b = 0; b < renderers[a].materials.Length; b++) { if (Variables.isSpying || !MP_ESP.ESP_Enabled || !MP_ESP.ESP_Chams || !MP_ESP.ESP_Players_Enabled || (distance > MP_ESP.ESP_Distance && !MP_ESP.ESP_IgnoreDistance)) { if (renderers[a].materials[b].shader == esp) { renderers[a].materials[b].shader = normal; } } else { if (renderers[a].materials[b].shader != esp) { renderers[a].materials[b].shader = esp; } } } } #endregion } } #endregion #region Zombies if (updateObject.type == EGOUpdate.ZOMBIE && !((Zombie)updateObject.instance).isDead) { int distance = (int)Tools.getDistance(updateObject.gameObject.transform.position); #region Aimbot & SilentAim if ((MP_Aimbot.aimbot || MP_Aimbot.silentAim) && MP_Aimbot.aim_zombies) { if (aim_distanceAway > distance && (distance <= MP_Aimbot.distance || MP_Aimbot.ignoreDistance)) { aim_distanceAway = distance; aim_nextTarget = updateObject.instance; } } #endregion #region ESP if (MP_ESP.ESP_Enabled && MP_ESP.ESP_Zombies_Enabled && (distance <= MP_ESP.ESP_Distance || MP_ESP.ESP_IgnoreDistance)) { updateObject.screenPosition = MainCamera.instance.WorldToScreenPoint(updateObject.gameObject.transform.position); updateObject.text = ""; updateObject.color = MP_ESP.ESP_Zombies_Color.selectedColor; if (updateObject.screenPosition.z > 0) { Collider collider = null; if (MP_ESP.ESP_Box) { collider = updateObject.gameObject.GetComponent <Collider>(); } updateObject.screenPosition.x -= 64f; updateObject.screenPosition.y = (Screen.height - (updateObject.screenPosition.y + 1f)) - 12f; if (MP_ESP.ESP_Zombies_ShowNames) { updateObject.text += Tools.getZombieName((Zombie)updateObject.instance) + "\n"; } if (MP_ESP.ESP_Zombies_ShowDistances) { updateObject.text += "Distance: " + distance + "\n"; } if (MP_ESP.ESP_Box && collider != null) { updateObject.box = Tools.BoundsToScreenRect(collider.bounds); } MP_ESP.draw.Add(new ESPDraw(updateObject.text, updateObject.gameObject, EESPItem.ZOMBIE, updateObject.screenPosition, updateObject.box, updateObject.color, distance)); } } #endregion } #endregion #region Animals if (updateObject.type == EGOUpdate.ANIMAL && !((Animal)updateObject.instance).isDead && MP_ESP.ESP_Enabled && MP_ESP.ESP_Animals_Enabled) { Animal animal = (Animal)updateObject.instance; int distance = (int)Tools.getDistance(updateObject.gameObject.transform.position); #region ESP if (distance <= MP_ESP.ESP_Distance || MP_ESP.ESP_IgnoreDistance) { updateObject.screenPosition = MainCamera.instance.WorldToScreenPoint(updateObject.gameObject.transform.position); updateObject.text = ""; updateObject.color = MP_ESP.ESP_Animals_Color.selectedColor; if (updateObject.screenPosition.z > 0) { Collider collider = null; if (MP_ESP.ESP_Box) { collider = updateObject.gameObject.GetComponent <Collider>(); } updateObject.screenPosition.x -= 64f; updateObject.screenPosition.y = (Screen.height - (updateObject.screenPosition.y + 1f)) - 12f; if (MP_ESP.ESP_Animals_ShowNames) { updateObject.text += animal.asset.animalName + "\n"; } if (MP_ESP.ESP_Animals_ShowDistances) { updateObject.text += "Distance: " + distance + "\n"; } if (MP_ESP.ESP_Box && collider != null) { updateObject.box = Tools.BoundsToScreenRect(collider.bounds); } MP_ESP.draw.Add(new ESPDraw(updateObject.text, updateObject.gameObject, EESPItem.ANIMAL, updateObject.screenPosition, updateObject.box, updateObject.color, distance)); } } #endregion } #endregion #region Items if (updateObject.type == EGOUpdate.ITEM) { InteractableItem item = (InteractableItem)updateObject.instance; bool on = false; if (MP_ESP.ESP_Items_Types.filter.TryGetValue(item.asset.type, out on)) { if (on) { int distance = (int)Tools.getDistance(updateObject.gameObject.transform.position); #region ESP if (MP_ESP.ESP_Enabled && MP_ESP.ESP_Items_Enabled && (distance <= MP_ESP.ESP_Distance || MP_ESP.ESP_IgnoreDistance)) { updateObject.screenPosition = MainCamera.instance.WorldToScreenPoint(updateObject.gameObject.transform.position); updateObject.text = ""; updateObject.color = MP_ESP.ESP_Items_Color.selectedColor; if (updateObject.screenPosition.z > 0) { Collider collider = null; if (MP_ESP.ESP_Box) { collider = updateObject.gameObject.GetComponent <Collider>(); } updateObject.screenPosition.x -= 64f; updateObject.screenPosition.y = (Screen.height - (updateObject.screenPosition.y + 1f)) - 12f; if (MP_ESP.ESP_Items_ShowNames) { updateObject.text += item.asset.itemName + "\n"; } if (MP_ESP.ESP_Items_ShowDistances) { updateObject.text += "Distance: " + distance + "\n"; } if (MP_ESP.ESP_Box && collider != null) { updateObject.box = Tools.BoundsToScreenRect(collider.bounds); } MP_ESP.draw.Add(new ESPDraw(updateObject.text, updateObject.gameObject, EESPItem.ITEM, updateObject.screenPosition, updateObject.box, updateObject.color, distance)); } } #endregion } } } #endregion #region Vehicles if (updateObject.type == EGOUpdate.VEHICLE && MP_ESP.ESP_Enabled && MP_ESP.ESP_Vehicles_Enabled) { InteractableVehicle vehicle = (InteractableVehicle)updateObject.instance; int distance = (int)Tools.getDistance(updateObject.gameObject.transform.position); #region ESP if (distance <= MP_ESP.ESP_Distance || MP_ESP.ESP_IgnoreDistance) { updateObject.screenPosition = MainCamera.instance.WorldToScreenPoint(updateObject.gameObject.transform.position); updateObject.text = ""; updateObject.color = MP_ESP.ESP_Vehicles_Color.selectedColor; if (updateObject.screenPosition.z > 0) { Collider collider = null; if (MP_ESP.ESP_Box) { collider = updateObject.gameObject.GetComponent <Collider>(); } updateObject.screenPosition.x -= 64f; updateObject.screenPosition.y = (Screen.height - (updateObject.screenPosition.y + 1f)) - 12f; if (MP_ESP.ESP_Items_ShowNames) { updateObject.text += vehicle.asset.vehicleName + "\n"; } if (MP_ESP.ESP_Vehicles_ShowFuel) { updateObject.text += "Fuel: " + vehicle.fuel + "\n"; } if (MP_ESP.ESP_Vehicles_ShowLocked) { updateObject.text += "Locked: " + (vehicle.isLocked ? "Yes" : "No") + "\n"; } if (MP_ESP.ESP_Vehicles_ShowDistances) { updateObject.text += "Distance: " + distance + "\n"; } if (MP_ESP.ESP_Box && collider != null) { updateObject.box = Tools.BoundsToScreenRect(collider.bounds); } MP_ESP.draw.Add(new ESPDraw(updateObject.text, updateObject.gameObject, EESPItem.VEHICLE, updateObject.screenPosition, updateObject.box, updateObject.color, distance)); } } #endregion } #endregion #region Storages if (updateObject.type == EGOUpdate.STORAGE && MP_ESP.ESP_Enabled && MP_ESP.ESP_Storages_Enabled) { InteractableStorage storage = (InteractableStorage)updateObject.instance; int distance = (int)Tools.getDistance(updateObject.gameObject.transform.position); #region ESP if (distance <= MP_ESP.ESP_Distance || MP_ESP.ESP_IgnoreDistance) { updateObject.screenPosition = MainCamera.instance.WorldToScreenPoint(updateObject.gameObject.transform.position); updateObject.text = ""; updateObject.color = MP_ESP.ESP_Storages_Color.selectedColor; if (updateObject.screenPosition.z > 0) { Collider collider = null; if (MP_ESP.ESP_Box) { collider = updateObject.gameObject.GetComponent <Collider>(); } updateObject.screenPosition.x -= 64f; updateObject.screenPosition.y = (Screen.height - (updateObject.screenPosition.y + 1f)) - 12f; if (MP_ESP.ESP_Items_ShowNames) { updateObject.text += "Storage\n"; } if (MP_ESP.ESP_Storages_ShowLocked) { updateObject.text += "Locked: " + (storage.checkUseable() ? "Yes" : "No") + "\n"; } if (MP_ESP.ESP_Storages_ShowDistances) { updateObject.text += "Distance: " + distance + "\n"; } if (MP_ESP.ESP_Box && collider != null) { updateObject.box = Tools.BoundsToScreenRect(collider.bounds); } MP_ESP.draw.Add(new ESPDraw(updateObject.text, updateObject.gameObject, EESPItem.STORAGE, updateObject.screenPosition, updateObject.box, updateObject.color, distance)); } } #endregion } #endregion #region Sentries if (updateObject.type == EGOUpdate.SENTRY && MP_ESP.ESP_Enabled && MP_ESP.ESP_Sentrys_Enabled) { InteractableSentry sentry = (InteractableSentry)updateObject.instance; int distance = (int)Tools.getDistance(updateObject.gameObject.transform.position); #region ESP if (distance <= MP_ESP.ESP_Distance || MP_ESP.ESP_IgnoreDistance) { updateObject.screenPosition = MainCamera.instance.WorldToScreenPoint(updateObject.gameObject.transform.position); updateObject.text = ""; updateObject.color = MP_ESP.ESP_Sentrys_Color.selectedColor; if (updateObject.screenPosition.z > 0) { Collider collider = null; if (MP_ESP.ESP_Box) { collider = updateObject.gameObject.GetComponent <Collider>(); } updateObject.screenPosition.x -= 64f; updateObject.screenPosition.y = (Screen.height - (updateObject.screenPosition.y + 1f)) - 12f; if (MP_ESP.ESP_Sentrys_ShowNames) { updateObject.text += "Sentry\n"; } if (MP_ESP.ESP_Sentrys_ShowDistances) { updateObject.text += "Distance: " + distance + "\n"; } if (MP_ESP.ESP_Box && collider != null) { updateObject.box = Tools.BoundsToScreenRect(collider.bounds); } MP_ESP.draw.Add(new ESPDraw(updateObject.text, updateObject.gameObject, EESPItem.SENTRY, updateObject.screenPosition, updateObject.box, updateObject.color, distance)); } } #endregion } #endregion } } if (MP_Aimbot.aimbot || MP_Aimbot.silentAim) { MP_Aimbot.attackNext = aim_nextTarget; } yield return(wfs); } }
/// <summary> /// Defines a relationship in which the onObservationEnded action is invoked when /// the storage is no longer allowed to be observed by the observer. /// </summary> /// <param name="observedStorage">interactable storage being observed</param> /// <param name="observer">player who is trying to observe the storage</param> /// <param name="maxRange">max range allowed for continued observation</param> /// <param name="onObservationEnded">invoked when relationship is ended</param> public static ObserveStorageRelationship Observe(InteractableStorage observedStorage, RegisterPlayer observer, float maxRange, Action <ObserveStorageRelationship> onObservationEnded) { return(new ObserveStorageRelationship(observedStorage, observer, maxRange, onObservationEnded)); }
// 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 static void RunUtilityTool(UnturnedPlayer Player, RaycastResult Raycast) { if (Raycast.ParentHasComponent <InteractableCharge>()) { Raycast.TryGetEntity <InteractableCharge>().detonate(Player.CSteamID); } if (Raycast.ParentHasComponent <InteractableFire>()) { var f = Raycast.TryGetEntity <InteractableFire>(); BarricadeManager.ServerSetFireLit(f, !f.isLit); } if (Raycast.ParentHasComponent <InteractableGenerator>()) { var f = Raycast.TryGetEntity <InteractableGenerator>(); BarricadeManager.ServerSetGeneratorPowered(f, !f.isPowered); } if (Raycast.ParentHasComponent <InteractableOven>()) { var f = Raycast.TryGetEntity <InteractableOven>(); BarricadeManager.ServerSetOvenLit(f, !f.isLit); } if (Raycast.ParentHasComponent <InteractableOxygenator>()) { var f = Raycast.TryGetEntity <InteractableOxygenator>(); BarricadeManager.ServerSetOxygenatorPowered(f, !f.isPowered); } if (Raycast.ParentHasComponent <InteractableSafezone>()) { var f = Raycast.TryGetEntity <InteractableSafezone>(); BarricadeManager.ServerSetSafezonePowered(f, !f.isPowered); } if (Raycast.ParentHasComponent <InteractableSpot>()) { var f = Raycast.TryGetEntity <InteractableSpot>(); BarricadeManager.ServerSetSpotPowered(f, !f.isPowered); } if (Raycast.ParentHasComponent <InteractableVehicle>()) { var f = Raycast.TryGetEntity <InteractableVehicle>(); VehicleManager.ServerForcePassengerIntoVehicle(Player.Player, f); } if (Raycast.ParentHasComponent <InteractableBed>()) { var f = Raycast.TryGetEntity <InteractableBed>(); if (f.owner.m_SteamID != 0) { UnturnedChat.Say(Player, "PointTool_Utility_Bed_ShowOwner".Translate($"{AdminToolsPlugin.Instance.GetPlayerName(f.owner.m_SteamID, "Unknown Player")} ({f.owner})")); } else { UnturnedChat.Say(Player, "PointTool_Utility_Bed_NotClaimed".Translate());; } } if (Raycast.ParentHasComponent <InteractableDoor>()) { var f = Raycast.TryGetEntity <InteractableDoor>(); SendOpenDoor(Raycast.BarricadePlant, Raycast.BarricadeX, Raycast.BarricadeY, Raycast.BarricadeIndex, f, Raycast.BarricadeRegion); } if (Raycast.ParentHasComponent <InteractableStorage>()) { InteractableStorage Storage = Raycast.TryGetEntity <InteractableStorage>(); Player.Player.inventory.updateItems(7, Storage.items); Player.Player.inventory.sendStorage(); } }
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; } } }
protected override async UniTask OnExecuteAsync() { if (Context.Parameters.Length > 1) { throw new CommandWrongUsageException(Context); } if (Context.Parameters.Length == 1) { string searchTerm = Context.Parameters[0]; IUser potentialUser = await m_UserManager.FindUserAsync(KnownActorTypes.Player, searchTerm, UserSearchMode.FindByNameOrId); if (potentialUser == null) { throw new UserFriendlyException(m_StringLocalizer["general:invalid_player", new { Player = searchTerm }]); } await Context.Actor.PrintMessageAsync(m_StringLocalizer["investigate:success", new { Player = searchTerm, ID = potentialUser.Id }]); return; } if (!(Context.Actor is UnturnedUser uPlayer)) { throw new CommandWrongUsageException(Context); } PlayerLook look = uPlayer.Player.Player.look; RaycastInfo raycast = DamageTool.raycast(new Ray(look.aim.position, look.aim.forward), 256f, RayMasks.DAMAGE_SERVER); Transform raycastTransform = raycast.transform; if (raycastTransform == null) { throw new UserFriendlyException(m_StringLocalizer["investigate:no_object"]); } CSteamID ownerSteamID = CSteamID.Nil; if (raycast.vehicle != null) { ownerSteamID = raycast.vehicle.lockedOwner; } InteractableBed bed = raycastTransform.GetComponentInChildren <InteractableBed>(); if (bed != null) { ownerSteamID = bed.owner; } InteractableDoor door = raycastTransform.GetComponentInChildren <InteractableDoor>(); if (door != null) { ownerSteamID = door.owner; } InteractableStorage storage = raycastTransform.GetComponentInChildren <InteractableStorage>(); if (storage != null) { ownerSteamID = storage.owner; } await uPlayer.PrintMessageAsync(GetObjectOwner(ownerSteamID)); }
public static IEnumerator UpdateObjectList() { while (true) { if (!DrawUtilities.ShouldRun()) { yield return(new WaitForSeconds(2)); continue; } List <ESPObject> objects = ESPVariables.Objects; objects.Clear(); List <ESPTarget> targets = ESPOptions.PriorityTable.Keys.OrderByDescending(k => ESPOptions.PriorityTable[k]).ToList(); for (int i = 0; i < targets.Count; i++) { ESPTarget target = targets[i]; ESPVisual vis = ESPOptions.VisualOptions[(int)target]; if (!vis.Enabled) { continue; } Vector3 pPos = OptimizationVariables.MainPlayer.transform.position; switch (target) { case ESPTarget.Players: { SteamPlayer[] objarray = Provider.clients .OrderByDescending(p => VectorUtilities.GetDistance(pPos, p.player.transform.position)).ToArray(); if (vis.UseObjectCap) { objarray = objarray.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarray.Length; j++) { SteamPlayer sPlayer = objarray[j]; Player plr = sPlayer.player; if (plr.life.isDead || plr == OptimizationVariables.MainPlayer) { continue; } objects.Add(new ESPObject(target, plr, plr.gameObject)); } break; } case ESPTarget.Zombies: { Zombie[] objarr = ZombieManager.regions.SelectMany(r => r.zombies) .OrderByDescending(obj => VectorUtilities.GetDistance(pPos, obj.transform.position)).ToArray(); if (vis.UseObjectCap) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarr.Length; j++) { Zombie obj = objarr[j]; objects.Add(new ESPObject(target, obj, obj.gameObject)); } break; } case ESPTarget.Items: { InteractableItem[] objarr = Object.FindObjectsOfType <InteractableItem>() .OrderByDescending(obj => VectorUtilities.GetDistance(pPos, obj.transform.position)).ToArray(); if (vis.UseObjectCap) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarr.Length; j++) { InteractableItem obj = objarr[j]; if (ItemUtilities.Whitelisted(obj.asset, ItemOptions.ItemESPOptions) || !ESPOptions.FilterItems) { objects.Add(new ESPObject(target, obj, obj.gameObject)); } } break; } case ESPTarget.Sentries: { InteractableSentry[] objarr = Object.FindObjectsOfType <InteractableSentry>() .OrderByDescending(obj => VectorUtilities.GetDistance(pPos, obj.transform.position)).ToArray(); if (vis.UseObjectCap) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarr.Length; j++) { InteractableSentry obj = objarr[j]; objects.Add(new ESPObject(target, obj, obj.gameObject)); } break; } case ESPTarget.Beds: { InteractableBed[] objarr = Object.FindObjectsOfType <InteractableBed>() .OrderByDescending(obj => VectorUtilities.GetDistance(pPos, obj.transform.position)).ToArray(); if (vis.UseObjectCap) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarr.Length; j++) { InteractableBed obj = objarr[j]; objects.Add(new ESPObject(target, obj, obj.gameObject)); } break; } case ESPTarget.ClaimFlags: { InteractableClaim[] objarr = Object.FindObjectsOfType <InteractableClaim>() .OrderByDescending(obj => VectorUtilities.GetDistance(pPos, obj.transform.position)).ToArray(); if (vis.UseObjectCap) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarr.Length; j++) { InteractableClaim obj = objarr[j]; objects.Add(new ESPObject(target, obj, obj.gameObject)); } break; } case ESPTarget.Vehicles: { InteractableVehicle[] objarr = Object.FindObjectsOfType <InteractableVehicle>() .OrderByDescending(obj => VectorUtilities.GetDistance(pPos, obj.transform.position)).ToArray(); if (vis.UseObjectCap) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarr.Length; j++) { InteractableVehicle obj = objarr[j]; if (obj.isDead) { continue; } objects.Add(new ESPObject(target, obj, obj.gameObject)); } break; } case ESPTarget.Storage: { InteractableStorage[] objarr = Object.FindObjectsOfType <InteractableStorage>() .OrderByDescending(obj => VectorUtilities.GetDistance(pPos, obj.transform.position)).ToArray(); if (vis.UseObjectCap) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarr.Length; j++) { InteractableStorage obj = objarr[j]; objects.Add(new ESPObject(target, obj, obj.gameObject)); } break; } case ESPTarget.Generators: { InteractableGenerator[] objarr = Object.FindObjectsOfType <InteractableGenerator>() .OrderByDescending(obj => VectorUtilities.GetDistance(pPos, obj.transform.position)).ToArray(); if (vis.UseObjectCap) { objarr = objarr.TakeLast(vis.ObjectCap).ToArray(); } for (int j = 0; j < objarr.Length; j++) { InteractableGenerator obj = objarr[j]; objects.Add(new ESPObject(target, obj, obj.gameObject)); } break; } } } yield return(new WaitForSeconds(5)); } }
public void Update() { if (lastCheck == null || (DateTime.Now - lastCheck).TotalMilliseconds >= 1500) { //enabled = (bool)ctrl_Connector.hack_Settings.getSetting("enable_smartUI").value; lastCheck = DateTime.Now; } if (enabled) { displayInfo.Clear(); if (PlayerInteract.interactable != null) { if (PlayerInteract.interactable is InteractableStorage) { InteractableStorage storage = (InteractableStorage)PlayerInteract.interactable; displayInfo.Add("Type: Storage"); //if (storage.owner != CSteamID.Nil) //{ //displayInfo.Add("Owner: " + tool_ToolZ.getSteamPlayer(storage.owner.m_SteamID).playerID.playerName); //} displayInfo.Add("Locked: " + (getLocked(storage) ? "Yes" : "No")); displayInfo.Add("HasItems: " + (storage.items.getItemCount() > 0 ? "Yes" : "No")); //hasCrack = getLocked(storage); int disp = getDisplay(); info_window.width = disp; info_window.x = Screen.width - disp - 10; inte = PlayerInteract.interactable; } else if (PlayerInteract.interactable is InteractableDoor) { InteractableDoor door = (InteractableDoor)PlayerInteract.interactable; displayInfo.Add("Type: Door"); //if (door.owner != CSteamID.Nil) //{ //displayInfo.Add("Owner: " + tool_ToolZ.getSteamPlayer(door.owner.m_SteamID).playerID.playerName); //} displayInfo.Add("Locked: " + (getLocked(door) ? "Yes" : "No")); //hasCrack = getLocked(door); int disp = getDisplay(); info_window.width = disp; info_window.x = Screen.width - disp - 10; inte = PlayerInteract.interactable; } } else { hasCrack = false; RaycastHit hit; if (tool_ToolZ.getLookingAt(out hit)) { if (DamageTool.getPlayer(hit.transform) && DamageTool.getPlayer(hit.transform) != tool_ToolZ.getLocalPlayer()) { Player p = DamageTool.getPlayer(hit.transform); displayInfo.Add("Type: Player"); displayInfo.Add("Name: " + p.name); displayInfo.Add("Health: " + p.life.health); displayInfo.Add("Food: " + p.life.food); displayInfo.Add("Water: " + p.life.water); displayInfo.Add("Stamina: " + p.life.stamina); displayInfo.Add("Distance: " + Math.Round(tool_ToolZ.getDistance(p.transform.position), 0)); if (tool_ToolZ.getLocalPlayer().equipment.asset != null && tool_ToolZ.getLocalPlayer().equipment.asset is ItemWeaponAsset) { displayInfo.Add("Will hit: " + (tool_ToolZ.getDistance(p.transform.position) <= ((ItemWeaponAsset)tool_ToolZ.getLocalPlayer().equipment.asset).range ? "Yes" : "No")); } int disp = getDisplay(); info_window.width = disp; info_window.x = Screen.width - disp - 10; } else if (DamageTool.getZombie(hit.transform)) { Zombie t = DamageTool.getZombie(hit.transform); displayInfo.Add("Type: Zombie"); displayInfo.Add("Health: " + getHealth(t)); displayInfo.Add("Distance: " + Math.Round(tool_ToolZ.getDistance(t.transform.position), 0)); if (tool_ToolZ.getLocalPlayer().equipment.asset != null && tool_ToolZ.getLocalPlayer().equipment.asset is ItemWeaponAsset) { displayInfo.Add("Will hit: " + (tool_ToolZ.getDistance(t.transform.position) <= ((ItemWeaponAsset)tool_ToolZ.getLocalPlayer().equipment.asset).range ? "Yes" : "No")); } int disp = getDisplay(); info_window.width = disp; info_window.x = Screen.width - disp - 10; } else if (DamageTool.getAnimal(hit.transform)) { Animal t = DamageTool.getAnimal(hit.transform); displayInfo.Add("Type: Animal"); displayInfo.Add("Health: " + getHealth(t)); displayInfo.Add("Distance: " + Math.Round(tool_ToolZ.getDistance(t.transform.position), 0)); if (tool_ToolZ.getLocalPlayer().equipment.asset != null && tool_ToolZ.getLocalPlayer().equipment.asset is ItemWeaponAsset) { displayInfo.Add("Will hit: " + (tool_ToolZ.getDistance(t.transform.position) <= ((ItemWeaponAsset)tool_ToolZ.getLocalPlayer().equipment.asset).range ? "Yes" : "No")); } int disp = getDisplay(); info_window.width = disp; info_window.x = Screen.width - disp - 10; } } } } }