diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp index dcc2b8a5e..564510e99 100644 --- a/src/game/ArenaTeam.cpp +++ b/src/game/ArenaTeam.cpp @@ -294,9 +294,8 @@ void ArenaTeam::Disband(WorldSession *session) // event if (session) { - WorldPacket data; - session->BuildArenaTeamEventPacket(&data, ERR_ARENA_TEAM_DISBANDED_S, 2, session->GetPlayerName(), GetName(), ""); - BroadcastPacket(&data); + // probably only 1 string required... + BroadcastEvent(ERR_ARENA_TEAM_DISBANDED_S, 0, 2, session->GetPlayerName(), GetName(), ""); } while (!m_members.empty()) @@ -307,7 +306,7 @@ void ArenaTeam::Disband(WorldSession *session) CharacterDatabase.BeginTransaction(); CharacterDatabase.PExecute("DELETE FROM arena_team WHERE arenateamid = '%u'", m_TeamId); - CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u'", m_TeamId); //< this should be alredy done by calling DelMember(memberGuids[j]); for each member + CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u'", m_TeamId); //< this should be already done by calling DelMember(memberGuids[j]); for each member CharacterDatabase.PExecute("DELETE FROM arena_team_stats WHERE arenateamid = '%u'", m_TeamId); CharacterDatabase.CommitTransaction(); sObjectMgr.RemoveArenaTeam(m_TeamId); @@ -464,6 +463,37 @@ void ArenaTeam::BroadcastPacket(WorldPacket *packet) } } +void ArenaTeam::BroadcastEvent(ArenaTeamEvents event, uint64 guid, uint8 strCount, std::string str1, std::string str2, std::string str3) +{ + WorldPacket data(SMSG_ARENA_TEAM_EVENT, 1+1+1); + data << uint8(event); + data << uint8(strCount); + switch(strCount) + { + case 0: + break; + case 1: + data << str1; + break; + case 2: + data << str1 << str2; + break; + case 3: + data << str1 << str2 << str3; + break; + default: + sLog.outError("Unhandled strCount %u in ArenaTeam::BroadcastEvent", strCount); + return; + } + + if(guid) + data << uint64(guid); + + BroadcastPacket(&data); + + sLog.outDebug("WORLD: Sent SMSG_ARENA_TEAM_EVENT"); +} + uint8 ArenaTeam::GetSlotByType( uint32 type ) { switch(type) @@ -494,7 +524,7 @@ uint32 ArenaTeam::GetPoints(uint32 MemberRating) uint32 rating = MemberRating + 150 < m_stats.rating ? MemberRating : m_stats.rating; - if(rating<=1500) + if(rating <= 1500) points = (float)rating * 0.22f + 14.0f; else points = 1511.26f / (1.0f + 1639.28f * exp(-0.00412f * (float)rating)); diff --git a/src/game/ArenaTeam.h b/src/game/ArenaTeam.h index 1787db4de..03c3c1e1b 100644 --- a/src/game/ArenaTeam.h +++ b/src/game/ArenaTeam.h @@ -23,14 +23,12 @@ enum ArenaTeamCommandTypes { ERR_ARENA_TEAM_CREATE_S = 0x00, ERR_ARENA_TEAM_INVITE_SS = 0x01, - //ERR_ARENA_TEAM_QUIT_S = 0x02, ERR_ARENA_TEAM_QUIT_S = 0x03, - ERR_ARENA_TEAM_FOUNDER_S = 0x0C // need check, probably wrong... + ERR_ARENA_TEAM_FOUNDER_S = 0x0E }; enum ArenaTeamCommandErrors { - //ARENA_TEAM_PLAYER_NO_MORE_IN_ARENA_TEAM = 0x00, ERR_ARENA_TEAM_INTERNAL = 0x01, ERR_ALREADY_IN_ARENA_TEAM = 0x02, ERR_ALREADY_IN_ARENA_TEAM_S = 0x03, @@ -44,8 +42,12 @@ enum ArenaTeamCommandErrors ERR_ARENA_TEAM_PLAYER_NOT_IN_TEAM_SS = 0x0A, ERR_ARENA_TEAM_PLAYER_NOT_FOUND_S = 0x0B, ERR_ARENA_TEAM_NOT_ALLIED = 0x0C, - ERR_ARENA_TEAM_PLAYER_TO_LOW = 0x15, - ERR_ARENA_TEAM_FULL = 0x16 + ERR_ARENA_TEAM_IGNORING_YOU_S = 0x13, + ERR_ARENA_TEAM_TARGET_TOO_LOW_S = 0x15, + ERR_ARENA_TEAM_TARGET_TOO_HIGH_S = 0x16, + ERR_ARENA_TEAM_TOO_MANY_MEMBERS_S = 0x17, + ERR_ARENA_TEAM_NOT_FOUND = 0x1B, + ERR_ARENA_TEAMS_LOCKED = 0x1E }; enum ArenaTeamEvents @@ -186,6 +188,7 @@ class ArenaTeam void SaveToDB(); void BroadcastPacket(WorldPacket *packet); + void BroadcastEvent(ArenaTeamEvents event, uint64 guid, uint8 strCount, std::string str1, std::string str2, std::string str3); void Roster(WorldSession *session); void Query(WorldSession *session); diff --git a/src/game/ArenaTeamHandler.cpp b/src/game/ArenaTeamHandler.cpp index 93543cc6f..f73b666b4 100644 --- a/src/game/ArenaTeamHandler.cpp +++ b/src/game/ArenaTeamHandler.cpp @@ -99,7 +99,7 @@ void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket & recv_data) if(player->getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) { - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", player->GetName(), ERR_ARENA_TEAM_PLAYER_TO_LOW); + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", player->GetName(), ERR_ARENA_TEAM_TARGET_TOO_LOW_S); return; } @@ -134,7 +134,7 @@ void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket & recv_data) if(arenateam->GetMembersSize() >= arenateam->GetType() * 2) { - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S,arenateam->GetName(),"",ERR_ARENA_TEAM_FULL); + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, arenateam->GetName(), "", ERR_ARENA_TEAM_TOO_MANY_MEMBERS_S); return; } @@ -160,26 +160,27 @@ void WorldSession::HandleArenaTeamAcceptOpcode(WorldPacket & /*recv_data*/) if(_player->GetArenaTeamId(at->GetSlot())) { - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S,"","",ERR_ALREADY_IN_ARENA_TEAM); // already in arena team that size + // already in arena team that size + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ALREADY_IN_ARENA_TEAM); return; } if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && _player->GetTeam() != sObjectMgr.GetPlayerTeamByGUID(at->GetCaptain())) { - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S,"","",ERR_ARENA_TEAM_NOT_ALLIED);// not let enemies sign petition + // not let enemies sign petition + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_NOT_ALLIED); return; } if(!at->AddMember(_player->GetGUID())) { - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S,"","",ERR_ARENA_TEAM_INTERNAL);// arena team not found + // arena team not found + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S,"","",ERR_ARENA_TEAM_INTERNAL); return; } // event - WorldPacket data; - BuildArenaTeamEventPacket(&data, ERR_ARENA_TEAM_JOIN_SS, 2, _player->GetName(), at->GetName(), ""); - at->BroadcastPacket(&data); + at->BroadcastEvent(ERR_ARENA_TEAM_JOIN_SS, _player->GetGUID(), 2, _player->GetName(), at->GetName(), ""); } void WorldSession::HandleArenaTeamDeclineOpcode(WorldPacket & /*recv_data*/) @@ -218,11 +219,9 @@ void WorldSession::HandleArenaTeamLeaveOpcode(WorldPacket & recv_data) at->DelMember(_player->GetGUID()); // event - WorldPacket data; - BuildArenaTeamEventPacket(&data, ERR_ARENA_TEAM_LEAVE_SS, 2, _player->GetName(), at->GetName(), ""); - at->BroadcastPacket(&data); + at->BroadcastEvent(ERR_ARENA_TEAM_LEAVE_SS, _player->GetGUID(), 2, _player->GetName(), at->GetName(), ""); - //send you are no longer member of team + // send you are no longer member of team SendArenaTeamCommandResult(ERR_ARENA_TEAM_QUIT_S, at->GetName(), "", 0); } @@ -285,9 +284,7 @@ void WorldSession::HandleArenaTeamRemoveOpcode(WorldPacket & recv_data) at->DelMember(member->guid); // event - WorldPacket data; - BuildArenaTeamEventPacket(&data, ERR_ARENA_TEAM_REMOVE_SSS, 3, name, at->GetName(), _player->GetName()); - at->BroadcastPacket(&data); + at->BroadcastEvent(ERR_ARENA_TEAM_REMOVE_SSS, 0, 3, name, at->GetName(), _player->GetName()); } void WorldSession::HandleArenaTeamLeaderOpcode(WorldPacket & recv_data) @@ -326,9 +323,7 @@ void WorldSession::HandleArenaTeamLeaderOpcode(WorldPacket & recv_data) at->SetCaptain(member->guid); // event - WorldPacket data; - BuildArenaTeamEventPacket(&data, ERR_ARENA_TEAM_LEADER_CHANGED_SSS, 3, _player->GetName(), name, at->GetName()); - at->BroadcastPacket(&data); + at->BroadcastEvent(ERR_ARENA_TEAM_LEADER_CHANGED_SSS, 0, 3, _player->GetName(), name, at->GetName()); } void WorldSession::SendArenaTeamCommandResult(uint32 team_action, const std::string& team, const std::string& player, uint32 error_id) @@ -341,31 +336,6 @@ void WorldSession::SendArenaTeamCommandResult(uint32 team_action, const std::str SendPacket(&data); } -void WorldSession::BuildArenaTeamEventPacket(WorldPacket *data, uint8 eventid, uint8 str_count, const std::string& str1, const std::string& str2, const std::string& str3) -{ - data->Initialize(SMSG_ARENA_TEAM_EVENT, 1+1+1); - *data << eventid; - *data << str_count; - switch(str_count) - { - case 1: - *data << str1; - break; - case 2: - *data << str1; - *data << str2; - break; - case 3: - *data << str1; - *data << str2; - *data << str3; - break; - default: - sLog.outError("Unhandled str_count %u in SendArenaTeamEvent()", str_count); - return; - } -} - void WorldSession::SendNotInArenaTeamPacket(uint8 type) { WorldPacket data(SMSG_ARENA_ERROR, 4+1); // 886 - You are not in a %uv%u arena team diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp index dc223b554..773335c1e 100644 --- a/src/game/CharacterHandler.cpp +++ b/src/game/CharacterHandler.cpp @@ -658,7 +658,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder) Guild* guild = sObjectMgr.GetGuildById(pCurrChar->GetGuildId()); if(guild) { - data.Initialize(SMSG_GUILD_EVENT, (2+guild->GetMOTD().size()+1)); + data.Initialize(SMSG_GUILD_EVENT, (1+1+guild->GetMOTD().size()+1)); data << uint8(GE_MOTD); data << uint8(1); data << guild->GetMOTD(); @@ -667,13 +667,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder) guild->DisplayGuildBankTabsInfo(this); - data.Initialize(SMSG_GUILD_EVENT, (5+10)); // we guess size - data << uint8(GE_SIGNED_ON); - data << uint8(1); - data << pCurrChar->GetName(); - data << pCurrChar->GetGUID(); - guild->BroadcastPacket(&data); - DEBUG_LOG( "WORLD: Sent guild-signed-on (SMSG_GUILD_EVENT)" ); + guild->BroadcastEvent(GE_SIGNED_ON, pCurrChar->GetGUID(), 1, pCurrChar->GetName(), "", ""); } else { @@ -773,7 +767,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder *holder) { pCurrChar->resetTalents(true); pCurrChar->SendTalentsInfoData(false); // original talents send already in to SendInitialPacketsBeforeAddToMap, resend reset state - SendNotification(LANG_RESET_TALENTS); + SendNotification(LANG_RESET_TALENTS); // we can use SMSG_TALENTS_INVOLUNTARILY_RESET here } if (pCurrChar->HasAtLoginFlag(AT_LOGIN_FIRST)) diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index 9bcbf465a..179c0e0bc 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -281,10 +281,10 @@ bool Guild::LoadRanksFromDB(QueryResult *guildRanksResult) Field *fields; bool broken_ranks = false; - //GUILD RANKS are sequence starting from 0 = GUILD_MASTER (ALL PRIVILEGES) to max 9 (lowest privileges) - //the lower rank id is considered higher rank - so promotion does rank-- and demotion does rank++ - //between ranks in sequence cannot be gaps - so 0,1,2,4 cannot be - //min ranks count is 5 and max is 10. + // GUILD RANKS are sequence starting from 0 = GUILD_MASTER (ALL PRIVILEGES) to max 9 (lowest privileges) + // the lower rank id is considered higher rank - so promotion does rank-- and demotion does rank++ + // between ranks in sequence cannot be gaps - so 0,1,2,4 cannot be + // min ranks count is 5 and max is 10. do { @@ -354,26 +354,26 @@ bool Guild::LoadMembersFromDB(QueryResult *guildMembersResult) do { Field *fields = guildMembersResult->Fetch(); - //this condition will be true when all rows in QueryResult are processed and new guild without members is going to be loaded - prevent crash + // this condition will be true when all rows in QueryResult are processed and new guild without members is going to be loaded - prevent crash if (!fields) break; uint32 guildId = fields[0].GetUInt32(); if (guildId < m_Id) { - //there is in table guild_member record which doesn't have guildid in guild table, report error + // there is in table guild_member record which doesn't have guildid in guild table, report error sLog.outErrorDb("Guild %u does not exist but it has a record in guild_member table, deleting it!", guildId); CharacterDatabase.PExecute("DELETE FROM guild_member WHERE guildid = '%u'", guildId); continue; } if (guildId > m_Id) - //we loaded all members for this guild already, break cycle + // we loaded all members for this guild already, break cycle break; MemberSlot newmember; uint64 guid = MAKE_NEW_GUID(fields[1].GetUInt32(), 0, HIGHGUID_PLAYER); newmember.RankId = fields[2].GetUInt32(); - //don't allow member to have not existing rank! + // don't allow member to have not existing rank! if (newmember.RankId >= m_Ranks.size()) newmember.RankId = GetLowestRank(); @@ -393,7 +393,7 @@ bool Guild::LoadMembersFromDB(QueryResult *guildMembersResult) newmember.ZoneId = fields[22].GetUInt32(); newmember.LogoutTime = fields[23].GetUInt64(); - //this code will remove unexisting character guids from guild + // this code will remove not existing character guids from guild if (newmember.Level < 1 || newmember.Level > STRONG_MAX_LEVEL) // can be at broken `data` field { sLog.outError("Player (GUID: %u) has a broken data in field `characters`.`data`, deleting him from guild!",GUID_LOPART(guid)); @@ -449,8 +449,8 @@ void Guild::SetLeader(uint64 guid) void Guild::DelMember(uint64 guid, bool isDisbanding) { - //guild master can be deleted when loading guild and guid doesn't exist in characters table - //or when he is removed from guild by gm command + // guild master can be deleted when loading guild and guid doesn't exist in characters table + // or when he is removed from guild by gm command if (m_LeaderGuid == guid && !isDisbanding) { MemberSlot* oldLeader = NULL; @@ -485,21 +485,10 @@ void Guild::DelMember(uint64 guid, bool isDisbanding) // when leader non-exist (at guild load with deleted leader only) not send broadcasts if (oldLeader) { - WorldPacket data(SMSG_GUILD_EVENT, (1+1+(oldLeader->Name).size()+1+(best->Name).size()+1)); - data << (uint8)GE_LEADER_CHANGED; - data << (uint8)2; - data << oldLeader->Name; - data << best->Name; - BroadcastPacket(&data); + BroadcastEvent(GE_LEADER_CHANGED, 0, 2, oldLeader->Name, best->Name, ""); - data.Initialize(SMSG_GUILD_EVENT, (1+1+(oldLeader->Name).size()+1)); - data << (uint8)GE_LEFT; - data << (uint8)1; - data << oldLeader->Name; - BroadcastPacket(&data); + BroadcastEvent(GE_LEFT, guid, 1, oldLeader->Name, "", ""); } - - sLog.outDebug( "WORLD: Sent (SMSG_GUILD_EVENT)" ); } members.erase(GUID_LOPART(guid)); @@ -620,11 +609,11 @@ void Guild::CreateRank(std::string name_,uint32 rights) AddRank(name_, rights, 0); - //existing records in db should be deleted before calling this procedure and m_PurchasedTabs must be loaded already + // existing records in db should be deleted before calling this procedure and m_PurchasedTabs must be loaded already for (uint32 i = 0; i < m_PurchasedTabs; ++i) { - //create bank rights with 0 + // create bank rights with 0 CharacterDatabase.PExecute("INSERT INTO guild_bank_right (guildid,TabId,rid) VALUES ('%u','%u','%u')", m_Id, i, new_rank_id); } // name now can be used for encoding to DB @@ -700,9 +689,7 @@ int32 Guild::GetRank(uint32 LowGuid) void Guild::Disband() { - WorldPacket data(SMSG_GUILD_EVENT, 1); - data << (uint8)GE_DISBANDED; - BroadcastPacket(&data); + BroadcastEvent(GE_DISBANDED, 0, 0, "", "", ""); while (!members.empty()) { @@ -727,11 +714,11 @@ void Guild::Roster(WorldSession *session /*= NULL*/) { // 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)); - data << (uint32)members.size(); + data << uint32(members.size()); data << MOTD; data << GINFO; - data << (uint32)m_Ranks.size(); + data << uint32(m_Ranks.size()); for (RankList::const_iterator ritr = m_Ranks.begin(); ritr != m_Ranks.end(); ++ritr) { data << uint32(ritr->Rights); @@ -783,7 +770,7 @@ void Guild::Query(WorldSession *session) { WorldPacket data(SMSG_GUILD_QUERY_RESPONSE, (8*32+200));// we can only guess size - data << m_Id; + data << uint32(m_Id); data << m_Name; for (size_t i = 0 ; i < GUILD_RANKS_MAX_COUNT; ++i) // show always 10 ranks @@ -791,7 +778,7 @@ void Guild::Query(WorldSession *session) if (i < m_Ranks.size()) data << m_Ranks[i].Name; else - data << (uint8)0; // null string + data << uint8(0); // null string } data << uint32(m_EmblemStyle); @@ -799,7 +786,7 @@ void Guild::Query(WorldSession *session) data << uint32(m_BorderStyle); data << uint32(m_BorderColor); data << uint32(m_BackgroundColor); - data << uint32(0); // something new in WotLK + data << uint32(0); // probably real ranks count session->SendPacket( &data ); sLog.outDebug( "WORLD: Sent (SMSG_GUILD_QUERY_RESPONSE)" ); @@ -981,7 +968,7 @@ void Guild::DisplayGuildBankContentUpdate(uint8 TabId, int32 slot1, int32 slot2) data << uint8(2); // item count if (slot1 > slot2) - std::swap(slot1,slot2); + std::swap(slot1, slot2); AppendDisplayGuildBankSlot(data, tab, slot1); AppendDisplayGuildBankSlot(data, tab, slot2); @@ -996,7 +983,7 @@ void Guild::DisplayGuildBankContentUpdate(uint8 TabId, int32 slot1, int32 slot2) if (!IsMemberHaveRights(itr->first,TabId,GUILD_BANK_RIGHT_VIEW_TAB)) continue; - data.put(rempos,uint32(GetMemberSlotWithdrawRem(player->GetGUIDLow(), TabId))); + data.put(rempos, uint32(GetMemberSlotWithdrawRem(player->GetGUIDLow(), TabId))); player->GetSession()->SendPacket(&data); } @@ -1264,7 +1251,7 @@ bool Guild::IsMemberHaveRights(uint32 LowGuid, uint8 TabId, uint32 rights) const if (itr->second.RankId == GR_GUILDMASTER) return true; - return (GetBankRights(itr->second.RankId,TabId) & rights) == rights; + return (GetBankRights(itr->second.RankId, TabId) & rights) == rights; } uint32 Guild::GetMemberSlotWithdrawRem(uint32 LowGuid, uint8 TabId) @@ -1335,7 +1322,7 @@ void Guild::SetBankRightsAndSlots(uint32 rankId, uint8 TabId, uint32 right, uint TabId >= GUILD_BANK_MAX_TABS || TabId >= m_PurchasedTabs) { - //TODO remove next line, It is there just to repair existing bug in deleting guild rank + // TODO remove next line, It is there just to repair existing bug in deleting guild rank CharacterDatabase.PExecute("DELETE FROM guild_bank_right WHERE guildid='%u' AND rid='%u' AND TabId='%u'", m_Id, rankId, TabId); return; } @@ -1394,20 +1381,20 @@ bool Guild::LoadBankRightsFromDB(QueryResult *guildBankTabRightsResult) do { Field *fields = guildBankTabRightsResult->Fetch(); - //prevent crash when all rights in result are already processed + // prevent crash when all rights in result are already processed if (!fields) break; uint32 guildId = fields[0].GetUInt32(); if (guildId < m_Id) { - //there is in table guild_bank_right record which doesn't have guildid in guild table, report error + // there is in table guild_bank_right record which doesn't have guildid in guild table, report error sLog.outErrorDb("Guild %u does not exist but it has a record in guild_bank_right table, deleting it!", guildId); CharacterDatabase.PExecute("DELETE FROM guild_bank_right WHERE guildid = '%u'", guildId); continue; } if (guildId > m_Id) - //we loaded all ranks for this guild bank already, break cycle + // we loaded all ranks for this guild bank already, break cycle break; uint8 TabId = fields[1].GetUInt8(); uint32 rankId = fields[2].GetUInt32(); @@ -1428,8 +1415,8 @@ void Guild::LoadGuildBankEventLogFromDB() { // Money log is in TabId = GUILD_BANK_MONEY_LOGS_TAB - //uint32 configCount = sWorld.getConfig(CONFIG_GUILD_BANK_EVENT_LOG_COUNT); - //cycle through all purchased guild bank item tabs + // uint32 configCount = sWorld.getConfig(CONFIG_GUILD_BANK_EVENT_LOG_COUNT); + // cycle through all purchased guild bank item tabs for (uint32 tabId = 0; tabId < m_PurchasedTabs; ++tabId) { // 0 1 2 3 4 5 6 @@ -1450,7 +1437,7 @@ void Guild::LoadGuildBankEventLogFromDB() NewEvent.DestTabId = fields[5].GetUInt8(); NewEvent.TimeStamp = fields[6].GetUInt64(); - //if newEvent is moneyEvent, move it to moneyEventTab in DB and report error + // if newEvent is moneyEvent, move it to moneyEventTab in DB and report error if (NewEvent.isMoneyEvent()) { uint32 logGuid = fields[0].GetUInt32(); @@ -1459,21 +1446,21 @@ void Guild::LoadGuildBankEventLogFromDB() continue; } else - //add event to list - //events are ordered from oldest (in beginning) to latest (in the end) + // add event to list + // events are ordered from oldest (in beginning) to latest (in the end) m_GuildBankEventLog_Item[tabId].push_front(NewEvent); if (!isNextLogGuidSet) { m_GuildBankEventLogNextGuid_Item[tabId] = fields[0].GetUInt32(); - //we don't have to do m_GuildBankEventLogNextGuid_Item[tabId] %= configCount; - it will be done when creating new record + // we don't have to do m_GuildBankEventLogNextGuid_Item[tabId] %= configCount; - it will be done when creating new record isNextLogGuidSet = true; } } while (result->NextRow()); delete result; } - //special handle for guild bank money log + // special handle for guild bank money log // 0 1 2 3 4 5 6 QueryResult *result = CharacterDatabase.PQuery("SELECT LogGuid, EventType, PlayerGuid, ItemOrMoney, ItemStackCount, DestTabId, TimeStamp FROM guild_bank_eventlog WHERE guildid='%u' AND TabId='%u' ORDER BY TimeStamp DESC,LogGuid DESC LIMIT %u", m_Id, GUILD_BANK_MONEY_LOGS_TAB, GUILD_BANK_MAX_LOGS); if (!result) @@ -1486,7 +1473,7 @@ void Guild::LoadGuildBankEventLogFromDB() if (!isNextMoneyLogGuidSet) { m_GuildBankEventLogNextGuid_Money = fields[0].GetUInt32(); - //we don't have to do m_GuildBankEventLogNextGuid_Money %= configCount; - it will be done when creating new record + // we don't have to do m_GuildBankEventLogNextGuid_Money %= configCount; - it will be done when creating new record isNextMoneyLogGuidSet = true; } GuildBankEventLogEntry NewEvent; @@ -1498,12 +1485,12 @@ void Guild::LoadGuildBankEventLogFromDB() NewEvent.DestTabId = fields[5].GetUInt8(); NewEvent.TimeStamp = fields[6].GetUInt64(); - //if newEvent is not moneyEvent, then report error + // if newEvent is not moneyEvent, then report error if (!NewEvent.isMoneyEvent()) sLog.outError("GuildBankEventLog ERROR: MoneyEvent LogGuid %u for Guild %u is not MoneyEvent - ignoring...", fields[0].GetUInt32(), m_Id); else - //add event to list - //events are ordered from oldest (in beginning) to latest (in the end) + // add event to list + // events are ordered from oldest (in beginning) to latest (in the end) m_GuildBankEventLog_Money.push_front(NewEvent); } while (result->NextRow()); @@ -1579,7 +1566,7 @@ void Guild::DisplayGuildBankLogs(WorldSession *session, uint8 TabId) void Guild::LogBankEvent(uint8 EventType, uint8 TabId, uint32 PlayerGuidLow, uint32 ItemOrMoney, uint8 ItemStackCount, uint8 DestTabId) { - //create Event + // create Event GuildBankEventLogEntry NewEvent; NewEvent.EventType = EventType; NewEvent.PlayerGuid = PlayerGuidLow; @@ -1588,7 +1575,7 @@ void Guild::LogBankEvent(uint8 EventType, uint8 TabId, uint32 PlayerGuidLow, uin NewEvent.DestTabId = DestTabId; NewEvent.TimeStamp = uint32(time(NULL)); - //add new event to the end of event list + // add new event to the end of event list uint32 currentTabId = TabId; uint32 currentLogGuid = 0; if (NewEvent.isMoneyEvent()) @@ -1611,7 +1598,7 @@ void Guild::LogBankEvent(uint8 EventType, uint8 TabId, uint32 PlayerGuidLow, uin m_GuildBankEventLog_Item[TabId].push_back(NewEvent); } - //save event to database + // save event to database CharacterDatabase.PExecute("DELETE FROM guild_bank_eventlog WHERE guildid='%u' AND LogGuid='%u' AND TabId='%u'", m_Id, currentLogGuid, currentTabId); CharacterDatabase.PExecute("INSERT INTO guild_bank_eventlog (guildid,LogGuid,TabId,EventType,PlayerGuid,ItemOrMoney,ItemStackCount,DestTabId,TimeStamp) VALUES ('%u','%u','%u','%u','%u','%u','%u','%u','" UI64FMTD "')", @@ -2307,8 +2294,8 @@ void Guild::MoveFromCharToBank( Player * pl, uint8 PlayerBag, uint8 PlayerSlot, // logging item move to bank if (pl->GetSession()->GetSecurity() > SEC_PLAYER && sWorld.getConfig(CONFIG_GM_LOG_TRADE)) { - sLog.outCommand(pl->GetSession()->GetAccountId(),"GM %s (Account: %u) deposit item: %s (Entry: %d Count: %u) to guild bank (Guild ID: %u )", - pl->GetName(),pl->GetSession()->GetAccountId(), + sLog.outCommand(pl->GetSession()->GetAccountId(), "GM %s (Account: %u) deposit item: %s (Entry: %d Count: %u) to guild bank (Guild ID: %u )", + pl->GetName(), pl->GetSession()->GetAccountId(), pItemChar->GetProto()->Name1, pItemChar->GetEntry(), pItemChar->GetCount(), m_Id); } @@ -2336,6 +2323,38 @@ void Guild::MoveFromCharToBank( Player * pl, uint8 PlayerBag, uint8 PlayerSlot, } } +void Guild::BroadcastEvent(GuildEvents event, uint64 guid, uint8 strCount, std::string str1, std::string str2, std::string str3) +{ + WorldPacket data(SMSG_GUILD_EVENT, 1+1+(guid ? 8 : 0)); + data << uint8(event); + data << uint8(strCount); + + switch(strCount) + { + case 0: + break; + case 1: + data << str1; + break; + case 2: + data << str1 << str2; + break; + case 3: + data << str1 << str2 << str3; + break; + default: + sLog.outError("Guild::BroadcastEvent: incorrect strings count %u!", strCount); + break; + } + + if(guid) + data << uint64(guid); + + BroadcastPacket(&data); + + sLog.outDebug("WORLD: Sent SMSG_GUILD_EVENT"); +} + bool GuildItemPosCount::isContainedIn(GuildItemPosCountVec const &vec) const { for(GuildItemPosCountVec::const_iterator itr = vec.begin(); itr != vec.end(); ++itr) diff --git a/src/game/Guild.h b/src/game/Guild.h index ede69c456..ea6bd8c8b 100644 --- a/src/game/Guild.h +++ b/src/game/Guild.h @@ -71,62 +71,62 @@ enum Typecommand GUILD_CREATE_S = 0x00, GUILD_INVITE_S = 0x01, GUILD_QUIT_S = 0x03, + // 0x05? GUILD_FOUNDER_S = 0x0E, - GUILD_UNK1 = 0x10, - GUILD_BANK_S = 0x15, - GUILD_UNK3 = 0x16 + GUILD_UNK1 = 0x13, + GUILD_UNK2 = 0x14 }; enum CommandErrors { - GUILD_PLAYER_NO_MORE_IN_GUILD = 0x00, - GUILD_INTERNAL = 0x01, - GUILD_ALREADY_IN_GUILD = 0x02, - ALREADY_IN_GUILD = 0x03, - INVITED_TO_GUILD = 0x04, - ALREADY_INVITED_TO_GUILD = 0x05, - GUILD_NAME_INVALID = 0x06, - GUILD_NAME_EXISTS = 0x07, - GUILD_LEADER_LEAVE = 0x08, - GUILD_PERMISSIONS = 0x08, - GUILD_PLAYER_NOT_IN_GUILD = 0x09, - GUILD_PLAYER_NOT_IN_GUILD_S = 0x0A, - GUILD_PLAYER_NOT_FOUND = 0x0B, - GUILD_NOT_ALLIED = 0x0C, - GUILD_RANK_TOO_HIGH_S = 0x0D, - GUILD_ALREADY_LOWEST_RANK_S = 0x0E, - GUILD_TEMP_ERROR = 0x11, - GUILD_RANK_IN_USE = 0x12, - GUILD_IGNORE = 0x13, - GUILD_ERR_UNK1 = 0x17, - GUILD_WITHDRAW_TOO_MUCH = 0x18, - GUILD_BANK_NO_MONEY = 0x19, - GUILD_BANK_TAB_IS_FULL = 0x1B, - GUILD_BANK_ITEM_NOT_FOUND = 0x1C + ERR_PLAYER_NO_MORE_IN_GUILD = 0x00, + ERR_GUILD_INTERNAL = 0x01, + ERR_ALREADY_IN_GUILD = 0x02, + ERR_ALREADY_IN_GUILD_S = 0x03, + ERR_INVITED_TO_GUILD = 0x04, + ERR_ALREADY_INVITED_TO_GUILD_S = 0x05, + ERR_GUILD_NAME_INVALID = 0x06, + ERR_GUILD_NAME_EXISTS_S = 0x07, + ERR_GUILD_LEADER_LEAVE = 0x08, + ERR_GUILD_PERMISSIONS = 0x08, + ERR_GUILD_PLAYER_NOT_IN_GUILD = 0x09, + ERR_GUILD_PLAYER_NOT_IN_GUILD_S = 0x0A, + ERR_GUILD_PLAYER_NOT_FOUND_S = 0x0B, + ERR_GUILD_NOT_ALLIED = 0x0C, + ERR_GUILD_RANK_TOO_HIGH_S = 0x0D, + ERR_GUILD_RANK_TOO_LOW_S = 0x0E, + ERR_GUILD_RANKS_LOCKED = 0x11, + ERR_GUILD_RANK_IN_USE = 0x12, + ERR_GUILD_IGNORING_YOU_S = 0x13, + ERR_GUILD_UNK1 = 0x14, + ERR_GUILD_WITHDRAW_LIMIT = 0x19, + ERR_GUILD_NOT_ENOUGH_MONEY = 0x1A, + ERR_GUILD_BANK_FULL = 0x1C, + ERR_GUILD_ITEM_NOT_FOUND = 0x1D }; enum GuildEvents { - GE_PROMOTION = 0x00, - GE_DEMOTION = 0x01, - GE_MOTD = 0x02, - GE_JOINED = 0x03, - GE_LEFT = 0x04, - GE_REMOVED = 0x05, - GE_LEADER_IS = 0x06, - GE_LEADER_CHANGED = 0x07, - GE_DISBANDED = 0x08, - GE_TABARDCHANGE = 0x09, - GE_UNK1 = 0x0A, // string, string EVENT_GUILD_ROSTER_UPDATE - GE_UNK2 = 0x0B, // EVENT_GUILD_ROSTER_UPDATE - GE_SIGNED_ON = 0x0C, // ERR_FRIEND_ONLINE_SS - GE_SIGNED_OFF = 0x0D, // ERR_FRIEND_OFFLINE_S - GE_UNK3 = 0x0E, // EVENT_GUILDBANKBAGSLOTS_CHANGED - GE_BANKTAB_PURCHASED= 0x0F, // EVENT_GUILDBANK_UPDATE_TABS - GE_UNK5 = 0x10, // EVENT_GUILDBANK_UPDATE_TABS - GE_UNK6 = 0x11, // EVENT_GUILDBANK_UPDATE_MONEY, string 0000000000002710 is 1 gold - GE_UNK7 = 0x12, // MSG_GUILD_BANK_MONEY_WITHDRAWN - GE_UNK8 = 0x13 // EVENT_GUILDBANK_TEXT_CHANGED + GE_PROMOTION = 0x00, + GE_DEMOTION = 0x01, + GE_MOTD = 0x02, + GE_JOINED = 0x03, + GE_LEFT = 0x04, + GE_REMOVED = 0x05, + GE_LEADER_IS = 0x06, + GE_LEADER_CHANGED = 0x07, + GE_DISBANDED = 0x08, + GE_TABARDCHANGE = 0x09, + GE_UNK1 = 0x0A, // string, string EVENT_GUILD_ROSTER_UPDATE tab content change? + GE_UNK2 = 0x0B, // EVENT_GUILD_ROSTER_UPDATE + GE_SIGNED_ON = 0x0C, // ERR_FRIEND_ONLINE_SS + GE_SIGNED_OFF = 0x0D, // ERR_FRIEND_OFFLINE_S + GE_GUILDBANKBAGSLOTS_CHANGED = 0x0E, // EVENT_GUILDBANKBAGSLOTS_CHANGED + GE_BANKTAB_PURCHASED = 0x0F, // EVENT_GUILDBANK_UPDATE_TABS + GE_UNK5 = 0x10, // EVENT_GUILDBANK_UPDATE_TABS + GE_GUILDBANK_UPDATE_MONEY = 0x11, // EVENT_GUILDBANK_UPDATE_MONEY, string 0000000000002710 is 1 gold + GE_GUILD_BANK_MONEY_WITHDRAWN = 0x12, // MSG_GUILD_BANK_MONEY_WITHDRAWN + GE_GUILDBANK_TEXT_CHANGED = 0x13 // EVENT_GUILDBANK_TEXT_CHANGED }; enum PetitionTurns @@ -338,6 +338,7 @@ class Guild void BroadcastToOfficers(WorldSession *session, const std::string& msg, uint32 language = LANG_UNIVERSAL); void BroadcastPacketToRank(WorldPacket *packet, uint32 rankId); void BroadcastPacket(WorldPacket *packet); + void BroadcastEvent(GuildEvents event, uint64 guid, uint8 strCount, std::string str1, std::string str2, std::string str3); template void BroadcastWorker(Do& _do, Player* except = NULL) diff --git a/src/game/GuildHandler.cpp b/src/game/GuildHandler.cpp index 11cda5438..f44af69a2 100644 --- a/src/game/GuildHandler.cpp +++ b/src/game/GuildHandler.cpp @@ -40,7 +40,7 @@ void WorldSession::HandleGuildQueryOpcode(WorldPacket& recvPacket) return; } - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); } void WorldSession::HandleGuildCreateOpcode(WorldPacket& recvPacket) @@ -77,14 +77,14 @@ void WorldSession::HandleGuildInviteOpcode(WorldPacket& recvPacket) if(!player) { - SendGuildCommandResult(GUILD_INVITE_S, Invitedname, GUILD_PLAYER_NOT_FOUND); + SendGuildCommandResult(GUILD_INVITE_S, Invitedname, ERR_GUILD_PLAYER_NOT_FOUND_S); return; } Guild *guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } @@ -95,27 +95,27 @@ void WorldSession::HandleGuildInviteOpcode(WorldPacket& recvPacket) // not let enemies sign guild charter if (!sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && player->GetTeam() != GetPlayer()->GetTeam()) { - SendGuildCommandResult(GUILD_INVITE_S, Invitedname, GUILD_NOT_ALLIED); + SendGuildCommandResult(GUILD_INVITE_S, Invitedname, ERR_GUILD_NOT_ALLIED); return; } if(player->GetGuildId()) { plname = player->GetName(); - SendGuildCommandResult(GUILD_INVITE_S, plname, ALREADY_IN_GUILD); + SendGuildCommandResult(GUILD_INVITE_S, plname, ERR_ALREADY_IN_GUILD_S); return; } if(player->GetGuildIdInvited()) { plname = player->GetName(); - SendGuildCommandResult(GUILD_INVITE_S, plname, ALREADY_INVITED_TO_GUILD); + SendGuildCommandResult(GUILD_INVITE_S, plname, ERR_ALREADY_INVITED_TO_GUILD_S); return; } if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_INVITE)) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -146,13 +146,13 @@ void WorldSession::HandleGuildRemoveOpcode(WorldPacket& recvPacket) Guild* guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_REMOVE)) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -160,33 +160,28 @@ void WorldSession::HandleGuildRemoveOpcode(WorldPacket& recvPacket) MemberSlot* slot = guild->GetMemberSlot(plName, plGuid); if(!slot) { - SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); + SendGuildCommandResult(GUILD_INVITE_S, plName, ERR_GUILD_PLAYER_NOT_IN_GUILD_S); return; } if(slot->RankId == GR_GUILDMASTER) { - SendGuildCommandResult(GUILD_QUIT_S, "", GUILD_LEADER_LEAVE); + SendGuildCommandResult(GUILD_QUIT_S, "", ERR_GUILD_LEADER_LEAVE); return; } - //do not allow to kick player with same or higher rights + // do not allow to kick player with same or higher rights if(GetPlayer()->GetRank() >= slot->RankId) { - SendGuildCommandResult(GUILD_QUIT_S, plName, GUILD_RANK_TOO_HIGH_S); + SendGuildCommandResult(GUILD_QUIT_S, plName, ERR_GUILD_RANK_TOO_HIGH_S); return; } guild->DelMember(plGuid); - // Put record into guildlog + // Put record into guild log guild->LogGuildEvent(GUILD_EVENT_LOG_UNINVITE_PLAYER, GetPlayer()->GetGUIDLow(), GUID_LOPART(plGuid), 0); - WorldPacket data(SMSG_GUILD_EVENT, (2+20)); // guess size - data << (uint8)GE_REMOVED; - data << (uint8)2; // strings count - data << plName; - data << GetPlayer()->GetName(); - guild->BroadcastPacket(&data); + guild->BroadcastEvent(GE_REMOVED, 0, 2, plName, _player->GetName(), ""); } void WorldSession::HandleGuildAcceptOpcode(WorldPacket& /*recvPacket*/) @@ -206,16 +201,10 @@ void WorldSession::HandleGuildAcceptOpcode(WorldPacket& /*recvPacket*/) if(!guild->AddMember(GetPlayer()->GetGUID(),guild->GetLowestRank())) return; - // Put record into guildlog + // Put record into guild log guild->LogGuildEvent(GUILD_EVENT_LOG_JOIN_GUILD, GetPlayer()->GetGUIDLow(), 0, 0); - WorldPacket data(SMSG_GUILD_EVENT, (2+10)); // guess size - data << (uint8)GE_JOINED; - data << (uint8)1; // strings count - data << player->GetName(); - guild->BroadcastPacket(&data); - - sLog.outDebug("WORLD: Sent (SMSG_GUILD_EVENT)"); + guild->BroadcastEvent(GE_JOINED, player->GetGUID(), 1, player->GetName(), "", ""); } void WorldSession::HandleGuildDeclineOpcode(WorldPacket& /*recvPacket*/) @@ -233,7 +222,7 @@ void WorldSession::HandleGuildInfoOpcode(WorldPacket& /*recvPacket*/) Guild *guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } @@ -269,12 +258,12 @@ void WorldSession::HandleGuildPromoteOpcode(WorldPacket& recvPacket) Guild* guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_PROMOTE)) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -283,38 +272,32 @@ void WorldSession::HandleGuildPromoteOpcode(WorldPacket& recvPacket) if(!slot) { - SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); + SendGuildCommandResult(GUILD_INVITE_S, plName, ERR_GUILD_PLAYER_NOT_IN_GUILD_S); return; } if(plGuid == GetPlayer()->GetGUID()) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_NAME_INVALID); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_NAME_INVALID); return; } - //allow to promote only to lower rank than member's rank - //guildmaster's rank = 0 - //GetPlayer()->GetRank() + 1 is highest rank that current player can promote to + // allow to promote only to lower rank than member's rank + // guildmaster's rank = 0 + // GetPlayer()->GetRank() + 1 is highest rank that current player can promote to if(GetPlayer()->GetRank() + 1 >= slot->RankId) { - SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_RANK_TOO_HIGH_S); + SendGuildCommandResult(GUILD_INVITE_S, plName, ERR_GUILD_RANK_TOO_HIGH_S); return; } uint32 newRankId = slot->RankId - 1; //when promoting player, rank is decreased guild->ChangeRank(plGuid, newRankId); - // Put record into guildlog + // Put record into guild log guild->LogGuildEvent(GUILD_EVENT_LOG_PROMOTE_PLAYER, GetPlayer()->GetGUIDLow(), GUID_LOPART(plGuid), newRankId); - WorldPacket data(SMSG_GUILD_EVENT, (2+30)); // guess size - data << (uint8)GE_PROMOTION; - data << (uint8)3; // strings count - data << GetPlayer()->GetName(); - data << plName; - data << guild->GetRankName(newRankId); - guild->BroadcastPacket(&data); + guild->BroadcastEvent(GE_PROMOTION, 0, 3, _player->GetName(), plName, guild->GetRankName(newRankId)); } void WorldSession::HandleGuildDemoteOpcode(WorldPacket& recvPacket) @@ -331,13 +314,13 @@ void WorldSession::HandleGuildDemoteOpcode(WorldPacket& recvPacket) if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_DEMOTE)) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -346,43 +329,37 @@ void WorldSession::HandleGuildDemoteOpcode(WorldPacket& recvPacket) if (!slot) { - SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); + SendGuildCommandResult(GUILD_INVITE_S, plName, ERR_GUILD_PLAYER_NOT_IN_GUILD_S); return; } if(plGuid == GetPlayer()->GetGUID()) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_NAME_INVALID); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_NAME_INVALID); return; } - //do not allow to demote same or higher rank + // do not allow to demote same or higher rank if(GetPlayer()->GetRank() >= slot->RankId) { - SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_RANK_TOO_HIGH_S); + SendGuildCommandResult(GUILD_INVITE_S, plName, ERR_GUILD_RANK_TOO_HIGH_S); return; } - //do not allow to demote lowest rank + // do not allow to demote lowest rank if(slot->RankId >= guild->GetLowestRank()) { - SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_ALREADY_LOWEST_RANK_S); + SendGuildCommandResult(GUILD_INVITE_S, plName, ERR_GUILD_RANK_TOO_LOW_S); return; } uint32 newRankId = slot->RankId + 1; //when demoting player, rank is increased guild->ChangeRank(plGuid, newRankId); - // Put record into guildlog + // Put record into guild log guild->LogGuildEvent(GUILD_EVENT_LOG_DEMOTE_PLAYER, GetPlayer()->GetGUIDLow(), GUID_LOPART(plGuid), newRankId); - WorldPacket data(SMSG_GUILD_EVENT, (2+30)); // guess size - data << (uint8)GE_DEMOTION; - data << (uint8)3; // strings count - data << GetPlayer()->GetName(); - data << plName; - data << guild->GetRankName(slot->RankId); - guild->BroadcastPacket(&data); + guild->BroadcastEvent(GE_DEMOTION, 0, 3, _player->GetName(), plName, guild->GetRankName(slot->RankId)); } void WorldSession::HandleGuildLeaveOpcode(WorldPacket& /*recvPacket*/) @@ -392,13 +369,13 @@ void WorldSession::HandleGuildLeaveOpcode(WorldPacket& /*recvPacket*/) Guild *guild = sObjectMgr.GetGuildById(_player->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if(_player->GetGUID() == guild->GetLeader() && guild->GetMemberSize() > 1) { - SendGuildCommandResult(GUILD_QUIT_S, "", GUILD_LEADER_LEAVE); + SendGuildCommandResult(GUILD_QUIT_S, "", ERR_GUILD_LEADER_LEAVE); return; } @@ -409,18 +386,12 @@ void WorldSession::HandleGuildLeaveOpcode(WorldPacket& /*recvPacket*/) } guild->DelMember(_player->GetGUID()); - // Put record into guildlog + // Put record into guild log guild->LogGuildEvent(GUILD_EVENT_LOG_LEAVE_GUILD, _player->GetGUIDLow(), 0, 0); - WorldPacket data(SMSG_GUILD_EVENT, (2+10)); // guess size - data << (uint8)GE_LEFT; - data << (uint8)1; // strings count - data << _player->GetName(); - guild->BroadcastPacket(&data); + guild->BroadcastEvent(GE_LEFT, _player->GetGUID(), 1, _player->GetName(), "", ""); - sLog.outDebug("WORLD: Sent (SMSG_GUILD_EVENT)"); - - SendGuildCommandResult(GUILD_QUIT_S, guild->GetName(), GUILD_PLAYER_NO_MORE_IN_GUILD); + SendGuildCommandResult(GUILD_QUIT_S, guild->GetName(), ERR_PLAYER_NO_MORE_IN_GUILD); } void WorldSession::HandleGuildDisbandOpcode(WorldPacket& /*recvPacket*/) @@ -430,13 +401,13 @@ void WorldSession::HandleGuildDisbandOpcode(WorldPacket& /*recvPacket*/) Guild *guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if(GetPlayer()->GetGUID() != guild->GetLeader()) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -461,13 +432,13 @@ void WorldSession::HandleGuildLeaderOpcode(WorldPacket& recvPacket) if (!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if (oldLeader->GetGUID() != guild->GetLeader()) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -476,21 +447,14 @@ void WorldSession::HandleGuildLeaderOpcode(WorldPacket& recvPacket) if (!slot) { - SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_IN_GUILD_S); + SendGuildCommandResult(GUILD_INVITE_S, name, ERR_GUILD_PLAYER_NOT_IN_GUILD_S); return; } guild->SetLeader(newLeaderGUID); guild->ChangeRank(oldLeader->GetGUID(), GR_OFFICER); - WorldPacket data(SMSG_GUILD_EVENT, (2+20)); // guess size - data << (uint8)GE_LEADER_CHANGED; - data << (uint8)2; // strings count - data << oldLeader->GetName(); - data << name.c_str(); - guild->BroadcastPacket(&data); - - sLog.outDebug("WORLD: Sent (SMSG_GUILD_EVENT)"); + guild->BroadcastEvent(GE_LEADER_CHANGED, 0, 2, oldLeader->GetName(), name, ""); } void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket) @@ -507,24 +471,18 @@ void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket) Guild *guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_SETMOTD)) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } guild->SetMOTD(MOTD); - WorldPacket data(SMSG_GUILD_EVENT, (2+MOTD.size()+1)); - data << (uint8)GE_MOTD; - data << (uint8)1; // strings count - data << MOTD; - guild->BroadcastPacket(&data); - - sLog.outDebug("WORLD: Sent (SMSG_GUILD_EVENT)"); + guild->BroadcastEvent(GE_MOTD, 0, 1, MOTD, "", ""); } void WorldSession::HandleGuildSetPublicNoteOpcode(WorldPacket& recvPacket) @@ -541,13 +499,13 @@ void WorldSession::HandleGuildSetPublicNoteOpcode(WorldPacket& recvPacket) if (!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if (!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EPNOTE)) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -556,7 +514,7 @@ void WorldSession::HandleGuildSetPublicNoteOpcode(WorldPacket& recvPacket) if (!slot) { - SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_IN_GUILD_S); + SendGuildCommandResult(GUILD_INVITE_S, name, ERR_GUILD_PLAYER_NOT_IN_GUILD_S); return; } @@ -580,12 +538,12 @@ void WorldSession::HandleGuildSetOfficerNoteOpcode(WorldPacket& recvPacket) if (!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if (!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EOFFNOTE)) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -594,7 +552,7 @@ void WorldSession::HandleGuildSetOfficerNoteOpcode(WorldPacket& recvPacket) if (!slot) { - SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); + SendGuildCommandResult(GUILD_INVITE_S, plName, ERR_GUILD_PLAYER_NOT_IN_GUILD_S); return; } @@ -616,13 +574,13 @@ void WorldSession::HandleGuildRankOpcode(WorldPacket& recvPacket) if(!guild) { recvPacket.rpos(recvPacket.wpos()); // set to end to avoid warnings spam - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } else if(GetPlayer()->GetGUID() != guild->GetLeader()) { recvPacket.rpos(recvPacket.wpos()); // set to end to avoid warnings spam - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -665,13 +623,13 @@ void WorldSession::HandleGuildAddRankOpcode(WorldPacket& recvPacket) Guild *guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if(GetPlayer()->GetGUID() != guild->GetLeader()) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -691,12 +649,12 @@ void WorldSession::HandleGuildDelRankOpcode(WorldPacket& /*recvPacket*/) Guild *guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } else if(GetPlayer()->GetGUID() != guild->GetLeader()) { - SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -727,13 +685,13 @@ void WorldSession::HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket) Guild *guild = sObjectMgr.GetGuildById(GetPlayer()->GetGuildId()); if(!guild) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); return; } if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_MODIFY_GUILD_INFO)) { - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PERMISSIONS); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PERMISSIONS); return; } @@ -864,7 +822,7 @@ void WorldSession::HandleGuildBankerActivate( WorldPacket & recv_data ) } } - SendGuildCommandResult(GUILD_BANK_S, "", GUILD_PLAYER_NOT_IN_GUILD); + SendGuildCommandResult(GUILD_UNK1, "", ERR_GUILD_PLAYER_NOT_IN_GUILD); } /* Called when opening guild bank tab only (first one) */ diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 7a604d39d..525fbc762 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -4444,7 +4444,7 @@ bool ChatHandler::HandleResetSpellsCommand(const char * args) Player* target; uint64 target_guid; std::string target_name; - if(!extractPlayerTarget((char*)args,&target,&target_guid,&target_name)) + if(!extractPlayerTarget((char*)args, &target, &target_guid, &target_name)) return false; if(target) @@ -4469,7 +4469,7 @@ bool ChatHandler::HandleResetTalentsCommand(const char * args) Player* target; uint64 target_guid; std::string target_name; - if (!extractPlayerTarget((char*)args,&target,&target_guid,&target_name)) + if (!extractPlayerTarget((char*)args, &target, &target_guid, &target_name)) { // Try reset talents as Hunter Pet Creature* creature = getSelectedCreature(); @@ -4482,7 +4482,7 @@ bool ChatHandler::HandleResetTalentsCommand(const char * args) ((Player*)owner)->SendTalentsInfoData(true); ChatHandler((Player*)owner).SendSysMessage(LANG_RESET_PET_TALENTS); - if(!m_session || m_session->GetPlayer()!=((Player*)owner)) + if(!m_session || m_session->GetPlayer() != ((Player*)owner)) PSendSysMessage(LANG_RESET_PET_TALENTS_ONLINE,GetNameLink((Player*)owner).c_str()); } return true; @@ -4498,21 +4498,21 @@ bool ChatHandler::HandleResetTalentsCommand(const char * args) target->resetTalents(true); target->SendTalentsInfoData(false); ChatHandler(target).SendSysMessage(LANG_RESET_TALENTS); - if (!m_session || m_session->GetPlayer()!=target) + if (!m_session || m_session->GetPlayer() != target) PSendSysMessage(LANG_RESET_TALENTS_ONLINE,GetNameLink(target).c_str()); Pet* pet = target->GetPet(); - Pet::resetTalentsForAllPetsOf(target,pet); + Pet::resetTalentsForAllPetsOf(target, pet); if(pet) target->SendTalentsInfoData(true); return true; } else if (target_guid) { - uint32 at_flags = AT_LOGIN_NONE | AT_LOGIN_RESET_PET_TALENTS; - CharacterDatabase.PExecute("UPDATE characters SET at_login = at_login | '%u' WHERE guid = '%u'",at_flags, GUID_LOPART(target_guid) ); + uint32 at_flags = AT_LOGIN_RESET_PET_TALENTS; + CharacterDatabase.PExecute("UPDATE characters SET at_login = at_login | '%u' WHERE guid = '%u'", at_flags, GUID_LOPART(target_guid) ); std::string nameLink = playerLink(target_name); - PSendSysMessage(LANG_RESET_TALENTS_OFFLINE,nameLink.c_str()); + PSendSysMessage(LANG_RESET_TALENTS_OFFLINE, nameLink.c_str()); return true; } diff --git a/src/game/PetitionsHandler.cpp b/src/game/PetitionsHandler.cpp index 0503ae431..a87c2e699 100644 --- a/src/game/PetitionsHandler.cpp +++ b/src/game/PetitionsHandler.cpp @@ -45,6 +45,7 @@ #define ARENA_TEAM_CHARTER_3v3_COST 1200000 // 120 G #define ARENA_TEAM_CHARTER_5v5 23562 #define ARENA_TEAM_CHARTER_5v5_COST 2000000 // 200 G +#define CHARTER_DISPLAY_ID 16161 void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recv_data) { @@ -148,12 +149,12 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recv_data) { if(sObjectMgr.GetGuildByName(name)) { - SendGuildCommandResult(GUILD_CREATE_S, name, GUILD_NAME_EXISTS); + SendGuildCommandResult(GUILD_CREATE_S, name, ERR_GUILD_NAME_EXISTS_S); return; } if(sObjectMgr.IsReservedName(name) || !ObjectMgr::IsValidCharterName(name)) { - SendGuildCommandResult(GUILD_CREATE_S, name, GUILD_NAME_INVALID); + SendGuildCommandResult(GUILD_CREATE_S, name, ERR_GUILD_NAME_INVALID); return; } } @@ -204,8 +205,7 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recv_data) _player->SendNewItem(charter, 1, true, false); // a petition is invalid, if both the owner and the type matches - // we checked above, if this player is in an arenateam, so this must be - // datacorruption + // we checked above, if this player is in an arenateam, so this must be data corruption QueryResult *result = CharacterDatabase.PQuery("SELECT petitionguid FROM petition WHERE ownerguid = '%u' AND type = '%u'", _player->GetGUIDLow(), type); std::ostringstream ssInvalidPetitionGUIDs; @@ -258,7 +258,7 @@ void WorldSession::HandlePetitionShowSignOpcode(WorldPacket & recv_data) delete result; // if guild petition and has guild => error, return; - if(type==9 && _player->GetGuildId()) + if(type == 9 && _player->GetGuildId()) return; result = CharacterDatabase.PQuery("SELECT playerguid FROM petition_sign WHERE petitionguid = '%u'", petitionguid_low); @@ -270,18 +270,18 @@ void WorldSession::HandlePetitionShowSignOpcode(WorldPacket & recv_data) sLog.outDebug("CMSG_PETITION_SHOW_SIGNATURES petition entry: '%u'", petitionguid_low); WorldPacket data(SMSG_PETITION_SHOW_SIGNATURES, (8+8+4+1+signs*12)); - data << petitionguid; // petition guid - data << _player->GetGUID(); // owner guid - data << petitionguid_low; // guild guid (in mangos always same as GUID_LOPART(petitionguid) - data << signs; // sign's count + data << uint64(petitionguid); // petition guid + data << uint64(_player->GetGUID()); // owner guid + data << uint32(petitionguid_low); // guild guid (in mangos always same as GUID_LOPART(petitionguid) + data << uint8(signs); // sign's count for(uint8 i = 1; i <= signs; ++i) { Field *fields2 = result->Fetch(); uint64 plguid = fields2[0].GetUInt64(); - data << plguid; // Player GUID - data << (uint32)0; // there 0 ... + data << uint64(plguid); // Player GUID + data << uint32(0); // there 0 ... result->NextRow(); } @@ -404,12 +404,12 @@ void WorldSession::HandlePetitionRenameOpcode(WorldPacket & recv_data) { if(sObjectMgr.GetGuildByName(newname)) { - SendGuildCommandResult(GUILD_CREATE_S, newname, GUILD_NAME_EXISTS); + SendGuildCommandResult(GUILD_CREATE_S, newname, ERR_GUILD_NAME_EXISTS_S); return; } if(sObjectMgr.IsReservedName(newname) || !ObjectMgr::IsValidCharterName(newname)) { - SendGuildCommandResult(GUILD_CREATE_S, newname, GUILD_NAME_INVALID); + SendGuildCommandResult(GUILD_CREATE_S, newname, ERR_GUILD_NAME_INVALID); return; } } @@ -433,8 +433,9 @@ void WorldSession::HandlePetitionRenameOpcode(WorldPacket & recv_data) db_newname.c_str(), GUID_LOPART(petitionguid)); sLog.outDebug("Petition (GUID: %u) renamed to '%s'", GUID_LOPART(petitionguid), newname.c_str()); + WorldPacket data(MSG_PETITION_RENAME, (8+newname.size()+1)); - data << petitionguid; + data << uint64(petitionguid); data << newname; SendPacket(&data); } @@ -479,7 +480,7 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recv_data) if(type != 9) SendArenaTeamCommandResult(ERR_ARENA_TEAM_INVITE_SS, "", "", ERR_ARENA_TEAM_NOT_ALLIED); else - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_NOT_ALLIED); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_NOT_ALLIED); return; } @@ -487,7 +488,7 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recv_data) { if(_player->getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) { - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", _player->GetName(), ERR_ARENA_TEAM_PLAYER_TO_LOW); + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", _player->GetName(), ERR_ARENA_TEAM_TARGET_TOO_LOW_S); return; } @@ -511,12 +512,12 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recv_data) { if(_player->GetGuildId()) { - SendGuildCommandResult(GUILD_INVITE_S, _player->GetName(), ALREADY_IN_GUILD); + SendGuildCommandResult(GUILD_INVITE_S, _player->GetName(), ERR_ALREADY_IN_GUILD_S); return; } if(_player->GetGuildIdInvited()) { - SendGuildCommandResult(GUILD_INVITE_S, _player->GetName(), ALREADY_INVITED_TO_GUILD); + SendGuildCommandResult(GUILD_INVITE_S, _player->GetName(), ERR_ALREADY_INVITED_TO_GUILD_S); return; } } @@ -532,9 +533,9 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recv_data) { delete result; WorldPacket data(SMSG_PETITION_SIGN_RESULTS, (8+8+4)); - data << petitionguid; - data << _player->GetGUID(); - data << (uint32)PETITION_SIGN_ALREADY_SIGNED; + data << uint64(petitionguid); + data << uint64(_player->GetGUID()); + data << uint32(PETITION_SIGN_ALREADY_SIGNED); // close at signer side SendPacket(&data); @@ -550,9 +551,9 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recv_data) sLog.outDebug("PETITION SIGN: GUID %u by player: %s (GUID: %u Account: %u)", GUID_LOPART(petitionguid), _player->GetName(),plguidlo,GetAccountId()); WorldPacket data(SMSG_PETITION_SIGN_RESULTS, (8+8+4)); - data << petitionguid; - data << _player->GetGUID(); - data << (uint32)PETITION_SIGN_OK; + data << uint64(petitionguid); + data << uint64(_player->GetGUID()); + data << uint32(PETITION_SIGN_OK); // close at signer side SendPacket(&data); @@ -589,7 +590,7 @@ void WorldSession::HandlePetitionDeclineOpcode(WorldPacket & recv_data) if(owner) // petition owner online { WorldPacket data(MSG_PETITION_DECLINE, 8); - data << _player->GetGUID(); + data << uint64(_player->GetGUID()); owner->GetSession()->SendPacket(&data); } } @@ -626,7 +627,7 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket & recv_data) if(type != 9) SendArenaTeamCommandResult(ERR_ARENA_TEAM_INVITE_SS, "", "", ERR_ARENA_TEAM_NOT_ALLIED); else - SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_NOT_ALLIED); + SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_NOT_ALLIED); return; } @@ -635,7 +636,7 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket & recv_data) if(player->getLevel() < sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)) { // player is too low level to join an arena team - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, player->GetName(), "", ERR_ARENA_TEAM_PLAYER_TO_LOW); + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, player->GetName(), "", ERR_ARENA_TEAM_TARGET_TOO_LOW_S); return; } @@ -660,13 +661,13 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket & recv_data) { if(player->GetGuildId()) { - SendGuildCommandResult(GUILD_INVITE_S, _player->GetName(), ALREADY_IN_GUILD); + SendGuildCommandResult(GUILD_INVITE_S, _player->GetName(), ERR_ALREADY_IN_GUILD_S); return; } if(player->GetGuildIdInvited()) { - SendGuildCommandResult(GUILD_INVITE_S, _player->GetName(), ALREADY_INVITED_TO_GUILD); + SendGuildCommandResult(GUILD_INVITE_S, _player->GetName(), ERR_ALREADY_INVITED_TO_GUILD_S); return; } } @@ -677,18 +678,18 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket & recv_data) signs = (uint8)result->GetRowCount(); WorldPacket data(SMSG_PETITION_SHOW_SIGNATURES, (8+8+4+signs+signs*12)); - data << petitionguid; // petition guid - data << _player->GetGUID(); // owner guid - data << GUID_LOPART(petitionguid); // guild guid (in mangos always same as GUID_LOPART(petition guid) - data << signs; // sign's count + data << uint64(petitionguid); // petition guid + data << uint64(_player->GetGUID()); // owner guid + data << uint32(GUID_LOPART(petitionguid)); // guild guid (in mangos always same as GUID_LOPART(petition guid) + data << uint8(signs); // sign's count for(uint8 i = 1; i <= signs; ++i) { Field *fields2 = result->Fetch(); plguid = fields2[0].GetUInt64(); - data << plguid; // Player GUID - data << (uint32)0; // there 0 ... + data << uint64(plguid); // Player GUID + data << uint32(0); // there 0 ... result->NextRow(); } @@ -734,7 +735,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data) if(_player->GetGuildId()) { data.Initialize(SMSG_TURN_IN_PETITION_RESULTS, 4); - data << (uint32)PETITION_TURN_ALREADY_IN_GUILD; // already in guild + data << uint32(PETITION_TURN_ALREADY_IN_GUILD); // already in guild _player->GetSession()->SendPacket(&data); return; } @@ -748,7 +749,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data) if(_player->GetArenaTeamId(slot)) { //data.Initialize(SMSG_TURN_IN_PETITION_RESULTS, 4); - //data << (uint32)PETITION_TURN_ALREADY_IN_GUILD; // already in guild + //data << (uint32)PETITION_TURN_ALREADY_IN_GUILD; // already in guild //_player->GetSession()->SendPacket(&data); SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, name, "", ERR_ALREADY_IN_ARENA_TEAM); return; @@ -771,11 +772,11 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data) if(type == 9) count = sWorld.getConfig(CONFIG_MIN_PETITION_SIGNS); else - count = type-1; + count = type - 1; if(signs < count) { data.Initialize(SMSG_TURN_IN_PETITION_RESULTS, 4); - data << (uint32)PETITION_TURN_NEED_MORE_SIGNATURES; // need more signatures... + data << uint32(PETITION_TURN_NEED_MORE_SIGNATURES); // need more signatures... SendPacket(&data); delete result; return; @@ -785,7 +786,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data) { if(sObjectMgr.GetGuildByName(name)) { - SendGuildCommandResult(GUILD_CREATE_S, name, GUILD_NAME_EXISTS); + SendGuildCommandResult(GUILD_CREATE_S, name, ERR_GUILD_NAME_EXISTS_S); delete result; return; } @@ -811,7 +812,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data) // OK! // delete charter item - _player->DestroyItem(item->GetBagSlot(),item->GetSlot(), true); + _player->DestroyItem(item->GetBagSlot(), item->GetSlot(), true); if(type == 9) // create guild { @@ -876,7 +877,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data) sLog.outDebug("TURN IN PETITION GUID %u", GUID_LOPART(petitionguid)); data.Initialize(SMSG_TURN_IN_PETITION_RESULTS, 4); - data << (uint32)PETITION_TURN_OK; + data << uint32(PETITION_TURN_OK); SendPacket(&data); } @@ -911,13 +912,13 @@ void WorldSession::SendPetitionShowList(uint64 guid) count = 3; WorldPacket data(SMSG_PETITION_SHOWLIST, 8+1+4*6); - data << guid; // npc guid - data << count; // count + data << uint64(guid); // npc guid + data << uint8(count); // count if(count == 1) { data << uint32(1); // index data << uint32(GUILD_CHARTER); // charter entry - data << uint32(16161); // charter display id + data << uint32(CHARTER_DISPLAY_ID); // charter display id data << uint32(GUILD_CHARTER_COST); // charter cost data << uint32(0); // unknown data << uint32(9); // required signs? @@ -927,33 +928,33 @@ void WorldSession::SendPetitionShowList(uint64 guid) // 2v2 data << uint32(1); // index data << uint32(ARENA_TEAM_CHARTER_2v2); // charter entry - data << uint32(16161); // charter display id + data << uint32(CHARTER_DISPLAY_ID); // charter display id data << uint32(ARENA_TEAM_CHARTER_2v2_COST); // charter cost data << uint32(2); // unknown data << uint32(2); // required signs? // 3v3 data << uint32(2); // index data << uint32(ARENA_TEAM_CHARTER_3v3); // charter entry - data << uint32(16161); // charter display id + data << uint32(CHARTER_DISPLAY_ID); // charter display id data << uint32(ARENA_TEAM_CHARTER_3v3_COST); // charter cost data << uint32(3); // unknown data << uint32(3); // required signs? // 5v5 data << uint32(3); // index data << uint32(ARENA_TEAM_CHARTER_5v5); // charter entry - data << uint32(16161); // charter display id + data << uint32(CHARTER_DISPLAY_ID); // charter display id data << uint32(ARENA_TEAM_CHARTER_5v5_COST); // charter cost data << uint32(5); // unknown data << uint32(5); // required signs? } //for(uint8 i = 0; i < count; ++i) //{ - // data << uint32(i); // index - // data << uint32(GUILD_CHARTER); // charter entry - // data << uint32(16161); // charter display id - // data << uint32(GUILD_CHARTER_COST+i); // charter cost - // data << uint32(0); // unknown - // data << uint32(9); // required signs? + // data << uint32(i); // index + // data << uint32(GUILD_CHARTER); // charter entry + // data << uint32(CHARTER_DISPLAY_ID); // charter display id + // data << uint32(GUILD_CHARTER_COST+i); // charter cost + // data << uint32(0); // unknown + // data << uint32(9); // required signs? //} SendPacket(&data); sLog.outDebug("Sent SMSG_PETITION_SHOWLIST"); diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index 2bc6a8428..3d52ea753 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -376,7 +376,7 @@ void WorldSession::LogoutPlayer(bool Save) ///- Reset the online field in the account table // no point resetting online in character table here as Player::SaveToDB() will set it to 1 since player has not been removed from world at this stage - //No SQL injection as AccountID is uint32 + // No SQL injection as AccountID is uint32 loginDatabase.PExecute("UPDATE account SET active_realm_id = 0 WHERE id = '%u'", GetAccountId()); ///- If the player is in a guild, update the guild roster and broadcast a logout message to other guild members @@ -386,16 +386,11 @@ void WorldSession::LogoutPlayer(bool Save) guild->SetMemberStats(_player->GetGUID()); guild->UpdateLogoutTime(_player->GetGUID()); - WorldPacket data(SMSG_GUILD_EVENT, (1+1+12+8)); // name limited to 12 in character table. - data<<(uint8)GE_SIGNED_OFF; - data<<(uint8)1; - data<<_player->GetName(); - data<<_player->GetGUID(); - guild->BroadcastPacket(&data); + guild->BroadcastEvent(GE_SIGNED_OFF, _player->GetGUID(), 1, _player->GetName(), "", ""); } ///- Remove pet - _player->RemovePet(NULL,PET_SAVE_AS_CURRENT, true); + _player->RemovePet(NULL, PET_SAVE_AS_CURRENT, true); ///- empty buyback items and save the player in the database // some save parts only correctly work in case player present in map/player_lists (pets, etc) diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index 0fed25528..ece594061 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -243,7 +243,6 @@ class MANGOS_DLL_SPEC WorldSession // Guild/Arena Team void SendGuildCommandResult(uint32 typecmd, const std::string& str, uint32 cmdresult); void SendArenaTeamCommandResult(uint32 team_action, const std::string& team, const std::string& player, uint32 error_id); - void BuildArenaTeamEventPacket(WorldPacket *data, uint8 eventid, uint8 str_count, const std::string& str1, const std::string& str2, const std::string& str3); void SendNotInArenaTeamPacket(uint8 type); void SendPetitionShowList( uint64 guid ); void SendSaveGuildEmblem( uint32 msg ); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 38ef83fa8..a85d68c22 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 "9352" + #define REVISION_NR "9353" #endif // __REVISION_NR_H__