diff --git a/world/worlddb.cpp b/world/worlddb.cpp index f26061a5f..32c4ada48 100644 --- a/world/worlddb.cpp +++ b/world/worlddb.cpp @@ -391,12 +391,12 @@ bool WorldDatabase::GetStartZoneSoF(PlayerProfile_Struct* in_pp, CharCreate_Stru in_pp->x = in_pp->y = in_pp->z = in_pp->heading = in_pp->zone_id = 0; in_pp->binds[0].x = in_pp->binds[0].y = in_pp->binds[0].z = in_pp->binds[0].zoneId = 0; - if(!RunQuery(query, MakeAnyLenString(&query, "SELECT `x`, `y`, ``z, `heading`, `bind_id` " - " FROM `start_zones` " - " WHERE `zone_id` = %i " - " AND `player_class` = %i " - " AND player_deity=%i" - " AND player_race=%i", + if(!RunQuery(query, MakeAnyLenString(&query, "SELECT x, y, z, heading, bind_id " + " FROM start_zones " + " WHERE zone_id = %i " + " AND player_class = %i " + " AND player_deity = %i" + " AND player_race = %i", in_cc->start_zone, in_cc->class_, in_cc->deity, diff --git a/zone/client.cpp b/zone/client.cpp index fad7d1a80..7038df6fc 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -529,8 +529,12 @@ bool Client::Save(uint8 iCommitNow) { m_pp.heading = heading; /* Mana and HP */ - if (GetHP() <= 0) { m_pp.cur_hp = GetMaxHP(); } - else { m_pp.cur_hp = GetHP(); } + if (GetHP() <= 0) { + m_pp.cur_hp = GetMaxHP(); + } + else { + m_pp.cur_hp = GetHP(); + } m_pp.mana = cur_mana; m_pp.endurance = cur_end; @@ -551,10 +555,17 @@ bool Client::Save(uint8 iCommitNow) { m_pp.RestTimer = rest_timer.GetRemainingTime() / 1000; /* Save Mercs */ - if (GetMercInfo().MercTimerRemaining > RuleI(Mercs, UpkeepIntervalMS)){ GetMercInfo().MercTimerRemaining = RuleI(Mercs, UpkeepIntervalMS); } - if (GetMercTimer()->Enabled()) { GetMercInfo().MercTimerRemaining = GetMercTimer()->GetRemainingTime(); } - if (GetMerc() && !dead) { } - else { memset(&m_mercinfo, 0, sizeof(struct MercInfo)); } + if (GetMercInfo().MercTimerRemaining > RuleI(Mercs, UpkeepIntervalMS)) { + GetMercInfo().MercTimerRemaining = RuleI(Mercs, UpkeepIntervalMS); + } + + if (GetMercTimer()->Enabled()) { + GetMercInfo().MercTimerRemaining = GetMercTimer()->GetRemainingTime(); + } + + if (!(GetMerc() && !dead)) { + memset(&m_mercinfo, 0, sizeof(struct MercInfo)); + } m_pp.lastlogin = time(nullptr); @@ -571,13 +582,31 @@ bool Client::Save(uint8 iCommitNow) { } database.SavePetInfo(this); - if(tribute_timer.Enabled()) { m_pp.tribute_time_remaining = tribute_timer.GetRemainingTime(); } - else { m_pp.tribute_time_remaining = 0xFFFFFFFF; m_pp.tribute_active = 0; } + if(tribute_timer.Enabled()) { + m_pp.tribute_time_remaining = tribute_timer.GetRemainingTime(); + } + else { + m_pp.tribute_time_remaining = 0xFFFFFFFF; m_pp.tribute_active = 0; + } p_timers.Store(&database); database.SaveCharacterTribute(this->CharacterID(), &m_pp); SaveTaskState(); /* Save Character Task */ + + if(m_pp.hunger_level < 0) { + m_pp.hunger_level = 0; + } + else if(m_pp.hunger_level > 6000) { + m_pp.hunger_level = 6000; + } + + if(m_pp.thirst_level < 0) { + m_pp.thirst_level = 0; + } + else if(m_pp.thirst_level > 6000) { + m_pp.thirst_level = 6000; + } database.SaveCharacterData(this->CharacterID(), this->AccountID(), &m_pp, &m_epp); /* Save Character Data */ return true;