[DBScripts] Implement SCRIPT_COMMAND_SEND_MAIL (c2639)
Attention DB-Devs: The fields quest_template.RewMailTemplateId and .RewMailDelaySecs are scheduled to be removed
This commit is contained in:
parent
5feded2664
commit
c9d7879cd9
@ -1 +1 @@
|
||||
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
|
@ -175,6 +175,11 @@ ID | Name | Parameters
|
||||
| orientation != 0: Obtain a random point around resultingTarget in direction of orientation
|
||||
| * data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL Obtain a point in direction of resTarget->GetOrientation + orientation
|
||||
| for resTarget == resSource and orientation == 0 this will mean resSource moving forward
|
||||
38 | SCRIPT_COMMAND_SEND_MAIL | Send a mail from resSource to resTarget
|
||||
| * resultingSource = Creature OR NULL, resTarget must be Player
|
||||
| * datalong = mailTemplateId
|
||||
| * datalong2: AlternativeSenderEntry. Use as sender-Entry of the sent mail
|
||||
| * dataint1: Delay (>= 0) in Seconds
|
||||
|
||||
TemporaryFactionFlags
|
||||
---------------------
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "BattleGround/BattleGround.h"
|
||||
#include "OutdoorPvP/OutdoorPvP.h"
|
||||
#include "WaypointMovementGenerator.h"
|
||||
#include "Mail.h"
|
||||
#include "LFGMgr.h"
|
||||
|
||||
#ifdef ENABLE_ELUNA
|
||||
@ -689,6 +690,20 @@ void ScriptMgr::LoadScripts(ScriptMapMapName& scripts, const char* tablename)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SCRIPT_COMMAND_SEND_MAIL: // 38
|
||||
{
|
||||
if (!sMailTemplateStore.LookupEntry(tmp.sendMail.mailTemplateId))
|
||||
{
|
||||
sLog.outErrorDb("Table `%s` has invalid mailTemplateId (datalong = %u) in SCRIPT_COMMAND_SEND_MAIL for script id %u", tablename, tmp.sendMail.mailTemplateId, tmp.id);
|
||||
continue;
|
||||
}
|
||||
if (tmp.sendMail.altSender && !ObjectMgr::GetCreatureTemplate(tmp.sendMail.altSender))
|
||||
{
|
||||
sLog.outErrorDb("Table `%s` has invalid alternativeSender (datalong2 = %u) in SCRIPT_COMMAND_SEND_MAIL for script id %u", tablename, tmp.sendMail.altSender, tmp.id);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
sLog.outErrorDb("Table `%s` unknown command %u, skipping.", tablename, tmp.command);
|
||||
@ -1875,6 +1890,23 @@ bool ScriptAction::HandleScriptStep()
|
||||
((Creature*)pSource)->GetMotionMaster()->MovePoint(1, x, y, z);
|
||||
break;
|
||||
}
|
||||
case SCRIPT_COMMAND_SEND_MAIL: // 38
|
||||
{
|
||||
if (LogIfNotPlayer(pTarget))
|
||||
return false;
|
||||
if (!m_script->sendMail.altSender && LogIfNotCreature(pSource))
|
||||
return false;
|
||||
|
||||
MailSender sender;
|
||||
if (m_script->sendMail.altSender)
|
||||
sender = MailSender(MAIL_CREATURE, m_script->sendMail.altSender);
|
||||
else
|
||||
sender = MailSender(pSource);
|
||||
uint32 deliverDelay = m_script->textId[0] > 0 ? (uint32)m_script->textId[0] : 0;
|
||||
|
||||
MailDraft(m_script->sendMail.mailTemplateId).SendMailTo(static_cast<Player*>(pTarget), sender, MAIL_CHECK_MASK_HAS_BODY, deliverDelay);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
sLog.outErrorDb(" DB-SCRIPTS: Process table `%s` id %u, command %u unknown command used.", m_table, m_script->id, m_script->command);
|
||||
break;
|
||||
|
@ -117,6 +117,10 @@ enum ScriptCommand // resSource, resTar
|
||||
// orientation != 0: Obtain a random point around resTarget in direction of orientation
|
||||
// data_flags & SCRIPT_FLAG_COMMAND_ADDITIONAL Obtain a random point around resTarget in direction of resTarget->GetOrientation + orientation
|
||||
// for resTarget == resSource and orientation == 0 this will mean resSource moving forward
|
||||
SCRIPT_COMMAND_SEND_MAIL = 38, // resSource WorldObject, can be NULL, resTarget Player
|
||||
// datalong: Send mailTemplateId from resSource (if provided) to player resTarget
|
||||
// datalong2: AlternativeSenderEntry. Use as sender-Entry
|
||||
// dataint1: Delay (>= 0) in Seconds
|
||||
};
|
||||
|
||||
#define MAX_TEXT_ID 4 // used for SCRIPT_COMMAND_TALK, SCRIPT_COMMAND_EMOTE, SCRIPT_COMMAND_CAST_SPELL, SCRIPT_COMMAND_TERMINATE_SCRIPT
|
||||
@ -357,6 +361,11 @@ struct ScriptInfo
|
||||
uint32 minDist; // datalong2
|
||||
} moveDynamic;
|
||||
|
||||
struct // SCRIPT_COMMAND_SEND_MAIL (38)
|
||||
{
|
||||
uint32 mailTemplateId; // datalong
|
||||
uint32 altSender; // datalong2;
|
||||
} sendMail;
|
||||
|
||||
struct
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user