Cleaned up item flags: separated item proto flags and item field flags
Implemented use of: ITEM_PROTO_FLAG_PROSPECTABLE and ITEM_PROTO_FLAG_MILLABLE now checked instead of bag family mask ITEM_PROTO_FLAG_SMART_LOOT for profession recipes, player has to have skillline and not know the recipe ITEM_PROTO_FLAG_OPENABLE item has to have it set to use item_loot_template ITEM_PROTO_FLAG_NOT_USEABLE_IN_ARENA if this is set item can never be used in arena ITEM_FLAG_UNLOCKED marks unlocked items Simplified BoA check for mail sending Stackable items are no longer refundable Removed useless code that always set ITEM_FIELD_FLAGS equal to proto flags Unlocking items (lockpicking) is now blizzlike --HG-- branch : trunk
This commit is contained in:
@@ -161,16 +161,14 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data)
|
||||
return;
|
||||
}
|
||||
// test the receiver's Faction... or all items are account bound
|
||||
bool accountBound = false;
|
||||
bool accountBound = items_count ? true : false;
|
||||
for (uint8 i = 0; i < items_count; ++i)
|
||||
{
|
||||
Item* item = pl->GetItemByGuid(itemGUIDs[i]) ;
|
||||
if (item )
|
||||
Item* item = pl->GetItemByGuid(itemGUIDs[i]);
|
||||
if (item)
|
||||
{
|
||||
ItemPrototype const* itemProto= item->GetProto();
|
||||
if(itemProto && (itemProto->Flags & ITEM_FLAGS_BOA))
|
||||
accountBound = true;
|
||||
else
|
||||
ItemPrototype const* itemProto = item->GetProto();
|
||||
if(!itemProto || !(itemProto->Flags & ITEM_PROTO_FLAG_BIND_TO_ACCOUNT))
|
||||
{
|
||||
accountBound = false;
|
||||
break;
|
||||
@@ -224,13 +222,13 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data)
|
||||
return;
|
||||
}
|
||||
|
||||
if (item->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_CONJURED) || item->GetUInt32Value(ITEM_FIELD_DURATION))
|
||||
if (item->GetProto()->Flags & ITEM_PROTO_FLAG_CONJURED || item->GetUInt32Value(ITEM_FIELD_DURATION))
|
||||
{
|
||||
pl->SendMailResult(0, MAIL_SEND, MAIL_ERR_EQUIP_ERROR, EQUIP_ERR_MAIL_BOUND_ITEM);
|
||||
return;
|
||||
}
|
||||
|
||||
if (COD && item->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED))
|
||||
if (COD && item->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_WRAPPED))
|
||||
{
|
||||
pl->SendMailResult(0, MAIL_SEND, MAIL_ERR_CANT_SEND_WRAPPED_COD);
|
||||
return;
|
||||
@@ -702,7 +700,7 @@ void WorldSession::HandleMailCreateTextItem(WorldPacket & recv_data)
|
||||
bodyItem->SetText(m->body);
|
||||
|
||||
bodyItem->SetUInt32Value(ITEM_FIELD_CREATOR, m->sender);
|
||||
bodyItem->SetFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPER | ITEM_FLAGS_REFUNDABLE_2 | ITEM_FLAGS_UNK1);
|
||||
bodyItem->SetFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_MAIL_TEXT_MASK);
|
||||
|
||||
sLog.outDetail("HandleMailCreateTextItem mailid=%u",mailId);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user