diff options
Diffstat (limited to 'src/localplayer.cpp')
-rw-r--r-- | src/localplayer.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 78395438..0a041021 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -620,6 +620,7 @@ void LocalPlayer::pickUp(FloorItem *item) } else { + pathSetByMouse(); setDestination(item->getTileX() * tileWidth + tileWidth / 2, item->getTileY() * tileHeight + tileHeight / 2); mPickUpTarget = item; @@ -1031,10 +1032,17 @@ void LocalPlayer::event(Event::Channel channel, const Event &event) { if (event.getInt("id") == EXP) { - int change = event.getInt("newValue") - - event.getInt("oldValue"); + int change = 0, + oldXp = event.getInt("oldValue"), + newXp = event.getInt("newValue"); - addMessageToQueue(toString(change) + " xp"); + if (newXp < oldXp) + change = PlayerInfo::getAttribute(EXP_NEEDED) - oldXp; + else + change = newXp - oldXp; + + if (change > 0) + addMessageToQueue(toString(change) + " xp"); } } } |