diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/being/localplayer.cpp | 8 | ||||
-rw-r--r-- | src/net/eathena/playerhandler.cpp | 5 | ||||
-rw-r--r-- | src/net/eathena/protocol.h | 2 | ||||
-rw-r--r-- | src/net/eathena/serverfeatures.cpp | 2 |
4 files changed, 12 insertions, 5 deletions
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index 02c63bf97..761a17d86 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -3260,9 +3260,11 @@ void LocalPlayer::updateStatus() const if (serverFeatures->havePlayerStatusUpdate() && mEnableAdvert) { uint8_t status = 0; - if (mTradebot && shopWindow && !shopWindow->isShopEmpty()) - status |= BeingFlag::SHOP; - + if (!serverFeatures->haveVending()) + { + if (mTradebot && shopWindow && !shopWindow->isShopEmpty()) + status |= BeingFlag::SHOP; + } if (settings.awayMode || settings.pseudoAwayMode) status |= BeingFlag::AWAY; diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp index 601dab1c6..03dbb2cf5 100644 --- a/src/net/eathena/playerhandler.cpp +++ b/src/net/eathena/playerhandler.cpp @@ -251,8 +251,11 @@ void PlayerHandler::requestOnlineList() const { } -void PlayerHandler::updateStatus(const uint8_t status A_UNUSED) const +void PlayerHandler::updateStatus(const uint8_t status) const { + createOutPacket(CMSG_SET_STATUS); + outMsg.writeInt8(status, "status"); + outMsg.writeInt8(0, "unused"); } void PlayerHandler::setShortcut(const int idx, diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index a02495b19..73357f562 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -573,4 +573,6 @@ #define CMSG_SEARCHSTORE_CLOSE 0x083b #define CMSG_SEARCHSTORE_CLICK 0x0835 +#define CMSG_SET_STATUS 0x0b0e + #endif // NET_EATHENA_PROTOCOL_H diff --git a/src/net/eathena/serverfeatures.cpp b/src/net/eathena/serverfeatures.cpp index b9a752946..182c97186 100644 --- a/src/net/eathena/serverfeatures.cpp +++ b/src/net/eathena/serverfeatures.cpp @@ -67,7 +67,7 @@ bool ServerFeatures::haveLangTab() const bool ServerFeatures::havePlayerStatusUpdate() const { - return false; + return serverVersion >= 5; } bool ServerFeatures::haveBrokenPlayerAttackDistance() const |