EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   5.7DR6 shared bank dupe fix (may work on others) (https://www.eqemulator.org/forums/showthread.php?t=19697)

Firedancer 11-14-2005 11:20 AM

5.7DR6 shared bank dupe fix (may work on others)
 
In the client.cpp around line 4100
Code:

bool Client::SwapItem(MoveItem_Struct* move_in) {
        if (move_in->from_slot == move_in->to_slot)
                return true; // Item summon, no further proccessing needed
       
        if (move_in->to_slot == (uint32)SLOT_INVALID) {
                DeleteItemInInventory(move_in->from_slot);
                return true; // Item deletetion
        }
        if(auto_attack && (move_in->from_slot == SLOT_PRIMARY || move_in->from_slot == SLOT_SECONDARY))
                SetAttackTimer();
        else if(auto_attack && (move_in->to_slot == SLOT_PRIMARY || move_in->to_slot == SLOT_SECONDARY))
                SetAttackTimer();
        // Step 1: Variables
        sint16 src_slot_id = (sint16)move_in->from_slot;
        sint16 dst_slot_id = (sint16)move_in->to_slot;

Right after this we added:
Code:

        if (src_slot_id == 2500 || dst_slot_id == 2500 || src_slot_id == 2501 || dst_slot_id == 2501)
        {
                m_inv.DeleteItem(2500);
                m_inv.DeleteItem(2501);
                database.GetSharedBank(AccountID(),&m_inv,false);
        }

Not sure if this applies to other versions of the source or not.. but a similar fix may work on your server. It updates the shared bank each time its accessed.

If it doesn't help you or your source is different please dont flame. This is merely a fix intended to help those that have old source versions of the server and have problems with shared bank duping.

Thanks.
GM Crisco
http://magic.squeaker.us
#squeaker


All times are GMT -4. The time now is 09:45 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.