From 723e7454e5d164b9d438a45b0446b56b72f36d83 Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond Date: Sat, 30 Dec 2006 23:25:42 +0000 Subject: Almost a complete implementation for warping players between servers. --- src/account-server/serverhandler.cpp | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'src/account-server/serverhandler.cpp') 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); -- cgit v1.2.3-60-g2f50