mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[8402] Optimalized guild_eventlog and guild_bank_eventlog loading from database.
Added config options to set count of eventlog records stored in DB. Attached SQL files will DROP existing and create new tables. Make sure you create backup (if you need old data). Renamed few variables in Guild class. Signed-off-by: Triply <triply@getmangos.com>
This commit is contained in:
parent
6c57a01507
commit
38fa6b241c
15 changed files with 463 additions and 368 deletions
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
DROP TABLE IF EXISTS `character_db_version`;
|
||||
CREATE TABLE `character_db_version` (
|
||||
`required_8397_03_characters_character_spell` bit(1) default NULL
|
||||
`required_8402_02_characters_guild_bank_eventlog` bit(1) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Last applied sql update to DB';
|
||||
|
||||
--
|
||||
|
|
@ -935,16 +935,16 @@ UNLOCK TABLES;
|
|||
|
||||
DROP TABLE IF EXISTS `guild_bank_eventlog`;
|
||||
CREATE TABLE `guild_bank_eventlog` (
|
||||
`guildid` int(11) unsigned NOT NULL default '0',
|
||||
`LogGuid` int(11) unsigned NOT NULL default '0',
|
||||
`LogEntry` tinyint(1) unsigned NOT NULL default '0',
|
||||
`TabId` tinyint(1) unsigned NOT NULL default '0',
|
||||
`guildid` int(11) unsigned NOT NULL default '0' COMMENT 'Guild Identificator',
|
||||
`LogGuid` int(11) unsigned NOT NULL default '0' COMMENT 'Log record identificator - auxiliary column',
|
||||
`TabId` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Guild bank TabId',
|
||||
`EventType` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Event type',
|
||||
`PlayerGuid` int(11) unsigned NOT NULL default '0',
|
||||
`ItemOrMoney` int(11) unsigned NOT NULL default '0',
|
||||
`ItemStackCount` tinyint(3) unsigned NOT NULL default '0',
|
||||
`DestTabId` tinyint(1) unsigned NOT NULL default '0',
|
||||
`TimeStamp` bigint(20) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`guildid`,`LogGuid`),
|
||||
`DestTabId` tinyint(1) unsigned NOT NULL default '0' COMMENT 'Destination Tab Id',
|
||||
`TimeStamp` bigint(20) unsigned NOT NULL default '0' COMMENT 'Event UNIX time',
|
||||
PRIMARY KEY (`guildid`,`LogGuid`,`TabId`),
|
||||
KEY `guildid_key` (`guildid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
|
@ -1036,12 +1036,13 @@ UNLOCK TABLES;
|
|||
DROP TABLE IF EXISTS `guild_eventlog`;
|
||||
CREATE TABLE `guild_eventlog` (
|
||||
`guildid` int(11) NOT NULL COMMENT 'Guild Identificator',
|
||||
`LogGuid` int(11) NOT NULL COMMENT 'Log entry identificator',
|
||||
`LogGuid` int(11) NOT NULL COMMENT 'Log record identificator - auxiliary column',
|
||||
`EventType` tinyint(1) NOT NULL COMMENT 'Event type',
|
||||
`PlayerGuid1` int(11) NOT NULL COMMENT 'Player 1',
|
||||
`PlayerGuid2` int(11) NOT NULL COMMENT 'Player 2',
|
||||
`NewRank` tinyint(2) NOT NULL COMMENT 'New rank(in case promotion/demotion)',
|
||||
`TimeStamp` bigint(20) NOT NULL COMMENT 'Event UNIX time'
|
||||
`TimeStamp` bigint(20) NOT NULL COMMENT 'Event UNIX time',
|
||||
PRIMARY KEY (`guildid`, `LogGuid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'Guild Eventlog';
|
||||
|
||||
--
|
||||
|
|
|
|||
20
sql/updates/8402_01_characters_guild_eventlog.sql
Normal file
20
sql/updates/8402_01_characters_guild_eventlog.sql
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
ALTER TABLE character_db_version CHANGE COLUMN required_8397_03_characters_character_spell required_8402_01_characters_guild_eventlog bit;
|
||||
|
||||
|
||||
-- THIS SCRIPT DELETES table `guild_eventlog` - MAKE BACKUP, if you need it.
|
||||
|
||||
DROP TABLE IF EXISTS `guild_eventlog`;
|
||||
CREATE TABLE `guild_eventlog` (
|
||||
`guildid` int(11) NOT NULL COMMENT 'Guild Identificator',
|
||||
`LogGuid` int(11) NOT NULL COMMENT 'Log record identificator - auxiliary column',
|
||||
`EventType` tinyint(1) NOT NULL COMMENT 'Event type',
|
||||
`PlayerGuid1` int(11) NOT NULL COMMENT 'Player 1',
|
||||
`PlayerGuid2` int(11) NOT NULL COMMENT 'Player 2',
|
||||
`NewRank` tinyint(2) NOT NULL COMMENT 'New rank(in case promotion/demotion)',
|
||||
`TimeStamp` bigint(20) NOT NULL COMMENT 'Event UNIX time',
|
||||
PRIMARY KEY (`guildid`, `LogGuid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'Guild Eventlog';
|
||||
|
||||
-- The reason i decided for such dramatic change is that old guild_eventlog table didn't have Primary key and
|
||||
-- used LogGuids from 0 to infinity
|
||||
-- New system uses LogGuids from 0 to number defined in config.
|
||||
23
sql/updates/8402_02_characters_guild_bank_eventlog.sql
Normal file
23
sql/updates/8402_02_characters_guild_bank_eventlog.sql
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
ALTER TABLE character_db_version CHANGE COLUMN required_8402_01_characters_guild_eventlog required_8402_02_characters_guild_bank_eventlog bit;
|
||||
|
||||
|
||||
-- THIS SCRIPT DELETES table `guild_bank_eventlog` - MAKE BACKUP, if you need it.
|
||||
|
||||
DROP TABLE IF EXISTS `guild_bank_eventlog`;
|
||||
CREATE TABLE `guild_bank_eventlog` (
|
||||
`guildid` int(11) unsigned NOT NULL default '0' COMMENT 'Guild Identificator',
|
||||
`LogGuid` int(11) unsigned NOT NULL default '0' COMMENT 'Log record identificator - auxiliary column',
|
||||
`TabId` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Guild bank TabId',
|
||||
`EventType` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Event type',
|
||||
`PlayerGuid` int(11) unsigned NOT NULL default '0',
|
||||
`ItemOrMoney` int(11) unsigned NOT NULL default '0',
|
||||
`ItemStackCount` tinyint(3) unsigned NOT NULL default '0',
|
||||
`DestTabId` tinyint(1) unsigned NOT NULL default '0' COMMENT 'Destination Tab Id',
|
||||
`TimeStamp` bigint(20) unsigned NOT NULL default '0' COMMENT 'Event UNIX time',
|
||||
PRIMARY KEY (`guildid`,`LogGuid`,`TabId`),
|
||||
KEY `guildid_key` (`guildid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- The reason i decided for such dramatic change is that old guild_bank_eventlog table used `TabId` = 0 for Money events and
|
||||
-- used `LogGuid` from 0 to infinity
|
||||
-- New system uses `LogGuid` from 0 to number defined in config.
|
||||
|
|
@ -90,6 +90,8 @@ pkgdata_DATA = \
|
|||
8397_02_mangos_spell_threat.sql \
|
||||
8397_03_characters_character_spell.sql \
|
||||
8399_01_mangos_spell_elixir.sql \
|
||||
8402_01_characters_guild_eventlog.sql \
|
||||
8402_02_characters_guild_bank_eventlog.sql \
|
||||
README
|
||||
|
||||
## Additional files to include when running 'make dist'
|
||||
|
|
@ -160,4 +162,6 @@ EXTRA_DIST = \
|
|||
8397_02_mangos_spell_threat.sql \
|
||||
8397_03_characters_character_spell.sql \
|
||||
8399_01_mangos_spell_elixir.sql \
|
||||
8402_01_characters_guild_eventlog.sql \
|
||||
8402_02_characters_guild_bank_eventlog.sql \
|
||||
README
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
131
src/game/Guild.h
131
src/game/Guild.h
|
|
@ -146,7 +146,7 @@ enum GuildBankRights
|
|||
GUILD_BANK_RIGHT_FULL = 0xFF,
|
||||
};
|
||||
|
||||
enum GuildBankLogEntries
|
||||
enum GuildBankEventLogTypes
|
||||
{
|
||||
GUILD_BANK_LOG_DEPOSIT_ITEM = 1,
|
||||
GUILD_BANK_LOG_WITHDRAW_ITEM = 2,
|
||||
|
|
@ -159,7 +159,7 @@ enum GuildBankLogEntries
|
|||
GUILD_BANK_LOG_UNK2 = 9,
|
||||
};
|
||||
|
||||
enum GuildEventLogEntryTypes
|
||||
enum GuildEventLogTypes
|
||||
{
|
||||
GUILD_EVENT_LOG_INVITE_PLAYER = 1,
|
||||
GUILD_EVENT_LOG_JOIN_GUILD = 2,
|
||||
|
|
@ -169,16 +169,6 @@ enum GuildEventLogEntryTypes
|
|||
GUILD_EVENT_LOG_LEAVE_GUILD = 6,
|
||||
};
|
||||
|
||||
struct GuildEventlogEntry
|
||||
{
|
||||
uint32 LogGuid;
|
||||
uint8 EventType;
|
||||
uint32 PlayerGuid1;
|
||||
uint32 PlayerGuid2;
|
||||
uint8 NewRank;
|
||||
uint64 TimeStamp;
|
||||
};
|
||||
|
||||
enum GuildEmblem
|
||||
{
|
||||
ERR_GUILDEMBLEM_SUCCESS = 0,
|
||||
|
|
@ -205,11 +195,18 @@ inline uint32 GetGuildBankTabPrice(uint8 Index)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct GuildBankEvent
|
||||
struct GuildEventLogEntry
|
||||
{
|
||||
uint32 LogGuid;
|
||||
uint8 LogEntry;
|
||||
uint8 TabId;
|
||||
uint8 EventType;
|
||||
uint32 PlayerGuid1;
|
||||
uint32 PlayerGuid2;
|
||||
uint8 NewRank;
|
||||
uint64 TimeStamp;
|
||||
};
|
||||
|
||||
struct GuildBankEventLogEntry
|
||||
{
|
||||
uint8 EventType;
|
||||
uint32 PlayerGuid;
|
||||
uint32 ItemOrMoney;
|
||||
uint8 ItemStackCount;
|
||||
|
|
@ -218,9 +215,9 @@ struct GuildBankEvent
|
|||
|
||||
bool isMoneyEvent() const
|
||||
{
|
||||
return LogEntry == GUILD_BANK_LOG_DEPOSIT_MONEY ||
|
||||
LogEntry == GUILD_BANK_LOG_WITHDRAW_MONEY ||
|
||||
LogEntry == GUILD_BANK_LOG_REPAIR_MONEY;
|
||||
return EventType == GUILD_BANK_LOG_DEPOSIT_MONEY ||
|
||||
EventType == GUILD_BANK_LOG_WITHDRAW_MONEY ||
|
||||
EventType == GUILD_BANK_LOG_REPAIR_MONEY;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -283,27 +280,27 @@ class Guild
|
|||
Guild();
|
||||
~Guild();
|
||||
|
||||
bool create(Player* leader, std::string gname);
|
||||
bool Create(Player* leader, std::string gname);
|
||||
void Disband();
|
||||
|
||||
typedef std::map<uint32, MemberSlot> MemberList;
|
||||
typedef std::vector<RankInfo> RankList;
|
||||
|
||||
uint32 GetId(){ return Id; }
|
||||
const uint64& GetLeader(){ return leaderGuid; }
|
||||
std::string GetName(){ return name; }
|
||||
uint32 GetId(){ return m_Id; }
|
||||
const uint64& GetLeader(){ return m_LeaderGuid; }
|
||||
std::string GetName(){ return m_Name; }
|
||||
std::string GetMOTD(){ return MOTD; }
|
||||
std::string GetGINFO(){ return GINFO; }
|
||||
|
||||
uint32 GetCreatedYear(){ return CreatedYear; }
|
||||
uint32 GetCreatedMonth(){ return CreatedMonth; }
|
||||
uint32 GetCreatedDay(){ return CreatedDay; }
|
||||
uint32 GetCreatedYear(){ return m_CreatedYear; }
|
||||
uint32 GetCreatedMonth(){ return m_CreatedMonth; }
|
||||
uint32 GetCreatedDay(){ return m_CreatedDay; }
|
||||
|
||||
uint32 GetEmblemStyle(){ return EmblemStyle; }
|
||||
uint32 GetEmblemColor(){ return EmblemColor; }
|
||||
uint32 GetBorderStyle(){ return BorderStyle; }
|
||||
uint32 GetBorderColor(){ return BorderColor; }
|
||||
uint32 GetBackgroundColor(){ return BackgroundColor; }
|
||||
uint32 GetEmblemStyle(){ return m_EmblemStyle; }
|
||||
uint32 GetEmblemColor(){ return m_EmblemColor; }
|
||||
uint32 GetBorderStyle(){ return m_BorderStyle; }
|
||||
uint32 GetBorderColor(){ return m_BorderColor; }
|
||||
uint32 GetBackgroundColor(){ return m_BackgroundColor; }
|
||||
|
||||
void SetLeader(uint64 guid);
|
||||
bool AddMember(uint64 plGuid, uint32 plRank);
|
||||
|
|
@ -313,8 +310,8 @@ class Guild
|
|||
|
||||
void SetMOTD(std::string motd);
|
||||
void SetGINFO(std::string ginfo);
|
||||
void SetPNOTE(uint64 guid,std::string pnote);
|
||||
void SetOFFNOTE(uint64 guid,std::string offnote);
|
||||
void SetPNOTE(uint64 guid, std::string pnote);
|
||||
void SetOFFNOTE(uint64 guid, std::string offnote);
|
||||
void SetEmblem(uint32 emblemStyle, uint32 emblemColor, uint32 borderStyle, uint32 borderColor, uint32 backgroundColor);
|
||||
|
||||
uint32 GetMemberSize() const { return members.size(); }
|
||||
|
|
@ -344,7 +341,7 @@ class Guild
|
|||
void DelRank();
|
||||
std::string GetRankName(uint32 rankId);
|
||||
uint32 GetRankRights(uint32 rankId);
|
||||
uint32 GetNrRanks() const { return m_ranks.size(); }
|
||||
uint32 GetNrRanks() const { return m_Ranks.size(); }
|
||||
|
||||
void SetRankName(uint32 rankId, std::string name);
|
||||
void SetRankRights(uint32 rankId, uint32 rights);
|
||||
|
|
@ -373,13 +370,12 @@ class Guild
|
|||
void Roster(WorldSession *session);
|
||||
void Query(WorldSession *session);
|
||||
|
||||
void UpdateLogoutTime(uint64 guid);
|
||||
// Guild eventlog
|
||||
void UpdateLogoutTime(uint64 guid);
|
||||
// Guild EventLog
|
||||
void LoadGuildEventLogFromDB();
|
||||
void UnloadGuildEventlog();
|
||||
void DisplayGuildEventlog(WorldSession *session);
|
||||
void UnloadGuildEventLog();
|
||||
void DisplayGuildEventLog(WorldSession *session);
|
||||
void LogGuildEvent(uint8 EventType, uint32 PlayerGuid1, uint32 PlayerGuid2, uint8 NewRank);
|
||||
void RenumGuildEventlog();
|
||||
|
||||
// ** Guild bank **
|
||||
// Content & item deposit/withdraw
|
||||
|
|
@ -401,18 +397,18 @@ class Guild
|
|||
void SetGuildBankTabInfo(uint8 TabId, std::string name, std::string icon);
|
||||
void CreateBankRightForTab(uint32 rankid, uint8 TabId);
|
||||
const GuildBankTab *GetBankTab(uint8 index) { if(index >= m_TabListMap.size()) return NULL; return m_TabListMap[index]; }
|
||||
uint8 GetPurchasedTabs() const { return purchased_tabs; }
|
||||
uint8 GetPurchasedTabs() const { return m_PurchasedTabs; }
|
||||
uint32 GetBankRights(uint32 rankId, uint8 TabId) const;
|
||||
bool IsMemberHaveRights(uint32 LowGuid, uint8 TabId,uint32 rights) const;
|
||||
bool CanMemberViewTab(uint32 LowGuid, uint8 TabId) const;
|
||||
// Load/unload
|
||||
void LoadGuildBankFromDB();
|
||||
void UnloadGuildBank();
|
||||
void IncOnlineMemberCount() { ++m_onlinemembers; }
|
||||
void IncOnlineMemberCount() { ++m_OnlineMembers; }
|
||||
// Money deposit/withdraw
|
||||
void SendMoneyInfo(WorldSession *session, uint32 LowGuid);
|
||||
bool MemberMoneyWithdraw(uint32 amount, uint32 LowGuid);
|
||||
uint64 GetGuildBankMoney() { return guildbank_money; }
|
||||
uint64 GetGuildBankMoney() { return m_GuildBankMoney; }
|
||||
void SetBankMoney(int64 money);
|
||||
// per days
|
||||
bool MemberItemWithdraw(uint8 TabId, uint32 LowGuid);
|
||||
|
|
@ -424,33 +420,32 @@ class Guild
|
|||
uint32 GetBankSlotPerDay(uint32 rankId, uint8 TabId);
|
||||
// rights per day
|
||||
void LoadBankRightsFromDB(uint32 GuildId);
|
||||
// logs
|
||||
// Guild Bank Event Logs
|
||||
void LoadGuildBankEventLogFromDB();
|
||||
void UnloadGuildBankEventLog();
|
||||
void DisplayGuildBankLogs(WorldSession *session, uint8 TabId);
|
||||
void LogBankEvent(uint8 LogEntry, uint8 TabId, uint32 PlayerGuidLow, uint32 ItemOrMoney, uint8 ItemStackCount=0, uint8 DestTabId=0);
|
||||
void RenumBankLogs();
|
||||
void LogBankEvent(uint8 EventType, uint8 TabId, uint32 PlayerGuidLow, uint32 ItemOrMoney, uint8 ItemStackCount=0, uint8 DestTabId=0);
|
||||
bool AddGBankItemToDB(uint32 GuildId, uint32 BankTab , uint32 BankTabSlot , uint32 GUIDLow, uint32 Entry );
|
||||
|
||||
protected:
|
||||
void AddRank(const std::string& name,uint32 rights,uint32 money);
|
||||
|
||||
uint32 Id;
|
||||
std::string name;
|
||||
uint64 leaderGuid;
|
||||
uint32 m_Id;
|
||||
std::string m_Name;
|
||||
uint64 m_LeaderGuid;
|
||||
std::string MOTD;
|
||||
std::string GINFO;
|
||||
uint32 CreatedYear;
|
||||
uint32 CreatedMonth;
|
||||
uint32 CreatedDay;
|
||||
uint32 m_CreatedYear;
|
||||
uint32 m_CreatedMonth;
|
||||
uint32 m_CreatedDay;
|
||||
|
||||
uint32 EmblemStyle;
|
||||
uint32 EmblemColor;
|
||||
uint32 BorderStyle;
|
||||
uint32 BorderColor;
|
||||
uint32 BackgroundColor;
|
||||
uint32 m_EmblemStyle;
|
||||
uint32 m_EmblemColor;
|
||||
uint32 m_BorderStyle;
|
||||
uint32 m_BorderColor;
|
||||
uint32 m_BackgroundColor;
|
||||
|
||||
RankList m_ranks;
|
||||
RankList m_Ranks;
|
||||
|
||||
MemberList members;
|
||||
|
||||
|
|
@ -458,20 +453,22 @@ class Guild
|
|||
TabListMap m_TabListMap;
|
||||
|
||||
/** These are actually ordered lists. The first element is the oldest entry.*/
|
||||
typedef std::list<GuildEventlogEntry> GuildEventlog;
|
||||
typedef std::list<GuildBankEvent> GuildBankEventLog;
|
||||
GuildEventlog m_GuildEventlog;
|
||||
typedef std::list<GuildEventLogEntry> GuildEventLog;
|
||||
typedef std::list<GuildBankEventLogEntry> GuildBankEventLog;
|
||||
GuildEventLog m_GuildEventLog;
|
||||
GuildBankEventLog m_GuildBankEventLog_Money;
|
||||
GuildBankEventLog m_GuildBankEventLog_Item[GUILD_BANK_MAX_TABS];
|
||||
|
||||
bool m_bankloaded;
|
||||
bool m_eventlogloaded;
|
||||
uint32 m_onlinemembers;
|
||||
uint64 guildbank_money;
|
||||
uint8 purchased_tabs;
|
||||
uint32 m_GuildEventLogNextGuid;
|
||||
uint32 m_GuildBankEventLogNextGuid_Money;
|
||||
uint32 m_GuildBankEventLogNextGuid_Item[GUILD_BANK_MAX_TABS];
|
||||
|
||||
bool m_GuildBankLoaded;
|
||||
bool m_EventLogLoaded;
|
||||
uint32 m_OnlineMembers;
|
||||
uint64 m_GuildBankMoney;
|
||||
uint8 m_PurchasedTabs;
|
||||
|
||||
uint32 LogMaxGuid;
|
||||
uint32 GuildEventlogMaxGuid;
|
||||
private:
|
||||
// internal common parts for CanStore/StoreItem functions
|
||||
void AppendDisplayGuildBankSlot( WorldPacket& data, GuildBankTab const *tab, int32 slot );
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ void WorldSession::HandleGuildCreateOpcode(WorldPacket& recvPacket)
|
|||
return;
|
||||
|
||||
Guild *guild = new Guild;
|
||||
if(!guild->create(GetPlayer(),gname))
|
||||
if(!guild->Create(GetPlayer(),gname))
|
||||
{
|
||||
delete guild;
|
||||
return;
|
||||
|
|
@ -825,7 +825,7 @@ void WorldSession::HandleGuildEventLogQueryOpcode(WorldPacket& /* recvPacket */)
|
|||
if(!pGuild)
|
||||
return;
|
||||
|
||||
pGuild->DisplayGuildEventlog(this);
|
||||
pGuild->DisplayGuildEventLog(this);
|
||||
}
|
||||
|
||||
/****** GUILD BANK *******/
|
||||
|
|
@ -1546,7 +1546,7 @@ void WorldSession::HandleGuildBankBuyTab( WorldPacket & recv_data )
|
|||
if (pGuild->GetPurchasedTabs() >= GUILD_BANK_MAX_TABS)
|
||||
return;
|
||||
|
||||
if (TabId != pGuild->GetPurchasedTabs()) // purchased_tabs = 0 when buying Tab 0, that is why this check can be made
|
||||
if (TabId != pGuild->GetPurchasedTabs()) // m_PurchasedTabs = 0 when buying Tab 0, that is why this check can be made
|
||||
{
|
||||
sLog.outError("Error: trying to buy a tab non contigous to owned ones");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -3210,7 +3210,7 @@ bool ChatHandler::HandleGuildCreateCommand(const char* args)
|
|||
}
|
||||
|
||||
Guild *guild = new Guild;
|
||||
if (!guild->create (target,guildname))
|
||||
if (!guild->Create (target,guildname))
|
||||
{
|
||||
delete guild;
|
||||
SendSysMessage (LANG_GUILD_NOT_CREATED);
|
||||
|
|
|
|||
|
|
@ -805,7 +805,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data)
|
|||
if(type == 9) // create guild
|
||||
{
|
||||
Guild* guild = new Guild;
|
||||
if(!guild->create(_player, name))
|
||||
if(!guild->Create(_player, name))
|
||||
{
|
||||
delete guild;
|
||||
delete result;
|
||||
|
|
|
|||
|
|
@ -4016,6 +4016,9 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC
|
|||
CharacterDatabase.PExecute("DELETE FROM character_achievement WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_achievement_progress WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM character_equipmentsets WHERE guid = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_eventlog WHERE PlayerGuid1 = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_eventlog WHERE PlayerGuid2 = '%u'",guid);
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_eventlog WHERE PlayerGuid = '%u'",guid);
|
||||
CharacterDatabase.CommitTransaction();
|
||||
|
||||
//loginDatabase.PExecute("UPDATE realmcharacters SET numchars = numchars - 1 WHERE acctid = %d AND realmid = %d", accountId, realmID);
|
||||
|
|
|
|||
|
|
@ -2329,8 +2329,9 @@ enum PetDiet
|
|||
// Max values for Guild & Guild Bank
|
||||
#define GUILD_BANK_MAX_TABS 6
|
||||
#define GUILD_BANK_MAX_SLOTS 98
|
||||
#define GUILD_BANK_MAX_LOGS 24
|
||||
#define GUILD_EVENTLOG_MAX_ENTRIES 100
|
||||
#define GUILD_BANK_MAX_LOGS 25
|
||||
#define GUILD_BANK_MONEY_LOGS_TAB 100
|
||||
#define GUILD_EVENTLOG_MAX_RECORDS 100
|
||||
#define GUILD_MAX_RANKS 10
|
||||
|
||||
enum AiReaction
|
||||
|
|
|
|||
|
|
@ -973,6 +973,13 @@ void World::LoadConfigSettings(bool reload)
|
|||
|
||||
m_configs[CONFIG_INSTANT_LOGOUT] = sConfig.GetIntDefault("InstantLogout", SEC_MODERATOR);
|
||||
|
||||
m_configs[CONFIG_GUILD_EVENT_LOG_COUNT] = sConfig.GetIntDefault("Guild.EventLogRecordsCount", GUILD_EVENTLOG_MAX_RECORDS);
|
||||
if (m_configs[CONFIG_GUILD_EVENT_LOG_COUNT] < GUILD_EVENTLOG_MAX_RECORDS)
|
||||
m_configs[CONFIG_GUILD_EVENT_LOG_COUNT] = GUILD_EVENTLOG_MAX_RECORDS;
|
||||
m_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] = sConfig.GetIntDefault("Guild.BankEventLogRecordsCount", GUILD_BANK_MAX_LOGS);
|
||||
if (m_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] < GUILD_BANK_MAX_LOGS)
|
||||
m_configs[CONFIG_GUILD_BANK_EVENT_LOG_COUNT] = GUILD_BANK_MAX_LOGS;
|
||||
|
||||
m_VisibleUnitGreyDistance = sConfig.GetFloatDefault("Visibility.Distance.Grey.Unit", 1);
|
||||
if(m_VisibleUnitGreyDistance > MAX_VISIBILITY_DISTANCE)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -213,6 +213,8 @@ enum WorldConfigs
|
|||
CONFIG_ARENA_SEASON_IN_PROGRESS,
|
||||
CONFIG_OFFHAND_CHECK_AT_TALENTS_RESET,
|
||||
CONFIG_CLIENTCACHE_VERSION,
|
||||
CONFIG_GUILD_EVENT_LOG_COUNT,
|
||||
CONFIG_GUILD_BANK_EVENT_LOG_COUNT,
|
||||
CONFIG_VALUE_COUNT
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -537,6 +537,18 @@ LogColors = ""
|
|||
# Default: 7
|
||||
# -1 (show all available quests marks)
|
||||
#
|
||||
# Guild.EventLogRecordsCount
|
||||
# Count of guild event log records stored in guild_eventlog table
|
||||
# Increase to store more guild events in table, minimum is 100
|
||||
# You can set it to very high value to prevent oldest guild events to be rewritten by latest guild events - but it can slow down performance
|
||||
# Default: 100
|
||||
#
|
||||
# Guild.BankEventLogRecordsCount
|
||||
# Count of guild_bank event log records stored in guild_bank_eventlog table
|
||||
# Increase to store more guild_bank events in table - minimum is 25 (GUILD_BANK_MAX_LOGS) for each guild_bank tab
|
||||
# Useful when you don't want old log events to be overwritten by new, but increasing can slow down performance
|
||||
# Default: 25
|
||||
#
|
||||
# MaxPrimaryTradeSkill
|
||||
# Max count that player can learn the primary trade skill.
|
||||
# Default: 2
|
||||
|
|
@ -624,6 +636,8 @@ Instance.ResetTimeHour = 4
|
|||
Instance.UnloadDelay = 1800000
|
||||
Quests.LowLevelHideDiff = 4
|
||||
Quests.HighLevelHideDiff = 7
|
||||
Guild.EventLogRecordsCount = 100
|
||||
Guild.BankEventLogRecordsCount = 25
|
||||
MaxPrimaryTradeSkill = 2
|
||||
MinPetitionSigns = 9
|
||||
MaxGroupXPDistance = 74
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "8401"
|
||||
#define REVISION_NR "8402"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue