diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-04-02 20:18:44 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-04-02 20:18:44 +0300 |
commit | 013284123a69dfe15016b8823ecc8b8bed54c561 (patch) | |
tree | e152b63b723fadf253f85d483b3d7044de97cd77 /src/net/eathena/beingrecv.cpp | |
parent | 9a3120e7c3d89c3d35d5032114b387e49d462154 (diff) | |
download | mv-013284123a69dfe15016b8823ecc8b8bed54c561.tar.gz mv-013284123a69dfe15016b8823ecc8b8bed54c561.tar.bz2 mv-013284123a69dfe15016b8823ecc8b8bed54c561.tar.xz mv-013284123a69dfe15016b8823ecc8b8bed54c561.zip |
Sort more packets. Add version checks inside packets.
Diffstat (limited to 'src/net/eathena/beingrecv.cpp')
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp index 057617a1c..5d8056d0f 100644 --- a/src/net/eathena/beingrecv.cpp +++ b/src/net/eathena/beingrecv.cpp @@ -1165,15 +1165,21 @@ void BeingRecv::processSkillGroundNoDamage(Net::MessageIn &msg) void BeingRecv::processSkillEntry(Net::MessageIn &msg) { - msg.readInt16("len"); + if (msg.getVersion() >= 20110718) + msg.readInt16("len"); const BeingId id = msg.readBeingId("skill unit id"); const BeingId creatorId = msg.readBeingId("creator accound id"); const int x = msg.readInt16("x"); const int y = msg.readInt16("y"); - const int job = msg.readInt32("job"); - msg.readUInt8("radius"); + int job = 0; + if (msg.getVersion() >= 20121212) + job = msg.readInt32("job"); + if (msg.getVersion() >= 20110718) + msg.readUInt8("radius"); msg.readUInt8("visible"); - const int level = msg.readUInt8("level"); + int level = 0; + if (msg.getVersion() >= 20130731) + level = msg.readUInt8("level"); Being *const dstBeing = createBeing2(msg, id, job, BeingType::SKILL); if (!dstBeing) return; |