'Kyle Posted October 28, 2018 Share Posted October 28, 2018 (edited) Being that I spent many hours working with this, trying to figure out what exactly was the issue and why it wouldn't work, I've decided to share this information with you all so that it may save you both the time and trouble. Furthermore, because I only have seen one snippet pertinent towards item floor examining and the amount of 718 revisions+ that have ground item examining are slim to none. What was the issue? Well, as most of you are surely aware, client packets must be precise. The variables were not.NOTE: If you either used this or if this helped you in ANY way, please don't hesitate to up-vote (its FREE!) First you'll need to declare your packets+size inside WPD: Spoiler private final static int ITEM_ON_FLOOR_EXAMINE = 102; Then add this under processPackets method: Spoiler } else if (packetId == ITEM_ON_FLOOR_EXAMINE) { int y = stream.readUnsignedShort(); //CLIENT SENDS THEM BACKWARDS ON PURPOSE int x = stream.readUnsignedShortLE(); int id = stream.readUnsignedShort(); boolean forceRun = stream.readUnsigned128Byte() == 1; player.getPackets().sendItemMessage(0, 15263739, id, x, y, ItemExamines.getExamine(new Item(id))); // ChatboxMessage Inside WPE: Spoiler public void sendItemMessage(int border, int colour, int id, int x, int y, String message) { sendGameMessage(message); sendGlobalString(306, message); sendGlobalConfig(1699, colour); //"color" - Default; 1 - Black sendGlobalConfig(1700, border); //"border" - Default; 0 - White; 1 - Red; 2 - No Border sendGlobalConfig(1695, 1); sendItemInterface(new Item(id), new WorldTile(x, y, player.getPlane()), true, 746, 0, 1177); } public void sendItemInterface(Item item, WorldTile tile, boolean noclipped, int windowId, int windowComponentId, int interfaceId) { int[] xteas = new int[4]; OutputStream stream = new OutputStream(30); stream.writePacket(player, 36); stream.writeByte128(noclipped ? 1 : 0); stream.writeIntV2(xteas[0]); stream.writeIntLE((windowId << 16) | windowComponentId); stream.writeIntV1(xteas[1]); stream.writeShort(item.getId()); stream.writeIntV1(xteas[2]); stream.writeInt(xteas[3]); stream.writeShortLE(interfaceId); stream.writeInt((tile.getPlane() << 28) | (tile.getX() << 14) | tile.getY()); session.write(stream); } Cody_ Wildskiller Myself Edited October 28, 2018 by 'Kyle Link to comment Share on other sites More sharing options...
Recommended Posts