diff options
-rw-r--r-- | src/server/game/Server/Protocol/Handlers/QuestHandler.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 16 |
3 files changed, 13 insertions, 8 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp index 2b2f5c661a2..3b78a53153f 100644 --- a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp @@ -264,6 +264,9 @@ void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPacket & recv_data) void WorldSession::HandleQuestQueryOpcode(WorldPacket & recv_data) { + if (!_player) + return; + uint32 quest; recv_data >> quest; sLog.outDebug("WORLD: Received CMSG_QUEST_QUERY quest = %u",quest); diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index beffe9dff0d..74fe40a3b6f 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -120,7 +120,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] = /*0x059*/ { "SMSG_ITEM_QUERY_MULTIPLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x05A*/ { "CMSG_PAGE_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandlePageTextQueryOpcode }, /*0x05B*/ { "SMSG_PAGE_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, - /*0x05C*/ { "CMSG_QUEST_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestQueryOpcode }, + /*0x05C*/ { "CMSG_QUEST_QUERY", STATUS_LOGGEDIN_OR_RECENTLY_LOGGOUT, &WorldSession::HandleQuestQueryOpcode }, /*0x05D*/ { "SMSG_QUEST_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x05E*/ { "CMSG_GAMEOBJECT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGameObjectQueryOpcode }, /*0x05F*/ { "SMSG_GAMEOBJECT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 51b044049ef..7459602e2e7 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3225,6 +3225,7 @@ void Spell::cast(bool skipCheck) else if (m_spellInfo->excludeTargetAuraSpell && !IsPositiveSpell(m_spellInfo->excludeTargetAuraSpell)) m_preCastSpell = m_spellInfo->excludeTargetAuraSpell; } + switch (m_spellInfo->SpellFamilyName) { case SPELLFAMILY_GENERIC: @@ -3233,14 +3234,15 @@ void Spell::cast(bool skipCheck) m_preCastSpell = 11196; // Recently Bandaged break; } - case SPELLFAMILY_MAGE: - { - // Permafrost - if (m_spellInfo->SpellFamilyFlags[1] & 0x00001000 || m_spellInfo->SpellFamilyFlags[0] & 0x00100220) - m_preCastSpell = 68391; - break; - } + case SPELLFAMILY_MAGE: + { + // Permafrost + if (m_spellInfo->SpellFamilyFlags[1] & 0x00001000 || m_spellInfo->SpellFamilyFlags[0] & 0x00100220) + m_preCastSpell = 68391; + break; + } } + // traded items have trade slot instead of guid in m_itemTargetGUID // set to real guid to be sent later to the client m_targets.updateTradeSlotItem(); |