Packets :
MaplePacketCreatorCode://addCharLook00 02 22 4E 00 00 00 00 00 00 00 66 76 00 00 // Hair 0B // Weapon Pos -> 11 F0 DD 13 00 // Weapon -> 1302000 07 // Shoe Pos -> 7 26 5E 10 00 // Shoe -> 1072678 06 // Bottom Pos - > 6 2A 2D 10 00 // Shorts/Bottom -> 1060138 05 // Top Pos -> 5 04 E7 0F 00 // Top - > 1042180 01 // Hat Pos -> 1 60 4E 0F 00 // Hat -> 1003104 FF FF FF // End maskItem -> -1 00 00 00 00 // Cash Weapon ? F0 DD 13 00 // Weapon ? Again ?? 00 00 00 00 // Weapon ?? 00 < // getByte 00 00 00 00 00 00 00 00 // Pets 00 00 00 00 // Unknown
This For MoopleDev Based Rev 116 :)Code:private static void addCharLook(MaplePacketLittleEndianWriter mplew, MapleCharacter chr, boolean mega) { mplew.write(chr.getGender()); mplew.write(chr.getSkinColor().getId()); mplew.writeInt(chr.getFace()); mplew.writeInt(chr.getJob().getId()); mplew.write(mega ? 0 : 1); mplew.writeInt(chr.getHair()); Map<Byte, Integer> myEquip = new LinkedHashMap<Byte, Integer>(); Map<Byte, Integer> maskedEquip = new LinkedHashMap<Byte, Integer>(); MapleInventory equip = chr.getInventory(MapleInventoryType.EQUIPPED); for (IItem item : equip.list()) { byte pos = (byte) (item.getPosition() * -1); if ((pos < 100) && (myEquip.get(Byte.valueOf(pos)) == null)) { myEquip.put(Byte.valueOf(pos), Integer.valueOf(item.getItemId())); } else if ((pos > 100) && (pos != 111)) { pos = (byte) (pos - 100); if (myEquip.get(Byte.valueOf(pos)) != null) { maskedEquip.put(Byte.valueOf(pos), myEquip.get(Byte.valueOf(pos))); } myEquip.put(Byte.valueOf(pos), Integer.valueOf(item.getItemId())); } else if (myEquip.get(Byte.valueOf(pos)) != null) { maskedEquip.put(Byte.valueOf(pos), Integer.valueOf(item.getItemId())); } } for (Map.Entry<Byte,Integer> entry : myEquip.entrySet()) { mplew.write(((Byte) entry.getKey()).byteValue()); mplew.writeInt(((Integer) entry.getValue()).intValue()); } mplew.write(0xFF); for (Map.Entry<Byte,Integer> entry : maskedEquip.entrySet()) { mplew.write(((Byte) entry.getKey()).byteValue()); mplew.writeInt(((Integer) entry.getValue()).intValue()); } mplew.write(0xFF); IItem cWeapon = equip.getItem((byte) -111); // Cash Weapon ? mplew.writeInt(cWeapon != null ? cWeapon.getItemId() : 0); cWeapon = equip.getItem((byte) -11); // Weapon mplew.writeInt(cWeapon != null ? cWeapon.getItemId() : 0); mplew.writeInt(0); // TODO : Find Out ? mplew.write(0); // ??? MaplePet[] pets = chr.getPets(); for (int i = 0; i < 3; i++) { if (pets[i] != null) { mplew.writeLong(pets[i].getUniqueId()); // Pets } else { mplew.writeLong(0L); } } mplew.writeInt(0); if (GameConstants.isDemonSlayer(chr.getJob().getId())) { mplew.writeInt(chr.getDemonMask()); } }
Have Fun


Reply With Quote


