aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2011-12-13 00:05:48 +0200
committerShocker <shocker@freakz.ro>2011-12-13 00:05:48 +0200
commita045015bf2cf2abf8fc83ec06f91c0d70194e5bb (patch)
tree4d9661d77eeeb1885fa2385ea0de028ce574642b /src
parent17771b20c170ea4fd673dc221269aa95b35fd80f (diff)
Core/Mail: Mails sent by game masters should last 90 days
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Mails/Mail.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index 6d54aacb311..e5de3e35956 100755
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -171,6 +171,7 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32
void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay)
{
Player* pReceiver = receiver.GetPlayer(); // can be NULL
+ Player* pSender = sObjectMgr->GetPlayerByLowGUID(sender.GetSenderId());
if (pReceiver)
prepareItems(pReceiver, trans); // generate mail template items
@@ -188,9 +189,12 @@ void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver,
// mail from battlemaster (rewardmarks) should last only one day
else if (sender.GetMailMessageType() == MAIL_CREATURE && sBattlegroundMgr->GetBattleMasterBG(sender.GetSenderId()) != BATTLEGROUND_TYPE_NONE)
expire_delay = DAY;
- // default case: expire time if COD 3 days, if no COD 30 days
+ // default case: expire time if COD 3 days, if no COD 30 days (or 90 days if sender is a game master)
else
- expire_delay = (m_COD > 0) ? 3 * DAY : 30 * DAY;
+ if (m_COD)
+ expire_delay = 3 * DAY;
+ else
+ expire_delay = pSender && pSender->isGameMaster() ? 90 * DAY : 30 * DAY;
time_t expire_time = deliver_time + expire_delay;