diff --git a/changelog.txt b/changelog.txt index 869ff369c..465ddd10c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,8 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 05/05/2014 == +Uleat: Test fix to eliminate seemingly random crashes when an AE spell is being used. (Possible access to uninstantiated pointers during client connection process when someone casts a beneficial AE spell within range of a connecting client.) + == 04/29/2014 == KLS: Implemented new map code based on some of Derision's earlier work. Old maps still work with this system and don't need to be regenerated. We're still working on a new azone solution for better/more efficient maps. diff --git a/zone/effects.cpp b/zone/effects.cpp index f2a8db2a6..dd72408f3 100644 --- a/zone/effects.cpp +++ b/zone/effects.cpp @@ -748,6 +748,9 @@ void EntityList::AESpell(Mob *caster, Mob *center, uint16 spell_id, bool affect_ for (auto it = mob_list.begin(); it != mob_list.end(); ++it) { curmob = it->second; + // test to fix possible cause of random zone crashes..external methods accessing client properties before they're initialized + if (curmob->IsClient() && !curmob->CastToClient()->Connected()) + continue; if (curmob == center) //do not affect center continue; if (curmob == caster && !affect_caster) //watch for caster too