implemented saving mentor

This commit is contained in:
kamilprzyb 2020-09-14 23:19:14 +02:00
parent 10dc5721c0
commit b6cce78016
4 changed files with 12 additions and 3 deletions

View File

@ -53,7 +53,8 @@ auto db = make_storage("database.db",
make_column("Taros", &Database::DbPlayer::Taros),
make_column("Quests", &Database::DbPlayer::QuestFlag),
make_column("BatteryW", &Database::DbPlayer::BatteryW),
make_column("BatteryN", &Database::DbPlayer::BatteryN)
make_column("BatteryN", &Database::DbPlayer::BatteryN),
make_column("Mentor", &Database::DbPlayer::Mentor)
),
make_table("Inventory",
make_column("PlayerId", &Database::Inventory::playerId),
@ -167,6 +168,8 @@ int Database::createCharacter(sP_CL2LS_REQ_SAVE_CHAR_NAME* save, int AccountID)
create.z_coordinates = settings::SPAWN_Z;
create.angle = settings::SPAWN_ANGLE;
create.QuestFlag = std::vector<char>();
//set mentor to computress
create.Mentor = 5;
return db.insert(create);
}
@ -322,6 +325,7 @@ Database::DbPlayer Database::playerToDb(Player *player)
result.Nano3 = player->equippedNanos[2];
result.BatteryN = player->batteryN;
result.BatteryW = player->batteryW;
result.Mentor = player->mentor;
// quests
result.QuestFlag = std::vector<char>();
@ -376,6 +380,7 @@ Player Database::DbToPlayer(DbPlayer player) {
result.fusionmatter = player.FusionMatter;
result.batteryN = player.BatteryN;
result.batteryW = player.BatteryW;
result.mentor = player.Mentor;
result.equippedNanos[0] = player.Nano1;
result.equippedNanos[1] = player.Nano2;

View File

@ -64,6 +64,7 @@ namespace Database {
short int PCState;
int BatteryW;
int BatteryN;
int16_t Mentor;
std::vector<char> QuestFlag;
};

View File

@ -17,6 +17,7 @@ struct Player {
int level;
int HP;
int slot; // player slot, not nano slot
int16_t mentor;
int32_t money;
int32_t fusionmatter;
int32_t batteryW;

View File

@ -208,7 +208,7 @@ void PlayerManager::enterPlayer(CNSocket* sock, CNPacketData* data) {
response.PCLoadData2CL.iHP = plr.HP;
response.PCLoadData2CL.iLevel = plr.level;
response.PCLoadData2CL.iCandy = plr.money;
response.PCLoadData2CL.iMentor = 5; // Computress
response.PCLoadData2CL.iMentor = plr.mentor;
response.PCLoadData2CL.iMentorCount = 1; // how many guides the player has had
response.PCLoadData2CL.iMapNum = 0;
response.PCLoadData2CL.iX = plr.x;
@ -729,8 +729,10 @@ void PlayerManager::changePlayerGuide(CNSocket *sock, CNPacketData *data) {
resp.iMentor = pkt->iMentor;
resp.iMentorCnt = 1;
resp.iFusionMatter = plr->fusionmatter; // no cost
sock->sendPacket((void*)&resp, P_FE2CL_REP_PC_CHANGE_MENTOR_SUCC, sizeof(sP_FE2CL_REP_PC_CHANGE_MENTOR_SUCC));
//save it on player
plr->mentor = pkt->iMentor;
}
#pragma region Helper methods