DetailsEmote for quests (SMSG packet structure)
This commit is contained in:
parent
59a0d7dd33
commit
09f2a1f64d
@ -457,9 +457,10 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* pQuest, ObjectGuid guid
|
||||
{
|
||||
ItemPrototype const* IProto;
|
||||
|
||||
data << uint32(pQuest->GetRewChoiceItemsCount());
|
||||
uint32 count = pQuest->GetRewChoiceItemsCount();
|
||||
data << uint32(count);
|
||||
|
||||
for (uint32 i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)
|
||||
for (uint32 i = 0; i < count; ++i)
|
||||
{
|
||||
data << uint32(pQuest->RewChoiceItemId[i]);
|
||||
data << uint32(pQuest->RewChoiceItemCount[i]);
|
||||
@ -472,9 +473,10 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* pQuest, ObjectGuid guid
|
||||
{ data << uint32(0x00); }
|
||||
}
|
||||
|
||||
data << uint32(pQuest->GetRewItemsCount());
|
||||
count = pQuest->GetRewItemsCount();
|
||||
data << uint32(count);
|
||||
|
||||
for (uint32 i = 0; i < QUEST_REWARDS_COUNT; ++i)
|
||||
for (uint32 i = 0; i < count; ++i)
|
||||
{
|
||||
data << uint32(pQuest->RewItemId[i]);
|
||||
data << uint32(pQuest->RewItemCount[i]);
|
||||
@ -490,19 +492,14 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* pQuest, ObjectGuid guid
|
||||
data << uint32(pQuest->GetRewOrReqMoney());
|
||||
}
|
||||
|
||||
data << pQuest->GetReqItemsCount();
|
||||
for (uint32 i = 0; i < QUEST_OBJECTIVES_COUNT; i++)
|
||||
{
|
||||
data << pQuest->ReqItemId[i];
|
||||
data << pQuest->ReqItemCount[i];
|
||||
}
|
||||
data << uint32(pQuest->GetRewSpell());
|
||||
|
||||
|
||||
data << pQuest->GetReqCreatureOrGOcount();
|
||||
for (uint32 i = 0; i < QUEST_OBJECTIVES_COUNT; i++)
|
||||
uint32 count = pQuest->GetDetailsEmoteCount();
|
||||
data << uint32(count);
|
||||
for (uint32 i = 0; i < count; ++i)
|
||||
{
|
||||
data << uint32(pQuest->ReqCreatureOrGOId[i]);
|
||||
data << pQuest->ReqCreatureOrGOCount[i];
|
||||
data << uint32(pQuest->DetailsEmote[i]);
|
||||
data << uint32(pQuest->DetailsEmoteDelay[i]); // delay between emotes in ms
|
||||
}
|
||||
|
||||
GetMenuSession()->SendPacket(&data);
|
||||
|
@ -115,8 +115,13 @@ Quest::Quest(Field* questRecord)
|
||||
PointY = questRecord[103].GetFloat();
|
||||
PointOpt = questRecord[104].GetUInt32();
|
||||
|
||||
m_detailsemotecount = 0;
|
||||
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
|
||||
{ DetailsEmote[i] = questRecord[105 + i].GetUInt32(); }
|
||||
{
|
||||
DetailsEmote[i] = questRecord[105 + i].GetUInt32();
|
||||
if (DetailsEmote[i] != 0)
|
||||
m_detailsemotecount = i + 1;
|
||||
}
|
||||
|
||||
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
|
||||
{ DetailsEmoteDelay[i] = questRecord[109 + i].GetUInt32(); }
|
||||
|
@ -249,6 +249,7 @@ class Quest
|
||||
uint32 GetPointOpt() const { return PointOpt; }
|
||||
uint32 GetIncompleteEmote() const { return IncompleteEmote; }
|
||||
uint32 GetCompleteEmote() const { return CompleteEmote; }
|
||||
uint32 GetDetailsEmoteCount() const { return m_detailsemotecount; }
|
||||
uint32 GetQuestStartScript() const { return QuestStartScript; }
|
||||
uint32 GetQuestCompleteScript() const { return QuestCompleteScript; }
|
||||
|
||||
@ -296,6 +297,7 @@ class Quest
|
||||
uint32 m_reqCreatureOrGOcount;
|
||||
uint32 m_rewchoiceitemscount;
|
||||
uint32 m_rewitemscount;
|
||||
uint32 m_detailsemotecount; // actual allowed value 0..4
|
||||
|
||||
bool m_isActive;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user