mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[7234] Now correct patch version: Use spell_loot_table for item creating in case SPELL_EFFECT_CREATE_ITEM_2 (157) and itemType==0
This commit is contained in:
parent
e21941d558
commit
cb0ebde926
5 changed files with 12 additions and 10 deletions
|
|
@ -1278,9 +1278,9 @@ void LoadLootTemplates_Spell()
|
||||||
|
|
||||||
if(!ids_set.count(spell_id))
|
if(!ids_set.count(spell_id))
|
||||||
{
|
{
|
||||||
// not report about not trainable spells (optionally supported by DB)
|
// not report about not trainable spells (optionally supported by DB) except with SPELL_ATTR_EX2_UNK14 (clams)
|
||||||
// 61756 (Northrend Inscription Research (FAST QA VERSION) for example
|
// 61756 (Northrend Inscription Research (FAST QA VERSION) for example
|
||||||
if(spellInfo->Attributes & SPELL_ATTR_UNK5)
|
if ((spellInfo->Attributes & SPELL_ATTR_UNK5) || (spellInfo->AttributesEx2 & SPELL_ATTR_EX2_UNK14))
|
||||||
LootTemplates_Spell.ReportNotExistedId(spell_id);
|
LootTemplates_Spell.ReportNotExistedId(spell_id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -19413,7 +19413,7 @@ void Player::InitRunes()
|
||||||
SetFloatValue(PLAYER_RUNE_REGEN_1 + i, 0.1f);
|
SetFloatValue(PLAYER_RUNE_REGEN_1 + i, 0.1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Player::AutoStoreLootItem(uint8 bag, uint8 slot, uint32 loot_id, LootStore const& store)
|
void Player::AutoStoreLootItem(uint8 bag, uint8 slot, uint32 loot_id, LootStore const& store)
|
||||||
{
|
{
|
||||||
Loot loot;
|
Loot loot;
|
||||||
loot.FillLoot (loot_id,store,this);
|
loot.FillLoot (loot_id,store,this);
|
||||||
|
|
@ -19428,10 +19428,13 @@ bool Player::AutoStoreLootItem(uint8 bag, uint8 slot, uint32 loot_id, LootStore
|
||||||
if( msg != EQUIP_ERR_OK && bag != NULL_BAG)
|
if( msg != EQUIP_ERR_OK && bag != NULL_BAG)
|
||||||
msg = CanStoreNewItem( NULL_BAG, NULL_SLOT,dest,lootItem->itemid,lootItem->count);
|
msg = CanStoreNewItem( NULL_BAG, NULL_SLOT,dest,lootItem->itemid,lootItem->count);
|
||||||
if(msg != EQUIP_ERR_OK)
|
if(msg != EQUIP_ERR_OK)
|
||||||
|
{
|
||||||
|
SendEquipError( msg, NULL, NULL );
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(Item* pItem = StoreNewItem (dest,lootItem->itemid,true,lootItem->randomPropertyId))
|
Item* pItem = StoreNewItem (dest,lootItem->itemid,true,lootItem->randomPropertyId);
|
||||||
SendNewItem(pItem, lootItem->count, true, true);
|
SendNewItem(pItem, lootItem->count, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 Player::CalculateTalentsPoints() const
|
uint32 Player::CalculateTalentsPoints() const
|
||||||
|
|
|
||||||
|
|
@ -1110,8 +1110,8 @@ class MANGOS_DLL_SPEC Player : public Unit
|
||||||
Item* EquipItem( uint16 pos, Item *pItem, bool update );
|
Item* EquipItem( uint16 pos, Item *pItem, bool update );
|
||||||
void AutoUnequipOffhandIfNeed();
|
void AutoUnequipOffhandIfNeed();
|
||||||
bool StoreNewItemInBestSlots(uint32 item_id, uint32 item_count);
|
bool StoreNewItemInBestSlots(uint32 item_id, uint32 item_count);
|
||||||
bool AutoStoreLootItem(uint8 bag, uint8 slot, uint32 loot_id, LootStore const& store);
|
void AutoStoreLootItem(uint8 bag, uint8 slot, uint32 loot_id, LootStore const& store);
|
||||||
bool AutoStoreLootItem(uint32 loot_id, LootStore const& store) { return AutoStoreLootItem(NULL_BAG,NULL_SLOT,loot_id,store); }
|
void AutoStoreLootItem(uint32 loot_id, LootStore const& store) { AutoStoreLootItem(NULL_BAG,NULL_SLOT,loot_id,store); }
|
||||||
|
|
||||||
uint8 _CanTakeMoreSimilarItems(uint32 entry, uint32 count, Item* pItem, uint32* no_space_count = NULL) const;
|
uint8 _CanTakeMoreSimilarItems(uint32 entry, uint32 count, Item* pItem, uint32* no_space_count = NULL) const;
|
||||||
uint8 _CanStoreItem( uint8 bag, uint8 slot, ItemPosCountVec& dest, uint32 entry, uint32 count, Item *pItem = NULL, bool swap = false, uint32* no_space_count = NULL ) const;
|
uint8 _CanStoreItem( uint8 bag, uint8 slot, ItemPosCountVec& dest, uint32 entry, uint32 count, Item *pItem = NULL, bool swap = false, uint32* no_space_count = NULL ) const;
|
||||||
|
|
|
||||||
|
|
@ -2691,8 +2691,7 @@ void Spell::EffectCreateItem2(uint32 i)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// create some random items
|
// create some random items
|
||||||
if(!((Player*)m_caster)->AutoStoreLootItem(m_spellInfo->Id,LootTemplates_Spell))
|
((Player*)m_caster)->AutoStoreLootItem(m_spellInfo->Id,LootTemplates_Spell);
|
||||||
player->SendEquipError( msg, NULL, NULL );
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DoCreateItem(i,m_spellInfo->EffectItemType[i]);
|
DoCreateItem(i,m_spellInfo->EffectItemType[i]);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7233"
|
#define REVISION_NR "7234"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue