[8344] In case battleground reward items player must "receive" instead "create" item in message. Author: VladimirMangos

--HG--
branch : trunk
This commit is contained in:
megamage
2009-08-12 20:36:55 -05:00
parent d575793f6d
commit d1a5689b65
2 changed files with 33 additions and 3 deletions
+1 -1
View File
@@ -883,7 +883,7 @@ void BattleGround::RewardItem(Player *plr, uint32 item_id, uint32 count)
if( count != 0 && !dest.empty()) // can add some
if (Item* item = plr->StoreNewItem( dest, item_id, true, 0))
plr->SendNewItem(item,count,false,true);
plr->SendNewItem(item,count,true,false);
if (no_space_count > 0)
SendRewardMarkByMail(plr,item_id,no_space_count);
+32 -2
View File
@@ -2716,6 +2716,26 @@ void Spell::DoCreateItem(uint32 i, uint32 itemtype)
return;
}
// bg reward have some special in code work
uint32 bgType = 0;
switch(m_spellInfo->Id)
{
case SPELL_AV_MARK_WINNER:
case SPELL_AV_MARK_LOSER:
bgType = BATTLEGROUND_AV;
break;
case SPELL_WS_MARK_WINNER:
case SPELL_WS_MARK_LOSER:
bgType = BATTLEGROUND_WS;
break;
case SPELL_AB_MARK_WINNER:
case SPELL_AB_MARK_LOSER:
bgType = BATTLEGROUND_AB;
break;
default:
break;
}
uint32 num_to_add;
// TODO: maybe all this can be replaced by using correct calculated `damage` value
@@ -2798,11 +2818,21 @@ void Spell::DoCreateItem(uint32 i, uint32 itemtype)
// send info to the client
if(pItem)
player->SendNewItem(pItem, num_to_add, true, true);
player->SendNewItem(pItem, num_to_add, true, bgType == 0);
// we succeeded in creating at least one item, so a levelup is possible
player->UpdateCraftSkill(m_spellInfo->Id);
if(bgType == 0)
player->UpdateCraftSkill(m_spellInfo->Id);
}
/*
// for battleground marks send by mail if not add all expected
if(no_space > 0 && bgType)
{
if(BattleGround* bg = sBattleGroundMgr.GetBattleGroundTemplate(BattleGroundTypeId(bgType)))
bg->SendRewardMarkByMail(player, newitemid, no_space);
}
*/
}
void Spell::EffectCreateItem(uint32 i)