From 1d4ef0558e20984b572f35941e0b2f0650b5e399 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 23 Jan 2011 16:50:43 +0200 Subject: Recover job experience limit from old job level. Server send old limits in job levelup. --- src/gui/statuswindow.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/gui/statuswindow.cpp b/src/gui/statuswindow.cpp index c4d8339e1..ba66e2587 100644 --- a/src/gui/statuswindow.cpp +++ b/src/gui/statuswindow.cpp @@ -325,12 +325,15 @@ void StatusWindow::event(Channels channel _UNUSED_, if (mJobLvlLabel) { int lvl = PlayerInfo::getStatBase(id); + + int oldExp = event.getInt("oldValue1"); + std::pair exp + = PlayerInfo::getStatExperience(id); + if (!lvl) { - // possible server corrupted and dont send job level, + // possible server broken and dont send job level, // then we fixing it :) - std::pair exp - = PlayerInfo::getStatExperience(id); if (exp.second < 20000) { lvl = 0; @@ -342,6 +345,14 @@ void StatusWindow::event(Channels channel _UNUSED_, } } + if (exp.first < oldExp && exp.second >= 20000) + { // possible job level up. but server broken and dont send + // new job exp limit, we fixing it + lvl ++; + PlayerInfo::setStatExperience(id, exp.first, 20000 + lvl * 150); + PlayerInfo::setStatBase(id, lvl); + } + mJobLvlLabel->setCaption(strprintf(_("Job: %d"), lvl)); mJobLvlLabel->adjustSize(); -- cgit v1.2.3-60-g2f50