搜索：

                    normal = false;
                } else if (isSoaring()) {
                    if (applyto.isHidden()) {
                        break;
                    }

替換：
                    maskedStatups = new EnumMap<MapleBuffStat, Integer>(localstatups);
                    maskedStatups.remove(MapleBuffStat.MONSTER_RIDING);
                    normal = maskedStatups.size() > 0;
                } else if (isSoaring()) {
                    if (applyto.isHidden()) {
                        break;
                    }








        public static byte[] showMonsterRiding(int cid, Map<MapleBuffStat, Integer> statups, int buffid, int skillId) {
            MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
System.err.println("3333333333333");
            if (cid == -1) {
                mplew.writeShort(SendPacketOpcode.GIVE_BUFF.getValue());
            } else {
                mplew.writeShort(SendPacketOpcode.GIVE_FOREIGN_BUFF.getValue());
                mplew.writeInt(cid);
            }
            PacketHelper.writeBuffMask(mplew, statups);
            mplew.writeShort(0);
            mplew.write(0);
            mplew.writeInt(buffid); // 1902000 saddle
            mplew.writeInt(skillId); // skillid
            mplew.writeInt(0); // Server tick value
            mplew.writeShort(0);
            mplew.write(1);
            mplew.write(4); // Total buffed times

            return mplew.getPacket();
        }





        public static byte[] giveBuff(int buffid, int bufflength, Map<MapleBuffStat, Integer> statups, MapleStatEffect effect) {
            MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
System.err.println("77777777777777");
            mplew.writeShort(SendPacketOpcode.GIVE_BUFF.getValue());
            PacketHelper.writeBuffMask(mplew, statups);
            boolean stacked = false;
			boolean isAura = false;
            for (Entry<MapleBuffStat, Integer> stat : statups.entrySet()) {
				if (stat.getKey() == MapleBuffStat.YELLOW_AURA || stat.getKey() == MapleBuffStat.BLUE_AURA) {
					isAura = true;
				}
                if (stat.getKey().canStack()) {
                    if (!stacked) {
                        mplew.writeZeroBytes(3);
                        stacked = true;
                    }
                    mplew.writeInt(1); //amount of stacked buffs
                    mplew.writeInt(buffid);
                    mplew.writeLong(stat.getValue().longValue());
                } else {
                    if (stat.getKey() == MapleBuffStat.SPIRIT_SURGE || stat.getKey() == MapleBuffStat.SPIRIT_LINK || buffid == 23101003) {
                        mplew.writeInt(stat.getValue().intValue());
                    } else {
                        mplew.writeShort(stat.getValue().intValue());
                    }
                    mplew.writeInt(buffid);
                }
                mplew.writeInt(bufflength);
            }
			if (!isAura) {
				mplew.writeShort(0); // delay,  wk charges have 600 here o.o
				if (effect != null && effect.isDivineShield()) {
					mplew.writeInt(effect.getEnhancedWatk());
				} else if (effect != null && effect.getCharColor() > 0) {
					mplew.writeInt(effect.getCharColor());
				} else if (effect != null && effect.isInflation()) {
					mplew.writeInt(effect.getInflation());
				}
			}
            //鬥氣爆發BUFF圖示
            mplew.writeShort((buffid == 1111002 || buffid == 11111001) ? 1000 : 0); // combo 600, too
            mplew.write(1);
            mplew.write(effect != null && effect.isShadow() ? 1 : 4); // Test
			if (isAura) {
				mplew.writeInt(0);
			}

            return mplew.getPacket();
        }
