mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
Fixed client crash at raid target icon update.
Some other updates.
This commit is contained in:
parent
ceca56cf69
commit
0ef8305ebb
5 changed files with 13 additions and 9 deletions
|
|
@ -908,7 +908,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, uint32 NumberOfPlayers)
|
||||||
delete roll;
|
delete roll;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Group::SetTargetIcon(uint8 id, uint64 guid)
|
void Group::SetTargetIcon(uint8 id, uint64 whoGuid, uint64 targetGuid)
|
||||||
{
|
{
|
||||||
if(id >= TARGETICONCOUNT)
|
if(id >= TARGETICONCOUNT)
|
||||||
return;
|
return;
|
||||||
|
|
@ -917,12 +917,13 @@ void Group::SetTargetIcon(uint8 id, uint64 guid)
|
||||||
if( guid != 0 )
|
if( guid != 0 )
|
||||||
for(int i = 0; i < TARGETICONCOUNT; ++i)
|
for(int i = 0; i < TARGETICONCOUNT; ++i)
|
||||||
if( m_targetIcons[i] == guid )
|
if( m_targetIcons[i] == guid )
|
||||||
SetTargetIcon(i, 0);
|
SetTargetIcon(i, 0, 0);
|
||||||
|
|
||||||
m_targetIcons[id] = guid;
|
m_targetIcons[id] = guid;
|
||||||
|
|
||||||
WorldPacket data(MSG_RAID_TARGET_UPDATE, (2+8));
|
WorldPacket data(MSG_RAID_TARGET_UPDATE, (1+8+1+8));
|
||||||
data << uint8(0);
|
data << uint8(0); // set targets
|
||||||
|
data << uint64(whoGuid);
|
||||||
data << uint8(id);
|
data << uint8(id);
|
||||||
data << uint64(guid);
|
data << uint64(guid);
|
||||||
BroadcastPacket(&data, true);
|
BroadcastPacket(&data, true);
|
||||||
|
|
@ -957,7 +958,7 @@ void Group::SendTargetIconList(WorldSession *session)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WorldPacket data(MSG_RAID_TARGET_UPDATE, (1+TARGETICONCOUNT*9));
|
WorldPacket data(MSG_RAID_TARGET_UPDATE, (1+TARGETICONCOUNT*9));
|
||||||
data << (uint8)1;
|
data << uint8(1); // list targets
|
||||||
|
|
||||||
for(int i = 0; i < TARGETICONCOUNT; ++i)
|
for(int i = 0; i < TARGETICONCOUNT; ++i)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -286,7 +286,7 @@ class MANGOS_DLL_SPEC Group
|
||||||
SendUpdate();
|
SendUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetTargetIcon(uint8 id, uint64 guid);
|
void SetTargetIcon(uint8 id, uint64 whoGuid, uint64 targetGuid);
|
||||||
|
|
||||||
Difficulty GetDifficulty(bool isRaid) const { return isRaid ? m_raidDifficulty : m_dungeonDifficulty; }
|
Difficulty GetDifficulty(bool isRaid) const { return isRaid ? m_raidDifficulty : m_dungeonDifficulty; }
|
||||||
Difficulty GetDungeonDifficulty() const { return m_dungeonDifficulty; }
|
Difficulty GetDungeonDifficulty() const { return m_dungeonDifficulty; }
|
||||||
|
|
|
||||||
|
|
@ -469,7 +469,7 @@ void WorldSession::HandleRaidTargetUpdateOpcode( WorldPacket & recv_data )
|
||||||
|
|
||||||
uint64 guid;
|
uint64 guid;
|
||||||
recv_data >> guid;
|
recv_data >> guid;
|
||||||
group->SetTargetIcon(x, guid);
|
group->SetTargetIcon(x, _player->GetGUID(), guid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -576,7 +576,7 @@ enum Opcodes
|
||||||
SMSG_GMTICKET_SYSTEMSTATUS = 0x21B,
|
SMSG_GMTICKET_SYSTEMSTATUS = 0x21B,
|
||||||
CMSG_SPIRIT_HEALER_ACTIVATE = 0x21C,
|
CMSG_SPIRIT_HEALER_ACTIVATE = 0x21C,
|
||||||
CMSG_SET_STAT_CHEAT = 0x21D,
|
CMSG_SET_STAT_CHEAT = 0x21D,
|
||||||
SMSG_SET_REST_START_OBSOLETE = 0x21E,
|
SMSG_QUEST_FORCE_REMOVE = 0x21E, // uint32 questid
|
||||||
CMSG_SKILL_BUY_STEP = 0x21F,
|
CMSG_SKILL_BUY_STEP = 0x21F,
|
||||||
CMSG_SKILL_BUY_RANK = 0x220,
|
CMSG_SKILL_BUY_RANK = 0x220,
|
||||||
CMSG_XP_CHEAT = 0x221,
|
CMSG_XP_CHEAT = 0x221,
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,7 @@ enum __QuestGiverStatus
|
||||||
enum __QuestFlags
|
enum __QuestFlags
|
||||||
{
|
{
|
||||||
// Flags used at server and sent to client
|
// Flags used at server and sent to client
|
||||||
|
QUEST_FLAGS_NONE = 0x00000000,
|
||||||
QUEST_FLAGS_STAY_ALIVE = 0x00000001, // Not used currently
|
QUEST_FLAGS_STAY_ALIVE = 0x00000001, // Not used currently
|
||||||
QUEST_FLAGS_PARTY_ACCEPT = 0x00000002, // If player in party, all players that can accept this quest will receive confirmation box to accept quest CMSG_QUEST_CONFIRM_ACCEPT/SMSG_QUEST_CONFIRM_ACCEPT
|
QUEST_FLAGS_PARTY_ACCEPT = 0x00000002, // If player in party, all players that can accept this quest will receive confirmation box to accept quest CMSG_QUEST_CONFIRM_ACCEPT/SMSG_QUEST_CONFIRM_ACCEPT
|
||||||
QUEST_FLAGS_EXPLORATION = 0x00000004, // Not used currently
|
QUEST_FLAGS_EXPLORATION = 0x00000004, // Not used currently
|
||||||
|
|
@ -137,7 +138,9 @@ enum __QuestFlags
|
||||||
QUEST_FLAGS_UNK3 = 0x00002000, // activates PvP?
|
QUEST_FLAGS_UNK3 = 0x00002000, // activates PvP?
|
||||||
QUEST_FLAGS_UNK4 = 0x00004000, // ? Membership Card Renewal
|
QUEST_FLAGS_UNK4 = 0x00004000, // ? Membership Card Renewal
|
||||||
QUEST_FLAGS_WEEKLY = 0x00008000, // Not used currently: Weekly quests
|
QUEST_FLAGS_WEEKLY = 0x00008000, // Not used currently: Weekly quests
|
||||||
// 0x20000 - 1 quest in 3.3, 0x40000 - 1 quest in 3.3
|
QUEST_FLAGS_AUTOCOMPLETE = 0x00010000, // auto complete
|
||||||
|
QUEST_FLAGS_UNK5 = 0x00020000, // has something to do with ReqItemId and SrcItemId
|
||||||
|
QUEST_FLAGS_UNK6 = 0x00040000, // use Objective text as Complete text
|
||||||
QUEST_FLAGS_LOW_LEVEL = 0x00080000, // quests in starting areas
|
QUEST_FLAGS_LOW_LEVEL = 0x00080000, // quests in starting areas
|
||||||
|
|
||||||
// Mangos flags for set SpecialFlags in DB if required but used only at server
|
// Mangos flags for set SpecialFlags in DB if required but used only at server
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue