diff options
Diffstat (limited to 'src/net/eathena')
-rw-r--r-- | src/net/eathena/inventoryrecv.cpp | 6 | ||||
-rw-r--r-- | src/net/eathena/playerhandler.cpp | 60 | ||||
-rw-r--r-- | src/net/eathena/playerrecv.cpp | 10 |
3 files changed, 56 insertions, 20 deletions
diff --git a/src/net/eathena/inventoryrecv.cpp b/src/net/eathena/inventoryrecv.cpp index ead74ad63..30ff720eb 100644 --- a/src/net/eathena/inventoryrecv.cpp +++ b/src/net/eathena/inventoryrecv.cpp @@ -912,9 +912,11 @@ void InventoryRecv::processCartInfo(Net::MessageIn &msg) msg.readInt16("cart items used"); const int size = msg.readInt16("max cart items"); PlayerInfo::setAttribute(Attributes::CART_TOTAL_WEIGHT, - msg.readInt32("cart weight")); + msg.readInt32("cart weight"), + Notify_true); PlayerInfo::setAttribute(Attributes::CART_MAX_WEIGHT, - msg.readInt32("max cart weight")); + msg.readInt32("max cart weight"), + Notify_true); if (mCartItems.empty()) return; diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp index 1091fd454..e98331a28 100644 --- a/src/net/eathena/playerhandler.cpp +++ b/src/net/eathena/playerhandler.cpp @@ -529,10 +529,14 @@ void PlayerHandler::setStat(Net::MessageIn &msg, PlayerInfo::setStatMod(Attributes::PLAYER_WALK_SPEED, 0); break; case Sp::BASEEXP: - PlayerInfo::setAttribute(Attributes::PLAYER_EXP, base); + PlayerInfo::setAttribute(Attributes::PLAYER_EXP, + base, + Notify_true); break; case Sp::JOBEXP: - PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP, base); + PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP, + base, + Notify_true); break; case Sp::KARMA: PlayerInfo::setStatBase(Attributes::PLAYER_KARMA, base); @@ -543,7 +547,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg, PlayerInfo::setStatMod(Attributes::PLAYER_MANNER, 0); break; case Sp::HP: - PlayerInfo::setAttribute(Attributes::PLAYER_HP, base); + PlayerInfo::setAttribute(Attributes::PLAYER_HP, + base, + Notify_true); if (localPlayer->isInParty() && (Party::getParty(1) != nullptr)) { PartyMember *const m = Party::getParty(1) @@ -557,7 +563,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg, } break; case Sp::MAXHP: - PlayerInfo::setAttribute(Attributes::PLAYER_MAX_HP, base); + PlayerInfo::setAttribute(Attributes::PLAYER_MAX_HP, + base, + Notify_true); if (localPlayer->isInParty() && (Party::getParty(1) != nullptr)) { @@ -571,16 +579,24 @@ void PlayerHandler::setStat(Net::MessageIn &msg, } break; case Sp::SP: - PlayerInfo::setAttribute(Attributes::PLAYER_MP, base); + PlayerInfo::setAttribute(Attributes::PLAYER_MP, + base, + Notify_true); break; case Sp::MAXSP: - PlayerInfo::setAttribute(Attributes::PLAYER_MAX_MP, base); + PlayerInfo::setAttribute(Attributes::PLAYER_MAX_MP, + base, + Notify_true); break; case Sp::STATUSPOINT: - PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS, base); + PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS, + base, + Notify_true); break; case Sp::BASELEVEL: - PlayerInfo::setAttribute(Attributes::PLAYER_BASE_LEVEL, base); + PlayerInfo::setAttribute(Attributes::PLAYER_BASE_LEVEL, + base, + Notify_true); if (localPlayer != nullptr) { localPlayer->setLevel(base); @@ -588,7 +604,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg, } break; case Sp::SKILLPOINT: - PlayerInfo::setAttribute(Attributes::PLAYER_SKILL_POINTS, base); + PlayerInfo::setAttribute(Attributes::PLAYER_SKILL_POINTS, + base, + Notify_true); if (skillDialog != nullptr) skillDialog->update(); break; @@ -625,20 +643,30 @@ void PlayerHandler::setStat(Net::MessageIn &msg, UnitsDb::formatCurrency(oldMoney - newMoney).c_str()); } - PlayerInfo::setAttribute(Attributes::MONEY, newMoney); + PlayerInfo::setAttribute(Attributes::MONEY, + newMoney, + Notify_true); break; } case Sp::NEXTBASEEXP: - PlayerInfo::setAttribute(Attributes::PLAYER_EXP_NEEDED, base); + PlayerInfo::setAttribute(Attributes::PLAYER_EXP_NEEDED, + base, + Notify_true); break; case Sp::NEXTJOBEXP: - PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP_NEEDED, base); + PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP_NEEDED, + base, + Notify_true); break; case Sp::WEIGHT: - PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, base); + PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, + base, + Notify_true); break; case Sp::MAXWEIGHT: - PlayerInfo::setAttribute(Attributes::MAX_WEIGHT, base); + PlayerInfo::setAttribute(Attributes::MAX_WEIGHT, + base, + Notify_true); break; case Sp::USTR: statusWindow->setPointsNeeded(Attributes::PLAYER_STR, base); @@ -704,7 +732,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg, PlayerInfo::updateAttrs(); break; case Sp::JOBLEVEL: - PlayerInfo::setAttribute(Attributes::PLAYER_JOB_LEVEL, base); + PlayerInfo::setAttribute(Attributes::PLAYER_JOB_LEVEL, + base, + Notify_true); break; default: diff --git a/src/net/eathena/playerrecv.cpp b/src/net/eathena/playerrecv.cpp index 436852091..7aad0440a 100644 --- a/src/net/eathena/playerrecv.cpp +++ b/src/net/eathena/playerrecv.cpp @@ -77,7 +77,8 @@ void PlayerRecv::processPlayerStatUpdate5(Net::MessageIn &msg) { BLOCK_START("PlayerRecv::processPlayerStatUpdate5") PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS, - msg.readInt16("char points")); + msg.readInt16("char points"), + Notify_true); unsigned int val = msg.readUInt8("str"); PlayerInfo::setStatBase(Attributes::PLAYER_STR, val); @@ -185,7 +186,8 @@ void PlayerRecv::processPlayerStatUpdate5(Net::MessageIn &msg) msg.readInt16("crit/10")); PlayerInfo::setAttribute(Attributes::PLAYER_ATTACK_DELAY, - msg.readInt16("attack speed")); + msg.readInt16("attack speed"), + Notify_true); msg.readInt16("plus speed = 0"); BLOCK_END("PlayerRecv::processPlayerStatUpdate5") @@ -282,7 +284,9 @@ void PlayerRecv::processPlayerHeal(Net::MessageIn &msg) { const int base = PlayerInfo::getAttribute(Attributes::PLAYER_HP) + amount; - PlayerInfo::setAttribute(Attributes::PLAYER_HP, base); + PlayerInfo::setAttribute(Attributes::PLAYER_HP, + base, + Notify_true); if (localPlayer->isInParty() && (Party::getParty(1) != nullptr)) { PartyMember *const m = Party::getParty(1) |