From 664112a738f151aa3cd9f97502d03f007ccf4f72 Mon Sep 17 00:00:00 2001 From: Triply Date: Wed, 2 Sep 2009 20:53:20 +0200 Subject: [PATCH] [8455] Do not disband guild, if guild ranks are not defined for that guild, removed obsolete comment. Do not allow to delete guild rank, when there are only 5 or less ranks defined. Signed-off-by: Triply --- src/game/Guild.cpp | 10 +++++++--- src/shared/revision_nr.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index 2f0efe5d4..41e9adbd1 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -297,7 +297,11 @@ bool Guild::LoadRanksFromDB(uint32 GuildId) QueryResult *result = CharacterDatabase.PQuery("SELECT rid,rname,rights,BankMoneyPerDay FROM guild_rank WHERE guildid = '%u' ORDER BY rid ASC", GuildId); if(!result) - return false; + { + sLog.outError("Guild %u has broken `guild_rank` data, creating new...",GuildId); + CreateDefaultGuildRanks(0); + return true; + } bool broken_ranks = false; @@ -341,7 +345,6 @@ bool Guild::LoadRanksFromDB(uint32 GuildId) CharacterDatabase.PExecute("DELETE FROM guild_rank WHERE guildid='%u'", GuildId); for(size_t i = 0; i < m_Ranks.size(); ++i) { - // guild_rank.rid always store rank+1 std::string name = m_Ranks[i].name; uint32 rights = m_Ranks[i].rights; CharacterDatabase.escape_string(name); @@ -641,7 +644,8 @@ void Guild::AddRank(const std::string& name_,uint32 rights, uint32 money) void Guild::DelRank() { - if(m_Ranks.empty()) + // client won't allow to have less than GUILD_RANKS_MIN_COUNT ranks in guild + if(m_Ranks.size() <= GUILD_RANKS_MIN_COUNT) return; // delete lowest guild_rank diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 2f244a12e..1917ef341 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 "8454" + #define REVISION_NR "8455" #endif // __REVISION_NR_H__