Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Hired Merchant bug v62 1st leaves all get dc

Newbie Spellweaver
Joined
Jan 22, 2009
Messages
72
Reaction score
0
Hi ,
Working on the server ,
There is a known issue when 1st left the shop(Hiredmerchant) all got dc .

Tried to use this , 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();
        switch (type) {
            case 1:
                mplew.write(HexTool.getByteArrayFromHexString("05 05 04"));
                break;
            case 2:
                mplew.write(HexTool.getByteArrayFromHexString("05 04 04"));
                break;
            case 3:
                mplew.write(HexTool.getByteArrayFromHexString("05 02 02"));
                break;
            case 4:
                mplew.write(HexTool.getByteArrayFromHexString("05 01 02"));
                break;
            default:
                break;
        }
        mplew.write(ips.isOwner(chr) ? 0 : 3);
        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"));
            }
 
Back
Top