- Joined
- Jan 22, 2009
- Messages
- 72
- Reaction score
- 0
Hello i have a bug on my server that cause all visitors get dc with error 38 once the 1st slot leaves the store . there is no red circle when 3 people in it.
This is my Hired Merchant code:
i tried to use these but no cause:
http://forum.ragezone.com/f427/fix-merchant-issue-669807/
This is my Hired Merchant code:
i tried to use these but no cause:
http://forum.ragezone.com/f427/fix-merchant-issue-669807/
Code:
public static MaplePacket getInteraction(MapleCharacter chr, boolean firstTime) {
MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION.getValue()); // header.
IPlayerInteractionManager ips = chr.getInteraction();
int type = ips.getShopType();
if (type == 1) {
mplew.write(HexTool.getByteArrayFromHexString("05 05 04"));
} else if (type == 2) {
mplew.write(HexTool.getByteArrayFromHexString("05 04 04"));
} else if (type == 3) {
mplew.write(HexTool.getByteArrayFromHexString("05 02 02"));
} else if (type == 4) {
mplew.write(HexTool.getByteArrayFromHexString("05 01 02"));
}
mplew.write(ips.isOwner(chr) ? 0 : 1);
mplew.write(0);
if (type == 2 || type == 3 || type == 4) {
addCharLook(mplew, ((MaplePlayerShop) ips).getMCOwner(), false);
mplew.writeMapleAsciiString(ips.getOwnerName());
} else {
mplew.writeInt(((HiredMerchant) ips).getItemId());
mplew.writeMapleAsciiString("Hired Merchant");
}
for (int i = 0; i < 3; i++) {
if (ips.getVisitors()[i] != null) {
mplew.write(i + 1);
addCharLook(mplew, ips.getVisitors()[i], false);
mplew.writeMapleAsciiString(ips.getVisitors()[i].getName());
}
}
mplew.write(0xFF);
if (type == 1) {
mplew.writeShort(0);
mplew.writeMapleAsciiString(ips.getOwnerName());
if (ips.isOwner(chr)) {
mplew.writeInt(Integer.MAX_VALUE); // contains timing, suck my penis we dont need this
mplew.write(firstTime ? 1 : 0);
mplew.write(HexTool.getByteArrayFromHexString("00 00 00 00 00"));
}