diff options
-rw-r--r-- | src/net/eathena/skillrecv.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/net/eathena/skillrecv.cpp b/src/net/eathena/skillrecv.cpp index 254676f77..e525fa8a1 100644 --- a/src/net/eathena/skillrecv.cpp +++ b/src/net/eathena/skillrecv.cpp @@ -59,13 +59,16 @@ static const unsigned int RFAIL_NEED_ITEM = 71; static const unsigned int RFAIL_NEED_EQUIPMENT = 72; static const unsigned int RFAIL_SPIRITS = 74; +extern int serverVersion; + namespace EAthena { void SkillRecv::processPlayerSkills(Net::MessageIn &msg) { msg.readInt16("len"); - const int skillCount = (msg.getLength() - 4) / 37; + const int sz = (serverVersion >= 15) ? 41 : 37; + const int skillCount = (msg.getLength() - 4) / sz; int updateSkill = 0; if (skillDialog) @@ -75,6 +78,8 @@ void SkillRecv::processPlayerSkills(Net::MessageIn &msg) const int skillId = msg.readInt16("skill id"); const SkillType::SkillType inf = static_cast<SkillType::SkillType>( msg.readInt32("inf")); + if (serverVersion >= 15) + msg.readInt32("inf2"); const int level = msg.readInt16("skill level"); const int sp = msg.readInt16("sp"); const int range = msg.readInt16("range"); |