diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.h | 2 | ||||
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 154 | ||||
-rw-r--r-- | src/server/game/Guilds/Guild.cpp | 87 | ||||
-rwxr-xr-x | src/server/game/Guilds/Guild.h | 86 | ||||
-rwxr-xr-x | src/server/game/Handlers/ArenaTeamHandler.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Handlers/GuildHandler.cpp | 34 | ||||
-rwxr-xr-x | src/server/game/Handlers/PetitionsHandler.cpp | 22 | ||||
-rw-r--r-- | src/server/game/Handlers/ReferAFriendHandler.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Miscellaneous/SharedDefines.h | 11 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 19 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Opcodes.h | 2 | ||||
-rw-r--r-- | src/server/game/Server/WorldPacket.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Server/WorldSession.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Spells/Spell.cpp | 14 | ||||
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 2 | ||||
-rwxr-xr-x | src/server/shared/Packets/ByteBuffer.h | 4 |
18 files changed, 254 insertions, 201 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 0c5ccd85a09..f1c3299a92f 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -972,6 +972,7 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo) SetUInt64Value(OBJECT_FIELD_DATA, 0); SetUInt32Value(PLAYER_GUILDRANK, 0); + SetUInt32Value(PLAYER_GUILDLEVEL, 0); SetUInt32Value(PLAYER_GUILD_TIMESTAMP, 0); for (int i = 0; i < KNOWN_TITLES_SIZE; ++i) @@ -1074,8 +1075,8 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo) if (getPowerType() == POWER_RUNIC_POWER) { - SetPower(POWER_RUNE, 8); - SetMaxPower(POWER_RUNE, 8); + SetPower(POWER_RUNES, 8); + SetMaxPower(POWER_RUNES, 8); SetPower(POWER_RUNIC_POWER, 0); SetMaxPower(POWER_RUNIC_POWER, 1000); } @@ -2579,7 +2580,7 @@ void Player::Regenerate(Powers power) case POWER_FOCUS: addvalue += 4.0f * m_modAttackSpeedPct[RANGED_ATTACK] * sWorld->getRate(RATE_POWER_FOCUS); break; - case POWER_RUNE: + case POWER_RUNES: case POWER_HEALTH: break; default: @@ -23699,7 +23700,7 @@ uint32 Player::GetRuneBaseCooldown(uint8 index) AuraEffectList const& regenAura = GetAuraEffectsByType(SPELL_AURA_MOD_POWER_REGEN_PERCENT); for (AuraEffectList::const_iterator i = regenAura.begin();i != regenAura.end(); ++i) { - if ((*i)->GetMiscValue() == POWER_RUNE && (*i)->GetMiscValueB() == rune) + if ((*i)->GetMiscValue() == POWER_RUNES && (*i)->GetMiscValueB() == rune) cooldown = cooldown*(100-(*i)->GetAmount())/100; } diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index d32b9e5b23f..a0bb5513028 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1884,6 +1884,8 @@ class Player : public Unit, public GridObject<Player> void SetRank(uint8 rankId) { SetUInt32Value(PLAYER_GUILDRANK, rankId); } uint32 GetRank() { return GetUInt32Value(PLAYER_GUILDRANK); } + void SetGuildLevel(uint32 level) { SetUInt32Value(PLAYER_GUILDLEVEL, level); } + uint32 GetGuildLevel() { return GetUInt32Value(PLAYER_GUILDLEVEL); } void SetGuildIdInvited(uint32 GuildId) { m_GuildIdInvited = GuildId; } uint32 GetGuildId() const { return GetUInt32Value(OBJECT_FIELD_DATA); /* return only lower part */ } static uint32 GetGuildIdFromDB(uint64 guid); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 9ca0d23006c..71a277c9f99 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12753,6 +12753,24 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced) { case MOVE_WALK: data.Initialize(SMSG_SPLINE_MOVE_SET_WALK_SPEED, 8+4+2+4+4+4+4+4+4+4); + data.WriteBit(bytes[0]); + data.WriteBit(bytes[6]); + data.WriteBit(bytes[7]); + data.WriteBit(bytes[3]); + data.WriteBit(bytes[5]); + data.WriteBit(bytes[1]); + data.WriteBit(bytes[2]); + data.WriteBit(bytes[4]); + data.FlushBits(); + data.WriteByteSeq(bytes[0]); + data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[7]); + data.WriteByteSeq(bytes[1]); + data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[3]); + data << float(GetSpeed(mtype)); + data.WriteByteSeq(bytes[9]); + data.WriteByteSeq(bytes[5]); break; case MOVE_RUN: data.Initialize(SMSG_SPLINE_MOVE_SET_RUN_SPEED, 1 + 8 + 4); @@ -12927,17 +12945,6 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced) return; } - /*data.append(GetPackGUID()); - data << uint32(0); // movement flags - data << uint16(0); // unk flags - data << uint32(getMSTime()); - data << float(GetPositionX()); - data << float(GetPositionY()); - data << float(GetPositionZ()); - data << float(GetOrientation()); - data << uint32(0); // fall time - data << float(GetSpeed(mtype));*/ - SendMessageToSet(&data, true); } else @@ -12956,7 +12963,7 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced) switch (mtype) { case MOVE_WALK: - data.Initialize(SMSG_MOVE_SET_WALK_SPEED, 1 + 8 + 4 + 4 ); + data.Initialize(SMSG_MOVE_SET_WALK_SPEED, 1 + 8 + 4 + 4); data.WriteBit(bytes[6]); data.WriteBit(bytes[5]); data.WriteBit(bytes[7]); @@ -12978,7 +12985,7 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced) data.WriteByteSeq(bytes[0]); break; case MOVE_RUN: - data.Initialize(SMSG_MOVE_SET_RUN_SPEED, 1 + 8 + 4 + 4 ); + data.Initialize(SMSG_MOVE_SET_RUN_SPEED, 1 + 8 + 4 + 4); data.WriteBit(bytes[6]); data.WriteBit(bytes[1]); data.WriteBit(bytes[5]); @@ -13002,30 +13009,29 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced) data.WriteByteSeq(bytes[2]); break; case MOVE_RUN_BACK: - data.Initialize(SMSG_MOVE_SET_RUN_BACK_SPEED, 1 + 8 + 4 + 4 ); - data.WriteBit(bytes[3]); + data.Initialize(SMSG_MOVE_SET_RUN_BACK_SPEED, 1 + 8 + 4 + 4); data.WriteBit(bytes[0]); data.WriteBit(bytes[6]); data.WriteBit(bytes[2]); - data.WriteBit(bytes[7]); data.WriteBit(bytes[1]); + data.WriteBit(bytes[3]); data.WriteBit(bytes[4]); data.WriteBit(bytes[5]); + data.WriteBit(bytes[7]); + data.WriteByteSeq(bytes[5]); + data << uint32(0); data << float(GetSpeed(mtype)); - + data.WriteByteSeq(bytes[0]); data.WriteByteSeq(bytes[4]); - data.WriteByteSeq(bytes[1]); - data << uint32(0); - data.WriteByteSeq(bytes[5]); - data.WriteByteSeq(bytes[3]); data.WriteByteSeq(bytes[7]); - data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[3]); + data.WriteByteSeq(bytes[1]); data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[0]); + data.WriteByteSeq(bytes[6]); break; case MOVE_SWIM: - data.Initialize(SMSG_MOVE_SET_SWIM_SPEED, 1 + 8 + 4 + 4 ); + data.Initialize(SMSG_MOVE_SET_SWIM_SPEED, 1 + 8 + 4 + 4); data.WriteBit(bytes[5]); data.WriteBit(bytes[4]); data.WriteBit(bytes[7]); @@ -13047,75 +13053,73 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced) data.WriteByteSeq(bytes[4]); break; case MOVE_SWIM_BACK: - data.Initialize(SMSG_MOVE_SET_SWIM_BACK_SPEED, 1 + 8 + 4 + 4 ); - data.WriteBit(bytes[3]); - data.WriteBit(bytes[1]); + data.Initialize(SMSG_MOVE_SET_SWIM_BACK_SPEED, 1 + 8 + 4 + 4); data.WriteBit(bytes[4]); data.WriteBit(bytes[2]); - data.WriteBit(bytes[7]); + data.WriteBit(bytes[3]); data.WriteBit(bytes[6]); data.WriteBit(bytes[5]); + data.WriteBit(bytes[1]); data.WriteBit(bytes[0]); + data.WriteBit(bytes[7]); - data.WriteByteSeq(bytes[6]); - data.WriteByteSeq(bytes[3]); - data.WriteByteSeq(bytes[7]); - data.WriteByteSeq(bytes[0]); data << uint32(0); + data.WriteByteSeq(bytes[0]); + data.WriteByteSeq(bytes[3]); data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[5]); data.WriteByteSeq(bytes[1]); - data.WriteByteSeq(bytes[2]); data << float(GetSpeed(mtype)); - data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[0]); + data.WriteByteSeq(bytes[7]); break; case MOVE_TURN_RATE: - data.Initialize(SMSG_MOVE_SET_TURN_RATE, 1 + 8 + 4 + 4 ); - data.WriteBit(bytes[0]); + data.Initialize(SMSG_MOVE_SET_TURN_RATE, 1 + 8 + 4 + 4); + data.WriteBit(bytes[7]); data.WriteBit(bytes[2]); data.WriteBit(bytes[1]); + data.WriteBit(bytes[0]); + data.WriteBit(bytes[4]); data.WriteBit(bytes[5]); - data.WriteBit(bytes[3]); - data.WriteBit(bytes[7]); data.WriteBit(bytes[6]); - data.WriteBit(bytes[4]); + data.WriteBit(bytes[3]); + data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[7]); + data.WriteByteSeq(bytes[2]); data << float(GetSpeed(mtype)); - + data.WriteByteSeq(bytes[3]); data.WriteByteSeq(bytes[1]); - data.WriteByteSeq(bytes[4]); - data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[0]); data << uint32(0); - data.WriteByteSeq(bytes[3]); data.WriteByteSeq(bytes[6]); - data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[0]); - data.WriteByteSeq(bytes[7]); + data.WriteByteSeq(bytes[4]); break; case MOVE_FLIGHT: - data.Initialize(SMSG_MOVE_SET_FLIGHT_SPEED, 1 + 8 + 4 + 4 ); - data.WriteBit(bytes[0]); - data.WriteBit(bytes[7]); - data.WriteBit(bytes[4]); - data.WriteBit(bytes[5]); - data.WriteBit(bytes[6]); + data.Initialize(SMSG_MOVE_SET_FLIGHT_SPEED, 1 + 8 + 4 + 4); data.WriteBit(bytes[1]); data.WriteBit(bytes[2]); + data.WriteBit(bytes[6]); + data.WriteBit(bytes[4]); + data.WriteBit(bytes[7]); data.WriteBit(bytes[3]); + data.WriteBit(bytes[0]); + data.WriteBit(bytes[5]); + data.WriteByteSeq(bytes[3]); + data << uint32(0); + data.WriteByteSeq(bytes[6]); data << float(GetSpeed(mtype)); - - data.WriteByteSeq(bytes[5]); data.WriteByteSeq(bytes[1]); - data.WriteByteSeq(bytes[7]); - data.WriteByteSeq(bytes[0]); data.WriteByteSeq(bytes[2]); - data << uint32(0); - data.WriteByteSeq(bytes[6]); - data.WriteByteSeq(bytes[3]); data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[0]); + data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[7]); break; case MOVE_FLIGHT_BACK: - data.Initialize(SMSG_MOVE_SET_FLIGHT_BACK_SPEED, 1 + 8 + 4 + 4 ); + data.Initialize(SMSG_MOVE_SET_FLIGHT_BACK_SPEED, 1 + 8 + 4 + 4); data.WriteBit(bytes[3]); data.WriteBit(bytes[4]); data.WriteBit(bytes[5]); @@ -13137,26 +13141,26 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced) data.WriteByteSeq(bytes[5]); break; case MOVE_PITCH_RATE: - data.Initialize(SMSG_MOVE_SET_PITCH_RATE, 1 + 8 + 4 + 4 ); - data.WriteBit(bytes[7]); - data.WriteBit(bytes[5]); - data.WriteBit(bytes[6]); + data.Initialize(SMSG_MOVE_SET_PITCH_RATE, 1 + 8 + 4 + 4); + data.WriteBit(bytes[1]); data.WriteBit(bytes[2]); - data.WriteBit(bytes[4]); + data.WriteBit(bytes[6]); + data.WriteBit(bytes[7]); data.WriteBit(bytes[0]); data.WriteBit(bytes[3]); - data.WriteBit(bytes[1]); + data.WriteBit(bytes[5]); + data.WriteBit(bytes[4]); + data << float(GetSpeed(mtype)); + data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[4]); data.WriteByteSeq(bytes[0]); data << uint32(0); - data.WriteByteSeq(bytes[3]); - data << float(GetSpeed(mtype)); - data.WriteByteSeq(bytes[5]); data.WriteByteSeq(bytes[1]); - data.WriteByteSeq(bytes[6]); - data.WriteByteSeq(bytes[7]); data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[7]); + data.WriteByteSeq(bytes[3]); + data.WriteByteSeq(bytes[5]); break; default: sLog->outError(LOG_FILTER_UNITS, "Unit::SetSpeed: Unsupported move type (%d), data not sent to client.", mtype); @@ -13967,7 +13971,7 @@ Powers Unit::GetPowerTypeByAuraGroup(UnitMods unitMod) const case UNIT_MOD_RAGE: return POWER_RAGE; case UNIT_MOD_FOCUS: return POWER_FOCUS; case UNIT_MOD_ENERGY: return POWER_ENERGY; - case UNIT_MOD_RUNE: return POWER_RUNE; + case UNIT_MOD_RUNE: return POWER_RUNES; case UNIT_MOD_RUNIC_POWER: return POWER_RUNIC_POWER; default: case UNIT_MOD_MANA: return POWER_MANA; @@ -14194,9 +14198,9 @@ int32 Unit::GetCreatePowers(Powers power) const return 100; case POWER_RUNIC_POWER: return 1000; - case POWER_RUNE: + case POWER_RUNES: return 0; - case POWER_SOULSHARD: + case POWER_SOUL_SHARDS: return 3; case POWER_ECLIPSE: return 0; diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 6e74180ae13..c2e88f2d4d0 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1067,6 +1067,7 @@ bool Guild::Create(Player* pLeader, const std::string& name) m_motd = "No message set."; m_bankMoney = 0; m_createdDate = ::time(NULL); + m_level = 1; _CreateLogHolders(); sLog->outDebug(LOG_FILTER_GUILD, "GUILD: creating guild [%s] for leader %s (%u)", @@ -1180,8 +1181,8 @@ void Guild::HandleRoster(WorldSession* session /*= NULL*/) ObjectGuid guid = member->GetGUID(); data.WriteBit(guid[3]); data.WriteBit(guid[4]); - data.WriteBit(0); // unk - data.WriteBit(0); // unk + data.WriteBit(0); // Has Authenticator + data.WriteBit(0); // Can Scroll of Ressurect data.WriteBits(pubNoteLength, 8); data.WriteBits(offNoteLength, 8); data.WriteBit(guid[0]); @@ -1349,7 +1350,7 @@ void Guild::HandleSetMOTD(WorldSession* session, const std::string& motd) // Player must have rights to set MOTD if (!_HasRankRight(session->GetPlayer(), GR_RIGHT_SETMOTD)) - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); else { m_motd = motd; @@ -1372,7 +1373,7 @@ void Guild::HandleSetInfo(WorldSession* session, const std::string& info) // Player must have rights to set guild's info if (!_HasRankRight(session->GetPlayer(), GR_RIGHT_MODIFY_GUILD_INFO)) - SendCommandResult(session, GUILD_CREATE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_CREATE_S, ERR_GUILD_PERMISSIONS); else { m_info = info; @@ -1414,7 +1415,7 @@ void Guild::HandleSetLeader(WorldSession* session, const std::string& name) Player* player = session->GetPlayer(); // Only leader can assign new leader if (!_IsLeader(player)) - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); // Old leader must be a member of guild else if (Member* pOldLeader = GetMember(player->GetGUID())) { @@ -1427,7 +1428,7 @@ void Guild::HandleSetLeader(WorldSession* session, const std::string& name) } } else - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); } void Guild::HandleSetBankTabInfo(WorldSession* session, uint8 tabId, const std::string& name, const std::string& icon) @@ -1444,7 +1445,7 @@ void Guild::HandleSetMemberNote(WorldSession* session, std::string const& note, { // Player must have rights to set public/officer note if (!_HasRankRight(session->GetPlayer(), isPublic ? GR_RIGHT_EPNOTE : GR_RIGHT_EOFFNOTE)) - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); else if (Member* member = GetMember(guid)) { if (isPublic) @@ -1459,7 +1460,7 @@ void Guild::HandleSetRankInfo(WorldSession* session, uint32 rankId, const std::s { // Only leader can modify ranks if (!_IsLeader(session->GetPlayer())) - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); else if (RankInfo* rankInfo = GetRankInfo(rankId)) { sLog->outDebug(LOG_FILTER_GUILD, "WORLD: Changed RankName to '%s', rights to 0x%08X", name.c_str(), rights); @@ -1505,7 +1506,7 @@ void Guild::HandleInviteMember(WorldSession* session, const std::string& name) Player* pInvitee = sObjectAccessor->FindPlayerByName(name.c_str()); if (!pInvitee) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PLAYER_NOT_FOUND_S, name); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PLAYER_NOT_FOUND_S, name); return; } @@ -1515,7 +1516,7 @@ void Guild::HandleInviteMember(WorldSession* session, const std::string& name) return; if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && pInvitee->GetTeam() != player->GetTeam()) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_NOT_ALLIED, name); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_NOT_ALLIED, name); return; } // Invited player cannot be in another guild @@ -1527,13 +1528,13 @@ void Guild::HandleInviteMember(WorldSession* session, const std::string& name) // Invited player cannot be invited if (pInvitee->GetGuildIdInvited()) { - SendCommandResult(session, GUILD_INVITE, ERR_ALREADY_INVITED_TO_GUILD_S, name); + SendCommandResult(session, GUILD_INVITE_S, ERR_ALREADY_INVITED_TO_GUILD_S, name); return; } // Inviting player must have rights to invite if (!_HasRankRight(player, GR_RIGHT_INVITE)) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); return; } @@ -1544,9 +1545,9 @@ void Guild::HandleInviteMember(WorldSession* session, const std::string& name) WorldPacket data(SMSG_GUILD_INVITE, 100); data << uint32(GetLevel()); - data << uint32(m_emblemInfo.GetStyle()); - data << uint32(m_emblemInfo.GetBorderColor()); data << uint32(m_emblemInfo.GetBorderStyle()); + data << uint32(m_emblemInfo.GetBorderColor()); + data << uint32(m_emblemInfo.GetStyle()); data << uint32(m_emblemInfo.GetBackgroundColor()); data << uint32(m_emblemInfo.GetColor()); @@ -1628,7 +1629,7 @@ void Guild::HandleLeaveMember(WorldSession* session) { if (m_members.size() > 1) // Leader cannot leave if he is not the last member - SendCommandResult(session, GUILD_QUIT, ERR_GUILD_LEADER_LEAVE); + SendCommandResult(session, GUILD_QUIT_S, ERR_GUILD_LEADER_LEAVE); else // Guild is disbanded if leader leaves. Disband(); @@ -1640,7 +1641,7 @@ void Guild::HandleLeaveMember(WorldSession* session) _LogEvent(GUILD_EVENT_LOG_LEAVE_GUILD, player->GetGUIDLow()); _BroadcastEvent(GE_LEFT, player->GetGUID(), player->GetName()); - SendCommandResult(session, GUILD_QUIT, ERR_PLAYER_NO_MORE_IN_GUILD, m_name); + SendCommandResult(session, GUILD_QUIT_S, ERR_PLAYER_NO_MORE_IN_GUILD, m_name); } } @@ -1652,16 +1653,16 @@ void Guild::HandleRemoveMember(WorldSession* session, uint64 guid) // Player must have rights to remove members if (!_HasRankRight(player, GR_RIGHT_REMOVE)) - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); // Removed player must be a member of the guild else if (member && removedPlayer) { // Guild masters cannot be removed if (member->IsRank(GR_GUILDMASTER)) - SendCommandResult(session, GUILD_QUIT, ERR_GUILD_LEADER_LEAVE); + SendCommandResult(session, GUILD_QUIT_S, ERR_GUILD_LEADER_LEAVE); // Do not allow to remove player with the same rank or higher else if (member->IsRankNotLower(player->GetRank())) - SendCommandResult(session, GUILD_QUIT, ERR_GUILD_RANK_TOO_HIGH_S, removedPlayer->GetName()); + SendCommandResult(session, GUILD_QUIT_S, ERR_GUILD_RANK_TOO_HIGH_S, removedPlayer->GetName()); else { // After call to DeleteMember pointer to member becomes invalid @@ -1671,7 +1672,7 @@ void Guild::HandleRemoveMember(WorldSession* session, uint64 guid) } } else if (removedPlayer) - SendCommandResult(session, GUILD_QUIT, ERR_PLAYER_NO_MORE_IN_GUILD, removedPlayer->GetName()); + SendCommandResult(session, GUILD_QUIT_S, ERR_PLAYER_NO_MORE_IN_GUILD, removedPlayer->GetName()); } void Guild::HandleUpdateMemberRank(WorldSession* session, uint64 targetGuid, bool demote) @@ -1683,14 +1684,14 @@ void Guild::HandleUpdateMemberRank(WorldSession* session, uint64 targetGuid, boo { if (!_HasRankRight(player, demote ? GR_RIGHT_DEMOTE : GR_RIGHT_PROMOTE)) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); return; } // Player cannot promote himself if (member->IsSamePlayer(player->GetGUID())) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_NAME_INVALID); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_NAME_INVALID); return; } @@ -1699,13 +1700,13 @@ void Guild::HandleUpdateMemberRank(WorldSession* session, uint64 targetGuid, boo // Player can demote only lower rank members if (member->IsRankNotLower(player->GetRank())) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_RANK_TOO_HIGH_S, member->GetName()); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_RANK_TOO_HIGH_S, member->GetName()); return; } // Lowest rank cannot be demoted if (member->GetRankId() >= _GetLowestRankId()) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_RANK_TOO_LOW_S, member->GetName()); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_RANK_TOO_LOW_S, member->GetName()); return; } } @@ -1715,7 +1716,7 @@ void Guild::HandleUpdateMemberRank(WorldSession* session, uint64 targetGuid, boo // member->GetRank() + 1 is the highest rank that current player can promote to if (member->IsRankNotLower(player->GetRank() + 1)) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_RANK_TOO_HIGH_S, member->GetName()); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_RANK_TOO_HIGH_S, member->GetName()); return; } } @@ -1736,14 +1737,14 @@ void Guild::HandleSetMemberRank(WorldSession* session, uint64 targetGuid, uint64 { if (!_HasRankRight(player, rank > member->GetRankId() ? GR_RIGHT_DEMOTE : GR_RIGHT_PROMOTE)) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); return; } // Player cannot promote himself if (member->IsSamePlayer(player->GetGUID())) { - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_NAME_INVALID); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_NAME_INVALID); return; } @@ -1758,7 +1759,7 @@ void Guild::HandleAddNewRank(WorldSession* session, std::string const& name) //, // Only leader can add new rank if (!_IsLeader(session->GetPlayer())) - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); else { _CreateRank(name, GR_RIGHT_GCHATLISTEN | GR_RIGHT_GCHATSPEAK); @@ -1775,7 +1776,7 @@ void Guild::HandleRemoveRank(WorldSession* session, uint32 rankId) // Only leader can delete ranks if (!_IsLeader(session->GetPlayer())) - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); else { // Delete bank rights for rank @@ -1887,7 +1888,7 @@ void Guild::HandleDisband(WorldSession* session) { // Only leader can disband guild if (!_IsLeader(session->GetPlayer())) - Guild::SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PERMISSIONS); + Guild::SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PERMISSIONS); else { Disband(); @@ -1895,6 +1896,26 @@ void Guild::HandleDisband(WorldSession* session) } } +void Guild::HandleGuildPartyRequest(WorldSession* session) +{ + Player* player = session->GetPlayer(); + Group* group = player->GetGroup(); + + // Make sure player is a member of the guild and that he is in a group. + if (!IsMember(player->GetGUID()) || !group) + return; + + WorldPacket data(SMSG_GUILD_PARTY_STATE_RESPONSE, 13); + data.WriteBit(0); // Is guild group + data.FlushBits(); + data << float(0.f); // Guild XP multiplier + data << uint32(0); // Current guild members + data << uint32(0); // Needed guild members + + session->SendPacket(&data); + sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent (SMSG_GUILD_PARTY_STATE_RESPONSE)"); +} + /////////////////////////////////////////////////////////////////////////////// // Send data to client void Guild::SendInfo(WorldSession* session) const @@ -1942,7 +1963,6 @@ void Guild::SendBankTabData(WorldSession* session, uint8 tabId) const void Guild::SendBankTabsInfo(WorldSession* session) const { - // TODO WorldPacket data(SMSG_GUILD_BANK_LIST, 500); data << uint64(m_bankMoney); @@ -2315,6 +2335,7 @@ bool Guild::AddMember(uint64 guid, uint8 rankId) { player->SetInGuild(m_id); player->SetRank(rankId); + player->SetGuildLevel(m_level); player->SetGuildIdInvited(0); } @@ -2898,7 +2919,7 @@ void Guild::_SendBankContentUpdate(MoveItemData* pSrc, MoveItemData* pDest) cons void Guild::_SendBankContentUpdate(uint8 tabId, SlotIds slots) const { - if (const BankTab* pTab = GetBankTab(tabId)) + if (BankTab const* tab = GetBankTab(tabId)) { WorldPacket data(SMSG_GUILD_BANK_LIST, 1200); @@ -2912,7 +2933,7 @@ void Guild::_SendBankContentUpdate(uint8 tabId, SlotIds slots) const data << uint8(slots.size()); for (uint8 slotId = 0; slotId < GUILD_BANK_MAX_SLOTS; ++slotId) if (slots.find(slotId) != slots.end()) - pTab->WriteSlotPacket(data, slotId); + tab->WriteSlotPacket(data, slotId); for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr) if (_MemberHasTabRights(itr->second->GetGUID(), tabId, GUILD_BANK_RIGHT_VIEW_TAB)) diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index 5e02e88a224..94d161cd34f 100755 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -77,55 +77,48 @@ enum GuildRankRights enum GuildCommandType { - GUILD_CREATE = 0x00, - GUILD_INVITE = 0x01, - GUILD_QUIT = 0x03, - GUILD_ROSTER = 0x05, - GUILD_PROMOTE = 0x06, - GUILD_DEMOTE = 0x07, - GUILD_KICK = 0x08, - GUILD_LEADER = 0x0A, - GUILD_MOTD = 0x0B, - GUILD_GUILDCHAT = 0x0D, - GUILD_FOUNDER = 0x0E, - GUILD_CHANGE_RANK = 0x10, - GUILD_EDIT_PUB_NOTE = 0x13, - GUILD_UNK = 0x14, - GUILD_VIEW_TAB = 0x15, - GUILD_MOVE_ITEM = 0x16, - GUILD_REPAIR = 0x19, + GUILD_CREATE_S = 0x00, + GUILD_INVITE_S = 0x01, + GUILD_QUIT_S = 0x03, + GUILD_FOUNDER_S = 0x0E, + GUILD_UNK1 = 0x13, + GUILD_UNK2 = 0x14 }; enum GuildCommandError { - 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, - ERR_GUILD_TOO_MUCH_MONEY = 0x1F, - ERR_GUILD_WRONG_TAB = 0x20, - ERR_GUILD_REQ_AUTHENTICATOR = 0x22, - ERR_GUILD_BANK_VOUCHER_FAILED = 0x23, + 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, + ERR_GUILD_TOO_MUCH_MONEY = 0x1F, + ERR_GUILD_BANK_WRONG_TAB = 0x20, + ERR_RANK_REQUIRES_AUTHENTICATOR = 0x22, + ERR_GUILD_BANK_VOUCHER_FAILED = 0x23, + ERR_GUILD_TRIAL_ACCOUNT = 0x24, + ERR_GUILD_UNDELETABLE_DUE_TO_LEVEL = 0x25, + ERR_GUILD_MOVE_STARTING = 0x26, + ERR_GUILD_REP_TOO_LOW = 0x27, }; enum GuildEvents @@ -662,6 +655,7 @@ public: bool HandleMemberWithdrawMoney(WorldSession* session, uint32 amount, bool repair = false); void HandleMemberLogout(WorldSession* session); void HandleDisband(WorldSession* session); + void HandleGuildPartyRequest(WorldSession* session); // Send info to client void SendInfo(WorldSession* session) const; @@ -770,7 +764,7 @@ private: if (itr->second->GetName() == name) return itr->second; - SendCommandResult(session, GUILD_INVITE, ERR_GUILD_PLAYER_NOT_IN_GUILD_S, name); + SendCommandResult(session, GUILD_INVITE_S, ERR_GUILD_PLAYER_NOT_IN_GUILD_S, name); return NULL; } inline void _DeleteMemberFromDB(uint32 lowguid) const diff --git a/src/server/game/Handlers/ArenaTeamHandler.cpp b/src/server/game/Handlers/ArenaTeamHandler.cpp index 3d1bfe20ced..95d8901044e 100755 --- a/src/server/game/Handlers/ArenaTeamHandler.cpp +++ b/src/server/game/Handlers/ArenaTeamHandler.cpp @@ -358,7 +358,7 @@ void WorldSession::SendArenaTeamCommandResult(uint32 teamAction, const std::stri void WorldSession::SendNotInArenaTeamPacket(uint8 type) { - WorldPacket data(SMSG_ARENA_ERROR, 4+1); // 886 - You are not in a %uv%u arena team + WorldPacket data(SMSG_ARENA_ERROR, 4+1); uint32 error = 0; data << uint32(error); // 0 = ERR_ARENA_NO_TEAM_II, 1 = ERR_ARENA_EXPIRED_CAIS, 2 = ERR_LFG_CANT_USE_BATTLEGROUND if (!error) diff --git a/src/server/game/Handlers/GuildHandler.cpp b/src/server/game/Handlers/GuildHandler.cpp index 2eb95dbba87..5bb7259a1cf 100755 --- a/src/server/game/Handlers/GuildHandler.cpp +++ b/src/server/game/Handlers/GuildHandler.cpp @@ -36,7 +36,7 @@ inline Guild* _GetPlayerGuild(WorldSession* session, bool sendError = false) if (Guild* guild = sGuildMgr->GetGuildById(guildId)) // Find guild by id return guild; if (sendError) - Guild::SendCommandResult(session, GUILD_CREATE, ERR_GUILD_PLAYER_NOT_IN_GUILD); + Guild::SendCommandResult(session, GUILD_CREATE_S, ERR_GUILD_PLAYER_NOT_IN_GUILD); return NULL; } @@ -55,7 +55,7 @@ void WorldSession::HandleGuildQueryOpcode(WorldPacket& recvPacket) return; } - Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_PLAYER_NOT_IN_GUILD); + Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_PLAYER_NOT_IN_GUILD); } void WorldSession::HandleGuildCreateOpcode(WorldPacket& recvPacket) @@ -460,7 +460,7 @@ void WorldSession::HandleGuildBankerActivate(WorldPacket& recvData) if (Guild* guild = _GetPlayerGuild(this)) guild->SendBankTabsInfo(this); else - Guild::SendCommandResult(this, GUILD_VIEW_TAB, ERR_GUILD_PLAYER_NOT_IN_GUILD); + Guild::SendCommandResult(this, GUILD_UNK1, ERR_GUILD_PLAYER_NOT_IN_GUILD); } } @@ -738,3 +738,31 @@ void WorldSession::HandleGuildSetRankPermissionsOpcode(WorldPacket& recvPacket) guild->HandleSetRankInfo(this, rankId, rankName, newRights, moneyPerDay, rightsAndSlots); } + +void WorldSession::HandleGuildRequestPartyState(WorldPacket& recvData) +{ + sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_REQUEST_PARTY_STATE"); + + ObjectGuid guildGuid; + + guildGuid[0] = recvData.ReadBit(); + guildGuid[6] = recvData.ReadBit(); + guildGuid[7] = recvData.ReadBit(); + guildGuid[3] = recvData.ReadBit(); + guildGuid[5] = recvData.ReadBit(); + guildGuid[1] = recvData.ReadBit(); + guildGuid[2] = recvData.ReadBit(); + guildGuid[4] = recvData.ReadBit(); + + recvData.ReadByteSeq(guildGuid[6]); + recvData.ReadByteSeq(guildGuid[3]); + recvData.ReadByteSeq(guildGuid[2]); + recvData.ReadByteSeq(guildGuid[1]); + recvData.ReadByteSeq(guildGuid[5]); + recvData.ReadByteSeq(guildGuid[0]); + recvData.ReadByteSeq(guildGuid[7]); + recvData.ReadByteSeq(guildGuid[4]); + + if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid)) + guild->HandleGuildPartyRequest(this); +} diff --git a/src/server/game/Handlers/PetitionsHandler.cpp b/src/server/game/Handlers/PetitionsHandler.cpp index c8b79a9da10..263aa8846ee 100755 --- a/src/server/game/Handlers/PetitionsHandler.cpp +++ b/src/server/game/Handlers/PetitionsHandler.cpp @@ -157,12 +157,12 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recvData) { if (sGuildMgr->GetGuildByName(name)) { - Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_NAME_EXISTS_S, name); + Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_NAME_EXISTS_S, name); return; } if (sObjectMgr->IsReservedName(name) || !ObjectMgr::IsValidCharterName(name)) { - Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_NAME_INVALID, name); + Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_NAME_INVALID, name); return; } } @@ -423,12 +423,12 @@ void WorldSession::HandlePetitionRenameOpcode(WorldPacket & recvData) { if (sGuildMgr->GetGuildByName(newName)) { - Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_NAME_EXISTS_S, newName); + Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_NAME_EXISTS_S, newName); return; } if (sObjectMgr->IsReservedName(newName) || !ObjectMgr::IsValidCharterName(newName)) { - Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_NAME_INVALID, newName); + Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_NAME_INVALID, newName); return; } } @@ -498,7 +498,7 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recvData) if (type != GUILD_CHARTER_TYPE) SendArenaTeamCommandResult(ERR_ARENA_TEAM_INVITE_SS, "", "", ERR_ARENA_TEAM_NOT_ALLIED); else - Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_NOT_ALLIED); + Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_NOT_ALLIED); return; } @@ -530,12 +530,12 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recvData) { if (_player->GetGuildId()) { - Guild::SendCommandResult(this, GUILD_INVITE, ERR_ALREADY_IN_GUILD_S, _player->GetName()); + Guild::SendCommandResult(this, GUILD_INVITE_S, ERR_ALREADY_IN_GUILD_S, _player->GetName()); return; } if (_player->GetGuildIdInvited()) { - Guild::SendCommandResult(this, GUILD_INVITE, ERR_ALREADY_INVITED_TO_GUILD_S, _player->GetName()); + Guild::SendCommandResult(this, GUILD_INVITE_S, ERR_ALREADY_INVITED_TO_GUILD_S, _player->GetName()); return; } } @@ -658,7 +658,7 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket & recvData) if (type != GUILD_CHARTER_TYPE) SendArenaTeamCommandResult(ERR_ARENA_TEAM_INVITE_SS, "", "", ERR_ARENA_TEAM_NOT_ALLIED); else - Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_NOT_ALLIED); + Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_NOT_ALLIED); return; } @@ -692,13 +692,13 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket & recvData) { if (player->GetGuildId()) { - Guild::SendCommandResult(this, GUILD_INVITE, ERR_ALREADY_IN_GUILD_S, _player->GetName()); + Guild::SendCommandResult(this, GUILD_INVITE_S, ERR_ALREADY_IN_GUILD_S, _player->GetName()); return; } if (player->GetGuildIdInvited()) { - Guild::SendCommandResult(this, GUILD_INVITE, ERR_ALREADY_INVITED_TO_GUILD_S, _player->GetName()); + Guild::SendCommandResult(this, GUILD_INVITE_S, ERR_ALREADY_INVITED_TO_GUILD_S, _player->GetName()); return; } } @@ -790,7 +790,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recvData) // Check if guild name is already taken if (sGuildMgr->GetGuildByName(name)) { - Guild::SendCommandResult(this, GUILD_CREATE, ERR_GUILD_NAME_EXISTS_S, name); + Guild::SendCommandResult(this, GUILD_CREATE_S, ERR_GUILD_NAME_EXISTS_S, name); return; } } diff --git a/src/server/game/Handlers/ReferAFriendHandler.cpp b/src/server/game/Handlers/ReferAFriendHandler.cpp index 7822c38d390..90fbe068984 100644 --- a/src/server/game/Handlers/ReferAFriendHandler.cpp +++ b/src/server/game/Handlers/ReferAFriendHandler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 TrinityCore <http://www.trinitycore.org/> + * Copyright (C) 2012 TrinityCore <http://www.trinitycore.org/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 13225985644..a41070fa1e1 100755 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -179,12 +179,13 @@ enum Powers POWER_RAGE = 1, POWER_FOCUS = 2, POWER_ENERGY = 3, - POWER_RUNE = 5, + POWER_UNUSED = 4, + POWER_RUNES = 5, POWER_RUNIC_POWER = 6, - POWER_SOULSHARD = 7, + POWER_SOUL_SHARDS = 7, POWER_ECLIPSE = 8, POWER_HOLY_POWER = 9, - POWER_ALTERNATIVE = 10, // Used in some quests + POWER_ALTERNATE_POWER = 10, // Used in some quests MAX_POWERS = 11, POWER_ALL = 127, // default for class? POWER_HEALTH = 0xFFFFFFFE // (-2 as signed value) @@ -834,7 +835,7 @@ enum SpellEffects SPELL_EFFECT_160 = 160, SPELL_EFFECT_TALENT_SPEC_COUNT = 161, SPELL_EFFECT_TALENT_SPEC_SELECT = 162, - SPELL_EFFECT_163 = 163, // Unused (4.2.2) + SPELL_EFFECT_163 = 163, // Unused (4.2.2) SPELL_EFFECT_REMOVE_AURA = 164, SPELL_EFFECT_165 = 165, SPELL_EFFECT_166 = 166, @@ -844,7 +845,7 @@ enum SpellEffects SPELL_EFFECT_170 = 170, SPELL_EFFECT_171 = 171, // Summons gamebject SPELL_EFFECT_172 = 172, // Aoe ressurection - SPELL_EFFECT_173 = 173, // Guild tab unlocked (guild perk) + SPELL_EFFECT_UNLOCK_GUILD_VAULT_TAB = 173, // Guild tab unlocked (guild perk) SPELL_EFFECT_174 = 174, // SPELL_EFFECT_175 = 175, // Unused (4.2.2) SPELL_EFFECT_176 = 176, // Some kind of sanctuary effect (Vanish) diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index af9a1a704da..90f9d5b2514 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -262,6 +262,7 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(CMSG_GUILD_REPLACE_GUILD_MASTER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_CHALLENGE_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_MAX_DAILY_XP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_PARTY_STATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestPartyState ); DEFINE_OPCODE_HANDLER(CMSG_GUILD_ROSTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRosterOpcode ); DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_GUILD_MASTER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -595,7 +596,7 @@ void InitOpcodes() DEFINE_OPCODE_HANDLER(MSG_RAID_READY_CHECK_FINISHED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckFinishedOpcode); DEFINE_OPCODE_HANDLER(MSG_RAID_TARGET_UPDATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidTargetUpdateOpcode ); //DEFINE_OPCODE_HANDLER(MSG_RANDOM_ROLL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomRollOpcode ); - //DEFINE_OPCODE_HANDLER(MSG_SAVE_GUILD_EMBLEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblemOpcode ); + DEFINE_OPCODE_HANDLER(MSG_SAVE_GUILD_EMBLEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblemOpcode ); DEFINE_OPCODE_HANDLER(MSG_SET_DUNGEON_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetDungeonDifficultyOpcode); DEFINE_OPCODE_HANDLER(MSG_SET_RAID_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetRaidDifficultyOpcode ); DEFINE_OPCODE_HANDLER(MSG_TABARDVENDOR_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTabardVendorActivateOpcode); @@ -841,7 +842,7 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_UPDATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_GUILD_CHANGE_NAME_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT_2, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT_2, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DELETED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_GUILD_DECLINE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -859,7 +860,7 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(SMSG_GUILD_MOVE_STARTING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_GUILD_NEWS_DELETED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_GUILD_NEWS_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_GUILD_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_GUILD_RANK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -985,14 +986,14 @@ void InitOpcodes() DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_COLLISION_HEIGHT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_COMPOUND_STATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_HOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_PITCH_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_PITCH_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_TURN_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_TURN_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_WALK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNROOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_FLY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -1191,7 +1192,7 @@ void InitOpcodes() DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_SWIM_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_TURN_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WALK_MODE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WALK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WALK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_START_SWIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_STOP_SWIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNROOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 6184cf9b788..6c27c49bf79 100755 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -277,6 +277,7 @@ enum Opcodes CMSG_GUILD_REPLACE_GUILD_MASTER = 0x1034, CMSG_GUILD_REQUEST_CHALLENGE_UPDATE = 0x1224, CMSG_GUILD_REQUEST_MAX_DAILY_XP = 0x3232, + CMSG_GUILD_REQUEST_PARTY_STATE = 0x3900, CMSG_GUILD_ROSTER = 0x1226, CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0x1027, CMSG_GUILD_SET_GUILD_MASTER = 0x3034, @@ -468,7 +469,6 @@ enum Opcodes CMSG_REQUEST_ACCOUNT_DATA = 0x6505, CMSG_REQUEST_CATEGORY_COOLDOWNS = 0x7102, CMSG_REQUEST_CEMETERY_LIST = 0x720A, - CMSG_REQUEST_GUILD_PARTY_STATE = 0x3900, CMSG_REQUEST_HONOR_STATS = 0x791E, CMSG_REQUEST_HOTFIX = 0x2401, CMSG_REQUEST_INSPECT_RATED_BG_STATS = 0x3010, diff --git a/src/server/game/Server/WorldPacket.cpp b/src/server/game/Server/WorldPacket.cpp index c8a971743af..266f5e74e1d 100644 --- a/src/server/game/Server/WorldPacket.cpp +++ b/src/server/game/Server/WorldPacket.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 TrinityCore <http://www.trinitycore.org/> + * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 96e7d4918d6..e8d565a5459 100755 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -581,6 +581,7 @@ class WorldSession void HandleGuildDelRankOpcode(WorldPacket& recvPacket); void HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket); void HandleSaveGuildEmblemOpcode(WorldPacket& recvPacket); + void HandleGuildRequestPartyState(WorldPacket& recvPacket); void HandleTaxiNodeStatusQueryOpcode(WorldPacket& recvPacket); void HandleTaxiQueryAvailableNodes(WorldPacket& recvPacket); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 4ce914cfdc5..c2b74a6efad 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -4142,7 +4142,7 @@ void AuraEffect::HandleModPowerRegen(AuraApplication const* aurApp, uint8 mode, // Update manaregen value if (GetMiscValue() == POWER_MANA) target->ToPlayer()->UpdateManaRegen(); - else if (GetMiscValue() == POWER_RUNE) + else if (GetMiscValue() == POWER_RUNES) target->ToPlayer()->UpdateRuneRegen(RuneType(GetMiscValueB())); // other powers are not immediate effects - implemented in Player::Regenerate, Creature::Regenerate } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 391a52b8aa5..5439007702c 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3868,7 +3868,7 @@ void Spell::SendSpellStart() && m_spellInfo->PowerType != POWER_HEALTH) castFlags |= CAST_FLAG_POWER_LEFT_SELF; - if (m_spellInfo->RuneCostID && m_spellInfo->PowerType == POWER_RUNE) + if (m_spellInfo->RuneCostID && m_spellInfo->PowerType == POWER_RUNES) castFlags |= CAST_FLAG_UNKNOWN_19; WorldPacket data(SMSG_SPELL_START, (8+8+4+4+2)); @@ -3960,7 +3960,7 @@ void Spell::SendSpellGo() if ((m_caster->GetTypeId() == TYPEID_PLAYER) && (m_caster->getClass() == CLASS_DEATH_KNIGHT) && m_spellInfo->RuneCostID - && m_spellInfo->PowerType == POWER_RUNE) + && m_spellInfo->PowerType == POWER_RUNES) { castFlags |= CAST_FLAG_UNKNOWN_19; // same as in SMSG_SPELL_START castFlags |= CAST_FLAG_RUNE_LIST; // rune cooldowns list @@ -4362,7 +4362,7 @@ void Spell::TakePower() bool hit = true; if (m_caster->GetTypeId() == TYPEID_PLAYER) { - if (powerType == POWER_RAGE || powerType == POWER_ENERGY || powerType == POWER_RUNE) + if (powerType == POWER_RAGE || powerType == POWER_ENERGY || powerType == POWER_RUNES) if (uint64 targetGUID = m_targets.GetUnitTargetGUID()) for (std::list<TargetInfo>::iterator ihit= m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) if (ihit->targetGUID == targetGUID) @@ -4378,7 +4378,7 @@ void Spell::TakePower() } } - if (powerType == POWER_RUNE) + if (powerType == POWER_RUNES) { TakeRunePower(hit); return; @@ -4439,7 +4439,7 @@ void Spell::TakeAmmo() SpellCastResult Spell::CheckRuneCost(uint32 runeCostID) { - if (m_spellInfo->PowerType != POWER_RUNE || !runeCostID) + if (m_spellInfo->PowerType != POWER_RUNES || !runeCostID) return SPELL_CAST_OK; if (m_caster->GetTypeId() != TYPEID_PLAYER) @@ -5799,8 +5799,8 @@ SpellCastResult Spell::CheckPower() return SPELL_FAILED_UNKNOWN; } - //check rune cost only if a spell has PowerType == POWER_RUNE - if (m_spellInfo->PowerType == POWER_RUNE) + //check rune cost only if a spell has PowerType == POWER_RUNES + if (m_spellInfo->PowerType == POWER_RUNES) { SpellCastResult failReason = CheckRuneCost(m_spellInfo->RuneCostID); if (failReason != SPELL_CAST_OK) diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index e2c17dfe28a..b2543432ded 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -2115,7 +2115,7 @@ uint32 SpellInfo::CalcPowerCost(Unit const* caster, SpellSchoolMask schoolMask) case POWER_ENERGY: powerCost += int32(CalculatePctU(caster->GetMaxPower(Powers(PowerType)), ManaCostPercentage)); break; - case POWER_RUNE: + case POWER_RUNES: case POWER_RUNIC_POWER: sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "CalculateManaCost: Not implemented yet!"); break; diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h index 51c253057d2..5b7d335d0fa 100755 --- a/src/server/shared/Packets/ByteBuffer.h +++ b/src/server/shared/Packets/ByteBuffer.h @@ -54,7 +54,7 @@ class ByteBufferPositionException : public ByteBufferException { ACE_Stack_Trace trace; - sLog->outError(LOG_FILTER_GENERAL, "Attempted to %s value with size: "SIZEFMTD" in ByteBuffer (pos: " SIZEFMTD " size: "SIZEFMTD")\n[Stacktrace: %s]" , + sLog->outError(LOG_FILTER_GENERAL, "Attempted to %s value with size: "SIZEFMTD" in ByteBuffer (pos: " SIZEFMTD " size: "SIZEFMTD")\n[Stack trace: %s]" , (_add ? "put" : "get"), ValueSize, Pos, Size, trace.c_str()); } @@ -76,7 +76,7 @@ class ByteBufferSourceException : public ByteBufferException { ACE_Stack_Trace trace; - sLog->outError(LOG_FILTER_GENERAL, "Attempted to put a %s in ByteBuffer (pos: "SIZEFMTD" size: "SIZEFMTD")\n[Stacktrace: %s]", + sLog->outError(LOG_FILTER_GENERAL, "Attempted to put a %s in ByteBuffer (pos: "SIZEFMTD" size: "SIZEFMTD")\n[Stack trace: %s]", (ValueSize > 0 ? "NULL-pointer" : "zero-sized value"), Pos, Size, trace.c_str()); } }; |