[Release] 1.06.2 Some Packet
updatePlayerStats
Code:
public static final MaplePacket updatePlayerStats(final List<Pair<MapleStat, Integer>> stats, final int evan) {
return updatePlayerStats(stats, false, evan);
}
public static final MaplePacket updatePlayerStats(final List<Pair<MapleStat, Integer>> stats, final boolean itemReaction, final int evan) {
final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
mplew.writeShort(SendPacketOpcode.UPDATE_STATS.getValue());
mplew.write(itemReaction ? 1 : 0);
int updateMask = 0;
for (final Pair<MapleStat, Integer> statupdate : stats) {
updateMask |= statupdate.getLeft().getValue();
}
List<Pair<MapleStat, Integer>> mystats = stats;
if (mystats.size() > 1) {
Collections.sort(mystats, new Comparator<Pair<MapleStat, Integer>>() {
@Override
public int compare(final Pair<MapleStat, Integer> o1, final Pair<MapleStat, Integer> o2) {
int val1 = o1.getLeft().getValue();
int val2 = o2.getLeft().getValue();
return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1));
}
});
}
mplew.writeInt(updateMask);
Integer value;
for (final Pair<MapleStat, Integer> statupdate : mystats) {
value = statupdate.getLeft().getValue();
if (value >= 1) {
if (value == 0x1) {
mplew.writeShort(statupdate.getRight().shortValue());
} else if (value <= 0x4) {
mplew.writeInt(statupdate.getRight());
} else if (value < 0x20) {
mplew.write(statupdate.getRight().byteValue());
} else if (value >= 0x400 && value <= 0x2000) {
mplew.writeInt(statupdate.getRight().intValue());
} else if (value == 0x8000) {
if (GameConstants.isEvan(evan) || GameConstants.isResist(evan)) {
throw new UnsupportedOperationException("Pass");
} else {
mplew.writeShort(statupdate.getRight().shortValue());
}
} else if (value < 0xFFFF) {
mplew.writeShort(statupdate.getRight().shortValue());
} else {
mplew.writeInt(statupdate.getRight().intValue());
}
}
}
mplew.writeShort(0); // v104
return mplew.getPacket();
}
UpdateSP
Code:
public static final MaplePacket updateSp(MapleCharacter chr, final boolean itemReaction) {
return updateSp(chr, itemReaction, false);
}
public static final MaplePacket updateSp(MapleCharacter chr, final boolean itemReaction, final boolean overrideJob) {
final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
mplew.writeShort(SendPacketOpcode.UPDATE_STATS.getValue());
mplew.write(itemReaction ? 1 : 0);
mplew.writeInt(0x8000);
if (overrideJob || GameConstants.isEvan(chr.getJob()) || GameConstants.isResist(chr.getJob())) {
mplew.write(chr.getRemainingSpSize());
for (int i = 0; i < chr.getRemainingSps().length; i++) {
if (chr.getRemainingSp(i) > 0) {
mplew.write(i + 1);
mplew.write(chr.getRemainingSp(i));
}
}
} else {
mplew.writeShort(chr.getRemainingSp());
}
mplew.writeShort(0); // After BB+
return mplew.getPacket();
}
giveBuff
Code:
public static MaplePacket giveBuff(int buffid, int bufflength, List<Pair<MapleBuffStat, Integer>> statups, MapleStatEffect effect) {
MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
mplew.writeShort(SendPacketOpcode.GIVE_BUFF.getValue());
writeLongMask(mplew, statups);
for (Pair<MapleBuffStat, Integer> statup : statups) {
mplew.writeInt(statup.getRight().intValue()); // After BB Short -> Int
mplew.writeInt(buffid);
mplew.writeInt(bufflength);
}
mplew.writeShort(0); // delay, wk charges have 600 here o.o
mplew.writeShort(0); // combo 600, too
if (effect == null || (!effect.isCombo() && !effect.isFinalAttack())) {
mplew.write(0); // Test
}
return mplew.getPacket();
}
P.S
1. givebuff almost buff can but some buffstat changed you need sniff that
2. playerstats After BB HP/MP Short -> Int so some changed
3. updatesp After BB one short added but Idk what's that lol^^;
Re: [Release] 1.06.2 Some Packet
Re: [Release] 1.06.2 Some Packet
Re: [Release] 1.06.2 Some Packet
Quote:
Originally Posted by
dlzkfhtm32
hum...
..? What's the problem
---------- Post added at 06:32 AM ---------- Previous post was at 06:31 AM ----------
Quote:
Originally Posted by
Jokersoftms
Thx WinterSSI Xd
^^ no problem
Re: [Release] 1.06.2 Some Packet
thanks but how i put this code?
Re: [Release] 1.06.2 Some Packet
yea, how do i put these code?
Re: [Release] 1.06.2 Some Packet
Quote:
Originally Posted by
davidling
yea, how do i put these code?
copy and paste :huh:?
Re: [Release] 1.06.2 Some Packet
paste where sir?
and I have to chane opcode?
ู