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 static IEnumerator ClearInventoryCoroutine(SteamPlayer player) { for (byte page = 0; page < 6; page++) { for (byte i = 0; i < player.player.inventory.items[page].getItemCount(); i++) { ItemJar item = player.player.inventory.items[page].getItem(i); player.player.inventory.removeItem(page, player.player.inventory.getIndex(page, item.x, item.y)); } } System.Action removeUnequipped = () => { for (byte i = 0; i < player.player.inventory.getItemCount(2); i++) { player.player.inventory.removeItem(2, 0); } }; player.player.clothing.askWearBackpack(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearGlasses(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearHat(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearPants(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearMask(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearShirt(0, 0, new byte[0], true); removeUnequipped(); player.player.clothing.askWearVest(0, 0, new byte[0], true); removeUnequipped(); yield return(null); }
internal static bool DeleteItem(CSteamID csteamid, ItemJar item) { try { MySqlConnection mySqlConnection = Database.createConnection(); MySqlCommand mySqlCommand = mySqlConnection.CreateCommand(); string text = (item.item.metadata == null) ? "" : Convert.ToBase64String(item.item.metadata); mySqlCommand.CommandText = string.Concat(new object[] { "delete from `", ItemVault.Instance.Configuration.Instance.DatabaseTableName, "` where csteamid = ", csteamid, " and durability = ", item.item.durability, " and metadata = '", text, "' and itemid = ", item.item.id, " and stacksize = ", item.item.amount, " limit 1;" }); mySqlConnection.Open(); mySqlCommand.ExecuteScalar(); mySqlConnection.Close(); return(true); } catch (Exception ex) { Logger.LogException(ex); } return(false); }
public static void updateNearbyDrops() { if (MiscOptions.IncreaseNearbyItemDistance && !MiscOptions.PanicMode) { OV_PlayerDashboardInventoryUI.areaItems.clear(); OV_PlayerDashboardInventoryUI.regionsInRadius.Clear(); Regions.getRegionsInRadius(Player.player.look.aim.position, 20f, OV_PlayerDashboardInventoryUI.regionsInRadius); OV_PlayerDashboardInventoryUI.itemsInRadius.Clear(); ItemManager.getItemsInRadius(Player.player.look.aim.position, 400f, OV_PlayerDashboardInventoryUI.regionsInRadius, OV_PlayerDashboardInventoryUI.itemsInRadius); if (OV_PlayerDashboardInventoryUI.itemsInRadius.Count > 0) { OV_PlayerDashboardInventoryUI.areaItems.resize(8, 0); byte b = 0; while ((int)b < OV_PlayerDashboardInventoryUI.itemsInRadius.Count && OV_PlayerDashboardInventoryUI.areaItems.getItemCount() < 200) { InteractableItem interactableItem = OV_PlayerDashboardInventoryUI.itemsInRadius[(int)b]; if (interactableItem) { Item item = interactableItem.item; if (item != null) { while (!OV_PlayerDashboardInventoryUI.areaItems.tryAddItem(item)) { if (OV_PlayerDashboardInventoryUI.areaItems.height >= 200) { goto IL_14E; } OV_PlayerDashboardInventoryUI.areaItems.resize(OV_PlayerDashboardInventoryUI.areaItems.width, OV_PlayerDashboardInventoryUI.areaItems.height + 1); } ItemJar item2 = OV_PlayerDashboardInventoryUI.areaItems.getItem(OV_PlayerDashboardInventoryUI.areaItems.getItemCount() - 1); item2.interactableItem = interactableItem; interactableItem.jar = item2; } } b += 1; } IL_14E: if (OV_PlayerDashboardInventoryUI.areaItems.height + 3 <= 200) { OV_PlayerDashboardInventoryUI.areaItems.resize(OV_PlayerDashboardInventoryUI.areaItems.width, OV_PlayerDashboardInventoryUI.areaItems.height + 3); } } else { OV_PlayerDashboardInventoryUI.areaItems.resize(8, 3); } Player.player.inventory.replaceItems(PlayerInventory.AREA, OV_PlayerDashboardInventoryUI.areaItems); SleekItems[] array = (SleekItems[])OV_PlayerDashboardInventoryUI.itemsfield.GetValue(null); array[(int)(PlayerInventory.AREA - PlayerInventory.SLOTS)].clear(); array[(int)(PlayerInventory.AREA - PlayerInventory.SLOTS)].resize(OV_PlayerDashboardInventoryUI.areaItems.width, OV_PlayerDashboardInventoryUI.areaItems.height); for (int i = 0; i < (int)OV_PlayerDashboardInventoryUI.areaItems.getItemCount(); i++) { array[(int)(PlayerInventory.AREA - PlayerInventory.SLOTS)].addItem(OV_PlayerDashboardInventoryUI.areaItems.getItem((byte)i)); } OV_PlayerDashboardInventoryUI.updateBoxAreasfield.Invoke(null, null); return; } OverrideUtilities.CallOriginal(null, null); }
private void OnInventoryUpdated(Player nativePlayer, byte page, byte index, ItemJar jar) { var player = GetUnturnedPlayer(nativePlayer) !; var @event = new UnturnedPlayerItemUpdatedEvent(player, page, index, jar); Emit(@event); }
private void OnInventoryRemoved(Player nativePlayer, byte page, byte index, ItemJar jar) { UnturnedPlayer player = GetUnturnedPlayer(nativePlayer); UnturnedPlayerItemRemovedEvent @event = new UnturnedPlayerItemRemovedEvent(player, page, index, jar); Emit(@event); }
private void onEquip(PlayerEquipment equipment, ItemJar jar, ItemAsset asset, ref bool shouldAllow) { UnturnedPlayer player = UnturnedPlayer.FromPlayer(equipment.player); if (this.woundeds.Any((Wounded e) => e.Id == player.CSteamID)) { shouldAllow = false; } }
public void onItemUpdated(byte page, byte index, ItemJar jar) { if (!isActiveAndEnabled || !awake) { return; } Inventory.sendUpdateInvState(page, jar.x, jar.y, jar.item.state); OpenedInentory.sendUpdateInvState(page, jar.x, jar.y, jar.item.state); }
public void onItemRemoved(byte page, byte index, ItemJar jar) { if (!isActiveAndEnabled || !awake) { return; } Inventory.sendDropItem(page, jar.x, jar.y); OpenedInentory.sendDropItem(page, jar.x, jar.y); }
private void OnInventoryChange(byte page, byte index, ItemJar item)//if player exits this automatically removed { //if (token.IsCancellationRequested) // return; //EffectManager.askEffectClearByID(8101, this.callerPlayer.channel.owner.playerID.steamID); GetTargetItems(); //await System.Threading.Tasks.Task.Run(()=> ShowItemsUI(this.callerPlayer, currentPage)); ShowItemsUI(this.callerPlayer, currentPage); //ShowItemsUI(this.callerPlayer, currentPage); }
private void OnEquipRequested(PlayerEquipment equipment, ItemJar jar, ItemAsset asset, ref bool shouldAllow) { UnturnedPlayer player = UnturnedPlayer.FromPlayer(equipment.player); if (asset.type == EItemType.GUN && !this.CanPlayerEquipGun(player)) { shouldAllow = false; UnturnedChat.Say(player, Translate("RequireGunLicense"), MessageColor); } }
private void OnEquipRequested(PlayerEquipment equipment, ItemJar jar, ItemAsset asset, ref bool shouldAllow) { UnturnedPlayer player = GetUnturnedPlayer(equipment.player); UnturnedPlayerItemEquippingEvent @event = new UnturnedPlayerItemEquippingEvent(player, new UnturnedItem(jar.item)); Emit(@event); shouldAllow = [email protected]; }
public static ItemModel FromItemJar(ItemJar jar, byte page) { return(new ItemModel() { X = jar.x, Y = jar.y, Rot = jar.rot, Page = page, Item = jar.item }); }
public static SerializableItem Create(byte page, ItemJar item) { var result = Create(item.item); result.Position = new SerializableItemPosition { Page = page, Rot = item.rot, X = item.x, Y = item.y }; return(result); }
internal void Break() { Transform.localPosition = Player.IsInVehicle ? Player.CurrentVehicle.transform.position : Player.Position; for (byte b = 0; b < ItemCount; b += 1) { ItemJar item = Container.items.getItem(b); ItemManager.dropItem(item.item, Transform.localPosition, false, true, true); } Container.items.clear(); Close(); Container = null; UnturnedChat.Say(Player, VirtualStorage.Instance.Translate("removing_container", ContainerName, ItemCount), Color.cyan); }
private bool TryAddItem(Item item, UnturnedPlayerInventory playerInventory, out ItemJar itemJar) { var inventory = playerInventory.Inventory; var player = playerInventory.Player; itemJar = null; if (item == null) { return(false); } ItemAsset itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, item.id); if (itemAsset == null || itemAsset.isPro) { return(false); } if (itemAsset.canPlayerEquip) { if (itemAsset.slot.canEquipAsSecondary() && TryAddItemEquip(playerInventory, item, 1 /* secondary slot */)) { itemJar = playerInventory.Inventory.items[1].getItem(index: 0); return(true); } if (itemAsset.slot.canEquipAsPrimary() && TryAddItemEquip(playerInventory, item, 0 /* primary slot */)) { itemJar = playerInventory.Inventory.items[0].getItem(index: 0); return(true); } } for (var page = PlayerInventory.SLOTS; page < PlayerInventory.PAGES - 2; page++) { if (!inventory.items[page].tryAddItem(item)) { continue; } itemJar = inventory.items[page].getItem((byte)(inventory.items[page].getItemCount() - 1)); if (!player.equipment.isSelected && itemAsset.slot.canEquipInPage(page) && itemAsset.canPlayerEquip) { player.equipment.tryEquip(page, itemJar.x, itemJar.y); } return(true); } return(false); }
private void OnEquipRequested(PlayerEquipment equipment, ItemJar jar, ItemAsset asset, ref bool shouldAllow) { var player = GetUnturnedPlayer(equipment.player) !; var inventoryItem = new UnturnedInventoryItem(player.Inventory, jar); var @event = new UnturnedPlayerItemEquippingEvent(player, inventoryItem.Item) { IsCancelled = !shouldAllow }; Emit(@event); shouldAllow = [email protected]; }
public override TemplateObject Handle(TagData data) { if (data.Remaining == 0) { return(this); } switch (data[0]) { case "items": { List <TemplateObject> list = new List <TemplateObject>(); foreach (Items items in Internal) { for (byte i = 0; i < items.getItemCount(); i++) { ItemJar item = items.getItem(i); list.Add(new ItemTag(item)); } } return(new ListTag(list).Handle(data)); } case "item": { long index = IntegerTag.For(data, data.GetModifierObject(0)).Internal; int curr = 0; byte size; while (index >= (size = Internal[curr].getItemCount())) { curr++; if (curr == Internal.Length) { curr--; index = Internal[curr].getItemCount() - 1; break; } else { index -= size; } } return(new ItemTag(Internal[curr].getItem((byte)index))); } default: return(new TextTag(ToString()).Handle(data)); } }
public static List <Item> ListItems(UnturnedPlayer player) { List <Item> itemList = new List <Item>(); for (byte page = 0; page < PlayerInventory.PAGES - 1; page++) { for (byte index = 0; index < player.Inventory.getItemCount(page); index++) { ItemJar iJar = player.Inventory.getItem(page, index); itemList.Add(new Item(iJar.item.id, iJar.item.metadata, page, iJar.x, iJar.y, iJar.rot)); } } return(itemList); }
private void OnEquipRequested(PlayerEquipment equipment, ItemJar jar, ItemAsset asset, ref bool shouldAllow) { equipment.player.movement.sendPluginGravityMultiplier(1); equipment.player.movement.sendPluginJumpMultiplier(1); equipment.player.movement.sendPluginSpeedMultiplier(1); var id = jar.item.id; var clothing = equipment.player.clothing; SendEffectItems(id, equipment.player); SendEffectClothing(clothing.backpack, equipment.player); SendEffectClothing(clothing.glasses, equipment.player); SendEffectClothing(clothing.hat, equipment.player); SendEffectClothing(clothing.mask, equipment.player); SendEffectClothing(clothing.pants, equipment.player); SendEffectClothing(clothing.shirt, equipment.player); SendEffectClothing(clothing.vest, equipment.player); }
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(); } } } }
/** * Sell a Page of Items * * This function sells all player inventory items, by stepping through each * "page" of the inventory and sells each item. This is to ensure nothing is * missed or left behind. * @param {UnturnedPlayer} player Player data * @param {byte} page Page of items */ public void Sell(UnturnedPlayer player, byte page) { foreach (var i in player.Inventory.items) { if (i == null) { continue; } for (byte w = 0; w < i.width; w++) { for (byte h = 0; h < i.height; h++) { try { byte index = i.getIndex(w, h); if (index == 255) { continue; } ItemJar itm = player.Inventory.getItem(i.page, index); // filter items to only those that match page if (i.page == Convert.ToByte(page)) { // sell item via ZaupShop plugin ZaupShop.ZaupShop.Instance.Sell(player, new[] { itm.item.id.ToString() }); /** * DEV NOTE * there's no way to tell if ZaupShop succeeded in selling the item, so * even if it doesn't pay out, this next line will still delete the item * anyway. "whoops"... */ i.removeItem(index); } } catch { } } } } }
private void fillSlot(ItemJar jar, bool isOccupied) { byte num1 = jar.size_x; byte num2 = jar.size_y; if ((int)jar.rot % 2 == 1) { num1 = jar.size_y; num2 = jar.size_x; } for (byte index1 = 0; (int)index1 < (int)num1; ++index1) { for (byte index2 = 0; (int)index2 < (int)num2; ++index2) { if ((int)jar.x + (int)index1 < (int)Width && (int)jar.y + (int)index2 < (int)Height) { Slots[(int)jar.x + (int)index1, (int)jar.y + (int)index2] = isOccupied; } } } }
internal void SaveState() { SteamPacker.openWrite(0); ItemCount = Container.items.getItemCount(); SteamPacker.write(Player.CSteamID, Player.SteamGroupID, ItemCount); for (byte i = 0; i < ItemCount; i++) { ItemJar I = (ItemJar)Container.items.getItem(i); SteamPacker.write(I.x, I.y, I.rot, I.item.id, I.item.amount, I.item.durability, I.item.metadata); } if (Container.isDisplay) { SteamPacker.write(Container.displaySkin, Container.displayMythic, Container.rot_comp); } int Size = 0; byte[] tmp = SteamPacker.closeWrite(out Size); StateSize = Size; State = new byte[StateSize]; Array.Copy(tmp, State, StateSize); }
internal static bool AddItem(CSteamID csteamid, ItemJar item) { try { MySqlConnection mySqlConnection = Database.createConnection(); MySqlCommand mySqlCommand = mySqlConnection.CreateCommand(); string text = (item.item.metadata == null) ? "" : Convert.ToBase64String(item.item.metadata); mySqlCommand.CommandText = string.Concat(new object[] { "insert into `", ItemVault.Instance.Configuration.Instance.DatabaseTableName, "` (`csteamid`,`durability`,`x`,`y`,`rotation`,`metadata`,`itemid`,`stacksize`) values(", csteamid, ",", item.item.durability, ",", item.x, ",", item.y, ",", item.rot, ",'", text, "',", item.item.id, ",", item.item.amount, ");" }); mySqlConnection.Open(); mySqlCommand.ExecuteNonQuery(); mySqlConnection.Close(); return(true); } catch (Exception ex) { Logger.LogException(ex); } return(false); }
internal static void UpdateItem(CSteamID cSteamID, ItemJar item) { try { MySqlConnection mySqlConnection = Database.createConnection(); MySqlCommand mySqlCommand = mySqlConnection.CreateCommand(); string text = (item.item.metadata == null) ? "" : Convert.ToBase64String(item.item.metadata); mySqlCommand.CommandText = string.Concat(new object[] { "update `", ItemVault.Instance.Configuration.Instance.DatabaseTableName, "` set `metadata`='" + text + "' where `csteamid`='" + cSteamID + "' and `itemid` = " + item.item.id + " limit 1;" }); mySqlConnection.Open(); mySqlCommand.ExecuteNonQuery(); mySqlConnection.Close(); } catch (Exception ex) { Logger.LogException(ex); } }
private void LoadSize(byte newWidth, byte newHeight) { Width = newWidth; Height = newHeight; Slots = new bool[(int)Width, (int)Height]; for (byte index1 = 0; (int)index1 < (int)Width; ++index1) { for (byte index2 = 0; (int)index2 < (int)Height; ++index2) { Slots[(int)index1, (int)index2] = false; } } List <ItemJar> itemJarList = new List <ItemJar>(); if (items != null) { for (byte index = 0; (int)index < this.items.Count; ++index) { ItemJar jar = this.items[(int)index]; byte num1 = jar.size_x; byte num2 = jar.size_y; if ((int)jar.rot % 2 == 1) { num1 = jar.size_y; num2 = jar.size_x; } if (Width == (byte)0 || this.Height == (byte)0 || (int)Page >= (int)PlayerInventory.SLOTS && ((int)jar.x + (int)num1 > (int)Width || (int)jar.y + (int)num2 > (int)Height)) { } else { this.fillSlot(jar, true); itemJarList.Add(jar); } } } this.items = itemJarList; }
private void OnDequipRequested(PlayerEquipment equipment, ref bool shouldAllow) { UnturnedPlayer player = GetUnturnedPlayer(equipment.player); PlayerInventory inv = player.Player.inventory; byte page = equipment.equippedPage; byte index = inv.getIndex(page, equipment.equipped_x, equipment.equipped_y); ItemJar jar = inv.getItem(page, index); if (jar?.item == null) { return; } UnturnedPlayerItemUnequippingEvent @event = new UnturnedPlayerItemUnequippingEvent(player, new UnturnedItem(jar.item)); Emit(@event); shouldAllow = [email protected]; }
private void onInventoryAdded(byte E, byte u, ItemJar J) { OnPlayerInventoryAdded.TryInvoke(Player, (InventoryGroup)Enum.Parse(typeof(InventoryGroup), E.ToString()), u, J); OnInventoryAdded.TryInvoke(Player, (InventoryGroup)Enum.Parse(typeof(InventoryGroup), E.ToString()), u, J); }
private void onInventoryRemoved(byte E, byte y, ItemJar f) { OnPlayerInventoryRemoved.TryInvoke(Player, (InventoryGroup)Enum.Parse(typeof(InventoryGroup), E.ToString()), y, f); OnInventoryRemoved.TryInvoke(Player, (InventoryGroup)Enum.Parse(typeof(InventoryGroup), E.ToString()), y, f); }
public ItemTag(ItemJar item) { Internal = item; }
private void onInventoryAdded(byte E, byte u, ItemJar J) { OnPlayerInventoryAdded.TryInvoke(Player,(InventoryGroup)Enum.Parse(typeof(InventoryGroup), E.ToString()), u, J); OnInventoryAdded.TryInvoke(Player, (InventoryGroup)Enum.Parse(typeof(InventoryGroup), E.ToString()), u, J); }
private void onInventoryUpdated(byte E, byte O, ItemJar P) { OnPlayerInventoryUpdated.TryInvoke(Player, (InventoryGroup)Enum.Parse(typeof(InventoryGroup), E.ToString()), O, P); OnInventoryUpdated.TryInvoke(Player, (InventoryGroup)Enum.Parse(typeof(InventoryGroup), E.ToString()), O, P); }