summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2008-10-27 17:16:40 +0000
committerDavid Athay <ko2fan@gmail.com>2008-10-27 17:16:40 +0000
commit5427da41d391937a9e9b353889347a7462a734f8 (patch)
tree71185fce65324a0d99683084226f20e8be065140 /src
parentfb2b268a2616617800b92330e09278042e50e7d7 (diff)
downloadmanaserv-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.cpp44
-rw-r--r--src/account-server/dalstorage.hpp22
-rw-r--r--src/account-server/serverhandler.cpp22
-rw-r--r--src/defines.h4
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
};