Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bug Reports

Development::Bug Reports Post detailed bug reports and what you would like to see next in the emu here.

Reply
 
Thread Tools Display Modes
  #1  
Old 01-03-2011, 07:26 PM
l0stmancd
Fire Beetle
 
Join Date: Apr 2005
Posts: 23
Default Zone crash error in MobAI (GetNpCSpells) - possibly related to recent checkin...

Hey folks. I posted this in the windows server support forum as opposed bug report forum. My apologies.

Relevant information pasted below.

Original Link: http://www.eqemulator.org/forums/showthread.php?t=32828

--snip--

Was doing some work on a small modification today and found that I was having some zones crash whenever I attempted to zone into them. I built off an unmodified trunk and found it was still occuring.

Access Violation Exception in -some- zones at MobAI.cpp Line 2335 specifically: "npc_spells_cache[iDBSpellsID]->entries[j].resist_adjust = row[7] ? atoi(row[7]) : spells[npc_spells_cache[iDBSpellsID]->entries[j].spellid].ResistDiff;"

I had added the required sql for a change one of the devs put in and it added a null column called resist_adjust to the npc_sells_entries table. This line checks to see if this column has any data in it for a particular row and, if not, attempts to use the spells resist difference. Fails for me in Everfrost and Rivervale. Does not fail in Halas.

I saw the "Bugs" forum but given the statement about "true bugs" I figured I this would be the best place to post this. If it should have been posted elsewhere, please let me know.
Reply With Quote Multi-Quote This Message Quick reply to this message

--snip--

--snip--
trevius
Developer

I haven't looked at this much, but I assume it should be set to NOT NULL and have a default of 0.

Though, not sure about that based on this line from mob.h:

Code:

int32* oSpellWillFinish = 0, int32 item_slot = 0xFFFFFFFF, uint32 timer = 0xFFFFFFFF, uint32 timer_duration = 0, uint32 type = 0, sint16 *resist_adjust = NULL);

__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote Multi-Quote This Message Quick reply to this message

--snip--

--snip--
l0stmancd

After noting the defect, I didn't stay too long in this spot... but... I -think- this part of the line is what is actually failing "spells[npc_spells_cache[iDBSpellsID]->entries[j].spellid].ResistDiff"

I put a watch on the "row[7]" and it returned 0 so it should have flipped to the section listed right above here and failed.

Honestly do not know what should be happening here but I assume KimmySprite should be able to see it pretty quickly. This was added in rev 1794 on 12/31/2010.

--snip--
Reply With Quote
  #2  
Old 01-04-2011, 01:55 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I'll add a check to make sure the spell is valid for that failure condition. It sounds like there's some bad data in your DB.

And yes it's intended to be NULL by design.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 10:36 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3