PDA

View Full Version : Items Disappear Between zoning


WildcardX
10-15-2006, 03:10 PM
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?

mattmeck
10-15-2006, 03:46 PM
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.

WildcardX
10-15-2006, 04:16 PM
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 ('

WildcardX
10-15-2006, 05:36 PM
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.


// Update/Insert item
uint32 len_query = MakeAnyLenString(&query, "REPLACE INTO inventory (charid,slotid,itemid,charges,instnodrop,color,aug slot1,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...