diff options
author | Shauren <shauren.trinity@gmail.com> | 2019-09-01 11:52:09 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-09-01 11:52:09 +0200 |
commit | fa0dc88c23a9d9dc95dd9e444e8f240d91ca241a (patch) | |
tree | f89d251452c26c96752191cab856a612b833d2a4 | |
parent | 5fc809d5a4ec63f9d90a3ee879775b8282af6024 (diff) |
Core/Spells: Fixed crash in delayed DEST spells
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 0b2acb1188c..05c35f84ae3 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -817,6 +817,8 @@ uint64 Spell::CalculateDelayMomentForDst(float launchDelay) const float dist = m_caster->GetExactDist(*m_targets.GetDstPos()); return uint64(std::floor((dist / m_spellInfo->Speed + launchDelay) * 1000.0f)); } + + return uint64(std::floor(launchDelay * 1000.0f)); } return 0; @@ -3401,12 +3403,15 @@ uint64 Spell::handle_delayed(uint64 t_offset) } } + if (single_missile && !t_offset) + return m_delayMoment; + if (m_caster->GetTypeId() == TYPEID_PLAYER) m_caster->ToPlayer()->SetSpellModTakingSpell(this, true); PrepareTargetProcessing(); - if (!m_immediateHandled && t_offset != 0) + if (!m_immediateHandled && t_offset) { _handle_immediate_phase(); m_immediateHandled = true; |