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!

[Help] The admin can't drop items.

UNTIL THEN!
Loyal Member
Joined
Mar 5, 2011
Messages
1,086
Reaction score
213
I forgot how to remove this..I know you have to change a number to 0 or change something in MaplePacketCreator.java..

Halcyon - [Help] The admin can't drop items. - RaGEZONE Forums


What do I need to change? I remember removing It in v97..but I don't know how to now.
 
Coder in-training
Joined
Dec 28, 2008
Messages
595
Reaction score
47
Replace your getAuthSuccess in MaplePacket creator to this:

PHP:
public static byte[] getAuthSuccess(MapleClient c) {
        final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
        mplew.writeShort(SendOpcode.LOGIN_STATUS.getValue());
        mplew.writeInt(0);
        mplew.writeShort(0);
        /*
         *       v99 = CInPacket::Decode4(a3);             // ID
        v98 = (unsigned __int8)CInPacket::Decode1(a3);// Gender
        LOBYTE(v96) = CInPacket::Decode1(a3);// Admin
        v47 = (unsigned __int16)CInPacket::Decode2(a3);//gm level
        8248 is set to v96, 8260 is set to v47
        v4 = (int)((char *)v1 + 8260);
        if ( TSecType_unsigned_char_::GetData(v4) & 0x20 )
        {
        result = 2;
        }
        else
        {
        if ( TSecType_unsigned_char_::GetData(v4) & 0x40 )
        result = 3;
        else
        result = (((unsigned __int8)TSecType_unsigned_char_::GetData(v4) ^ 0x80u) >> 7) | 4;
        }
        
         */
        mplew.writeInt(c.getAccID()); //user id
        mplew.write(c.getGender());
        mplew.write(0);
        mplew.write(0);
        mplew.write(0);
        //mplew.writeBool(c.gmLevel() > 0); //admin byte
        //final byte toWrite = (byte) (c.gmLevel() * 32);
        //mplew.writeShort(toWrite > 0x80 ? 0x80 : 0);//0x40 = MWLB
        mplew.write(0);
        mplew.writeMapleAsciiString(c.getAccountName());
        mplew.write(0x03);
        mplew.write(0); //isquietbanned
        mplew.writeLong(0);
        mplew.write(1);//v107, probably special creation thing? :O
        mplew.writeLong(getTime(c.getCreationTime()));//creation time   
        mplew.writeInt(10); // special creation thing lol
        mplew.writeShort(0x101);//pin poop
        mplew.writeLong(System.currentTimeMillis());

        return mplew.getPacket();
    }
 
Last edited:
Upvote 0
UNTIL THEN!
Loyal Member
Joined
Mar 5, 2011
Messages
1,086
Reaction score
213
Replace your getAuthSuccess in MaplePacket creator to this:

PHP:
public static byte[] getAuthSuccess(MapleClient c) {
        final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
        mplew.writeShort(SendOpcode.LOGIN_STATUS.getValue());
        mplew.writeInt(0);
        mplew.writeShort(0);
        /*
         *       v99 = CInPacket::Decode4(a3);             // ID
        v98 = (unsigned __int8)CInPacket::Decode1(a3);// Gender
        LOBYTE(v96) = CInPacket::Decode1(a3);// Admin
        v47 = (unsigned __int16)CInPacket::Decode2(a3);//gm level
        8248 is set to v96, 8260 is set to v47
        v4 = (int)((char *)v1 + 8260);
        if ( TSecType_unsigned_char_::GetData(v4) & 0x20 )
        {
        result = 2;
        }
        else
        {
        if ( TSecType_unsigned_char_::GetData(v4) & 0x40 )
        result = 3;
        else
        result = (((unsigned __int8)TSecType_unsigned_char_::GetData(v4) ^ 0x80u) >> 7) | 4;
        }
        
         */
        mplew.writeInt(c.getAccID()); //user id
        mplew.write(c.getGender());
        mplew.write(0);
        mplew.write(0);
        mplew.write(0);
        //mplew.writeBool(c.gmLevel() > 0); //admin byte
        //final byte toWrite = (byte) (c.gmLevel() * 32);
        //mplew.writeShort(toWrite > 0x80 ? 0x80 : 0);//0x40 = MWLB
        mplew.write(0);
        mplew.writeMapleAsciiString(c.getAccountName());
        mplew.write(0x03);
        mplew.write(0); //isquietbanned
        mplew.writeLong(0);
        mplew.write(1);//v107, probably special creation thing? :O
        mplew.writeLong(getTime(c.getCreationTime()));//creation time   
        mplew.writeInt(10); // special creation thing lol
        mplew.writeShort(0x101);//pin poop
        mplew.writeLong(System.currentTimeMillis());

        return mplew.getPacket();
    }
It didn't work.
 
Upvote 0
Newbie Spellweaver
Joined
Jul 11, 2012
Messages
15
Reaction score
1
Drop commands doesn't clear the inventory, just need to point that out LOL
 
Upvote 0
Coder in-training
Joined
Dec 28, 2008
Messages
595
Reaction score
47
Never said it did. It doesn't drop the id, it drops the name. So it's like
Code:
!drop 1 Eye of Fire
 
Upvote 0
Newbie Spellweaver
Joined
Aug 27, 2011
Messages
31
Reaction score
1
Or you can not be lazy and fix it. Search in your source for dropItem or for a string that has the text "The admin can't drop items". That should pinpoint where it is, from there if you can't work it out post the file here.
 
Upvote 0
Back
Top