Page 1 of 1

[FIXED?]World Crash - ProcessMovement()

Posted: Sun Aug 04, 2013 1:33 pm
by John Adams
I was in the Frostfang zone and went to the GM Hall to be in a zone without spawns. After being in there for a few minutes, and talking about stats in IRC, I noticed my world crashed out behind me. I'm assuming this is an NPC "follow" issue, because where it broke I don't think that has anything to do with looking at stats in the Character options :)

Stack:
ntdll.dll!77cd15de() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!77cd15de() Unknown
ntdll.dll!77cc014e() Unknown
EQ2World__Debug.exe!Spawn::ProcessMovement() Line 1516 C++
> EQ2World__Debug.exe!Spawn::ProcessMovement() Line 1516 C++
EQ2World__Debug.exe!_free_base(void * pBlock) Line 50 C
EQ2World__Debug.exe!_callthreadstart() Line 255 C
EQ2World__Debug.exe!_threadstart(void * ptd) Line 239 C
kernel32.dll!766133aa() Unknown
ntdll.dll!77ce9ef2() Unknown
ntdll.dll!77ce9ec5() Unknown
Zone was not shutting down yet or anything.

Code:

Code: Select all

void Spawn::ProcessMovement(){
	// Skip players
	if (IsPlayer() || GetHP() <= 0)			<== I didn't do it, I swear!
		return;

	MMovementLoop.lock();
	if (following && m_followTarget) {
		if (!IsEntity() || (!((Entity*)this)->IsCasting() && !((Entity*)this)->IsMezzedOrStunned())) {
==> here		if (GetSpeed() > 0) {
				CalculateRunningLocation();
			}
m_followTarget was stuff like: "changed = <Unable to read memory>"

Re: World Crash - ProcessMovement()

Posted: Sun Aug 04, 2013 3:50 pm
by thefoof
I think that HP check was put in because of a bug where sometimes corpses would follow you around eerily :D

Re: World Crash - ProcessMovement()

Posted: Mon Aug 05, 2013 1:16 pm
by John Adams
I just meant I am IsPlayer() so it wasn't me :)

It was below that check, so had to be NPC movement related.

Re: World Crash - ProcessMovement()

Posted: Mon Aug 05, 2013 1:35 pm
by Jabantiz
This looks like the pointer went invalid as well so wth is going on.

Re: World Crash - ProcessMovement()

Posted: Thu Aug 08, 2013 2:16 pm
by Jabantiz
If the possible fix for the FaceTarget() crash works it should also solve this crash.