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 10-15-2006, 03:10 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default Items Disappear Between zoning

I have just downloaded the latest code, EQEmu Server v0.7.0-857 and I if I #summonitem and then zone, that item is gone from my inventory. I have tried this with both the older 6.2 client and the new titanium client and get the same results. Anyone else experience this?
__________________
Read my developer notes at my blog.

Quote:
If it's not on IRC, it ain't l33t!
Reply With Quote
  #2  
Old 10-15-2006, 03:46 PM
mattmeck
Guest
 
Posts: n/a
Default

This is a DB issue, normaly caused by using Mysql 5, but could also be caused because you didnt do all the SQL changes in the change log.
Reply With Quote
  #3  
Old 10-15-2006, 04:16 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

Thanks for the FYI Mattmeck.

I understand this problem is the result of a situation like the following:

[code]
insert into products_notifications (products_id, customers_id, date_added) values ('
__________________
Read my developer notes at my blog.

Quote:
If it's not on IRC, it ain't l33t!
Reply With Quote
  #4  
Old 10-15-2006, 05:36 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

A temporary work-around for this issue for all of you who run MySQL 5.0 servers is to turn off strict mode by editing your my.ini file and then restarting your database service.

The problem here with the inventory is that the emulator is trying to insert a non "integer" value into the dbo.inventory.color table which is a INT data type. Under previous versions of MySQL you could get away with this (inserting a space charater instead of a integer value, for example) but with MySQL 5, the server will enforce data integrity when strict mode is turned on.

The real solution for this problem is to ensure the query in the following code block does not try to save anything but a integer value for the color column.

Code:
// Update/Insert item
			uint32 len_query = MakeAnyLenString(&query, "REPLACE INTO inventory (charid,slotid,itemid,charges,instnodrop,color,augslot1,augslot2,augslot3,augslot4,augslot5) VALUES(%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i)",
				char_id, slot_id, inst->GetItem()->ID, charges, inst->IsInstNoDrop() ? 1:0,inst->GetColor(),augslot[0],augslot[1],augslot[2],augslot[3],augslot[4],augslot[5] );
NOTE: the code fragment above is from shareddb.cpp.

Good night and good luck...
__________________
Read my developer notes at my blog.

Quote:
If it's not on IRC, it ain't l33t!
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 07:30 AM.


 

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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3