mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[10100] Fixed some cases assign low guid to full guid update field.
This commit is contained in:
parent
1780113912
commit
b8246b1dbb
6 changed files with 20 additions and 20 deletions
|
|
@ -969,10 +969,10 @@ Item* Item::CloneItem( uint32 count, Player const* player ) const
|
||||||
if(!newItem)
|
if(!newItem)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
newItem->SetUInt32Value( ITEM_FIELD_CREATOR, GetUInt32Value( ITEM_FIELD_CREATOR ) );
|
newItem->SetGuidValue(ITEM_FIELD_CREATOR, GetGuidValue(ITEM_FIELD_CREATOR));
|
||||||
newItem->SetUInt32Value( ITEM_FIELD_GIFTCREATOR, GetUInt32Value( ITEM_FIELD_GIFTCREATOR ) );
|
newItem->SetGuidValue(ITEM_FIELD_GIFTCREATOR, GetGuidValue(ITEM_FIELD_GIFTCREATOR));
|
||||||
newItem->SetUInt32Value( ITEM_FIELD_FLAGS, GetUInt32Value( ITEM_FIELD_FLAGS ) );
|
newItem->SetUInt32Value(ITEM_FIELD_FLAGS, GetUInt32Value(ITEM_FIELD_FLAGS));
|
||||||
newItem->SetUInt32Value( ITEM_FIELD_DURATION, GetUInt32Value( ITEM_FIELD_DURATION ) );
|
newItem->SetUInt32Value(ITEM_FIELD_DURATION, GetUInt32Value(ITEM_FIELD_DURATION));
|
||||||
newItem->SetItemRandomProperties(GetItemRandomPropertyId());
|
newItem->SetItemRandomProperties(GetItemRandomPropertyId());
|
||||||
return newItem;
|
return newItem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1052,13 +1052,13 @@ void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data)
|
||||||
DEBUG_LOG("WRAP: receive gift_bag = %u, gift_slot = %u, item_bag = %u, item_slot = %u", gift_bag, gift_slot, item_bag, item_slot);
|
DEBUG_LOG("WRAP: receive gift_bag = %u, gift_slot = %u, item_bag = %u, item_slot = %u", gift_bag, gift_slot, item_bag, item_slot);
|
||||||
|
|
||||||
Item *gift = _player->GetItemByPos( gift_bag, gift_slot );
|
Item *gift = _player->GetItemByPos( gift_bag, gift_slot );
|
||||||
if(!gift)
|
if (!gift)
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, gift, NULL );
|
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, gift, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!gift->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPER))// cheating: non-wrapper wrapper
|
if (!gift->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPER))// cheating: non-wrapper wrapper
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, gift, NULL );
|
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, gift, NULL );
|
||||||
return;
|
return;
|
||||||
|
|
@ -1066,50 +1066,50 @@ void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data)
|
||||||
|
|
||||||
Item *item = _player->GetItemByPos( item_bag, item_slot );
|
Item *item = _player->GetItemByPos( item_bag, item_slot );
|
||||||
|
|
||||||
if( !item )
|
if (!item)
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, item, NULL );
|
_player->SendEquipError( EQUIP_ERR_ITEM_NOT_FOUND, item, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(item == gift) // not possible with packet from real client
|
if (item == gift) // not possible with packet from real client
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED, item, NULL );
|
_player->SendEquipError( EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED, item, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(item->IsEquipped())
|
if (item->IsEquipped())
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_EQUIPPED_CANT_BE_WRAPPED, item, NULL );
|
_player->SendEquipError( EQUIP_ERR_EQUIPPED_CANT_BE_WRAPPED, item, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(item->GetUInt64Value(ITEM_FIELD_GIFTCREATOR)) // HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED);
|
if (!item->GetGuidValue(ITEM_FIELD_GIFTCREATOR).IsEmpty())// HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED);
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED, item, NULL );
|
_player->SendEquipError( EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED, item, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(item->IsBag())
|
if (item->IsBag())
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_BAGS_CANT_BE_WRAPPED, item, NULL );
|
_player->SendEquipError( EQUIP_ERR_BAGS_CANT_BE_WRAPPED, item, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(item->IsSoulBound())
|
if (item->IsSoulBound())
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_BOUND_CANT_BE_WRAPPED, item, NULL );
|
_player->SendEquipError( EQUIP_ERR_BOUND_CANT_BE_WRAPPED, item, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(item->GetMaxStackCount() != 1)
|
if (item->GetMaxStackCount() != 1)
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_STACKABLE_CANT_BE_WRAPPED, item, NULL );
|
_player->SendEquipError( EQUIP_ERR_STACKABLE_CANT_BE_WRAPPED, item, NULL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// maybe not correct check (it is better than nothing)
|
// maybe not correct check (it is better than nothing)
|
||||||
if(item->GetProto()->MaxCount > 0)
|
if (item->GetProto()->MaxCount > 0)
|
||||||
{
|
{
|
||||||
_player->SendEquipError( EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED, item, NULL );
|
_player->SendEquipError( EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED, item, NULL );
|
||||||
return;
|
return;
|
||||||
|
|
@ -1128,7 +1128,7 @@ void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data)
|
||||||
case 17307: item->SetEntry(17308); break;
|
case 17307: item->SetEntry(17308); break;
|
||||||
case 21830: item->SetEntry(21831); break;
|
case 21830: item->SetEntry(21831); break;
|
||||||
}
|
}
|
||||||
item->SetUInt64Value(ITEM_FIELD_GIFTCREATOR, _player->GetGUID());
|
item->SetGuidValue(ITEM_FIELD_GIFTCREATOR, _player->GetObjectGuid());
|
||||||
item->SetUInt32Value(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED);
|
item->SetUInt32Value(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED);
|
||||||
item->SetState(ITEM_CHANGED, _player);
|
item->SetState(ITEM_CHANGED, _player);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -715,7 +715,7 @@ void WorldSession::HandleMailCreateTextItem(WorldPacket & recv_data )
|
||||||
else
|
else
|
||||||
bodyItem->SetText(m->body);
|
bodyItem->SetText(m->body);
|
||||||
|
|
||||||
bodyItem->SetUInt32Value(ITEM_FIELD_CREATOR, m->sender);
|
bodyItem->SetGuidValue(ITEM_FIELD_CREATOR, ObjectGuid(HIGHGUID_PLAYER, m->sender));
|
||||||
bodyItem->SetFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPER | ITEM_FLAGS_UNK4 | ITEM_FLAGS_UNK1);
|
bodyItem->SetFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPER | ITEM_FLAGS_UNK4 | ITEM_FLAGS_UNK1);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3365,7 +3365,7 @@ void Spell::DoCreateItem(SpellEffectIndex eff_idx, uint32 itemtype)
|
||||||
|
|
||||||
// set the "Crafted by ..." property of the item
|
// set the "Crafted by ..." property of the item
|
||||||
if( pItem->GetProto()->Class != ITEM_CLASS_CONSUMABLE && pItem->GetProto()->Class != ITEM_CLASS_QUEST)
|
if( pItem->GetProto()->Class != ITEM_CLASS_CONSUMABLE && pItem->GetProto()->Class != ITEM_CLASS_QUEST)
|
||||||
pItem->SetUInt32Value(ITEM_FIELD_CREATOR, player->GetGUIDLow());
|
pItem->SetGuidValue(ITEM_FIELD_CREATOR, player->GetObjectGuid());
|
||||||
|
|
||||||
// send info to the client
|
// send info to the client
|
||||||
if(pItem)
|
if(pItem)
|
||||||
|
|
|
||||||
|
|
@ -428,12 +428,12 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPacket& recvPacket)
|
||||||
{
|
{
|
||||||
if (Item* item = myItems[i])
|
if (Item* item = myItems[i])
|
||||||
{
|
{
|
||||||
item->SetUInt64Value( ITEM_FIELD_GIFTCREATOR,_player->GetGUID());
|
item->SetGuidValue(ITEM_FIELD_GIFTCREATOR, _player->GetObjectGuid());
|
||||||
_player->MoveItemFromInventory(item->GetBagSlot(), item->GetSlot(), true);
|
_player->MoveItemFromInventory(item->GetBagSlot(), item->GetSlot(), true);
|
||||||
}
|
}
|
||||||
if (Item* item = hisItems[i])
|
if (Item* item = hisItems[i])
|
||||||
{
|
{
|
||||||
item->SetUInt64Value( ITEM_FIELD_GIFTCREATOR, trader->GetGUID());
|
item->SetGuidValue(ITEM_FIELD_GIFTCREATOR, trader->GetObjectGuid());
|
||||||
trader->MoveItemFromInventory(item->GetBagSlot(), item->GetSlot(), true);
|
trader->MoveItemFromInventory(item->GetBagSlot(), item->GetSlot(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "10099"
|
#define REVISION_NR "10100"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue