diff --git a/src/game/GridNotifiers.cpp b/src/game/GridNotifiers.cpp index 2d2d63750..8c611815b 100644 --- a/src/game/GridNotifiers.cpp +++ b/src/game/GridNotifiers.cpp @@ -134,7 +134,7 @@ VisibleNotifier::Notify() // send data at target visibility change (adding to client) for(std::set::const_iterator vItr = i_visibleNow.begin(); vItr != i_visibleNow.end(); ++vItr) if((*vItr)!=&i_player && (*vItr)->isType(TYPEMASK_UNIT)) - i_player.SendAuraDurationsForTarget((Unit*)(*vItr)); + i_player.SendAurasForTarget((Unit*)(*vItr)); } void diff --git a/src/game/Group.h b/src/game/Group.h index 0dc7135e7..971167aa5 100644 --- a/src/game/Group.h +++ b/src/game/Group.h @@ -64,24 +64,25 @@ enum GroupUpdateFlags { GROUP_UPDATE_FLAG_NONE = 0x00000000, // nothing GROUP_UPDATE_FLAG_STATUS = 0x00000001, // uint16, flags - GROUP_UPDATE_FLAG_CUR_HP = 0x00000002, // uint16 - GROUP_UPDATE_FLAG_MAX_HP = 0x00000004, // uint16 + GROUP_UPDATE_FLAG_CUR_HP = 0x00000002, // uint32 + GROUP_UPDATE_FLAG_MAX_HP = 0x00000004, // uint32 GROUP_UPDATE_FLAG_POWER_TYPE = 0x00000008, // uint8 GROUP_UPDATE_FLAG_CUR_POWER = 0x00000010, // uint16 GROUP_UPDATE_FLAG_MAX_POWER = 0x00000020, // uint16 GROUP_UPDATE_FLAG_LEVEL = 0x00000040, // uint16 GROUP_UPDATE_FLAG_ZONE = 0x00000080, // uint16 GROUP_UPDATE_FLAG_POSITION = 0x00000100, // uint16, uint16 - GROUP_UPDATE_FLAG_AURAS = 0x00000200, // uint64 mask, for each bit set uint16 spellid + uint8 unk + GROUP_UPDATE_FLAG_AURAS = 0x00000200, // uint64 mask, for each bit set uint32 spellid + uint8 unk GROUP_UPDATE_FLAG_PET_GUID = 0x00000400, // uint64 pet guid GROUP_UPDATE_FLAG_PET_NAME = 0x00000800, // pet name, NULL terminated string GROUP_UPDATE_FLAG_PET_MODEL_ID = 0x00001000, // uint16, model id - GROUP_UPDATE_FLAG_PET_CUR_HP = 0x00002000, // uint16 pet cur health - GROUP_UPDATE_FLAG_PET_MAX_HP = 0x00004000, // uint16 pet max health + GROUP_UPDATE_FLAG_PET_CUR_HP = 0x00002000, // uint32 pet cur health + GROUP_UPDATE_FLAG_PET_MAX_HP = 0x00004000, // uint32 pet max health GROUP_UPDATE_FLAG_PET_POWER_TYPE = 0x00008000, // uint8 pet power type GROUP_UPDATE_FLAG_PET_CUR_POWER = 0x00010000, // uint16 pet cur power GROUP_UPDATE_FLAG_PET_MAX_POWER = 0x00020000, // uint16 pet max power - GROUP_UPDATE_FLAG_PET_AURAS = 0x00040000, // uint64 mask, for each bit set uint16 spellid + uint8 unk, pet auras... + GROUP_UPDATE_FLAG_PET_AURAS = 0x00040000, // uint64 mask, for each bit set uint32 spellid + uint8 unk, pet auras... + GROUP_UPDATE_FLAG_UNKNOWN1 = 0x00080000, // uint32, added in WotLK GROUP_UPDATE_PET = 0x0007FC00, // all pet flags GROUP_UPDATE_FULL = 0x0007FFFF, // all known flags }; diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index aeb150b65..a9a8737dd 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -755,6 +755,7 @@ void Guild::Query(WorldSession *session) data << uint32(BorderStyle); data << uint32(BorderColor); data << uint32(BackgroundColor); + data << uint32(0); // something new in WotLK session->SendPacket( &data ); sLog.outDebug( "WORLD: Sent (SMSG_GUILD_QUERY_RESPONSE)" ); @@ -1577,7 +1578,21 @@ void Guild::DisplayGuildBankLogs(WorldSession *session, uint8 TabId) { data << uint8((*itr)->LogEntry); data << uint64(MAKE_NEW_GUID((*itr)->PlayerGuid,0,HIGHGUID_PLAYER)); - data << uint32((*itr)->ItemOrMoney); + if ((*itr)->LogEntry == GUILD_BANK_LOG_DEPOSIT_MONEY || + (*itr)->LogEntry == GUILD_BANK_LOG_WITHDRAW_MONEY || + (*itr)->LogEntry == GUILD_BANK_LOG_REPAIR_MONEY || + (*itr)->LogEntry == GUILD_BANK_LOG_UNK1 || + (*itr)->LogEntry == GUILD_BANK_LOG_UNK2) + { + data << uint32((*itr)->ItemOrMoney); + } + else + { + data << uint32((*itr)->ItemOrMoney); + data << uint32((*itr)->ItemStackCount); + if ((*itr)->LogEntry == GUILD_BANK_LOG_MOVE_ITEM || (*itr)->LogEntry == GUILD_BANK_LOG_MOVE_ITEM2) + data << uint8((*itr)->DestTabId); // moved tab + } data << uint32(time(NULL)-(*itr)->TimeStamp); } session->SendPacket(&data); @@ -1593,10 +1608,21 @@ void Guild::DisplayGuildBankLogs(WorldSession *session, uint8 TabId) { data << uint8((*itr)->LogEntry); data << uint64(MAKE_NEW_GUID((*itr)->PlayerGuid,0,HIGHGUID_PLAYER)); - data << uint32((*itr)->ItemOrMoney); - data << uint8((*itr)->ItemStackCount); - if ((*itr)->LogEntry == GUILD_BANK_LOG_MOVE_ITEM || (*itr)->LogEntry == GUILD_BANK_LOG_MOVE_ITEM2) - data << uint8((*itr)->DestTabId); // moved tab + if ((*itr)->LogEntry == GUILD_BANK_LOG_DEPOSIT_MONEY || + (*itr)->LogEntry == GUILD_BANK_LOG_WITHDRAW_MONEY || + (*itr)->LogEntry == GUILD_BANK_LOG_REPAIR_MONEY || + (*itr)->LogEntry == GUILD_BANK_LOG_UNK1 || + (*itr)->LogEntry == GUILD_BANK_LOG_UNK2) + { + data << uint32((*itr)->ItemOrMoney); + } + else + { + data << uint32((*itr)->ItemOrMoney); + data << uint32((*itr)->ItemStackCount); + if ((*itr)->LogEntry == GUILD_BANK_LOG_MOVE_ITEM || (*itr)->LogEntry == GUILD_BANK_LOG_MOVE_ITEM2) + data << uint8((*itr)->DestTabId); // moved tab + } data << uint32(time(NULL)-(*itr)->TimeStamp); } session->SendPacket(&data); @@ -1678,7 +1704,7 @@ void Guild::AppendDisplayGuildBankSlot( WorldPacket& data, GuildBankTab const *t // SuffixFactor +4 data << (uint32) pItem->GetItemSuffixFactor(); // +12 // ITEM_FIELD_STACK_COUNT - data << uint8(pItem->GetCount()); + data << uint32(pItem->GetCount()); data << uint32(0); // +16 // Unknown value data << uint8(0); // unknown 2.4.2 if (uint32 Enchant0 = pItem->GetEnchantmentId(PERM_ENCHANTMENT_SLOT)) diff --git a/src/game/Guild.h b/src/game/Guild.h index cb46e1107..1762d5048 100644 --- a/src/game/Guild.h +++ b/src/game/Guild.h @@ -54,7 +54,8 @@ enum GuildRankRights GR_RIGHT_REPAIR_FROM_GUILD = 0x00020000, // unused in 2.4.x?, Remove money withdraw capacity GR_RIGHT_WITHDRAW_REPAIR = 0x00040000, // withdraw for repair GR_RIGHT_WITHDRAW_GOLD = 0x00080000, // withdraw gold - GR_RIGHT_ALL = 0x000FF1FF + GR_RIGHT_CREATE_GUILD_EVENT = 0x00100000, // wotlk + GR_RIGHT_ALL = 0x001FF1FF }; enum Typecommand @@ -154,6 +155,8 @@ enum GuildBankLogEntries GUILD_BANK_LOG_WITHDRAW_MONEY = 5, GUILD_BANK_LOG_REPAIR_MONEY = 6, GUILD_BANK_LOG_MOVE_ITEM2 = 7, + GUILD_BANK_LOG_UNK1 = 8, + GUILD_BANK_LOG_UNK2 = 9, }; enum GuildEventLogEntryTypes