summaryrefslogtreecommitdiff
path: root/src/account-server/serverhandler.cpp
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2006-12-30 23:25:42 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2006-12-30 23:25:42 +0000
commit723e7454e5d164b9d438a45b0446b56b72f36d83 (patch)
treec942bfe1dc7087c856b9024b251f39cfcfa91f6d /src/account-server/serverhandler.cpp
parent7f1c499e4e09ab939d6d31188aaaaf785250a1d5 (diff)
downloadmanaserv-723e7454e5d164b9d438a45b0446b56b72f36d83.tar.gz
manaserv-723e7454e5d164b9d438a45b0446b56b72f36d83.tar.bz2
manaserv-723e7454e5d164b9d438a45b0446b56b72f36d83.tar.xz
manaserv-723e7454e5d164b9d438a45b0446b56b72f36d83.zip
Almost a complete implementation for warping players between servers.
Diffstat (limited to 'src/account-server/serverhandler.cpp')
-rw-r--r--src/account-server/serverhandler.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/account-server/serverhandler.cpp b/src/account-server/serverhandler.cpp
index 7de37126..1b9baa44 100644
--- a/src/account-server/serverhandler.cpp
+++ b/src/account-server/serverhandler.cpp
@@ -124,6 +124,50 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg)
}
} break;
+ case GAMSG_PLAYER_DATA:
+ {
+ int id = msg.readLong();
+ /*
+ // TODO: get correct character and account from database
+ ptr->setGender((Gender)msg.readByte());
+ ptr->setHairStyle(msg.readByte());
+ ptr->setHairColor(msg.readByte());
+ ptr->setLevel(msg.readByte());
+ ptr->setMoney(msg.readShort());
+ for (int j = 0; j < NB_RSTAT; ++j)
+ ptr->setRawStat(j, msg.readShort());
+ int x = msg.readShort();
+ int y = msg.readShort();
+ Point pos = { x, y };
+ ptr->setPosition(pos);
+ ptr->setMapId(msg.readShort());
+ */
+ } break;
+
+ case GAMSG_REDIRECT:
+ {
+ int id = msg.readLong();
+ std::string magic_token(32, ' ');
+ for (int i = 0; i < 32; ++i)
+ {
+ magic_token[i] = 1 + (int)(127 * (rand() / (RAND_MAX + 1.0)));
+ }
+ /*
+ // TODO: get correct character and account from database
+ std::string address;
+ short port;
+ if (serverHandler->getGameServerFromMap(ptr->getMapId(), address, port))
+ {
+ registerGameClient(magic_token, ptr);
+ result.writeShort(AGMSG_REDIRECT_RESPONSE);
+ result.writeLong(ptr->getDatabaseID());
+ result.writeString(magic_token, 32);
+ result.writeString(address);
+ result.writeShort(port);
+ }
+ */
+ } break;
+
default:
LOG_WARN("Invalid message type.", 0);
result.writeShort(XXMSG_INVALID);