diff options
author | David Athay <ko2fan@gmail.com> | 2008-10-27 17:16:40 +0000 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2008-10-27 17:16:40 +0000 |
commit | 5427da41d391937a9e9b353889347a7462a734f8 (patch) | |
tree | 71185fce65324a0d99683084226f20e8be065140 /src | |
parent | fb2b268a2616617800b92330e09278042e50e7d7 (diff) | |
download | manaserv-5427da41d391937a9e9b353889347a7462a734f8.tar.gz manaserv-5427da41d391937a9e9b353889347a7462a734f8.tar.bz2 manaserv-5427da41d391937a9e9b353889347a7462a734f8.tar.xz manaserv-5427da41d391937a9e9b353889347a7462a734f8.zip |
Added changing player's character and account level (game-server commit to come at a later date)
Diffstat (limited to 'src')
-rw-r--r-- | src/account-server/dalstorage.cpp | 44 | ||||
-rw-r--r-- | src/account-server/dalstorage.hpp | 22 | ||||
-rw-r--r-- | src/account-server/serverhandler.cpp | 22 | ||||
-rw-r--r-- | src/defines.h | 4 |
4 files changed, 77 insertions, 15 deletions
diff --git a/src/account-server/dalstorage.cpp b/src/account-server/dalstorage.cpp index 022c74db..35c8cd75 100644 --- a/src/account-server/dalstorage.cpp +++ b/src/account-server/dalstorage.cpp @@ -1293,19 +1293,45 @@ void DALStorage::checkBannedAccounts() } } -void DALStorage::storePost(Letter *letter) +void DALStorage::setAccountLevel(int id, int level) { + try + { + std::ostringstream sql; + sql << "update " << ACCOUNTS_TBL_NAME + << " set level = " << level + << " where id = " << id << ";"; + mDb->execSql(sql.str()); + } + catch (dal::DbSqlQueryExecFailure const &e) + { + LOG_ERROR("(DALStorage::setAccountLevel) SQL query failure: " << e.what()); + } +} + +void DALStorage::setPlayerLevel(int id, int level) +{ + try + { + std::ostringstream sql; + sql << "update " << CHARACTERS_TBL_NAME + << " set level = " << level + << " where id = " << id << ";"; + mDb->execSql(sql.str()); + } + catch (dal::DbSqlQueryExecFailure const &e) + { + LOG_ERROR("(DALStorage::setPlayerLevel) SQL query failure: " << e.what()); + } +} +void DALStorage::storeLetter(Letter *letter) +{ + // TODO: Store letter for user } -Letter* DALStorage::getStoredPost(int playerId) +Post* DALStorage::getStoredPost(int playerId) { - // TODO: Implement post retrieval - /* - Character *sender = 0; - Character *receiver = 0; - Letter *letter = new Letter(0, sender, receiver); - return letter; - */ + // TODO: Get post for user return 0; } diff --git a/src/account-server/dalstorage.hpp b/src/account-server/dalstorage.hpp index 1e8566ef..ae1657c0 100644 --- a/src/account-server/dalstorage.hpp +++ b/src/account-server/dalstorage.hpp @@ -286,18 +286,34 @@ class DALStorage std::string const &value); /** - * Store post + * Set the level on an account + * + * @param id The id of the account + * @param level The level to set for the account + */ + void setAccountLevel(int id, int level); + + /** + * Set the level on a character + * + * @param id The id of the character + * @param level The level to set for the character + */ + void setPlayerLevel(int id, int level); + + /** + * Store letter * * @param letter The letter to store */ - void storePost(Letter *letter); + void storeLetter(Letter *letter); /** * Retrieve post * * @param playerId The id of the player requesting his post */ - Letter* getStoredPost(int playerId); + Post* getStoredPost(int playerId); /** * Add item to auction diff --git a/src/account-server/serverhandler.cpp b/src/account-server/serverhandler.cpp index 5ed771a8..1745c928 100644 --- a/src/account-server/serverhandler.cpp +++ b/src/account-server/serverhandler.cpp @@ -299,6 +299,26 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) storage->banCharacter(id, duration); } break; + case GAMSG_CHANGE_PLAYER_LEVEL: + { + int id = msg.readLong(); + int level = msg.readShort(); + storage->setPlayerLevel(id, level); + } break; + + case GAMSG_CHANGE_ACCOUNT_LEVEL: + { + int id = msg.readLong(); + int level = msg.readShort(); + + // get the character so we can get the account id + Character *c = getCharacter(id); + if (c) + { + storage->setAccountLevel(c->getAccountID(), level); + } + } break; + case GAMSG_STATISTICS: { while (msg.getUnreadLength()) @@ -407,7 +427,7 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) } // save the letter - LOG_INFO("Creating letter"); + LOG_DEBUG("Creating letter"); Letter *letter = new Letter(0, sender, receiver); letter->addText(contents); for (unsigned int i = 0; i < items.size(); ++i) diff --git a/src/defines.h b/src/defines.h index 2a5a7a56..e7d7ae9a 100644 --- a/src/defines.h +++ b/src/defines.h @@ -261,6 +261,8 @@ enum { GAMSG_GET_QUEST = 0x0541, // L id, S name AGMSG_GET_QUEST_RESPONSE = 0x0542, // L id, S name, S value GAMSG_BAN_PLAYER = 0x0550, // L id, W duration + GAMSG_CHANGE_PLAYER_LEVEL = 0x0555, // L id, W level + GAMSG_CHANGE_ACCOUNT_LEVEL = 0x0556, // L id, W level GAMSG_STATISTICS = 0x0560, // { W map id, W thing nb, W monster nb, W player nb, { L character id }* }* CGMSG_CHANGED_PARTY = 0x0590, // L character id, L party id GCMSG_REQUEST_POST = 0x05A0, // L character id @@ -268,8 +270,6 @@ enum { GCMSG_STORE_POST = 0x05A5, // L sender id, S receiver name, S letter, { W attachment item id, W quantity } CGMSG_STORE_POST_RESPONSE = 0x05A6, // L id, B error - - XXMSG_INVALID = 0x7FFF }; |