unified-db / Database

World of Warcraft 3.3.5a Content Database for CMaNGOS Wrath of the Lich King
Other
25 stars 19 forks source link

UDB internal report... #66

Closed Grz3s closed 9 years ago

Grz3s commented 9 years ago

Hi @xfurry: got a question related to update that is not added yet...(final update for DK phase 64) It's all prepared ...and ready to add, but produces tons of errors... I have no idea how to fix'em:

-- ERROR:EffectTriggerSpell of spell 53278: triggering unknown spell id 3617
-- ServerToClient: SMSG_SPELL_INSTAKILL_LOG (0x1164) Length: 32 ConnIdx: 3 Time: 11/09/2014 19:37:18.015 Number: 3724
-- Target: Full: 0x1C39244C201C6BC000000300005FC255 Creature/0 R3657/S3 Map: 609 Entry: 29103 Low: 6275669
-- Caster: Full: 0x1C39244C201C6BC000000300005FC255 Creature/0 R3657/S3 Map: 609 Entry: 29103 Low: 6275669
-- SpellID: 3617 (3617)
-- from observ: c.29136 on death explodes(s.53278) killing his target...(s.3617)

Now I have no idea what to do.... i dont want to add stuff ... that will make console 'explodes' with tons of core errors:/ specialy stuff that i cant fix by DB., so i stuck with it. ... Need your help here...

Look how it looks like: http://paste2.org/fXMI55A4

xfurry commented 9 years ago

I need to check why these errors show up.

I only know about the missing spell, but there isn't much we can do here, unless we implement that spell as a server side spell and apply some script to it.

Grz3s commented 9 years ago

will give u *.sql on irc anyway error with guid poss... -- comes not only with this update... its almost every creature with waypoints there... Im almost 100% sure its related to fact that i made few creatures extra active in that area :|... but lets see what u'll find ;) EDIT: removing extra active - did not help at all :/

Grz3s commented 9 years ago

ok got reason for second error:

•ERROR:MoveSplineInitArgs::Validate: expression 'velocity > 0.f' failed for Creature (Entry: 29102 Guid: 130665)

it comes after Rampaging Abomination c.29115 casts spell 50335 on target...(pulls the target to the caster) spell ofc is broken in cmangos ... so this is error we reciving ... not sure but @kvipka had this spell working fine with his core...

xfurry commented 9 years ago

I think this has something to do with the mmaps. Let's include @cyberium in this discussion (if he's still around)

Grz3s commented 9 years ago

sad but it looks like that you're last one ....

Rushor commented 9 years ago

time to motivate https://github.com/Lillecarl to do stuff :D

Grz3s commented 9 years ago

ok... so it looks like that non of these issues ... are DB problems. and easiest way to avoid it will be not to add them. About (...)in grid[35,21]cell[7,0] instead grid[36,21]cell0,0 i said before... this error comes not only with this update... maybe its something to do with mmaps = not DB also.

xfurry commented 9 years ago

Let's discuss on IRC. I'll be in holiday until next Monday, but if I manage to login to IRC we can talk about it and see what can be done.

kvipka commented 9 years ago

http://cmangos.net/thread-6988.html

Grz3s commented 9 years ago

@xfurry can u pls look at this...

xfurry commented 9 years ago

@kvipka patch looks good. Will push this today, when I get back to my computer

evil-at-wow commented 9 years ago

@xfurry When you push this, please do us a favor and remove that new line of code in comments, because there is absolutely no point adding new code in comments. And while you're there, fix the "SMS language" too: // Try to normalize Z coord cuz GetContactPoint do nothing with Z axis => // Try to normalize Z coord because GetContactPoint does nothing with Z axis

kvipka commented 9 years ago

Impish evil :)

xfurry commented 9 years ago

@kvipka I think there are some issues with this patch. Sometimes it works, sometimes it doesn't. Also I think we need a similar approach for SPELL_EFFECT_LEAP and SPELL_EFFECT_LEAP_BACK

This is my simplified version of the code:

@@ -3876,10 +3876,31 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx)
                 }

                 m_caster->CastCustomSpell(m_caster, 45470, &bp, NULL, NULL, true);
                 return;
             }
