summaryrefslogtreecommitdiff
path: root/src/net/eathena/beingrecv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena/beingrecv.cpp')
-rw-r--r--src/net/eathena/beingrecv.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp
index d99fa241e..2166205f6 100644
--- a/src/net/eathena/beingrecv.cpp
+++ b/src/net/eathena/beingrecv.cpp
@@ -1741,26 +1741,23 @@ void BeingRecv::processBeingAttrs(Net::MessageIn &msg)
Being *const dstBeing = actorManager->findBeing(
msg.readBeingId("player id"));
- const int gmLevel = msg.readInt32("gm level");
+ const int gmLevel = msg.readInt32("group id");
uint16_t mount = 0;
mount = msg.readInt16("mount");
int language = -1;
- if (serverVersion >= 17)
+ if (serverVersion >= 17 && len > 14)
language = msg.readInt16("language");
if (dstBeing != nullptr)
{
- if (gmLevel != 0)
+ if (serverVersion <= 17 &&
+ dstBeing == localPlayer)
{
- if (dstBeing == localPlayer)
- localPlayer->setGMLevel(gmLevel);
- dstBeing->setGM(true);
+ localPlayer->setGMLevel(gmLevel);
}
+ if (gmLevel != 0)
+ dstBeing->setGM(true);
else
- {
- if (dstBeing == localPlayer)
- localPlayer->setGMLevel(0);
dstBeing->setGM(false);
- }
dstBeing->setHorse(mount);
dstBeing->setLanguageId(language);
if (dstBeing == localPlayer)