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-18-2004, 12:50 AM
Magoth78
Discordant
 
Join Date: Jun 2003
Posts: 345
Default 0.6.0dr1 - Items / Inventory issue

Hello there,

Server version: 0.6.0dr1
DB: a fresh 0.6.0 db
Sources: compiled with the Release profile.


I still have the item poof / change slot issue in this version and I don't know what's happening.

When someones loot an item and immediatly equip it, remplacing an item in the same slot, he will loose this item after zoning / camping / ld'ing or the item will change slot.

Example: I kill a mob and loot a cool sword. I equip it, remplacing the old sword I had (I did not unequip the previous sword before equiping the new one), I have like 85% of chance to loose this item and having the old one duplicated (even if it's lore)

Now, i kill the mob and loot the sword that I put in my inventory. I unequip the old sword and put it in a bag. then, I equip the new sword, I have ~20% of chance to loose it or getting the old one duplicated.

And finally, if i do the same thing as above and I #save 5 times, I have ~5-10% of chance to loose it.

As I mentionned earlier on a previous post, I noticed that the inventory table is not immediatly upgraded when someones equips an item but a bit after. It's probably intentionnal to limit the CPU usage wich I understand but if the guy zones seconds after, he can loose the item.

Any idea?
Magoth
__________________
User's projects:
-- Original EMPIRE I/II and Factions! servers
-- Web GM Portal
-- EQoffline/bots
Reply With Quote
  #2  
Old 10-18-2004, 11:21 AM
Edgar1898
Senior Member
Former EQEmu Developer
Current EQ2Emu Lead Developer
 
Join Date: Dec 2002
Posts: 1,065
Default

Quote:
When someones loot an item and immediatly equip it, remplacing an item in the same slot, he will loose this item after zoning / camping / ld'ing or the item will change slot.

Example: I kill a mob and loot a cool sword. I equip it, remplacing the old sword I had (I did not unequip the previous sword before equiping the new one), I have like 85% of chance to loose this item and having the old one duplicated (even if it's lore)
I tried this 5 times and every time it was correct. I tried multiple variations (right/left clicking to loot, looting and then changing the item with/without unequiping, etc) and I could never get it to mess up.

Quote:
As I mentionned earlier on a previous post, I noticed that the inventory table is not immediatly upgraded when someones equips an item but a bit after
It is saved to the database as soon as they loot the item, here is some code for Client::PutLootInInventory even:

Code:
m_inv.PutItem(slot_id, inst);
SendLootItemInPacket(&inst, slot_id);
database.SaveInventory(this->CharacterID(), &inst, slot_id);
I'm not sure how you are getting those problems, but I do know that I cannot reproduce them and an item is saved to the database as soon as it is looted or moved.
__________________
Lethal Encounter
Reply With Quote
  #3  
Old 10-18-2004, 11:50 AM
sotonin
Demi-God
 
Join Date: May 2004
Posts: 1,177
Default

I'm betting he used an old or "unsupported" database. Alpha1 didnt have the inventory keys right so you could end up with multiple items in a single slot. which caused all sorts of wierd problems. it was fixed in classic. so if you used something put together by someebody who didnt know what they were doing very well might not have carried the proper structure over.
Reply With Quote
  #4  
Old 10-18-2004, 12:03 PM
Magoth78
Discordant
 
Join Date: Jun 2003
Posts: 345
Default

thanks for the answers,

I'm using a fresh install DB from this page http://www.eqemulator.net/databases_v6.php.

But I had to backup my old inventory table and source it to the new fresh DB so people does not loose their items. Sotonin you're probably right, there re some chances that my inventory table from my old DB was unsupported.

I'll check the keys in the actual Classic DB and the ones in my old inventory table.

Thx again,
Mag
__________________
User's projects:
-- Original EMPIRE I/II and Factions! servers
-- Web GM Portal
-- EQoffline/bots
Reply With Quote
  #5  
Old 10-18-2004, 06:14 PM
Cutter
Sarnak
 
Join Date: Sep 2004
Posts: 85
Default

ok i know i did this.. with the inventory .. so how do i fix it exactly without losing any part of my database im currently using right now?
Reply With Quote
  #6  
Old 10-18-2004, 10:02 PM
Magoth78
Discordant
 
Join Date: Jun 2003
Posts: 345
Default

You will have to backup your inventory table, then create a new one with the new inventory table scheme (you can source the inventory table from the peq classic db).
Then, you can source your backup'd inventory table to the new one. You will see a lot of duplicates error though but that's normal, in the old inventory table, the primary key (charID/SlotID) was not unique wich was letting the players to have some items in the same slot.


Mag
__________________
User's projects:
-- Original EMPIRE I/II and Factions! servers
-- Web GM Portal
-- EQoffline/bots
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 03:14 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