+            // Death Grip
+            else if (m_spellInfo->Id == 49576)
+            {
+                if (!unitTarget)
+                    return;
+
+                m_caster->CastSpell(unitTarget, 49560, true);
+                return;
+            }
+            // Death Grip
+            else if (m_spellInfo->Id == 49560)
+            {
+                if (!unitTarget || unitTarget == m_caster)
+                    return;
+
+                uint32 spellId = m_spellInfo->CalculateSimpleValue(EFFECT_INDEX_0);
+                float dest_x, dest_y;
+                m_caster->GetNearPoint2D(dest_x, dest_y, m_caster->GetObjectBoundingRadius() + unitTarget->GetObjectBoundingRadius(), m_caster->GetOrientation());
+                unitTarget->CastSpell(dest_x, dest_y, m_caster->GetPositionZ() + 0.5f, spellId, true, NULL, NULL, m_caster->GetObjectGuid(), m_spellInfo);
+                return;
+            }
             // Obliterate
             else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0002000000000000))
             {
                 // search for Annihilation
                 Unit::AuraList const& dummyList = m_caster->GetAurasByType(SPELL_AURA_DUMMY);
@@ -4244,11 +4265,15 @@ 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);             // TODO Implement this as jump movement?
+    // Try to normalize Z coord because GetContactPoint do nothing with Z axis
+    m_caster->UpdateAllowedPositionZ(x, y, z);
+
+    float speed = m_spellInfo->speed ? m_spellInfo->speed : 27.0f;
+    m_caster->GetMotionMaster()->MoveJump(x, y, z, speed, 2.5f);
 }

 void Spell::EffectTeleportUnits(SpellEffectIndex eff_idx)   // TODO - Use target settings for this effect!
 {
     if (!unitTarget || unitTarget->IsTaxiFlying())
@@ -10864,15 +10889,22 @@ void Spell::EffectSendTaxi(SpellEffectIndex eff_idx)
 void Spell::EffectPlayerPull(SpellEffectIndex eff_idx)
 {
     if (!unitTarget)
         return;

-    float dist = unitTarget->GetDistance2d(m_caster);
-    if (damage && dist > damage)
-        dist = float(damage);
+    float x, y, z;
+    m_caster->GetPosition(x, y, z);
+
+    // move back a bit
+    x = x - (0.6 * cos(m_caster->GetOrientation() + M_PI_F));
+    y = y - (0.6 * sin(m_caster->GetOrientation() + M_PI_F));
+
+    // Try to normalize Z coord because GetContactPoint do nothing with Z axis
+    unitTarget->UpdateAllowedPositionZ(x, y, z);

-    unitTarget->KnockBackFrom(m_caster, -dist, float(m_spellInfo->EffectMiscValue[eff_idx]) / 10);
+    float speed = m_spellInfo->speed ? m_spellInfo->speed : 27.0f;
+    unitTarget->GetMotionMaster()->MoveJump(x, y, z, speed, 2.5f);
 }

 void Spell::EffectDispelMechanic(SpellEffectIndex eff_idx)
 {
     if (!unitTarget)
kvipka commented 9 years ago

hmm... yeah, movejump, yes - it's right way. But about SPELL_EFFECT_LEAP and etc - no. This effects are not movement ( only teleport - NearTeleportTo)

p.s. "Sometimes it works, sometimes it doesn't." How? specifically please

xfurry commented 9 years ago

p.s. "Sometimes it works, sometimes it doesn't." How? specifically please

I need to investigate. Let me debug this first and understand why the target doesn't always jump.

You were right, the Leap effect is only teleport I'm not sure about the Leap backwards effect, but for the moment let's assume that it works fine.

xfurry commented 9 years ago

@kvipka the problem is with the mounted creatures. They will not jump while mounted, so I think there should be a way to dismount target while being pulled by DK.

Grz3s commented 9 years ago

Ive got some good vids from blizz.... with ppl using this spell: https://www.youtube.com/watch?v=muUr0kNXCAE -- 6:48 -- death grid used on vehicle. (blizz path 3.0.9) an here: https://www.youtube.com/watch?v=sIV4Qj3mz3o -- 5:16 -- death grid on normal mounted creature Edited: correct time ;)

xfurry commented 9 years ago

Please give me the timing for the first video again. 3:09 isn't the right moment.

kvipka commented 9 years ago

vehicle has immune, but mounted creatures can be touched by this effect? Right?

xfurry commented 9 years ago

vehicle has immune, but mounted creatures can be touched by this effect? Right?

Mounted creatures can be hit by this effect. The problem is that in our core this doesn't happen. Mounted creatures aren't doing the jump movement to the caster, they are just getting aggro.

Grz3s commented 9 years ago

@xfurry not sure if i did smth wrong.... but i did fresh compile with this path.. and both spells doesnt work at all (only makes creatures aggro)..

Grz3s commented 9 years ago
•ERROR:Creature (GUIDLow: 130662) X: 2134.282959 Y: -5854.985840 (original) in grid[35,21]cell[7,0] instead grid[36,21]cell[0,0] not only for 130662 -- almost every creature with wps... from time to time spam this error in random xyz on this map -- i have no idea what can i do to deal with it :/

I think i have found where this comming from...

Map.cpp

bool Map::CheckGridIntegrity(Creature* c, bool moved) const
{
    Cell const& cur_cell = c->GetCurrentCell();

    CellPair xy_val = MaNGOS::ComputeCellPair(c->GetPositionX(), c->GetPositionY());
    Cell xy_cell(xy_val);
    if (xy_cell != cur_cell)
    {
        sLog.outError("Creature (GUIDLow: %u) X: %f Y: %f (%s) in grid[%u,%u]cell[%u,%u] instead grid[%u,%u]cell[%u,%u]",
                      c->GetGUIDLow(),
                      c->GetPositionX(), c->GetPositionY(), (moved ? "final" : "original"),
                      cur_cell.GridX(), cur_cell.GridY(), cur_cell.CellX(), cur_cell.CellY(),
                      xy_cell.GridX(),  xy_cell.GridY(),  xy_cell.CellX(),  xy_cell.CellY());
        return true;                                        // not crash at error, just output error in debug mode
    }

    return true;
}

So ,,, if this should be only in debug mode, so WTH... this shows in normal "1" basic/error mode??? @xfurry still interested with this project?:)

evil-at-wow commented 9 years ago

That code will log, regardless of mode and in both release and debug builds. The comment is wrong. But the author probably meant to say something like If we return false here, we'll crash, so let's just output it as an error and return true anyway.

And I can confirm it's not something related to a particular creature - I have similar errors for years in my TBC server logs. We'll have to figure out one day why that cell is not what's expected.

Grz3s commented 9 years ago

so why not to move this -- stupid error to "debug only" -- and have a clear console... and as u said ... one day someone may figure this out and fix it.

evil-at-wow commented 9 years ago

It's not hard to have a clear console. But hiding issues has never been a good strategy...

Grz3s commented 9 years ago

you're right.

Grz3s commented 9 years ago

ok so last one ... is still a problem here... but has nothing to do with DB... so lets Close it and may someone from core will look at it one day.