diff options
author | David Athay <ko2fan@gmail.com> | 2008-10-15 15:45:14 +0000 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2008-10-15 15:45:14 +0000 |
commit | 438be47fa7078cd235bda7d2461024ddc222c026 (patch) | |
tree | 45afebcc356b7e77a8999ef1bda638c638522fae /src/net | |
parent | 61a5caef2951f7e0e3a660514eb5d778d787df8f (diff) | |
download | mana-438be47fa7078cd235bda7d2461024ddc222c026.tar.gz mana-438be47fa7078cd235bda7d2461024ddc222c026.tar.bz2 mana-438be47fa7078cd235bda7d2461024ddc222c026.tar.xz mana-438be47fa7078cd235bda7d2461024ddc222c026.zip |
src/localplayer.cpp
src/net/beinghandler.cpp
src/net/protocol.h
src/net/gameserver/player.h
src/net/gameserver/player.cpp
src/net/beinghandler.h
ChangeLog
tmw.cbp
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/beinghandler.cpp | 10 | ||||
-rw-r--r-- | src/net/beinghandler.h | 1 | ||||
-rw-r--r-- | src/net/gameserver/player.cpp | 22 | ||||
-rw-r--r-- | src/net/gameserver/player.h | 3 | ||||
-rw-r--r-- | src/net/protocol.h | 8 |
5 files changed, 44 insertions, 0 deletions
diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index 7e37aa27..fc3c7d1e 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -55,6 +55,7 @@ BeingHandler::BeingHandler() GPMSG_BEINGS_DAMAGE, GPMSG_BEING_ACTION_CHANGE, GPMSG_BEING_LOOKS_CHANGE, + GPMSG_BEING_DIR_CHANGE, 0 }; handledMessages = _messages; @@ -85,6 +86,9 @@ void BeingHandler::handleMessage(MessageIn &msg) case GPMSG_BEING_LOOKS_CHANGE: handleBeingLooksChangeMessage(msg); break; + case GPMSG_BEING_DIR_CHANGE: + handleBeingDirChangeMessage(msg); + break; } } @@ -319,3 +323,9 @@ void BeingHandler::handleBeingLooksChangeMessage(MessageIn &msg) handleLooks(static_cast< Player * >(being), msg); } +void BeingHandler::handleBeingDirChangeMessage(MessageIn &msg) +{ + Being *being = beingManager->findBeing(msg.readInt16()); + if (!being) return; + being->setDirection(msg.readInt8()); +} diff --git a/src/net/beinghandler.h b/src/net/beinghandler.h index d2a332a8..8ac07017 100644 --- a/src/net/beinghandler.h +++ b/src/net/beinghandler.h @@ -41,6 +41,7 @@ class BeingHandler : public MessageHandler void handleBeingsDamageMessage(MessageIn &msg); void handleBeingActionChangeMessage(MessageIn &msg); void handleBeingLooksChangeMessage(MessageIn &msg); + void handleBeingDirChangeMessage(MessageIn &msg); }; #endif diff --git a/src/net/gameserver/player.cpp b/src/net/gameserver/player.cpp index d8050d2b..28fd954a 100644 --- a/src/net/gameserver/player.cpp +++ b/src/net/gameserver/player.cpp @@ -160,6 +160,21 @@ void Net::GameServer::Player::tradeWithNPC(int item, int amount) Net::GameServer::connection->send(msg); } +void Net::GameServer::Player::sendLetter(const std::string &player, + const std::string &text) +{ + MessageOut msg(PGMSG_SEND_POST); + msg.writeString(player); + msg.writeString(text); + Net::GameServer::connection->send(msg); +} + +void Net::GameServer::Player::getLetters() +{ + MessageOut msg(PGMSG_GET_POST); + Net::GameServer::connection->send(msg); +} + void Net::GameServer::Player::raiseAttribute(int attribute) { MessageOut msg(PGMSG_RAISE_ATTRIBUTE); @@ -179,3 +194,10 @@ void Net::GameServer::Player::respawn() MessageOut msg(PGMSG_RESPAWN); Net::GameServer::connection->send(msg); } + +void Net::GameServer::Player::changeDir(unsigned char dir) +{ + MessageOut msg(PGMSG_DIRECTION_CHANGE); + msg.writeInt8(dir); + Net::GameServer::connection->send(msg); +} diff --git a/src/net/gameserver/player.h b/src/net/gameserver/player.h index eea15c2b..fa8c1376 100644 --- a/src/net/gameserver/player.h +++ b/src/net/gameserver/player.h @@ -59,10 +59,13 @@ namespace Net void tradeItem(int slot, int amount); void tradeMoney(int amount); void tradeWithNPC(int item, int amount); + void sendLetter(const std::string &player, const std::string &text); + void getLetters(); void raiseAttribute(int attribute); void lowerAttribute(int attribute); void respawn(); static RespawnRequestListener respawnListener; + void changeDir(unsigned char dir); } } } diff --git a/src/net/protocol.h b/src/net/protocol.h index bd4eaa17..f766d2da 100644 --- a/src/net/protocol.h +++ b/src/net/protocol.h @@ -99,6 +99,8 @@ enum { PGMSG_WALK = 0x0260, // W*2 destination PGMSG_ACTION_CHANGE = 0x0270, // B Action GPMSG_BEING_ACTION_CHANGE = 0x0271, // W being id, B action + PGMSG_DIRECTION_CHANGE = 0x0272, // B Direction + GPMSG_BEING_DIR_CHANGE = 0x0273, // W being id, B direction GPMSG_BEINGS_MOVE = 0x0280, // { W being id, B flags [, C position, B speed] [, W*2 destination] }* GPMSG_ITEMS = 0x0281, // { W item id, W*2 position }* PGMSG_ATTACK = 0x0290, // B direction @@ -180,6 +182,12 @@ enum { PCMSG_USER_MODE = 0x0465, // W channel id, S name, B mode PCMSG_KICK_USER = 0x0466, // W channel id, S name + // Post + PGMSG_SEND_POST = 0x04A0, // S player, S letter, { W attachment id } + GPMSG_SEND_POST_RESPONSE = 0x04A1, // B error + PGMSG_GET_POST = 0x04A2, // + GPMSG_GET_POST_RESPONSE = 0x04A3, // { L sender id, S letter, { W attachment id } } + XXMSG_INVALID = 0x7FFF }; |