deleteing player deletes inventory and nanos, minor tweaks to settings

This commit is contained in:
kamilprzyb
2020-09-08 22:41:02 +02:00
committed by dongresource
parent 2fd7a8c6fc
commit 1d9a7139a8
3 changed files with 20 additions and 26 deletions

View File

@@ -44,9 +44,9 @@ auto db = make_storage("database.db",
make_column("HP", &Database::DbPlayer::HP),
make_column("HairColor", &Database::DbPlayer::HairColor),
make_column("HairStyle", &Database::DbPlayer::HairStyle),
make_column("Height", &Database::DbPlayer::Height),
make_column("NameCheck", &Database::DbPlayer::NameCheck),
make_column("SkinColor", &Database::DbPlayer::SkinColor),
make_column("Height", &Database::DbPlayer::Height),
make_column("NameCheck", &Database::DbPlayer::NameCheck),
make_column("SkinColor", &Database::DbPlayer::SkinColor),
make_column("isGM", &Database::DbPlayer::isGM),
make_column("FusionMatter", &Database::DbPlayer::FusionMatter),
make_column("Taros", &Database::DbPlayer::Taros),
@@ -119,7 +119,7 @@ bool Database::isNameFree(sP_CL2LS_REQ_CHECK_CHAR_NAME* nameCheck)
(db.get_all<DbPlayer>
(where((c(&DbPlayer::FirstName) == First)
and (c(&DbPlayer::LastName) == Last)))
.empty());
.empty());
}
int Database::createCharacter(sP_CL2LS_REQ_SAVE_CHAR_NAME* save, int AccountID)
@@ -151,19 +151,11 @@ int Database::createCharacter(sP_CL2LS_REQ_SAVE_CHAR_NAME* save, int AccountID)
create.Height= 0;
create.Level= 1;
create.SkinColor= 1;
create.isGM = false;
//commented and disabled for now
//if (U16toU8(save->szFirstName) == settings::GMPASS) {
// create.isGM = true;
//}
create.FusionMatter= 0;
create.Taros= 0;
create.PCState = 0;
create.isGM = settings::GM;
create.x_coordinates = settings::SPAWN_X;
create.y_coordinates= settings::SPAWN_Y;
create.z_coordinates= settings::SPAWN_Z;
create.angle = 0;
create.angle = settings::SPAWN_ANGLE;
return db.insert(create);
}
@@ -237,6 +229,9 @@ int Database::deleteCharacter(int characterID)
db.get_all<DbPlayer>(where(c(&DbPlayer::PlayerID) == characterID));
int slot = find.front().slot;
db.remove<DbPlayer>(find.front().PlayerID);
db.remove_all<Inventory>(where(c(&Inventory::playerId) == characterID));
db.remove_all<Nano>(where(c(&Nano::playerId) == characterID));
return slot;
}
@@ -418,8 +413,10 @@ void Database::updateNanos(Player player) {
where(c(&Nano::playerId) == player.iID)
);
//insert
int i = 1;
while ((i<SIZEOF_NANO_BANK_SLOT)&&(player.Nanos[i]).iID!=0){
for (int i=1; i < SIZEOF_NANO_BANK_SLOT; i++)
{
if ((player.Nanos[i]).iID == 0)
continue;
Nano toAdd = {};
sNano* next = &player.Nanos[i];
toAdd.playerId = player.iID;
@@ -427,7 +424,6 @@ void Database::updateNanos(Player player) {
toAdd.iSkillID = next->iSkillID;
toAdd.iStamina = next->iStamina;
db.insert(toAdd);
i++;
}
db.commit();
}