mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[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.
This commit is contained in:
parent
78420246bd
commit
cfacd7e696
5 changed files with 12 additions and 12 deletions
|
|
@ -728,7 +728,7 @@ void Guild::Disband()
|
||||||
objmgr.RemoveGuild(m_Id);
|
objmgr.RemoveGuild(m_Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Guild::Roster(WorldSession *session)
|
void Guild::Roster(WorldSession *session /*= NULL*/)
|
||||||
{
|
{
|
||||||
// we can only guess size
|
// 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));
|
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;
|
data << itr->second.OFFnote;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
session->SendPacket(&data);;
|
if (session)
|
||||||
|
session->SendPacket(&data);
|
||||||
|
else
|
||||||
|
BroadcastPacket(&data);
|
||||||
sLog.outDebug( "WORLD: Sent (SMSG_GUILD_ROSTER)" );
|
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 << uint32(0xFFFFFFFF); // bit 9 must be set for this packet to work
|
||||||
data << uint8(1); // Tell Client this is a TabInfo packet
|
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)
|
for (uint8 i = 0; i < m_PurchasedTabs; ++i)
|
||||||
{
|
{
|
||||||
|
|
@ -1992,7 +1995,6 @@ void Guild::SendGuildBankTabText(WorldSession *session, uint8 TabId)
|
||||||
session->SendPacket(&data);
|
session->SendPacket(&data);
|
||||||
else
|
else
|
||||||
BroadcastPacket(&data);
|
BroadcastPacket(&data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Guild::SwapItems(Player * pl, uint8 BankTab, uint8 BankTabSlot, uint8 BankTabDst, uint8 BankTabSlotDst, uint32 SplitedAmount )
|
void Guild::SwapItems(Player * pl, uint8 BankTab, uint8 BankTabSlot, uint8 BankTabDst, uint8 BankTabSlotDst, uint32 SplitedAmount )
|
||||||
|
|
|
||||||
|
|
@ -374,7 +374,7 @@ class Guild
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Roster(WorldSession *session);
|
void Roster(WorldSession *session = NULL); // NULL = broadcast
|
||||||
void Query(WorldSession *session);
|
void Query(WorldSession *session);
|
||||||
|
|
||||||
void UpdateLogoutTime(uint64 guid);
|
void UpdateLogoutTime(uint64 guid);
|
||||||
|
|
|
||||||
|
|
@ -678,7 +678,7 @@ void WorldSession::HandleGuildRankOpcode(WorldPacket& recvPacket)
|
||||||
guild->SetRankRights(rankId, rights);
|
guild->SetRankRights(rankId, rights);
|
||||||
|
|
||||||
guild->Query(this);
|
guild->Query(this);
|
||||||
guild->Roster(this);
|
guild->Roster(); // broadcast for tab rights update
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildAddRankOpcode(WorldPacket& recvPacket)
|
void WorldSession::HandleGuildAddRankOpcode(WorldPacket& recvPacket)
|
||||||
|
|
@ -709,7 +709,7 @@ void WorldSession::HandleGuildAddRankOpcode(WorldPacket& recvPacket)
|
||||||
guild->CreateRank(rankname, GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK);
|
guild->CreateRank(rankname, GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK);
|
||||||
|
|
||||||
guild->Query(this);
|
guild->Query(this);
|
||||||
guild->Roster(this);
|
guild->Roster(); // broadcast for tab rights update
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildDelRankOpcode(WorldPacket& /*recvPacket*/)
|
void WorldSession::HandleGuildDelRankOpcode(WorldPacket& /*recvPacket*/)
|
||||||
|
|
@ -735,7 +735,7 @@ void WorldSession::HandleGuildDelRankOpcode(WorldPacket& /*recvPacket*/)
|
||||||
guild->DelRank();
|
guild->DelRank();
|
||||||
|
|
||||||
guild->Query(this);
|
guild->Query(this);
|
||||||
guild->Roster(this);
|
guild->Roster(); // broadcast for tab rights update
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::SendGuildCommandResult(uint32 typecmd, const std::string& str,uint32 cmdresult)
|
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));
|
GetPlayer()->ModifyMoney(-int(TabCost));
|
||||||
pGuild->SetBankMoneyPerDay(GetPlayer()->GetRank(), WITHDRAW_MONEY_UNLIMITED);
|
pGuild->SetBankMoneyPerDay(GetPlayer()->GetRank(), WITHDRAW_MONEY_UNLIMITED);
|
||||||
pGuild->SetBankRightsAndSlots(GetPlayer()->GetRank(), TabId, GUILD_BANK_RIGHT_FULL, WITHDRAW_SLOT_UNLIMITED, true);
|
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);
|
pGuild->DisplayGuildBankTabsInfo(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,6 @@
|
||||||
INSTANTIATE_SINGLETON_2(WorldLog, CLASS_LOCK);
|
INSTANTIATE_SINGLETON_2(WorldLog, CLASS_LOCK);
|
||||||
INSTANTIATE_CLASS_MUTEX(WorldLog, ACE_Thread_Mutex);
|
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)
|
/// Open the log file (if specified so in the configuration file)
|
||||||
void WorldLog::Initialize()
|
void WorldLog::Initialize()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8479"
|
#define REVISION_NR "8480"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue