fix save master skill tree point and lvl if use reset system, any?
fix 100%

fix
void Player::SaveDBInfo(SQLTransaction& trans)
{
PreparedStatement* stmt = MuDatabase.GetPreparedStatement(CHARACTER_UPDATE_INFO);
stmt->setUInt8(this->GetAuthority());
stmt->setUInt8(this->GetDBClass());
stmt->setString(this->GetName());
stmt->setInt16(this->GetLevelData(LEVEL_DATA_NORMAL)->GetLevel());
if (this->GetLevelData(LEVEL_DATA_NORMAL)->GetLevel() < 400) {
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MASTER_BAK)->GetLevel());
}
else if (this->GetLevelData(LEVEL_DATA_NORMAL)->GetLevel() == 400) {
if (this->GetLevelData(LEVEL_DATA_MASTER_BAK)->GetLevel() == 0) {
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MASTER)->GetLevel());
}
else {
this->GetLevelData(LEVEL_DATA_MASTER)->SetLevel(this->GetLevelData(LEVEL_DATA_MASTER_BAK)->GetLevel());
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MASTER)->GetLevel());
}
}
stmt->setInt64(this->GetLevelData(LEVEL_DATA_NORMAL)->GetExperience());
stmt->setInt64(this->GetLevelData(LEVEL_DATA_MASTER)->GetExperience());
stmt->setInt32(this->GetLevelData(LEVEL_DATA_NORMAL)->GetPoints());
if (this->GetLevelData(LEVEL_DATA_NORMAL)->GetLevel() < 400) {
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MASTER_BAK)->GetPoints());
}
else if (this->GetLevelData(LEVEL_DATA_NORMAL)->GetLevel() == 400) {
if (this->GetLevelData(LEVEL_DATA_MASTER_BAK)->GetLevel() == 0) {
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MASTER)->GetPoints());
}
else {
this->GetLevelData(LEVEL_DATA_MASTER)->SetPoints(this->GetLevelData(LEVEL_DATA_MASTER_BAK)->GetPoints());
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MASTER)->GetPoints());
}
}
for (uint64 i = 0; i < MAX_STAT_TYPE; ++i)
{
stmt->setUInt32(this->GetStat(i));
}
stmt->setUInt16(this->GetWorldId());
stmt->setInt16(this->GetX());
stmt->setInt16(this->GetY());
stmt->setUInt8(this->GetDirection());
stmt->setUInt32(this->MoneyGet());
for (uint8 i = 0; i < POWER_MAX; ++i)
{
stmt->setInt32(this->PowerGet(i));
}
stmt->setInt32(this->GetFruitPointsAdd());
stmt->setInt32(this->GetFruitPointsDec());
stmt->setUInt8(this->GetInventory()->GetExpanded());
stmt->setInt64(this->GetMuteTime());
stmt->setUInt32(this->GetAdministratorFlag());
stmt->setUInt8(this->GetPKLevel());
stmt->setInt32(this->GetPKCount());
stmt->setInt32(this->GetPKPoints());
stmt->setUInt8(this->IsFirstTime());
stmt->setInt64(this->GetSantaClausGiftDate());
stmt->setString(base64::encode((uint8*)this->GetPersonalStore()->GetName(), PERSONAL_STORE_NAME_LENGTH));
stmt->setBool(this->GetPersonalStore()->IsOpen() && this->GetPersonalStore()->IsOff());
stmt->setUInt32(this->GetGoblinPoints());
stmt->setInt64(time(nullptr));
stmt->setInt64(this->GetKickTime());
stmt->setInt32(this->GetPostCount());
stmt->setUInt8(this->GetPostDay());
stmt->setUInt8(this->GetPostMonth());
stmt->setUInt32(this->GetRuudMoney());
if (this->GetLevelData(LEVEL_DATA_NORMAL)->GetLevel() < 400 || this->GetLevelData(LEVEL_DATA_MASTER)->GetLevel() < 400) {
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MAJESTIC)->GetLevel());
stmt->setInt64(this->GetLevelData(LEVEL_DATA_MAJESTIC)->GetExperience());
stmt->setInt32(this->GetLevelData(LEVEL_DATA_MAJESTIC)->GetPoints());
}
else if (this->GetLevelData(LEVEL_DATA_NORMAL)->GetLevel() == 400 && this->GetLevelData(LEVEL_DATA_MASTER)->GetLevel() == 400) {
if (this->GetLevelData(LEVEL_DATA_MAJESTIC_BAK)->GetLevel() == 0) {
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MAJESTIC)->GetLevel());
stmt->setInt64(this->GetLevelData(LEVEL_DATA_MAJESTIC)->GetExperience());
stmt->setInt32(this->GetLevelData(LEVEL_DATA_MAJESTIC)->GetPoints());
}
else if (this->GetLevelData(LEVEL_DATA_MAJESTIC_BAK)->GetLevel() > 0) {
stmt->setInt16(this->GetLevelData(LEVEL_DATA_MAJESTIC_BAK)->GetLevel());
stmt->setInt64(this->GetLevelData(LEVEL_DATA_MAJESTIC)->GetExperience());
stmt->setInt32(this->GetLevelData(LEVEL_DATA_MAJESTIC_BAK)->GetPoints());
}
}
stmt->setUInt8(this->IsHuntingRecordVisible() ? 1 : 0);
stmt->setUInt32(this->GetResetSystem(RESET_TOTAL)->GetReset());
stmt->setUInt8(this->GetMonsterSoulPurchase());
stmt->setUInt32(this->GetGUID());
trans->Append(stmt);
this->GetWarehouse()->SaveDBData(trans);
}