mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[9687] Add to mangos.conf options for daily/weekly reset time.
* Quests.Daily.ResetHour (0..23) for daily quests * Quests.Weekly.ResetWeekDay (0..6) and Quests.Weekly.ResetHour (0..23) for weekly quests. * Drop time from character_queststatus_daily and use same way as weekly quest reset time store.
This commit is contained in:
parent
fdddf9188a
commit
d78117bbc8
11 changed files with 83 additions and 53 deletions
|
|
@ -390,7 +390,7 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputa
|
|||
m_currentBuybackSlot = BUYBACK_SLOT_START;
|
||||
|
||||
m_DailyQuestChanged = false;
|
||||
m_lastDailyQuestTime = 0;
|
||||
m_WeeklyQuestChanged = false;
|
||||
|
||||
for (int i=0; i<MAX_TIMERS; ++i)
|
||||
m_MirrorTimer[i] = DISABLED_MIRROR_TIMER;
|
||||
|
|
@ -4138,6 +4138,7 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC
|
|||
CharacterDatabase.PExecute("DELETE FROM character_inventory WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_queststatus WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_queststatus_daily WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_queststatus_weekly WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_reputation WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_skills WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_spell WHERE guid = '%u'",guid);
|
||||
|
|
@ -15890,7 +15891,7 @@ void Player::_LoadDailyQuestStatus(QueryResult *result)
|
|||
for(uint32 quest_daily_idx = 0; quest_daily_idx < PLAYER_MAX_DAILY_QUESTS; ++quest_daily_idx)
|
||||
SetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1+quest_daily_idx,0);
|
||||
|
||||
//QueryResult *result = CharacterDatabase.PQuery("SELECT quest,time FROM character_queststatus_daily WHERE guid = '%u'", GetGUIDLow());
|
||||
//QueryResult *result = CharacterDatabase.PQuery("SELECT quest FROM character_queststatus_daily WHERE guid = '%u'", GetGUIDLow());
|
||||
|
||||
if(result)
|
||||
{
|
||||
|
|
@ -15908,9 +15909,6 @@ void Player::_LoadDailyQuestStatus(QueryResult *result)
|
|||
|
||||
uint32 quest_id = fields[0].GetUInt32();
|
||||
|
||||
// save _any_ from daily quest times (it must be after last reset anyway)
|
||||
m_lastDailyQuestTime = (time_t)fields[1].GetUInt64();
|
||||
|
||||
Quest const* pQuest = sObjectMgr.GetQuestTemplate(quest_id);
|
||||
if( !pQuest )
|
||||
continue;
|
||||
|
|
@ -16849,16 +16847,14 @@ void Player::_SaveDailyQuestStatus()
|
|||
if (!m_DailyQuestChanged)
|
||||
return;
|
||||
|
||||
m_DailyQuestChanged = false;
|
||||
|
||||
// save last daily quest time for all quests: we need only mostly reset time for reset check anyway
|
||||
|
||||
// we don't need transactions here.
|
||||
CharacterDatabase.PExecute("DELETE FROM character_queststatus_daily WHERE guid = '%u'",GetGUIDLow());
|
||||
for(uint32 quest_daily_idx = 0; quest_daily_idx < PLAYER_MAX_DAILY_QUESTS; ++quest_daily_idx)
|
||||
if (GetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1+quest_daily_idx))
|
||||
CharacterDatabase.PExecute("INSERT INTO character_queststatus_daily (guid,quest,time) VALUES ('%u', '%u','" UI64FMTD "')",
|
||||
GetGUIDLow(), GetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1+quest_daily_idx),uint64(m_lastDailyQuestTime));
|
||||
CharacterDatabase.PExecute("INSERT INTO character_queststatus_daily (guid,quest) VALUES ('%u', '%u')",
|
||||
GetGUIDLow(), GetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1+quest_daily_idx));
|
||||
|
||||
m_DailyQuestChanged = false;
|
||||
}
|
||||
|
||||
void Player::_SaveWeeklyQuestStatus()
|
||||
|
|
@ -19574,7 +19570,6 @@ void Player::SetDailyQuestStatus( uint32 quest_id )
|
|||
if(!GetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1+quest_daily_idx))
|
||||
{
|
||||
SetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1+quest_daily_idx,quest_id);
|
||||
m_lastDailyQuestTime = time(NULL); // last daily quest time
|
||||
m_DailyQuestChanged = true;
|
||||
break;
|
||||
}
|
||||
|
|
@ -19594,7 +19589,6 @@ void Player::ResetDailyQuestStatus()
|
|||
|
||||
// DB data deleted in caller
|
||||
m_DailyQuestChanged = false;
|
||||
m_lastDailyQuestTime = 0;
|
||||
}
|
||||
|
||||
void Player::ResetWeeklyQuestStatus()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue