mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-28 04:42:10 +01:00
[svn] * Improve some arena team related DB access
* Cache GM tickets on server startup. * Remove unused src/game/HateMatrix.h and references. * Better check client inventory pos data received in some client packets to skip invalid cases --HG-- branch : trunk
This commit is contained in:
@@ -49,6 +49,18 @@ void WorldSession::HandleSplitItemOpcode( WorldPacket & recv_data )
|
||||
if (count==0)
|
||||
return; //check count - if zero it's fake packet
|
||||
|
||||
if(!_player->IsValidPos(srcbag,srcslot))
|
||||
{
|
||||
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL );
|
||||
return;
|
||||
}
|
||||
|
||||
if(!_player->IsValidPos(dstbag,dstslot))
|
||||
{
|
||||
_player->SendEquipError( EQUIP_ERR_ITEM_DOESNT_GO_TO_SLOT, NULL, NULL );
|
||||
return;
|
||||
}
|
||||
|
||||
_player->SplitItem( src, dst, count );
|
||||
}
|
||||
|
||||
@@ -66,6 +78,18 @@ void WorldSession::HandleSwapInvItemOpcode( WorldPacket & recv_data )
|
||||
if(srcslot==dstslot)
|
||||
return;
|
||||
|
||||
if(!_player->IsValidPos(INVENTORY_SLOT_BAG_0,srcslot))
|
||||
{
|
||||
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL );
|
||||
return;
|
||||
}
|
||||
|
||||
if(!_player->IsValidPos(INVENTORY_SLOT_BAG_0,dstslot))
|
||||
{
|
||||
_player->SendEquipError( EQUIP_ERR_ITEM_DOESNT_GO_TO_SLOT, NULL, NULL );
|
||||
return;
|
||||
}
|
||||
|
||||
uint16 src = ( (INVENTORY_SLOT_BAG_0 << 8) | srcslot );
|
||||
uint16 dst = ( (INVENTORY_SLOT_BAG_0 << 8) | dstslot );
|
||||
|
||||
@@ -109,6 +133,18 @@ void WorldSession::HandleSwapItem( WorldPacket & recv_data )
|
||||
if(src==dst)
|
||||
return;
|
||||
|
||||
if(!_player->IsValidPos(srcbag,srcslot))
|
||||
{
|
||||
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL );
|
||||
return;
|
||||
}
|
||||
|
||||
if(!_player->IsValidPos(dstbag,dstslot))
|
||||
{
|
||||
_player->SendEquipError( EQUIP_ERR_ITEM_DOESNT_GO_TO_SLOT, NULL, NULL );
|
||||
return;
|
||||
}
|
||||
|
||||
_player->SwapItem( src, dst );
|
||||
}
|
||||
|
||||
@@ -746,6 +782,12 @@ void WorldSession::HandleAutoStoreBagItemOpcode( WorldPacket & recv_data )
|
||||
if( !pItem )
|
||||
return;
|
||||
|
||||
if(!_player->IsValidPos(dstbag,NULL_SLOT))
|
||||
{
|
||||
_player->SendEquipError( EQUIP_ERR_ITEM_DOESNT_GO_TO_SLOT, NULL, NULL );
|
||||
return;
|
||||
}
|
||||
|
||||
uint16 src = pItem->GetPos();
|
||||
|
||||
// check unequip potability for equipped items and bank bags
|
||||
|
||||
Reference in New Issue
Block a user