diff options
Diffstat (limited to 'src')
22 files changed, 101 insertions, 90 deletions
diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp index 47282be3a8e..c964f47f495 100644 --- a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp +++ b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp @@ -153,10 +153,10 @@ void ArenaTeamMgr::DistributeArenaPoints() SQLTransaction trans = CharacterDatabase.BeginTransaction(); - PreparedStatement* stmt; - // Cycle that gives points to all players /* + PreparedStatement* stmt; + for (std::map<uint32, uint32>::iterator playerItr = PlayerPoints.begin(); playerItr != PlayerPoints.end(); ++playerItr) { // Add points to player if online diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index 167933b9c0c..eae84c9c7b3 100755 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -771,10 +771,11 @@ void BattlegroundMgr::CreateInitialBattlegrounds() continue; } - data.StartMaxDist = fields[9].GetFloat(); - - //data.BattlegroundName = bl->name[sWorld->GetDefaultDbcLocale()]; + selectionWeight = fields[9].GetUInt8(); + // data.StartMaxDist = fields[9].GetFloat(); ? data.scriptId = sObjectMgr->GetScriptId(fields[10].GetCString()); + + //data.BattlegroundName = bl->name[sWorld->GetDefaultDbcLocale()]; data.MapID = bl->mapid[0]; if (!CreateBattleground(data)) diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp index e8087753efd..973421bc2e3 100755 --- a/src/server/game/DataStores/DBCStores.cpp +++ b/src/server/game/DataStores/DBCStores.cpp @@ -1006,6 +1006,14 @@ std::vector<uint32> const* GetTalentTreePrimarySpells(uint32 talentTree) return &itr->second; } +uint32 GetLiquidFlags(uint32 liquidType) +{ + if (LiquidTypeEntry const* liq = sLiquidTypeStore.LookupEntry(liquidType)) + return 1 << liq->Type; + + return 0; +} + uint32 ScalingStatValuesEntry::GetStatMultiplier(uint32 inventoryType) const { if (inventoryType < MAX_INVTYPE) diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h index d04dc4ff131..c22f2ccd625 100755 --- a/src/server/game/DataStores/DBCStores.h +++ b/src/server/game/DataStores/DBCStores.h @@ -67,6 +67,8 @@ MapDifficulty const* GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &di uint32 const* /*[MAX_TALENT_TABS]*/ GetTalentTabPages(uint8 cls); std::vector<uint32> const* GetTalentTreePrimarySpells(uint32 talentTree); +uint32 GetLiquidFlags(uint32 liquidType); + PvPDifficultyEntry const* GetBattlegroundBracketByLevel(uint32 mapid, uint32 level); PvPDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id); diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h index f0b462e827c..54e961eaf84 100755 --- a/src/server/game/DataStores/DBCStructure.h +++ b/src/server/game/DataStores/DBCStructure.h @@ -543,10 +543,9 @@ struct AreaTableEntry //uint32 unk8; // 8, //uint32 unk9; // 9, int32 area_level; // 10 + char* area_name; // 11 uint32 team; // 12 - //uint32 unk14; // 14, All zeros (4.2.2) - //uint32 unk15; // 15, - //uint32 unk16; // 16, Only Naxxramas has value (21) + uint32 LiquidTypeOverride[4]; // 13-16 liquid override by type //float unk13; // 17, //float unk13; // 18, //uint32 unk19; // 19, All zeros (4.2.2) @@ -1134,21 +1133,24 @@ struct HolidayNamesEntry }; */ +#define MAX_HOLIDAY_DURATIONS 10 +#define MAX_HOLIDAY_DATES 26 +#define MAX_HOLIDAY_FLAGS 10 + struct HolidaysEntry { - uint32 ID; // 0, holiday id - //uint32 unk1; // 1 - //uint32 unk2; // 2 - //uint32 unk3[8] // 3-10, empty fields - //uint32 unk11[13] // 11-23, some unknown data (bit strings?) - //uint32 unk11[13] // 24-36, some empty fields (continue prev?) - //uint32 unk11[12] // 37-48, counters? - //uint32 holidayNameId; // 49, id for HolidayNames.dbc - //uint32 holidayDescriptionId; // 50, id for HolidayDescriptions.dbc - //uint32 unk51; // 51 - //uint32 unk52; // 52 - //uint32 unk53; // 53 - //uint32 unk54; // 54 + uint32 Id; // 0 m_ID + uint32 Duration[MAX_HOLIDAY_DURATIONS]; // 1-10 m_duration + uint32 Date[MAX_HOLIDAY_DATES]; // 11-36 m_date (dates in unix time starting at January, 1, 2000) + uint32 Region; // 37 m_region (wow region) + uint32 Looping; // 38 m_looping + uint32 CalendarFlags[MAX_HOLIDAY_FLAGS]; // 39-48 m_calendarFlags + //uint32 holidayNameId; // 49 m_holidayNameID (HolidayNames.dbc) + //uint32 holidayDescriptionId; // 50 m_holidayDescriptionID (HolidayDescriptions.dbc) + char* TextureFilename; // 51 m_textureFilename + uint32 Priority; // 52 m_priority + uint32 CalendarFilterType; // 53 m_calendarFilterType (-1 = Fishing Contest, 0 = Unk, 1 = Darkmoon Festival, 2 = Yearly holiday) + //uint32 flags; // 54 m_flags (0 = Darkmoon Faire, Fishing Contest and Wotlk Launch, rest is 1) }; // common struct for: diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h index df5e1ce5035..50af8928e6b 100755 --- a/src/server/game/DataStores/DBCfmt.h +++ b/src/server/game/DataStores/DBCfmt.h @@ -23,7 +23,7 @@ const char Achievementfmt[]="niixsxiixixxii"; //const std::string CustomAchievementfmt="pppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapapaaaaaaaaaaaaaaaaaapp"; //const std::string CustomAchievementIndex = "ID"; const char AchievementCriteriafmt[]="niiiiiiiisiiiiixxiiiiii"; -const char AreaTableEntryfmt[]="iiinixxxxxisixxxxxxxxxxxxx"; +const char AreaTableEntryfmt[]="iiinixxxxxisiiiiixxxxxxxxx"; const char AreaGroupEntryfmt[]="niiiiiii"; const char AreaPOIEntryfmt[]="niiiiiiiiiiiffixixxixx"; const char AreaTriggerEntryfmt[]="nifffxxxfffff"; @@ -75,7 +75,7 @@ const char GtOCTRegenHPfmt[]="f"; const char GtRegenHPPerSptfmt[]="f"; const char GtRegenMPPerSptfmt[]="xf"; -const char Holidaysfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; +const char Holidaysfmt[]="niiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiixxsiix"; const char ItemBagFamilyfmt[]="nx"; const char ItemArmorQualityfmt[]="nfffffffi"; const char ItemArmorShieldfmt[]="nifffffff"; diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index ca075703277..bbce6cf56c1 100755 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2474,7 +2474,7 @@ bool Creature::SetDisableGravity(bool disable, bool packetOnly/*=false*/) if (!movespline->Initialized()) return true; - WorldPacket data(disable ? SMSG_SPLINE_MOVE_GRAVITY_DISABLE : SMSG_SPLINE_MOVE_GRAVITY_ENABLE, 9); + WorldPacket data(disable ? SMSG_MOVE_SPLINE_DISABLE_GRAVITY : SMSG_MOVE_SPLINE_ENABLE_GRAVITY, 9); data.append(GetPackGUID()); SendMessageToSet(&data, false); return true; @@ -2495,7 +2495,7 @@ bool Creature::SetHover(bool enable) return true; //! Not always a packet is sent - WorldPacket data(enable ? SMSG_SPLINE_MOVE_SET_HOVER : SMSG_SPLINE_MOVE_UNSET_HOVER, 9); + WorldPacket data(enable ? SMSG_MOVE_SPLINE_SET_HOVER : SMSG_MOVE_SPLINE_UNSET_HOVER, 9); data.append(GetPackGUID()); SendMessageToSet(&data, false); return true; diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 414792c8d5c..efd5e577f9e 100755 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -1850,7 +1850,7 @@ bool Pet::IsPermanentPetFor(Player* owner) case CLASS_DEATH_KNIGHT: return GetCreatureTemplate()->type == CREATURE_TYPE_UNDEAD; case CLASS_MAGE: - return GetCreatureInfo()->type == CREATURE_TYPE_ELEMENTAL; + return GetCreatureTemplate()->type == CREATURE_TYPE_ELEMENTAL; default: return false; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d62e0ccfd53..890ceb72c3e 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -19081,7 +19081,7 @@ void Player::_SaveActions(SQLTransaction& trans) case ACTIONBUTTON_NEW: stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_ACTION); stmt->setUInt32(0, GetGUIDLow()); - stmt->setUInt8(1, m_activeSpec); + stmt->setUInt8(1, GetActiveSpec()); stmt->setUInt8(2, itr->first); stmt->setUInt32(3, itr->second.GetAction()); stmt->setUInt8(4, uint8(itr->second.GetType())); @@ -19096,7 +19096,7 @@ void Player::_SaveActions(SQLTransaction& trans) stmt->setUInt8(1, uint8(itr->second.GetType())); stmt->setUInt32(2, GetGUIDLow()); stmt->setUInt8(3, itr->first); - stmt->setUInt8(4, m_activeSpec); + stmt->setUInt8(4, GetActiveSpec()); trans->Append(stmt); itr->second.uState = ACTIONBUTTON_UNCHANGED; @@ -19106,7 +19106,7 @@ void Player::_SaveActions(SQLTransaction& trans) stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACTION_BY_BUTTON_SPEC); stmt->setUInt32(0, GetGUIDLow()); stmt->setUInt8(1, itr->first); - stmt->setUInt8(2, m_activeSpec); + stmt->setUInt8(2, GetActiveSpec()); trans->Append(stmt); m_actionButtons.erase(itr++); @@ -19646,6 +19646,7 @@ void Player::_SaveStats(SQLTransaction& trans) stmt->setUInt32(index++, GetGUIDLow()); stmt->setUInt32(index++, GetMaxHealth()); + for (uint8 i = 0; i < MAX_STORED_POWERS; ++i) stmt->setUInt32(index++, GetMaxPower(Powers(i))); for (uint8 i = 0; i < MAX_STATS; ++i) @@ -25093,7 +25094,7 @@ void Player::_SaveGlyphs(SQLTransaction& trans) trans->Append(stmt); - for (uint8 spec = 0; spec < m_specsCount; ++spec) + for (uint8 spec = 0; spec < GetSpecsCount(); ++spec) { uint8 index = 0; @@ -25103,7 +25104,7 @@ void Player::_SaveGlyphs(SQLTransaction& trans) stmt->setUInt8(index++, spec); for (uint8 i = 0; i < MAX_GLYPH_SLOT_INDEX; ++i) - stmt->setUInt16(index++, uint16(m_Glyphs[spec][i])); + stmt->setUInt16(index++, uint16(GetGlyph(spec, i))); trans->Append(stmt); } @@ -25193,7 +25194,7 @@ void Player::UpdateSpecCount(uint8 count) _SaveActions(trans); stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_ACTION_EXCEPT_SPEC); - stmt->setUInt8(0, m_activeSpec); + stmt->setUInt8(0, GetActiveSpec()); stmt->setUInt32(1, GetGUIDLow()); trans->Append(stmt); @@ -25688,8 +25689,8 @@ void Player::SendMovementSetCanFly(bool apply) void Player::SendMovementSetCanTransitionBetweenSwimAndFly(bool apply) { WorldPacket data(apply ? - SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY : - SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY, 12); + SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY : + SMSG_MOVE_DISABLE_TRANSITION_BETWEEN_SWIM_AND_FLY, 12); data.append(GetPackGUID()); data << uint32(0); //! movement counter SendDirectMessage(&data); @@ -25697,7 +25698,7 @@ void Player::SendMovementSetCanTransitionBetweenSwimAndFly(bool apply) void Player::SendMovementSetHover(bool apply) { - WorldPacket data(apply ? SMSG_MOVE_SET_HOVER : SMSG_MOVE_UNSET_HOVER, 12); + WorldPacket data(apply ? SMSG_MOVE_SET_HOVERING : SMSG_MOVE_SPLINE_UNSET_HOVER, 12); data.append(GetPackGUID()); data << uint32(0); //! movement counter SendDirectMessage(&data); @@ -25705,7 +25706,7 @@ void Player::SendMovementSetHover(bool apply) void Player::SendMovementSetWaterWalking(bool apply) { - WorldPacket data(apply ? SMSG_MOVE_WATER_WALK : SMSG_MOVE_LAND_WALK, 12); + WorldPacket data(apply ? SMSG_MOVE_SET_WATER_WALK : SMSG_MOVE_SET_LAND_WALK, 12); data.append(GetPackGUID()); data << uint32(0); //! movement counter SendDirectMessage(&data); @@ -25713,7 +25714,7 @@ void Player::SendMovementSetWaterWalking(bool apply) void Player::SendMovementSetFeatherFall(bool apply) { - WorldPacket data(apply ? SMSG_MOVE_FEATHER_FALL : SMSG_MOVE_NORMAL_FALL, 12); + WorldPacket data(apply ? SMSG_MOVE_SET_FEATHER_FALL : SMSG_MOVE_SET_NORMAL_FALL, 12); data.append(GetPackGUID()); data << uint32(0); //! movement counter SendDirectMessage(&data); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 6ae8e0b7caf..347a51a67d9 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -10828,7 +10828,7 @@ uint32 Unit::SpellDamageBonusTaken(Unit* caster, SpellInfo const* spellProto, ui // From caster spells AuraEffectList const& mOwnerTaken = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_FROM_CASTER); for (AuraEffectList::const_iterator i = mOwnerTaken.begin(); i != mOwnerTaken.end(); ++i) - if ((*i)->GetCasterGUID() == caster->GetGUID() && (*i)->IsAffectedOnSpell(spellProto)) + if ((*i)->GetCasterGUID() == caster->GetGUID() && (*i)->IsAffectingSpell(spellProto)) AddPctN(TakenTotalMod, (*i)->GetAmount()); // Mod damage from spell mechanic @@ -11431,7 +11431,7 @@ uint32 Unit::SpellHealingBonusTaken(Unit* caster, SpellInfo const* spellProto, u AuraEffectList const& mHealingGet= GetAuraEffectsByType(SPELL_AURA_MOD_HEALING_RECEIVED); for (AuraEffectList::const_iterator i = mHealingGet.begin(); i != mHealingGet.end(); ++i) - if (caster->GetGUID() == (*i)->GetCasterGUID() && (*i)->IsAffectedOnSpell(spellProto)) + if (caster->GetGUID() == (*i)->GetCasterGUID() && (*i)->IsAffectingSpell(spellProto)) AddPctN(TakenTotalMod, (*i)->GetAmount()); for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) @@ -11844,7 +11844,7 @@ uint32 Unit::MeleeDamageBonusTaken(Unit* attacker, uint32 pdamage, WeaponAttackT // From caster spells AuraEffectList const& mOwnerTaken = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_FROM_CASTER); for (AuraEffectList::const_iterator i = mOwnerTaken.begin(); i != mOwnerTaken.end(); ++i) - if ((*i)->GetCasterGUID() == attacker->GetGUID() && (*i)->IsAffectedOnSpell(spellProto)) + if ((*i)->GetCasterGUID() == attacker->GetGUID() && (*i)->IsAffectingSpell(spellProto)) AddPctN(TakenTotalMod, (*i)->GetAmount()); // Mod damage from spell mechanic @@ -17696,8 +17696,8 @@ void Unit::BuildMovementPacket(ByteBuffer *data) const switch (GetTypeId()) { case TYPEID_UNIT: - if (canFly()) - const_cast<Unit*>(this)->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); + if (CanFly()) + const_cast<Unit*>(this)->AddUnitMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY); break; case TYPEID_PLAYER: // remove unknown, unused etc flags for now @@ -17718,7 +17718,7 @@ void Unit::BuildMovementPacket(ByteBuffer *data) const bool swimming = ((GetUnitMovementFlags() & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || (m_movementInfo.flags2 & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING)); bool interPolatedTurning = m_movementInfo.flags2 & MOVEMENTFLAG2_INTERPOLATED_TURNING; - bool jumping = GetUnitMovementFlags() & MOVEMENTFLAG_JUMPING; + bool jumping = GetUnitMovementFlags() & MOVEMENTFLAG_FALLING; bool splineElevation = GetUnitMovementFlags() & MOVEMENTFLAG_SPLINE_ELEVATION; bool splineData = false; @@ -18187,7 +18187,7 @@ void Unit::SendMovementHover() if (GetTypeId() == TYPEID_PLAYER) ToPlayer()->SendMovementSetHover(HasUnitMovementFlag(MOVEMENTFLAG_HOVER)); - WorldPacket data(MSG_MOVE_HOVER, 64); + WorldPacket data(MSG_MOVE_HOVER, 64); // SMSG_MOVE_SET_HOVERING? data.append(GetPackGUID()); BuildMovementPacket(&data); SendMessageToSet(&data, false); diff --git a/src/server/game/Handlers/LFGHandler.cpp b/src/server/game/Handlers/LFGHandler.cpp index 9c66ca44383..82afdfb9044 100755 --- a/src/server/game/Handlers/LFGHandler.cpp +++ b/src/server/game/Handlers/LFGHandler.cpp @@ -529,7 +529,7 @@ void WorldSession::SendLfgBootPlayer(const LfgPlayerBoot* pBoot) } sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_LFG_BOOT_PROPOSAL_UPDATE [" UI64FMTD "] inProgress: %u - didVote: %u - agree: %u - victim: [" UI64FMTD "] votes: %u - agrees: %u - left: %u - needed: %u - reason %s", guid, uint8(pBoot->inProgress), uint8(playerVote != LFG_ANSWER_PENDING), uint8(playerVote == LFG_ANSWER_AGREE), pBoot->victim, votesNum, agreeNum, secsleft, pBoot->votedNeeded, pBoot->reason.c_str()); - WorldPacket data(SMSG_LFG_BOOT_PROPOSAL_UPDATE, 1 + 1 + 1 + 8 + 4 + 4 + 4 + 4 + pBoot->reason.length()); + WorldPacket data(SMSG_LFG_BOOT_PLAYER, 1 + 1 + 1 + 8 + 4 + 4 + 4 + 4 + pBoot->reason.length()); data << uint8(pBoot->inProgress); // Vote in progress data << uint8(playerVote != LFG_ANSWER_PENDING); // Did Vote data << uint8(playerVote == LFG_ANSWER_AGREE); // Agree diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 7cea7b2ea8e..247db1975a4 100755 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -1829,7 +1829,7 @@ void WorldSession::HandleUpdateMissileTrajectory(WorldPacket& recvPacket) { uint32 opcode; recvPacket >> opcode; - recvPacket.SetOpcode(opcode); + recvPacket.SetOpcode(MSG_MOVE_STOP); // always set to MSG_MOVE_STOP in client SetOpcode HandleMovementOpcodes(recvPacket); } } diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp index 3d9968d9a9d..592b2cbeff6 100755 --- a/src/server/game/Handlers/MovementHandler.cpp +++ b/src/server/game/Handlers/MovementHandler.cpp @@ -345,7 +345,7 @@ void WorldSession::HandleMovementOpcodes(WorldPacket & recvData) /*----------------------*/ /* process position-change */ - WorldPacket data(SMSG_PLAYER_MOVE, recv_data.size()); + WorldPacket data(SMSG_PLAYER_MOVE, recvData.size()); movementInfo.time = getMSTime(); movementInfo.guid = mover->GetGUID(); WriteMovementInfo(data, &movementInfo); @@ -824,7 +824,7 @@ void WorldSession::WriteMovementInfo(WorldPacket &data, MovementInfo* mi) HavePitch = (mi->HasMovementFlag(MovementFlags(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING))) || (mi->flags2 & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING), HaveFallData = mi->HasExtraMovementFlag(MOVEMENTFLAG2_INTERPOLATED_TURNING), - HaveFallDirection = mi->HasMovementFlag(MOVEMENTFLAG_JUMPING), + HaveFallDirection = mi->HasMovementFlag(MOVEMENTFLAG_FALLING), HaveSplineElevation = mi->HasMovementFlag(MOVEMENTFLAG_SPLINE_ELEVATION), HaveSpline = false; diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 62372004f03..ccd2e178f88 100755 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -490,8 +490,6 @@ void WorldSession::HandleQuestgiverCompleteQuest(WorldPacket& recv_data) Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, playerGuid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT); if (!object || !object->hasInvolvedQuest(questId)) - Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT); - if (!object || !object->hasInvolvedQuest(questId)) return; // some kind of WPE protection diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index dc9dcad3d17..51760b3323e 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -835,7 +835,6 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(SMSG_MOVE_SPLINE_UNROOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_FEATHER_FALL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_NORMAL_FALL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_HOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNSET_HOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_WATER_WALK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_LAND_WALK, 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 0920da2543e..dfcf56c388b 100755 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -483,7 +483,10 @@ enum Opcodes MSG_LIST_STABLED_PETS = 0x88CA, MSG_MINIMAP_PING = 0x00, MSG_MOVE_FALL_LAND = 0x00A5, + MSG_MOVE_FEATHER_FALL = 0x00, + MSG_MOVE_GRAVITY_CHNG = 0x00, MSG_MOVE_HEARTBEAT = 0xB024, + MSG_MOVE_HOVER = 0x00, MSG_MOVE_JUMP = 0x9225, MSG_MOVE_SET_ALL_SPEED_CHEAT = 0x00, MSG_MOVE_SET_FACING = 0x02A4, @@ -517,6 +520,8 @@ enum Opcodes MSG_MOVE_TOGGLE_COLLISION_CHEAT = 0x00, MSG_MOVE_TOGGLE_FALL_LOGGING = 0x00, MSG_MOVE_TOGGLE_LOGGING = 0x00, + MSG_MOVE_WATER_WALK = 0x00, + MSG_MOVE_UPDATE_CAN_FLY = 0x00, MSG_NOTIFY_PARTY_SQUELCH = 0x00, MSG_PARTY_ASSIGNMENT = 0x00, MSG_PETITION_DECLINE = 0x98E7, @@ -603,9 +608,28 @@ enum Opcodes SMSG_BUY_BANK_SLOT_RESULT = 0x00, SMSG_BUY_FAILED = 0x4A7F, SMSG_BUY_ITEM = 0xCA67, + SMSG_CALENDAR_ACTION_PENDING = 0x00, + SMSG_CALENDAR_ARENA_TEAM = 0x00, + SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x00, SMSG_CALENDAR_COMMAND_RESULT = 0x9A4E, + SMSG_CALENDAR_EVENT_INVITE = 0x00, + SMSG_CALENDAR_EVENT_INVITE_ALERT = 0x00, + SMSG_CALENDAR_EVENT_INVITE_NOTES = 0x00, + SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT = 0x00, + SMSG_CALENDAR_EVENT_INVITE_REMOVED = 0x00, + SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT = 0x00, + SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT = 0x00, + SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT = 0x00, + SMSG_CALENDAR_EVENT_REMOVED_ALERT = 0x5C72, + SMSG_CALENDAR_EVENT_STATUS = 0x00, + SMSG_CALENDAR_EVENT_UPDATED_ALERT = 0x5CFA, + SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 0x9AC2, + SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 0x985B, + SMSG_CALENDAR_RAID_LOCKOUT_UPDATED = 0xDCDF, SMSG_CALENDAR_SEND_CALENDAR = 0x08FB, + SMSG_CALENDAR_SEND_EVENT = 0x00, SMSG_CALENDAR_SEND_NUM_PENDING = 0x00, + SMSG_CALENDAR_UPDATE_INVITE_LIST = 0x00, SMSG_CAMERA_SHAKE = 0x5CFB, SMSG_CANCEL_AUTO_REPEAT = 0x5ACB, SMSG_CANCEL_COMBAT = 0x4AC7, diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 3e4a38ba6b1..11837b0cbab 100755 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -858,19 +858,6 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket) stmt->setString(0, account); PreparedQueryResult result = LoginDatabase.Query(stmt); - "sessionkey, " //1 - "last_ip, " //2 - "locked, " //3 - "v, " //4 - "s, " //5 - "expansion, " //6 - "mutetime, " //7 - "locale, " //8 - "recruiter, " //9 - "os " - "FROM account " - "WHERE username = '%s'", - safe_account.c_str()); // Stop if the account is not found if (!result) diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 200007c3190..7cff80cf6a0 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1516,7 +1516,9 @@ void AuraEffect::HandleShapeshiftBoosts(Unit* target, bool apply) const if (target->GetTypeId() == TYPEID_PLAYER) { - const PlayerSpellMap& sp_list = target->ToPlayer()->GetSpellMap(); + Player* plrTarget = target->ToPlayer(); + + PlayerSpellMap const& sp_list = plrTarget->GetSpellMap(); for (PlayerSpellMap::const_iterator itr = sp_list.begin(); itr != sp_list.end(); ++itr) { if (itr->second->state == PLAYERSPELL_REMOVED || itr->second->disabled) @@ -1536,13 +1538,14 @@ void AuraEffect::HandleShapeshiftBoosts(Unit* target, bool apply) const // Also do it for Glyphs for (uint32 i = 0; i < MAX_GLYPH_SLOT_INDEX; ++i) { - if (uint32 glyphId = target->ToPlayer()->GetGlyph(i)) + if (uint32 glyphId = plrTarget->GetGlyph(plrTarget->GetActiveSpec(), i)) { if (GlyphPropertiesEntry const* glyph = sGlyphPropertiesStore.LookupEntry(glyphId)) { SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(glyph->SpellId); if (!spellInfo || !(spellInfo->Attributes & (SPELL_ATTR0_PASSIVE | SPELL_ATTR0_HIDDEN_CLIENTSIDE))) continue; + if (spellInfo->Stances & (1<<(GetMiscValue()-1))) target->CastSpell(target, glyph->SpellId, true, NULL, this); } @@ -1550,19 +1553,21 @@ void AuraEffect::HandleShapeshiftBoosts(Unit* target, bool apply) const } // Leader of the Pack - if (target->ToPlayer()->HasSpell(17007)) + if (plrTarget->HasSpell(17007)) { SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(24932); if (spellInfo && spellInfo->Stances & (1<<(GetMiscValue()-1))) target->CastSpell(target, 24932, true, NULL, this); } + // Improved Barkskin - apply/remove armor bonus due to shapeshift - if (target->ToPlayer()->HasSpell(63410) || target->ToPlayer()->HasSpell(63411)) + if (plrTarget->HasSpell(63410) || target->ToPlayer()->HasSpell(63411)) { target->RemoveAurasDueToSpell(66530); if (GetMiscValue() == FORM_TRAVEL || GetMiscValue() == FORM_NONE) // "while in Travel Form or while not shapeshifted" target->CastSpell(target, 66530, true); } + // Heart of the Wild if (HotWSpellId) { // hacky, but the only way as spell family is not SPELLFAMILY_DRUID diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index fd0530e171f..d833782bc76 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3800,23 +3800,6 @@ void Spell::SendCastResult(Player* caster, SpellInfo const* spellInfo, uint8 cas data << uint32(missingItem); // first missing item break; } - case SPELL_FAILED_PREVENTED_BY_MECHANIC: - data << uint32(spellInfo->Mechanic); - break; - case SPELL_FAILED_NEED_EXOTIC_AMMO: - data << uint32(spellInfo->EquippedItemSubClassMask); - break; - case SPELL_FAILED_NEED_MORE_ITEMS: - data << uint32(0); // Item entry - data << uint32(0); // Count - break; - case SPELL_FAILED_MIN_SKILL: - data << uint32(0); // SkillLine.dbc Id - data << uint32(0); // Amount - break; - case SPELL_FAILED_FISHING_TOO_LOW: - data << uint32(0); // Skill level - break; default: break; } diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 4069cd5271a..8c95bc054d9 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -670,8 +670,8 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex) if (Item* item = caster->GetWeaponForAttack(RANGED_ATTACK)) { ItemTemplate const* weaponTemplate = item->GetTemplate(); - float dmg_min = weaponTemplate->Damage[0].DamageMin; - float dmg_max = weaponTemplate->Damage[0].DamageMax; + float dmg_min = weaponTemplate->DamageMin; + float dmg_max = weaponTemplate->DamageMax; if (dmg_max == 0.0f && dmg_min > dmg_max) damage += int32(dmg_min); else diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 7c431566f52..2deac95d287 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -135,7 +135,7 @@ public: else
handler->PSendSysMessage("no VMAP available for area info");
- handler->PSendSysMessage(LANG_MAP_POSITION,
+ /*handler->PSendSysMessage(LANG_MAP_POSITION,
object->GetMapId(), (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : "<unknown>"),
zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : "<unknown>"),
areaId, (areaEntry ? areaEntry->area_name[handler->GetSessionDbcLocale()] : "<unknown>"),
@@ -143,6 +143,7 @@ public: object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation(),
cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), object->GetInstanceId(),
zoneX, zoneY, groundZ, floorZ, haveMap, haveVMap);
+ */
LiquidData liquidStatus;
ZLiquidStatus status = map->getLiquidStatus(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), MAP_ALL_LIQUIDS, &liquidStatus);
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h index 24ca412d6f2..1e346760e30 100755 --- a/src/server/shared/Packets/ByteBuffer.h +++ b/src/server/shared/Packets/ByteBuffer.h @@ -416,14 +416,14 @@ class ByteBuffer uint8& operator[](size_t const pos) { if (pos >= size()) - throw ByteBufferException(false, pos, 1, size()); + throw ByteBufferPositionException(false, pos, 1, size()); return _storage[pos]; } uint8 const& operator[](size_t const pos) const { if (pos >= size()) - throw ByteBufferException(false, pos, 1, size()); + throw ByteBufferPositionException(false, pos, 1, size()); return _storage[pos]; } |