public static byte[] cancelMonsterStatus(int oid, MonsterStatus stat) { if (ServerProperties.ShowPacket()) { System.out.println("调用: " + new java.lang.Throwable().getStackTrace()[0]); } MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.write(SendPacketOpcode.CANCEL_MONSTER_STATUS.getValue()); mplew.writeInt(oid); PacketHelper.writeMonsterStatusMask(mplew, stat); mplew.write(1); mplew.write(2); return mplew.getPacket(); }
public static byte[] applyMonsterPoisonStatus(MapleMonster mons, List<MonsterStatusEffect> mse) { if (ServerProperties.ShowPacket()) { System.out.println("调用: " + new java.lang.Throwable().getStackTrace()[0]); } if ((mse.size() <= 0) || (mse.get(0) == null)) { return MaplePacketCreator.enableActions(); } MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.write(SendPacketOpcode.APPLY_MONSTER_STATUS.getValue()); mplew.writeInt(mons.getObjectId()); MonsterStatusEffect ms = (MonsterStatusEffect) mse.get(0); if (ms.getStati() == MonsterStatus.中毒) { PacketHelper.writeMonsterStatusMask(mplew, MonsterStatus.持续掉血); mplew.write(mse.size()); for (MonsterStatusEffect m : mse) { mplew.writeInt(m.getFromID()); if (m.isMonsterSkill()) { mplew.writeShort(m.getMobSkill().getSkillId()); mplew.writeShort(m.getMobSkill().getSkillLevel()); } else if (m.getSkill() > 0) { mplew.writeInt(m.getSkill()); } mplew.writeInt(m.getX()); mplew.writeInt(1000); mplew.writeInt(0); mplew.writeInt(10000); mplew.writeInt((int) (m.getDotTime() / 1000L)); mplew.writeInt(0); } mplew.writeShort(1000); mplew.write(1); } else { PacketHelper.writeSingleMask(mplew, ms.getStati()); mplew.writeInt(ms.getX()); if (ms.isMonsterSkill()) { mplew.writeShort(ms.getMobSkill().getSkillId()); mplew.writeShort(ms.getMobSkill().getSkillLevel()); } else if (ms.getSkill() > 0) { mplew.writeInt(ms.getSkill()); } mplew.writeShort(0); mplew.writeShort(0); mplew.write(1); mplew.write(1); } return mplew.getPacket(); }
public static byte[] applyMonsterStatus(MapleMonster mons, MonsterStatusEffect ms) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.write(SendPacketOpcode.APPLY_MONSTER_STATUS.getValue()); mplew.writeInt(mons.getObjectId()); PacketHelper.writeMonsterStatusMask(mplew, ms.getStati()); mplew.writeShort(ms.getX()); if (ms.isMonsterSkill()) { mplew.writeShort(ms.getMobSkill().getSkillId()); mplew.writeShort(ms.getMobSkill().getSkillLevel()); } else if (ms.getSkill() > 0) { mplew.writeInt(ms.getSkill()); } mplew.writeShort(100); mplew.writeShort(1); // delay in ms return mplew.getPacket(); }
public static byte[] applyMonsterStatus(int oid, MonsterStatus mse, int x, MobSkill skil) { if (ServerProperties.ShowPacket()) { System.out.println("调用: " + new java.lang.Throwable().getStackTrace()[0]); } MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.write(SendPacketOpcode.APPLY_MONSTER_STATUS.getValue()); mplew.writeInt(oid); PacketHelper.writeMonsterStatusMask(mplew, mse); mplew.writeInt(x); mplew.writeShort(skil.getSkillId()); mplew.writeShort(skil.getSkillLevel()); mplew.writeShort(0); mplew.writeShort(0); mplew.write(1); mplew.write(1); return mplew.getPacket(); }
public static byte[] applyMonsterStatus( int oid, Map<MonsterStatus, Integer> stati, List<Integer> reflection, MobSkill skil) { if (ServerProperties.ShowPacket()) { System.out.println("调用: " + new java.lang.Throwable().getStackTrace()[0]); } MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.write(SendPacketOpcode.APPLY_MONSTER_STATUS.getValue()); mplew.writeInt(oid); PacketHelper.writeMonsterStatusMask(mplew, stati.keySet()); for (Map.Entry mse : stati.entrySet()) { mplew.writeShort(((Integer) mse.getValue())); mplew.writeInt(skil.getSkillId()); mplew.writeShort( 100); // buffTime, this needs to be coded properly -- as a workaround, we'll use 100. } mplew.write(1); // delay in ms return mplew.getPacket(); }