summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/skillrecv.cpp7
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");