From cfacd7e696d9a60b85fb98924f277293890b0f27 Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Mon, 7 Sep 2009 05:37:06 +0400 Subject: [PATCH] [8480] Provided real-time update for guidl ranks rights. Specially for guild bank tab access rights (including currently open tab case!) Send roster broadcast for all online guild memebers at any rank edit and guild bank tab buy. --- src/game/Guild.cpp | 10 ++++++---- src/game/Guild.h | 2 +- src/game/GuildHandler.cpp | 8 ++++---- src/game/WorldLog.cpp | 2 -- src/shared/revision_nr.h | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index 2b21fd204..48c258647 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -728,7 +728,7 @@ void Guild::Disband() objmgr.RemoveGuild(m_Id); } -void Guild::Roster(WorldSession *session) +void Guild::Roster(WorldSession *session /*= NULL*/) { // we can only guess size WorldPacket data(SMSG_GUILD_ROSTER, (4+MOTD.length()+1+GINFO.length()+1+4+m_Ranks.size()*(4+4+GUILD_BANK_MAX_TABS*(4+4))+members.size()*50)); @@ -777,7 +777,10 @@ void Guild::Roster(WorldSession *session) data << itr->second.OFFnote; } } - session->SendPacket(&data);; + if (session) + session->SendPacket(&data); + else + BroadcastPacket(&data); sLog.outDebug( "WORLD: Sent (SMSG_GUILD_ROSTER)" ); } @@ -1100,7 +1103,7 @@ void Guild::DisplayGuildBankTabsInfo(WorldSession *session) data << uint32(0xFFFFFFFF); // bit 9 must be set for this packet to work data << uint8(1); // Tell Client this is a TabInfo packet - data << uint8(m_PurchasedTabs); // here is the number of tabs + data << uint8(m_PurchasedTabs); // here is the number of tabs for (uint8 i = 0; i < m_PurchasedTabs; ++i) { @@ -1992,7 +1995,6 @@ void Guild::SendGuildBankTabText(WorldSession *session, uint8 TabId) session->SendPacket(&data); else BroadcastPacket(&data); - } void Guild::SwapItems(Player * pl, uint8 BankTab, uint8 BankTabSlot, uint8 BankTabDst, uint8 BankTabSlotDst, uint32 SplitedAmount ) diff --git a/src/game/Guild.h b/src/game/Guild.h index 0ff6a3bf1..2836a245a 100644 --- a/src/game/Guild.h +++ b/src/game/Guild.h @@ -374,7 +374,7 @@ class Guild return NULL; } - void Roster(WorldSession *session); + void Roster(WorldSession *session = NULL); // NULL = broadcast void Query(WorldSession *session); void UpdateLogoutTime(uint64 guid); diff --git a/src/game/GuildHandler.cpp b/src/game/GuildHandler.cpp index 39530579c..90741d3af 100644 --- a/src/game/GuildHandler.cpp +++ b/src/game/GuildHandler.cpp @@ -678,7 +678,7 @@ void WorldSession::HandleGuildRankOpcode(WorldPacket& recvPacket) guild->SetRankRights(rankId, rights); guild->Query(this); - guild->Roster(this); + guild->Roster(); // broadcast for tab rights update } void WorldSession::HandleGuildAddRankOpcode(WorldPacket& recvPacket) @@ -709,7 +709,7 @@ void WorldSession::HandleGuildAddRankOpcode(WorldPacket& recvPacket) guild->CreateRank(rankname, GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK); guild->Query(this); - guild->Roster(this); + guild->Roster(); // broadcast for tab rights update } void WorldSession::HandleGuildDelRankOpcode(WorldPacket& /*recvPacket*/) @@ -735,7 +735,7 @@ void WorldSession::HandleGuildDelRankOpcode(WorldPacket& /*recvPacket*/) guild->DelRank(); guild->Query(this); - guild->Roster(this); + guild->Roster(); // broadcast for tab rights update } void WorldSession::SendGuildCommandResult(uint32 typecmd, const std::string& str,uint32 cmdresult) @@ -1187,7 +1187,7 @@ void WorldSession::HandleGuildBankBuyTab( WorldPacket & recv_data ) GetPlayer()->ModifyMoney(-int(TabCost)); pGuild->SetBankMoneyPerDay(GetPlayer()->GetRank(), WITHDRAW_MONEY_UNLIMITED); pGuild->SetBankRightsAndSlots(GetPlayer()->GetRank(), TabId, GUILD_BANK_RIGHT_FULL, WITHDRAW_SLOT_UNLIMITED, true); - pGuild->Roster(this); + pGuild->Roster(); // broadcast for tab rights update pGuild->DisplayGuildBankTabsInfo(this); } diff --git a/src/game/WorldLog.cpp b/src/game/WorldLog.cpp index 0ae13978a..aab743e0b 100644 --- a/src/game/WorldLog.cpp +++ b/src/game/WorldLog.cpp @@ -28,8 +28,6 @@ INSTANTIATE_SINGLETON_2(WorldLog, CLASS_LOCK); INSTANTIATE_CLASS_MUTEX(WorldLog, ACE_Thread_Mutex); -#define WORLD_LOG_FILE_STRING "world.log" - /// Open the log file (if specified so in the configuration file) void WorldLog::Initialize() { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 529c22cff..7631e1840 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 "8479" + #define REVISION_NR "8480" #endif // __REVISION_NR_H__