mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
[10512] Fixed cast item remove at trade enchanting in some cases
Also nit allow item use spels casts if item in trade.
This commit is contained in:
parent
14a240361d
commit
5e9b5a5297
3 changed files with 13 additions and 2 deletions
|
|
@ -3892,7 +3892,7 @@ void Spell::TakeCastItem()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// not remove cast item at triggered spell (equipping, weapon damage, etc)
|
// not remove cast item at triggered spell (equipping, weapon damage, etc)
|
||||||
if(m_IsTriggeredSpell)
|
if(m_IsTriggeredSpell && !(m_targets.m_targetMask & TARGET_FLAG_TRADE_ITEM))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ItemPrototype const *proto = m_CastItem->GetProto();
|
ItemPrototype const *proto = m_CastItem->GetProto();
|
||||||
|
|
@ -5726,6 +5726,9 @@ SpellCastResult Spell::CheckItems()
|
||||||
// cast item checks
|
// cast item checks
|
||||||
if(m_CastItem)
|
if(m_CastItem)
|
||||||
{
|
{
|
||||||
|
if (m_CastItem->IsInTrade())
|
||||||
|
return SPELL_FAILED_ITEM_NOT_FOUND;
|
||||||
|
|
||||||
uint32 itemid = m_CastItem->GetEntry();
|
uint32 itemid = m_CastItem->GetEntry();
|
||||||
if( !p_caster->HasItemCount(itemid, 1) )
|
if( !p_caster->HasItemCount(itemid, 1) )
|
||||||
return SPELL_FAILED_ITEM_NOT_FOUND;
|
return SPELL_FAILED_ITEM_NOT_FOUND;
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,14 @@ void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// not allow use item from trade (cheat way only)
|
||||||
|
if (pItem->IsInTrade())
|
||||||
|
{
|
||||||
|
recvPacket.rpos(recvPacket.wpos()); // prevent spam at not read packet tail
|
||||||
|
pUser->SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, pItem, NULL );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// only allow conjured consumable, bandage, poisons (all should have the 2^21 item flag set in DB)
|
// only allow conjured consumable, bandage, poisons (all should have the 2^21 item flag set in DB)
|
||||||
if (proto->Class == ITEM_CLASS_CONSUMABLE &&
|
if (proto->Class == ITEM_CLASS_CONSUMABLE &&
|
||||||
!(proto->Flags & ITEM_FLAGS_USEABLE_IN_ARENA) &&
|
!(proto->Flags & ITEM_FLAGS_USEABLE_IN_ARENA) &&
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "10511"
|
#define REVISION_NR "10512"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue