MOVEMENTFLAG_JUMPING is not used anymore, now its SPLINEFLAG_TRAJECTORY < but this flag causes client side crashes, so just use SPLINEFLAG_FALLING (it has the same animation - more or less)
heres my patch
@@ -2489,10 +2489,27 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx)
}
m_caster->CastCustomSpell(m_caster, 45470, &bp, NULL, NULL, true);
return;
}
+ //Death Grip - Lacking propper Jump/Leap (EffectJump - implementation)
+ else if (m_spellInfo->Id == 49576)
+ {
+ if (!unitTarget)
+ return;
+
+ m_caster->CastSpell(unitTarget, 49560, true);
+ return;
+ }
+ else if (m_spellInfo->Id == 49560)
+ {
+ if (!unitTarget)
+ return;
+
+ unitTarget->CastSpell(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), m_spellInfo->CalculateSimpleValue(EFFECT_INDEX_0), true);
+ return;
+ }
break;
}
}
// pet auras
@@ -2731,13 +2748,12 @@ void Spell::EffectTriggerMissileSpell(SpellEffectIndex effect_idx)
m_caster->CastSpell(m_targets.m_destX, m_targets.m_destY, m_targets.m_destZ, spellInfo, true, m_CastItem, 0, m_originalCasterGUID);
}
void Spell::EffectJump(SpellEffectIndex eff_idx)
{
- if(m_caster->isInFlight())
+ if(!unitTarget || m_caster->isInFlight())
return;
-
// Init dest coordinates
float x,y,z,o;
if(m_targets.m_targetMask & TARGET_FLAG_DEST_LOCATION)
{
x = m_targets.m_destX;
@@ -2775,11 +2791,13 @@ void Spell::EffectJump(SpellEffectIndex eff_idx)
{
sLog.outError( "Spell::EffectJump - unsupported target mode for spell ID %u", m_spellInfo->Id );
return;
}
- m_caster->NearTeleportTo(x, y, z, o, true);
+ float time = 1.0f;
+ // m_caster->NearTeleportTo(x, y, z, o, true);
+ m_caster->SendMonsterMove(x, y, z, SPLINETYPE_NORMAL, SPLINEFLAG_FALLING, time);
}
void Spell::EffectTeleportUnits(SpellEffectIndex eff_idx)
{
if(!unitTarget || unitTarget->isInFlight())
@@ -2771,10 +2771,12 @@ void Spell::EffectJump(SpellEffectIndex eff_idx)
pTarget = m_caster->getVictim();
else if(m_caster->GetTypeId() == TYPEID_PLAYER)
pTarget = ObjectAccessor::GetUnit(*m_caster, ((Player*)m_caster)->GetSelection());
o = pTarget ? pTarget->GetOrientation() : m_caster->GetOrientation();
+
+ m_caster->NearTeleportTo(x, y, z, o, true); // forgot to add this from my original patch... sorry my mistake
}
else
o = m_caster->GetOrientation();
}
else if(unitTarget)
It's based on rev 10064, (the first patch is for Death Grip itself, the second if cuz i forgot to add something to the first patch and im too lazy to merge them) and it's the short version of my EffectJump implementation for mangos, it was working fine except of the flag i mentioned before (SPLINEFLAG_TRAJECTORY) which caused client side crashes, and since im hard headed i refused to finish the patch due to that flag (yes i just wanted to use that flag lol) and because the server where i play on doesn't accept too complex patches, hence the trimmed version (which works perfectly - at least none reported any bug with it).
§Give credit if you share it further