diff options
author | Blue <bluesansdouze@gmail.com> | 2009-05-13 20:35:44 +0200 |
---|---|---|
committer | Blue <bluesansdouze@gmail.com> | 2009-05-13 20:35:44 +0200 |
commit | 22685431a23b05d66af28abda488d0891b1c0a34 (patch) | |
tree | a207b9230833abbed3da751ca7e3c4ccdc8e9783 /src/net | |
parent | 9071a692116745f2cafd8556cbff28095910730e (diff) | |
parent | b5ad7e490f0f429a5abac2acae48ecf25485256f (diff) | |
download | mana-client-22685431a23b05d66af28abda488d0891b1c0a34.tar.gz mana-client-22685431a23b05d66af28abda488d0891b1c0a34.tar.bz2 mana-client-22685431a23b05d66af28abda488d0891b1c0a34.tar.xz mana-client-22685431a23b05d66af28abda488d0891b1c0a34.zip |
Merge branch 'master' of git@gitorious.org:tmw/mainline
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/ea/beinghandler.cpp | 16 | ||||
-rw-r--r-- | src/net/ea/partyhandler.cpp | 3 | ||||
-rw-r--r-- | src/net/ea/playerhandler.cpp | 1 |
3 files changed, 15 insertions, 5 deletions
diff --git a/src/net/ea/beinghandler.cpp b/src/net/ea/beinghandler.cpp index 29ed733a..34a0d70a 100644 --- a/src/net/ea/beinghandler.cpp +++ b/src/net/ea/beinghandler.cpp @@ -35,6 +35,8 @@ #include "npc.h" #include "playerrelations.h" +#include "gui/partywindow.h" + #include <iostream> namespace EAthena { @@ -445,12 +447,15 @@ void BeingHandler::handleMessage(MessageIn &msg) dstBeing = createBeing(id, job); } - // Fix monster jobs - if (dstBeing->getType() == Being::MONSTER) { - job -= 1002; + PartyMember *member = partyWindow->findMember(id); + if (member && member->online) + { + dynamic_cast<Player*>(dstBeing)->setInParty(true); + } } + dstBeing->setWalkSpeed(speed); dstBeing->mJob = job; hairStyle = msg.readInt16(); @@ -503,8 +508,9 @@ void BeingHandler::handleMessage(MessageIn &msg) } gmstatus = msg.readInt16(); - if ((gmstatus & 0x80) && dstBeing->getType() == Being::PLAYER) - static_cast<Player*>(dstBeing)->setGM(); + if (gmstatus & 0x80) + if (Player *player = dynamic_cast<Player*>(dstBeing)) + player->setGM(true); if (msg.getId() == SMSG_PLAYER_UPDATE_1) { diff --git a/src/net/ea/partyhandler.cpp b/src/net/ea/partyhandler.cpp index 2f1b02ab..5e7f43c4 100644 --- a/src/net/ea/partyhandler.cpp +++ b/src/net/ea/partyhandler.cpp @@ -156,6 +156,9 @@ void PartyHandler::handleMessage(MessageIn &msg) } case SMSG_PARTY_SETTINGS: { + if (!partyTab) + break; + // These seem to indicate the sharing mode for exp and items short exp = msg.readInt16(); short item = msg.readInt16(); diff --git a/src/net/ea/playerhandler.cpp b/src/net/ea/playerhandler.cpp index 29f0bac4..b7131f0a 100644 --- a/src/net/ea/playerhandler.cpp +++ b/src/net/ea/playerhandler.cpp @@ -262,6 +262,7 @@ void PlayerHandler::handleMessage(MessageIn &msg) case 0x0032: player_node->FLEE = value; break; case 0x0035: player_node->mAttackSpeed = value; break; case 0x0037: player_node->mJobLevel = value; break; + case 500: player_node->setGMLevel(value); break; } if (player_node->getHp() == 0 && !deathNotice) |