* Update to guild handlers. Fix bugs related to the wrong ranks being updated, the greyed out withdraw button when you were eligible to withdraw money, and the improper display of no withdrawals left for a tab when you have plenty.
NOTE: Guild masters might need to reconfigure their permissions per rank in order to resolve any permission issues. --HG-- branch : trunk
This commit is contained in:
+7
-22
@@ -678,7 +678,7 @@ void Guild::SetRankName(uint32 rankId, std::string name_)
|
|||||||
|
|
||||||
// name now can be used for encoding to DB
|
// name now can be used for encoding to DB
|
||||||
CharacterDatabase.escape_string(name_);
|
CharacterDatabase.escape_string(name_);
|
||||||
CharacterDatabase.PExecute("UPDATE guild_rank SET rname='%s' WHERE rid='%u' AND guildid='%u'", name_.c_str(), (rankId+1), m_Id);
|
CharacterDatabase.PExecute("UPDATE guild_rank SET rname='%s' WHERE rid='%u' AND guildid='%u'", name_.c_str(), rankId, m_Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Guild::SetRankRights(uint32 rankId, uint32 rights)
|
void Guild::SetRankRights(uint32 rankId, uint32 rights)
|
||||||
@@ -688,7 +688,7 @@ void Guild::SetRankRights(uint32 rankId, uint32 rights)
|
|||||||
|
|
||||||
m_Ranks[rankId].rights = rights;
|
m_Ranks[rankId].rights = rights;
|
||||||
|
|
||||||
CharacterDatabase.PExecute("UPDATE guild_rank SET rights='%u' WHERE rid='%u' AND guildid='%u'", rights, (rankId+1), m_Id);
|
CharacterDatabase.PExecute("UPDATE guild_rank SET rights='%u' WHERE rid='%u' AND guildid='%u'", rights, rankId, m_Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 Guild::GetRank(uint32 LowGuid)
|
int32 Guild::GetRank(uint32 LowGuid)
|
||||||
@@ -946,7 +946,7 @@ void Guild::LogGuildEvent(uint8 EventType, uint32 PlayerGuid1, uint32 PlayerGuid
|
|||||||
// Bank content related
|
// Bank content related
|
||||||
void Guild::DisplayGuildBankContent(WorldSession *session, uint8 TabId)
|
void Guild::DisplayGuildBankContent(WorldSession *session, uint8 TabId)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_GUILD_BANK_LIST,1200);
|
WorldPacket data(SMSG_GUILD_BANK_LIST, 1300);
|
||||||
|
|
||||||
GuildBankTab const* tab = GetBankTab(TabId);
|
GuildBankTab const* tab = GetBankTab(TabId);
|
||||||
if (!tab)
|
if (!tab)
|
||||||
@@ -957,8 +957,7 @@ void Guild::DisplayGuildBankContent(WorldSession *session, uint8 TabId)
|
|||||||
|
|
||||||
data << uint64(GetGuildBankMoney());
|
data << uint64(GetGuildBankMoney());
|
||||||
data << uint8(TabId);
|
data << uint8(TabId);
|
||||||
// remaining slots for today
|
data << uint32(GetMemberSlotWithdrawRem(session->GetPlayer()->GetGUIDLow(), TabId)); // remaining slots for today
|
||||||
data << uint32(GetMemberSlotWithdrawRem(session->GetPlayer()->GetGUIDLow(), TabId));
|
|
||||||
data << uint8(0); // Tell client this is a tab content packet
|
data << uint8(0); // Tell client this is a tab content packet
|
||||||
|
|
||||||
data << uint8(GUILD_BANK_MAX_SLOTS);
|
data << uint8(GUILD_BANK_MAX_SLOTS);
|
||||||
@@ -971,20 +970,6 @@ void Guild::DisplayGuildBankContent(WorldSession *session, uint8 TabId)
|
|||||||
sLog.outDebug("WORLD: Sent (SMSG_GUILD_BANK_LIST)");
|
sLog.outDebug("WORLD: Sent (SMSG_GUILD_BANK_LIST)");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Guild::DisplayGuildBankMoneyUpdate()
|
|
||||||
{
|
|
||||||
WorldPacket data(SMSG_GUILD_BANK_LIST, 8+1+4+1+1);
|
|
||||||
|
|
||||||
data << uint64(GetGuildBankMoney());
|
|
||||||
data << uint8(0); // TabId, default 0
|
|
||||||
data << uint32(0); // slot withdrow, default 0
|
|
||||||
data << uint8(0); // Tell client this is a tab content packet
|
|
||||||
data << uint8(0); // not send items
|
|
||||||
BroadcastPacket(&data);
|
|
||||||
|
|
||||||
sLog.outDebug("WORLD: Sent (SMSG_GUILD_BANK_LIST)");
|
|
||||||
}
|
|
||||||
|
|
||||||
void Guild::DisplayGuildBankContentUpdate(uint8 TabId, int32 slot1, int32 slot2)
|
void Guild::DisplayGuildBankContentUpdate(uint8 TabId, int32 slot1, int32 slot2)
|
||||||
{
|
{
|
||||||
GuildBankTab const* tab = GetBankTab(TabId);
|
GuildBankTab const* tab = GetBankTab(TabId);
|
||||||
@@ -1093,9 +1078,9 @@ void Guild::DisplayGuildBankTabsInfo(WorldSession *session)
|
|||||||
|
|
||||||
data << uint64(GetGuildBankMoney());
|
data << uint64(GetGuildBankMoney());
|
||||||
data << uint8(0); // TabInfo packet must be for TabId 0
|
data << uint8(0); // TabInfo packet must be for TabId 0
|
||||||
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 << uint32(0);
|
||||||
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(int i = 0; i < m_PurchasedTabs; ++i)
|
for(int i = 0; i < m_PurchasedTabs; ++i)
|
||||||
@@ -1400,7 +1385,7 @@ void Guild::SetBankMoneyPerDay(uint32 rankId, uint32 money)
|
|||||||
if (itr->second.RankId == rankId)
|
if (itr->second.RankId == rankId)
|
||||||
itr->second.BankResetTimeMoney = 0;
|
itr->second.BankResetTimeMoney = 0;
|
||||||
|
|
||||||
CharacterDatabase.PExecute("UPDATE guild_rank SET BankMoneyPerDay='%u' WHERE rid='%u' AND guildid='%u'", money, (rankId+1), m_Id);
|
CharacterDatabase.PExecute("UPDATE guild_rank SET BankMoneyPerDay='%u' WHERE rid='%u' AND guildid='%u'", money, rankId, m_Id);
|
||||||
CharacterDatabase.PExecute("UPDATE guild_member SET BankResetTimeMoney='0' WHERE guildid='%u' AND rank='%u'", m_Id, rankId);
|
CharacterDatabase.PExecute("UPDATE guild_member SET BankResetTimeMoney='0' WHERE guildid='%u' AND rank='%u'", m_Id, rankId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -389,7 +389,6 @@ class Guild
|
|||||||
// ** Guild bank **
|
// ** Guild bank **
|
||||||
// Content & item deposit/withdraw
|
// Content & item deposit/withdraw
|
||||||
void DisplayGuildBankContent(WorldSession *session, uint8 TabId);
|
void DisplayGuildBankContent(WorldSession *session, uint8 TabId);
|
||||||
void DisplayGuildBankMoneyUpdate();
|
|
||||||
|
|
||||||
void SwapItems( Player * pl, uint8 BankTab, uint8 BankTabSlot, uint8 BankTabDst, uint8 BankTabSlotDst, uint32 SplitedAmount);
|
void SwapItems( Player * pl, uint8 BankTab, uint8 BankTabSlot, uint8 BankTabDst, uint8 BankTabSlotDst, uint32 SplitedAmount);
|
||||||
void MoveFromBankToChar( Player * pl, uint8 BankTab, uint8 BankTabSlot, uint8 PlayerBag, uint8 PlayerSlot, uint32 SplitedAmount);
|
void MoveFromBankToChar( Player * pl, uint8 BankTab, uint8 BankTabSlot, uint8 PlayerBag, uint8 PlayerSlot, uint32 SplitedAmount);
|
||||||
|
|||||||
@@ -995,7 +995,6 @@ void WorldSession::HandleGuildBankDepositMoney( WorldPacket & recv_data )
|
|||||||
|
|
||||||
pGuild->DisplayGuildBankTabsInfo(this);
|
pGuild->DisplayGuildBankTabsInfo(this);
|
||||||
pGuild->DisplayGuildBankContent(this, 0);
|
pGuild->DisplayGuildBankContent(this, 0);
|
||||||
pGuild->DisplayGuildBankMoneyUpdate();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankWithdrawMoney( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankWithdrawMoney( WorldPacket & recv_data )
|
||||||
@@ -1043,8 +1042,7 @@ void WorldSession::HandleGuildBankWithdrawMoney( WorldPacket & recv_data )
|
|||||||
|
|
||||||
pGuild->SendMoneyInfo(this, GetPlayer()->GetGUIDLow());
|
pGuild->SendMoneyInfo(this, GetPlayer()->GetGUIDLow());
|
||||||
pGuild->DisplayGuildBankTabsInfo(this);
|
pGuild->DisplayGuildBankTabsInfo(this);
|
||||||
pGuild->DisplayGuildBankContent(this, 0);
|
pGuild->DisplayGuildBankContent(this,0);
|
||||||
pGuild->DisplayGuildBankMoneyUpdate();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleGuildBankSwapItems( WorldPacket & recv_data )
|
void WorldSession::HandleGuildBankSwapItems( WorldPacket & recv_data )
|
||||||
|
|||||||
Reference in New Issue
Block a user