public void Open(byte newContainerIndex, Item container, ItemStructure strucc, bool childContainer = true) { var builder = new PacketBuilder(Packets.SendToClient.OpenContainer); builder.AddU8(newContainerIndex); // container index builder.AddU16(container.Id); // container look id? the one identifying the container builder.AddString(strucc.Name); builder.AddU8(strucc.ContainerSize); builder.AddU8((byte)(childContainer ? 1 : 0)); // 0 == root container, 1 == child container var inside = container.Inside; if (inside == null) { builder.AddU8(0); } else { builder.AddU8((byte) inside.Count); for (int i = 0; i < inside.Count; i++) { builder.AddItem(inside[i]); } } _player.OpenContainer(container); builder.Send(_player); }
private static void NewMethod1(Player player, Item item, ItemStructure strucc) { var builder = new PacketBuilder(Packets.SendToClient.OpenContainer); builder.AddU8(0); // container index builder.AddU16(item.Id); // container look id? the one identifying the container builder.AddString(strucc.Name); builder.AddU8(strucc.ContainerSize); builder.AddU8(0); // root container, 1 == child container var inside = player.Equipment.Backpack.Inside; if (inside == null) { builder.AddU8(0); } else { builder.AddU8((byte)inside.Count); for (int i = 0; i < inside.Count; i++) { builder.AddItem(inside[i]); } } player.OpenContainer(player.Equipment.Backpack); builder.Send(player); }
public void ItemAppear(Position pos, Item item) { var builder = new PacketBuilder(); builder.AddPacketId(Packets.SendToClient.ItemOrCreatureAppearOnTile); builder.AddPosition(pos); builder.AddItem(item); builder.Send(_player); }
public void Legs(Item item) { if (item.Id == 0) { return; } var builder = new PacketBuilder(Packets.SendToClient.FillEquipmentSlot); builder.AddU8((byte)EquipmentSlots.Legs); builder.AddItem(item); builder.Send(_player); _player.Equipment.Legs = item; }
private void AddTileDescriptionToBuilder(PacketBuilder builder, Tile tile, bool isStep) { var count = 0; if (tile.Ground != null) { builder.AddItem(tile.Ground); count++; } if (tile.Items?.Count > 0) { for (int i = tile.Items.Count - 1; i > -1 && count < 10; i--) { builder.AddItem(tile.Items[i]); count++; } } var creatures = IoC.Game.GetCreaturesOnTile(tile.Position); if (creatures == null) { return; } for (int i = 0; i < creatures.Count && count < 10; i++) { if (creatures[i].Id == _player.Id && isStep) { builder.AddPlayerMove(_player); } else { builder.AddCreature(_player, creatures[i]); } count++; } }