View Single Post
  #1  
Old 11-14-2005, 11:20 AM
Firedancer
Fire Beetle
 
Join Date: May 2005
Posts: 19
Default 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
Reply With Quote