diff options
-rw-r--r-- | sql/mangos.sql | 7 | ||||
-rw-r--r-- | sql/updates/7422_01_mangos_mangos_string.sql | 9 | ||||
-rw-r--r-- | src/game/Guild.cpp | 36 | ||||
-rw-r--r-- | src/game/Guild.h | 2 | ||||
-rw-r--r-- | src/game/GuildHandler.cpp | 2 | ||||
-rw-r--r-- | src/game/Language.h | 7 | ||||
-rw-r--r-- | src/game/Level3.cpp | 2 | ||||
-rw-r--r-- | src/game/PetitionsHandler.cpp | 2 | ||||
-rw-r--r-- | src/shared/revision_nr.h | 2 |
9 files changed, 41 insertions, 28 deletions
diff --git a/sql/mangos.sql b/sql/mangos.sql index cd49b0087eb..fed04397b1d 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -22,7 +22,7 @@ DROP TABLE IF EXISTS `db_version`; CREATE TABLE `db_version` ( `version` varchar(120) default NULL, - `required_7399_01_mangos_mangos_string` bit(1) default NULL + `required_7422_01_mangos_mangos_string` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -2848,6 +2848,11 @@ INSERT INTO `mangos_string` VALUES (808,'Player %s not found or offline',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (809,'Account for character %s not found',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (810,'|Hplayer:$N|h[$N]|h has earned the achievement $a!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(811,'Guild Master',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(812,'Officer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(813,'Veteran',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(814,'Member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(815,'Initiate',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1000,'Exiting daemon...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1001,'Account deleted: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (1002,'Account %s NOT deleted (probably sql file format was updated)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), diff --git a/sql/updates/7422_01_mangos_mangos_string.sql b/sql/updates/7422_01_mangos_mangos_string.sql new file mode 100644 index 00000000000..affe8f74780 --- /dev/null +++ b/sql/updates/7422_01_mangos_mangos_string.sql @@ -0,0 +1,9 @@ +ALTER TABLE db_version CHANGE COLUMN required_7399_01_mangos_mangos_string required_7422_01_mangos_mangos_string bit; + +DELETE FROM mangos_string WHERE entry in (811, 812, 813, 814, 815); +INSERT INTO mangos_string VALUES + (811,'Guild Master',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), + (812,'Officer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), + (813,'Veteran',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), + (814,'Member',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), + (815,'Initiate',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index 2132a69fec1..4aa9f54f682 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -28,6 +28,7 @@ #include "Chat.h" #include "SocialMgr.h" #include "Util.h" +#include "Language.h" Guild::Guild() { @@ -51,27 +52,25 @@ Guild::~Guild() } -bool Guild::create(uint64 lGuid, std::string gname) +bool Guild::create(Player* leader, std::string gname) { - std::string rname; - std::string lName; - - if(!objmgr.GetPlayerNameByGUID(lGuid, lName)) - return false; if(objmgr.GetGuildByName(gname)) return false; - sLog.outDebug("GUILD: creating guild %s to leader: %u", gname.c_str(), GUID_LOPART(lGuid)); + WorldSession* lSession = leader->GetSession(); + if(!lSession) + return false; - leaderGuid = lGuid; + leaderGuid = leader->GetGUID(); name = gname; GINFO = ""; MOTD = "No message set."; guildbank_money = 0; purchased_tabs = 0; - Id = objmgr.GenerateGuildId(); + sLog.outDebug("GUILD: creating guild %s to leader: %u", gname.c_str(), GUID_LOPART(leaderGuid)); + // gname already assigned to Guild::name, use it to encode string for DB CharacterDatabase.escape_string(gname); @@ -89,18 +88,13 @@ bool Guild::create(uint64 lGuid, std::string gname) Id, gname.c_str(), GUID_LOPART(leaderGuid), dbGINFO.c_str(), dbMOTD.c_str(), EmblemStyle, EmblemColor, BorderStyle, BorderColor, BackgroundColor, guildbank_money); CharacterDatabase.CommitTransaction(); - rname = "Guild Master"; - CreateRank(rname,GR_RIGHT_ALL); - rname = "Officer"; - CreateRank(rname,GR_RIGHT_ALL); - rname = "Veteran"; - CreateRank(rname,GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK); - rname = "Member"; - CreateRank(rname,GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK); - rname = "Initiate"; - CreateRank(rname,GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK); - - return AddMember(lGuid, (uint32)GR_GUILDMASTER); + CreateRank(lSession->GetMangosString(LANG_GUILD_MASTER), GR_RIGHT_ALL); + CreateRank(lSession->GetMangosString(LANG_GUILD_OFFICER), GR_RIGHT_ALL); + CreateRank(lSession->GetMangosString(LANG_GUILD_VETERAN), GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK); + CreateRank(lSession->GetMangosString(LANG_GUILD_MEMBER), GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK); + CreateRank(lSession->GetMangosString(LANG_GUILD_INITIATE),GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK); + + return AddMember(leaderGuid, (uint32)GR_GUILDMASTER); } bool Guild::AddMember(uint64 plGuid, uint32 plRank) diff --git a/src/game/Guild.h b/src/game/Guild.h index fb124bbc8e4..12dea1feb1f 100644 --- a/src/game/Guild.h +++ b/src/game/Guild.h @@ -269,7 +269,7 @@ class Guild Guild(); ~Guild(); - bool create(uint64 lGuid, std::string gname); + bool create(Player* leader, std::string gname); void Disband(); typedef std::map<uint32, MemberSlot> MemberList; diff --git a/src/game/GuildHandler.cpp b/src/game/GuildHandler.cpp index 5c4c18d64d9..358d48292a3 100644 --- a/src/game/GuildHandler.cpp +++ b/src/game/GuildHandler.cpp @@ -64,7 +64,7 @@ void WorldSession::HandleGuildCreateOpcode(WorldPacket& recvPacket) return; Guild *guild = new Guild; - if(!guild->create(GetPlayer()->GetGUID(),gname)) + if(!guild->create(GetPlayer(),gname)) { delete guild; return; diff --git a/src/game/Language.h b/src/game/Language.h index 0bb9ca3318c..be303c294e4 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -710,7 +710,12 @@ enum TrinityStrings LANG_PLAYER_NOT_EXIST_OR_OFFLINE = 808, LANG_ACCOUNT_FOR_PLAYER_NOT_FOUND = 809, LANG_ACHIEVEMENT_EARNED = 810, - // Room for in-game strings 811-999 not used + LANG_GUILD_MASTER = 811, + LANG_GUILD_OFFICER = 812, + LANG_GUILD_VETERAN = 813, + LANG_GUILD_MEMBER = 814, + LANG_GUILD_INITIATE = 815, + // Room for in-game strings 816-999 not used // Level 4 (CLI only commands) LANG_COMMAND_EXIT = 1000, diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 8dc176cb023..80d73d4dffe 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -3636,7 +3636,7 @@ bool ChatHandler::HandleGuildCreateCommand(const char* args) } Guild *guild = new Guild; - if (!guild->create (player->GetGUID (),guildname)) + if (!guild->create (player,guildname)) { delete guild; SendSysMessage (LANG_GUILD_NOT_CREATED); diff --git a/src/game/PetitionsHandler.cpp b/src/game/PetitionsHandler.cpp index df9761a7f53..2b225283749 100644 --- a/src/game/PetitionsHandler.cpp +++ b/src/game/PetitionsHandler.cpp @@ -826,7 +826,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data) if(type == 9) // create guild { Guild* guild = new Guild; - if(!guild->create(_player->GetGUID(), name)) + if(!guild->create(_player, name)) { delete guild; delete result; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 6af72ad25e0..b78c81a0466 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 "7421" + #define REVISION_NR "7422" #endif // __REVISION_NR_H__ |