diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index eff4e4101..2d0e0b8ab 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -319,6 +319,7 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement) MaNGOS::LocalizedPacketDo say_do(say_builder); guild->BroadcastWorker(say_do,GetPlayer()); } + if(achievement->flags & (ACHIEVEMENT_FLAG_REALM_FIRST_KILL|ACHIEVEMENT_FLAG_REALM_FIRST_REACH)) { // broadcast realm first reached @@ -337,19 +338,20 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement) cell.data.Part.reserved = ALL_DISTRICT; cell.SetNoCreate(); - MaNGOS::AchievementChatBuilder say_builder(*GetPlayer(), CHAT_MSG_GUILD_ACHIEVEMENT, LANG_ACHIEVEMENT_EARNED,achievement->ID); + MaNGOS::AchievementChatBuilder say_builder(*GetPlayer(), CHAT_MSG_ACHIEVEMENT, LANG_ACHIEVEMENT_EARNED,achievement->ID); MaNGOS::LocalizedPacketDo say_do(say_builder); MaNGOS::PlayerDistWorker > say_worker(GetPlayer(),sWorld.getConfig(CONFIG_LISTEN_RANGE_SAY),say_do); TypeContainerVisitor >, WorldTypeMapContainer > message(say_worker); CellLock cell_lock(cell, p); cell_lock->Visit(cell_lock, message, *GetPlayer()->GetMap()); } + WorldPacket data(SMSG_ACHIEVEMENT_EARNED, 8+4+8); data.append(GetPlayer()->GetPackGUID()); data << uint32(achievement->ID); data << uint32(secsToTimeBitFields(time(NULL))); data << uint32(0); - GetPlayer()->SendMessageToSet(&data, true); + GetPlayer()->SendMessageToSetInRange(&data, sWorld.getConfig(CONFIG_LISTEN_RANGE_SAY), true); } void AchievementMgr::SendCriteriaUpdate(uint32 id, CriteriaProgress const* progress) @@ -365,7 +367,7 @@ void AchievementMgr::SendCriteriaUpdate(uint32 id, CriteriaProgress const* progr data << uint32(secsToTimeBitFields(progress->date)); data << uint32(0); // timer 1 data << uint32(0); // timer 2 - GetPlayer()->SendMessageToSet(&data, true); + GetPlayer()->SendDirectMessage(&data); } /** diff --git a/src/shared/Database/DBCEnums.h b/src/shared/Database/DBCEnums.h index e546b1f78..e156628d8 100644 --- a/src/shared/Database/DBCEnums.h +++ b/src/shared/Database/DBCEnums.h @@ -88,7 +88,6 @@ enum AchievementCriteriaTypes ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST = 14, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND= 15, ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP= 16, - // TODO: this can be both arena and total deaths. Where is this difference in the dbc? ACHIEVEMENT_CRITERIA_TYPE_DEATH= 17, ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON = 18, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID = 19, diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 454fc0f81..2f582e5c6 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7533" + #define REVISION_NR "7534" #endif // __REVISION_NR_H__