diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 446b2aac2..9c70da28e 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -855,7 +855,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); diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 1258cc201..e61f24182 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -2690,6 +2690,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 @@ -2770,35 +2790,17 @@ 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 ) + if(no_space > 0 && bgType) { - BattleGroundTypeId bgType; - 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: - return; - } - - if(BattleGround* bg = sBattleGroundMgr.GetBattleGroundTemplate(bgType)) + if(BattleGround* bg = sBattleGroundMgr.GetBattleGroundTemplate(BattleGroundTypeId(bgType))) bg->SendRewardMarkByMail(player, newitemid, no_space); } } diff --git a/src/realmd/AuthCodes.h b/src/realmd/AuthCodes.h index 04c0fc3de..81483eb0a 100644 --- a/src/realmd/AuthCodes.h +++ b/src/realmd/AuthCodes.h @@ -72,6 +72,6 @@ enum LoginResult // At update excepted builds please update if need define DEFAULT_MAX_LEVEL // in DBCEnum.h to default max player level expected by build -// and alos in mangosd.conf.in +// and also in mangosd.conf.in #endif diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 9f68200c0..1597c9c83 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8343" + #define REVISION_NR "8344" #endif // __REVISION_NR_H__