Merge git://github.com/EQEmu/Server into Development

This commit is contained in:
KayenEQ 2014-09-23 09:07:14 -04:00
commit ec01e6c69b
2 changed files with 43 additions and 14 deletions

View File

@ -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->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; 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` " if(!RunQuery(query, MakeAnyLenString(&query, "SELECT x, y, z, heading, bind_id "
" FROM `start_zones` " " FROM start_zones "
" WHERE `zone_id` = %i " " WHERE zone_id = %i "
" AND `player_class` = %i " " AND player_class = %i "
" AND player_deity=%i" " AND player_deity = %i"
" AND player_race=%i", " AND player_race = %i",
in_cc->start_zone, in_cc->start_zone,
in_cc->class_, in_cc->class_,
in_cc->deity, in_cc->deity,

View File

@ -529,8 +529,12 @@ bool Client::Save(uint8 iCommitNow) {
m_pp.heading = heading; m_pp.heading = heading;
/* Mana and HP */ /* Mana and HP */
if (GetHP() <= 0) { m_pp.cur_hp = GetMaxHP(); } if (GetHP() <= 0) {
else { m_pp.cur_hp = GetHP(); } m_pp.cur_hp = GetMaxHP();
}
else {
m_pp.cur_hp = GetHP();
}
m_pp.mana = cur_mana; m_pp.mana = cur_mana;
m_pp.endurance = cur_end; m_pp.endurance = cur_end;
@ -551,10 +555,17 @@ bool Client::Save(uint8 iCommitNow) {
m_pp.RestTimer = rest_timer.GetRemainingTime() / 1000; m_pp.RestTimer = rest_timer.GetRemainingTime() / 1000;
/* Save Mercs */ /* Save Mercs */
if (GetMercInfo().MercTimerRemaining > RuleI(Mercs, UpkeepIntervalMS)){ GetMercInfo().MercTimerRemaining = RuleI(Mercs, UpkeepIntervalMS); } if (GetMercInfo().MercTimerRemaining > RuleI(Mercs, UpkeepIntervalMS)) {
if (GetMercTimer()->Enabled()) { GetMercInfo().MercTimerRemaining = GetMercTimer()->GetRemainingTime(); } GetMercInfo().MercTimerRemaining = RuleI(Mercs, UpkeepIntervalMS);
if (GetMerc() && !dead) { } }
else { memset(&m_mercinfo, 0, sizeof(struct MercInfo)); }
if (GetMercTimer()->Enabled()) {
GetMercInfo().MercTimerRemaining = GetMercTimer()->GetRemainingTime();
}
if (!(GetMerc() && !dead)) {
memset(&m_mercinfo, 0, sizeof(struct MercInfo));
}
m_pp.lastlogin = time(nullptr); m_pp.lastlogin = time(nullptr);
@ -571,13 +582,31 @@ bool Client::Save(uint8 iCommitNow) {
} }
database.SavePetInfo(this); database.SavePetInfo(this);
if(tribute_timer.Enabled()) { m_pp.tribute_time_remaining = tribute_timer.GetRemainingTime(); } if(tribute_timer.Enabled()) {
else { m_pp.tribute_time_remaining = 0xFFFFFFFF; m_pp.tribute_active = 0; } m_pp.tribute_time_remaining = tribute_timer.GetRemainingTime();
}
else {
m_pp.tribute_time_remaining = 0xFFFFFFFF; m_pp.tribute_active = 0;
}
p_timers.Store(&database); p_timers.Store(&database);
database.SaveCharacterTribute(this->CharacterID(), &m_pp); database.SaveCharacterTribute(this->CharacterID(), &m_pp);
SaveTaskState(); /* Save Character Task */ 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 */ database.SaveCharacterData(this->CharacterID(), this->AccountID(), &m_pp, &m_epp); /* Save Character Data */
return true; return true;