Pelf

Pelf vellum patch

Feb 29th, 2012
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.61 KB | None | 0 0
  1. diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
  2. index 80c06bd..6531df3 100644
  3. --- a/src/server/game/Entities/Item/Item.cpp
  4. +++ b/src/server/game/Entities/Item/Item.cpp
  5. @@ -949,9 +949,8 @@ bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo) const
  6.      if (spellInfo->EquippedItemClass != -1)                 // -1 == any item class
  7.      {
  8.          // Special case - accept vellum for armor/weapon requirements
  9. -        if ((spellInfo->EquippedItemClass == ITEM_CLASS_ARMOR && proto->IsArmorVellum())
  10. -            ||(spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON && proto->IsWeaponVellum()))
  11. -            if (sSpellMgr->IsSkillTypeSpell(spellInfo->Id, SKILL_ENCHANTING)) // only for enchanting spells
  12. +        if ((spellInfo->EquippedItemClass == ITEM_CLASS_ARMOR || spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON) && proto->IsVellum())
  13. +           if (sSpellMgr->IsSkillTypeSpell(spellInfo->Id, SKILL_ENCHANTING)) // only for enchanting spells
  14.                  return true;
  15.          
  16.          if (spellInfo->EquippedItemClass != int32(proto->Class))
  17. diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
  18. index 6fca720..e13c910 100644
  19. --- a/src/server/game/Entities/Item/Item.h
  20. +++ b/src/server/game/Entities/Item/Item.h
  21. @@ -332,9 +332,8 @@ class Item : public Object
  22.          bool hasQuest(uint32 quest_id) const { return GetProto()->StartQuest == quest_id; }
  23.          bool hasInvolvedQuest(uint32 /*quest_id*/) const { return false; }
  24.          bool IsPotion() const { return GetProto()->IsPotion(); }
  25. -        bool IsWeaponVellum() const { return GetProto()->IsWeaponVellum(); }
  26. -        bool IsArmorVellum() const { return GetProto()->IsArmorVellum(); }
  27. -        bool IsConjuredConsumable() const { return GetProto()->IsConjuredConsumable(); }
  28. +       bool IsVellum() const {return GetProto()->IsVellum();}
  29. +       bool IsConjuredConsumable() const { return GetProto()->IsConjuredConsumable(); }
  30.  
  31.          // Item Refund system
  32.          void SetNotRefundable(Player *owner, bool changestate = true);
  33. diff --git a/src/server/game/Entities/Item/ItemPrototype.h b/src/server/game/Entities/Item/ItemPrototype.h
  34. index 8d0dc8a..f37b582 100644
  35. --- a/src/server/game/Entities/Item/ItemPrototype.h
  36. +++ b/src/server/game/Entities/Item/ItemPrototype.h
  37. @@ -741,9 +742,8 @@ struct ItemPrototype
  38.      float GetMaxDamage() const { return floor(getDPS() * float(Delay) / 1000.0f * 1.3f + 0.5f); }
  39.  
  40.      bool IsPotion() const { return Class == ITEM_CLASS_CONSUMABLE && SubClass == ITEM_SUBCLASS_POTION; }
  41. -    bool IsWeaponVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_WEAPON_ENCHANTMENT; }
  42. -    bool IsArmorVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_ARMOR_ENCHANTMENT; }
  43. -    bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && (Flags & ITEM_PROTO_FLAG_CONJURED); }
  44. +   bool IsVellum() const { return (Class == ITEM_CLASS_TRADE_GOODS && (SubClass == ITEM_SUBCLASS_WEAPON_ENCHANTMENT || SubClass == ITEM_SUBCLASS_ARMOR_ENCHANTMENT));}
  45. +   bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && (Flags & ITEM_PROTO_FLAG_CONJURED); }
  46.  };
  47.  
  48.  struct ItemLocale
  49. diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
  50. index 2f75067..a8f5665 100644
  51. --- a/src/server/game/Spells/Spell.cpp
  52. +++ b/src/server/game/Spells/Spell.cpp
  53. @@ -6420,8 +6420,8 @@ SpellCastResult Spell::CheckItems()
  54.              }
  55.              case SPELL_EFFECT_ENCHANT_ITEM:
  56.                  if (m_spellInfo->EffectItemType[i] && m_targets.getItemTarget()
  57. -                    && (m_targets.getItemTarget()->IsWeaponVellum() || m_targets.getItemTarget()->IsArmorVellum()))
  58. -                {
  59. +                   && m_targets.getItemTarget()->IsVellum())
  60. +               {
  61.                      // cannot enchant vellum for other player
  62.                      if (m_targets.getItemTarget()->GetOwner() != m_caster)
  63.                          return SPELL_FAILED_NOT_TRADEABLE;
  64. diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
  65. index ecf2d3a..45a7e75 100644
  66. --- a/src/server/game/Spells/SpellEffects.cpp
  67. +++ b/src/server/game/Spells/SpellEffects.cpp
  68. @@ -3988,8 +3988,8 @@ void Spell::EffectEnchantItemPerm(SpellEffIndex effIndex)
  69.      Player* p_caster = (Player*)m_caster;
  70.  
  71.      // Handle vellums
  72. -    if (itemTarget->IsWeaponVellum() || itemTarget->IsArmorVellum())
  73. -    {
  74. +    if (itemTarget->IsVellum())
  75. +   {
  76.          // destroy one vellum from stack
  77.          uint32 count = 1;
  78.          p_caster->DestroyItemCount(itemTarget, count, true);
Advertisement
Add Comment
Please, Sign In to add comment