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!

Android Stuck

Newbie Spellweaver
Joined
Dec 26, 2014
Messages
64
Reaction score
2
Does anyone know a fix for android getting stucked on another person's view. Though you see the android still following you .
 
Newbie Spellweaver
Joined
Dec 26, 2014
Messages
64
Reaction score
2
Mind helping me with alittle more tips ? I can't seem to find AndroidMovement & I've checked SummonHandler still no signs of anything related to Android.
 
Upvote 0
(O_o(o_O(O_O)o_O)O_o)
Loyal Member
Joined
Apr 9, 2009
Messages
1,088
Reaction score
322
Mind helping me with alittle more tips ? I can't seem to find AndroidMovement & I've checked SummonHandler still no signs of anything related to Android.

Hmmm, what are you using?

Most sources have like:

An entire file called MapleAndroid.java,

A bunch of SendOps (v144 example),
PHP:
ANDROID_SPAWN((short) 0x19D),//178
    ANDROID_MOVE((short) 0x19E),//179
    ANDROID_EMOTION((short) 0x19F),//17A
    ANDROID_UPDATE((short) 0x1A0),//17B
    ANDROID_DEACTIVATED((short) 0x1A1), //17C

Movement in PlayerHandler.java:
PHP:
public static void MoveAndroid(LittleEndianAccessor slea, MapleClient c, MapleCharacter chr) {
        slea.skip(8);// <-- this line can give trouble, for example it has to be increased in v144 to make androids move for others.
        final List<LifeMovementFragment> res = MovementParse.parseMovement(slea, 3);
       

        if ((res != null) && (chr != null) && (!res.isEmpty()) && (chr.getMap() != null) && (chr.getAndroid() != null)) {
            Point pos = new Point(chr.getAndroid().getPos());
            chr.getAndroid().updatePosition(res);
            chr.getMap().broadcastMessage(chr, CField.moveAndroid(chr.getId(), pos, res), false);
        }
    }

Then in CField there are the actual packets:
PHP:
public static byte[] spawnAndroid(MapleCharacter cid, MapleAndroid android) {
        MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();

        mplew.writeShort(SendPacketOpcode.ANDROID_SPAWN.getValue());
        mplew.writeInt(cid.getId());
        mplew.write(android.getItemId() == 1662006 ? 5 : android.getItemId() - 1661999);
        mplew.writePos(android.getPos());
        mplew.write(android.getStance());
        mplew.writeShort(0);
        mplew.writeShort(0);
        mplew.writeShort(android.getHair() - 30000);
        mplew.writeShort(android.getFace() - 20000);
        mplew.writeMapleAsciiString(android.getName());
        for (short i = -1200; i > -1207; i = (short) (i - 1)) {
            Item item = cid.getInventory(MapleInventoryType.EQUIPPED).getItem(i);
            mplew.writeInt(item != null ? item.getItemId() : 0);
        }

        return mplew.getPacket();
    }

    public static byte[] moveAndroid(int cid, Point pos, List<LifeMovementFragment> res) {
        MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
        mplew.writeShort(SendPacketOpcode.ANDROID_MOVE.getValue());
        mplew.writeInt(cid);
        mplew.writeInt(0);
        mplew.writePos(pos);
        mplew.writeInt(2147483647);
        PacketHelper.serializeMovementList(mplew, res);
        return mplew.getPacket();
    }

Ofc there is a lot more, but this is what you should be focussing on for the movement problem.
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Dec 26, 2014
Messages
64
Reaction score
2
I'm on v117.2 right now which I doubt there's a "MapleAndroid" file o.o Or am I just dumb..



Ok I'm blind. I thank you so much Novak !
 
Upvote 0
Back
Top