AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
npc_professions.cpp File Reference
#include "CreatureScript.h"
#include "GameObjectScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellInfo.h"
#include "SpellMgr.h"

Go to the source code of this file.

Classes

class  npc_prof_alchemy
 
class  npc_prof_blacksmith
 
class  npc_prof_leather
 
class  npc_prof_tailor
 
class  go_evil_book_for_dummies
 

Macros

#define TALK_MUST_UNLEARN_WEAPON   "You must forget your weapon type specialty before I can help you. Go to Everlook in Winterspring and seek help there."
 
#define TALK_HAMMER_LEARN   "Ah, a seasoned veteran you once were. I know you are capable, you merely need to ask and I shall teach you the way of the hammersmith."
 
#define TALK_AXE_LEARN   "Ah, a seasoned veteran you once were. I know you are capable, you merely need to ask and I shall teach you the way of the axesmith."
 
#define TALK_SWORD_LEARN   "Ah, a seasoned veteran you once were. I know you are capable, you merely need to ask and I shall teach you the way of the swordsmith."
 
#define TALK_HAMMER_UNLEARN   "Forgetting your Hammersmithing skill is not something to do lightly. If you choose to abandon it you will forget all recipes that require Hammersmithing to create!"
 
#define TALK_AXE_UNLEARN   "Forgetting your Axesmithing skill is not something to do lightly. If you choose to abandon it you will forget all recipes that require Axesmithing to create!"
 
#define TALK_SWORD_UNLEARN   "Forgetting your Swordsmithing skill is not something to do lightly. If you choose to abandon it you will forget all recipes that require Swordsmithing to create!"
 
#define GOSSIP_SENDER_LEARN   50
 
#define GOSSIP_SENDER_UNLEARN   51
 
#define GOSSIP_SENDER_CHECK   52
 
#define GOSSIP_LEARN_POTION   "Please teach me how to become a Master of Potions, Lauranna"
 
#define GOSSIP_UNLEARN_POTION   "I wish to unlearn Potion Mastery"
 
#define GOSSIP_LEARN_TRANSMUTE   "Please teach me how to become a Master of Transmutations, Zarevhi"
 
#define GOSSIP_UNLEARN_TRANSMUTE   "I wish to unlearn Transmutation Mastery"
 
#define GOSSIP_LEARN_ELIXIR   "Please teach me how to become a Master of Elixirs, Lorokeem"
 
#define GOSSIP_UNLEARN_ELIXIR   "I wish to unlearn Elixir Mastery"
 
#define BOX_UNLEARN_ALCHEMY_SPEC   "Do you really want to unlearn your alchemy specialty and lose all associated recipes? \n Cost: "
 
#define GOSSIP_WEAPON_LEARN   "Please teach me how to become a Weaponsmith"
 
#define GOSSIP_WEAPON_UNLEARN   "I wish to unlearn the art of Weaponsmithing"
 
#define GOSSIP_ARMOR_LEARN   "Please teach me how to become a Armorsmith"
 
#define GOSSIP_ARMOR_UNLEARN   "I wish to unlearn the art of Armorsmithing"
 
#define GOSSIP_UNLEARN_SMITH_SPEC   "I wish to unlearn my blacksmith specialty"
 
#define BOX_UNLEARN_ARMORORWEAPON   "Do you really want to unlearn your blacksmith specialty and lose all associated recipes? \n Cost: "
 
#define GOSSIP_LEARN_HAMMER   "Please teach me how to become a Hammersmith, Lilith"
 
#define GOSSIP_UNLEARN_HAMMER   "I wish to unlearn Hammersmithing"
 
#define GOSSIP_LEARN_AXE   "Please teach me how to become a Axesmith, Kilram"
 
#define GOSSIP_UNLEARN_AXE   "I wish to unlearn Axesmithing"
 
#define GOSSIP_LEARN_SWORD   "Please teach me how to become a Swordsmith, Seril"
 
#define GOSSIP_UNLEARN_SWORD   "I wish to unlearn Swordsmithing"
 
#define BOX_UNLEARN_WEAPON_SPEC   "Do you really want to unlearn your weaponsmith specialty and lose all associated recipes? \n Cost: "
 
#define GOSSIP_LEARN_SPELLFIRE   "Please teach me how to become a Spellcloth tailor"
 
#define GOSSIP_UNLEARN_SPELLFIRE   "I wish to unlearn Spellfire Tailoring"
 
#define GOSSIP_LEARN_MOONCLOTH   "Please teach me how to become a Mooncloth tailor"
 
#define GOSSIP_UNLEARN_MOONCLOTH   "I wish to unlearn Mooncloth Tailoring"
 
#define GOSSIP_LEARN_SHADOWEAVE   "Please teach me how to become a Shadoweave tailor"
 
#define GOSSIP_UNLEARN_SHADOWEAVE   "I wish to unlearn Shadoweave Tailoring"
 
#define BOX_UNLEARN_TAILOR_SPEC   "Do you really want to unlearn your tailoring specialty and lose all associated recipes? \n Cost: "
 
#define GOSSIP_LEARN_GOBLIN   "I am absolutely certain that i want to learn Goblin engineering"
 
#define GOSSIP_LEARN_GNOMISH   "I am absolutely certain that i want to learn Gnomish engineering"
 
#define GOSSIP_UNLEARN_GOBLIN   "I wish to unlearn Goblin engineering"
 
#define GOSSIP_UNLEARN_GNOMISH   "I wish to unlearn Gnomish engineering"
 
#define BOX_UNLEARN_ENGIN_SPEC   "Do you really want to unlearn your engineering specialty and lose all associated recipes? \n Cost: "
 
#define BOX_LEARN_ENGIN_SPEC   "Do you really want to learn this engineering specialty? \n Cost: "
 

Enumerations

enum  ProfessionSpells {
  S_WEAPON = 9787 ,
  S_ARMOR = 9788 ,
  S_HAMMER = 17040 ,
  S_AXE = 17041 ,
  S_SWORD = 17039 ,
  S_LEARN_WEAPON = 9789 ,
  S_LEARN_ARMOR = 9790 ,
  S_LEARN_HAMMER = 39099 ,
  S_LEARN_AXE = 39098 ,
  S_LEARN_SWORD = 39097 ,
  S_UNLEARN_WEAPON = 36436 ,
  S_UNLEARN_ARMOR = 36435 ,
  S_UNLEARN_HAMMER = 36441 ,
  S_UNLEARN_AXE = 36439 ,
  S_UNLEARN_SWORD = 36438 ,
  S_REP_ARMOR = 17451 ,
  S_REP_WEAPON = 17452 ,
  REP_ARMOR = 46 ,
  REP_WEAPON = 289 ,
  REP_HAMMER = 569 ,
  REP_AXE = 570 ,
  REP_SWORD = 571 ,
  S_DRAGON = 10656 ,
  S_ELEMENTAL = 10658 ,
  S_TRIBAL = 10660 ,
  S_LEARN_DRAGON = 10657 ,
  S_LEARN_ELEMENTAL = 10659 ,
  S_LEARN_TRIBAL = 10661 ,
  S_UNLEARN_DRAGON = 36434 ,
  S_UNLEARN_ELEMENTAL = 36328 ,
  S_UNLEARN_TRIBAL = 36433 ,
  S_GOBLIN = 20222 ,
  S_GNOMISH = 20219 ,
  S_LEARN_GOBLIN = 20221 ,
  S_LEARN_GNOMISH = 20220 ,
  S_SPELLFIRE = 26797 ,
  S_MOONCLOTH = 26798 ,
  S_SHADOWEAVE = 26801 ,
  S_UNLEARN_GOBLIN = 68334 ,
  S_UNLEARN_GNOMISH = 68333 ,
  S_LEARN_SPELLFIRE = 26796 ,
  S_LEARN_MOONCLOTH = 26799 ,
  S_LEARN_SHADOWEAVE = 26800 ,
  S_UNLEARN_SPELLFIRE = 41299 ,
  S_UNLEARN_MOONCLOTH = 41558 ,
  S_UNLEARN_SHADOWEAVE = 41559 ,
  S_TRANSMUTE = 28672 ,
  S_ELIXIR = 28677 ,
  S_POTION = 28675 ,
  S_LEARN_TRANSMUTE = 28674 ,
  S_LEARN_ELIXIR = 28678 ,
  S_LEARN_POTION = 28676 ,
  S_UNLEARN_TRANSMUTE = 41565 ,
  S_UNLEARN_ELIXIR = 41564 ,
  S_UNLEARN_POTION = 41563
}
 
enum  SpecializationTrainers {
  N_TRAINER_TRANSMUTE = 22427 ,
  N_TRAINER_ELIXIR = 19052 ,
  N_TRAINER_POTION = 17909 ,
  N_TRAINER_SMITHOMNI1 = 11145 ,
  N_TRAINER_SMITHOMNI2 = 11176 ,
  N_TRAINER_WEAPON1 = 11146 ,
  N_TRAINER_WEAPON2 = 11178 ,
  N_TRAINER_ARMOR1 = 5164 ,
  N_TRAINER_ARMOR2 = 11177 ,
  N_TRAINER_HAMMER = 11191 ,
  N_TRAINER_AXE = 11192 ,
  N_TRAINER_SWORD = 11193 ,
  N_TRAINER_DRAGON1 = 7866 ,
  N_TRAINER_DRAGON2 = 7867 ,
  N_TRAINER_ELEMENTAL1 = 7868 ,
  N_TRAINER_ELEMENTAL2 = 7869 ,
  N_TRAINER_TRIBAL1 = 7870 ,
  N_TRAINER_TRIBAL2 = 7871 ,
  N_TRAINER_SPELLFIRE = 22213 ,
  N_TRAINER_MOONCLOTH = 22208 ,
  N_TRAINER_SHADOWEAVE = 22212
}
 
enum  SpecializationQuests {
  Q_MASTER_TRANSMUTE = 10899 ,
  Q_MASTER_ELIXIR = 10902 ,
  Q_MASTER_POTION = 10897 ,
  Q_ARMORSMITH_ALLIANCE = 5283 ,
  Q_WEAPONSMITH_ALLIANCE = 5284 ,
  Q_ARMORSMITH_HORDE = 5301 ,
  Q_WEAPONSMITH_HORDE = 5302
}
 
enum  Gossips {
  GOSSIP_MENU_PETER_GALEN = 3067 ,
  GOSSIP_MENU_THORKAF_DRAGONEYE = 3068 ,
  GOSSIP_MENU_BRUMN_WINTERHOOF = 3069 ,
  GOSSIP_MENU_SARAH_TANNER = 3070 ,
  GOSSIP_MENU_CARYSSIA_MOONHUNTER = 3072 ,
  GOSSIP_MENU_SEJIB = 3073 ,
  GOSSIP_MENU_UNLEARN_CONFIRM_DRAGONSCALE = 3075 ,
  GOSSIP_MENU_UNLEARN_CONFIRM_ELEMENTAL = 3076 ,
  GOSSIP_MENU_UNLEARN_CONFIRM_TRIBAL = 3077 ,
  GOSSIP_MENU_OPTION_TRAIN = 0 ,
  GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_DRAGONSCALE = 1 ,
  GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_ELEMENTAL = 1 ,
  GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_TRIBAL = 1 ,
  GOSSIP_TEXT_UNLEARN_CONFIRM_DRAGONSCALE = 10304 ,
  GOSSIP_TEXT_UNLEARN_CONFIRM_ELEMENTAL = 10302 ,
  GOSSIP_TEXT_UNLEARN_CONFIRM_TRIBAL = 10303 ,
  GOSSIP_MENU_GO_SOOTHSAYING_FOR_DUMMIES = 7058 ,
  GOSSIP_MENU_OPTION_GO_LEARN_DRAGONSCALE = 4 ,
  GOSSIP_MENU_OPTION_GO_LEARN_ELEMENTAL = 5 ,
  GOSSIP_MENU_OPTION_GO_LEARN_TRIBAL = 6
}
 

Functions

int32 DoLearnCost (Player *)
 
int32 DoHighUnlearnCost (Player *)
 
int32 DoMedUnlearnCost (Player *player)
 
int32 DoLowUnlearnCost (Player *player)
 
bool EquippedOk (Player *player, uint32 spellId)
 
void ProfessionUnlearnSpells (Player *player, uint32 type)
 
void ProcessCastaction (Player *player, Creature *creature, uint32 spellId, uint32 triggeredSpellId, int32 cost)
 
void ProcessUnlearnAction (Player *player, Creature *creature, uint32 spellId, uint32 alternativeSpellId, int32 cost)
 
void AddSC_npc_professions ()
 

Macro Definition Documentation

◆ BOX_LEARN_ENGIN_SPEC

#define BOX_LEARN_ENGIN_SPEC   "Do you really want to learn this engineering specialty? \n Cost: "

◆ BOX_UNLEARN_ALCHEMY_SPEC

#define BOX_UNLEARN_ALCHEMY_SPEC   "Do you really want to unlearn your alchemy specialty and lose all associated recipes? \n Cost: "

◆ BOX_UNLEARN_ARMORORWEAPON

#define BOX_UNLEARN_ARMORORWEAPON   "Do you really want to unlearn your blacksmith specialty and lose all associated recipes? \n Cost: "

◆ BOX_UNLEARN_ENGIN_SPEC

#define BOX_UNLEARN_ENGIN_SPEC   "Do you really want to unlearn your engineering specialty and lose all associated recipes? \n Cost: "

◆ BOX_UNLEARN_TAILOR_SPEC

#define BOX_UNLEARN_TAILOR_SPEC   "Do you really want to unlearn your tailoring specialty and lose all associated recipes? \n Cost: "

◆ BOX_UNLEARN_WEAPON_SPEC

#define BOX_UNLEARN_WEAPON_SPEC   "Do you really want to unlearn your weaponsmith specialty and lose all associated recipes? \n Cost: "

◆ GOSSIP_ARMOR_LEARN

#define GOSSIP_ARMOR_LEARN   "Please teach me how to become a Armorsmith"

◆ GOSSIP_ARMOR_UNLEARN

#define GOSSIP_ARMOR_UNLEARN   "I wish to unlearn the art of Armorsmithing"

◆ GOSSIP_LEARN_AXE

#define GOSSIP_LEARN_AXE   "Please teach me how to become a Axesmith, Kilram"

◆ GOSSIP_LEARN_ELIXIR

#define GOSSIP_LEARN_ELIXIR   "Please teach me how to become a Master of Elixirs, Lorokeem"

◆ GOSSIP_LEARN_GNOMISH

#define GOSSIP_LEARN_GNOMISH   "I am absolutely certain that i want to learn Gnomish engineering"

◆ GOSSIP_LEARN_GOBLIN

#define GOSSIP_LEARN_GOBLIN   "I am absolutely certain that i want to learn Goblin engineering"

◆ GOSSIP_LEARN_HAMMER

#define GOSSIP_LEARN_HAMMER   "Please teach me how to become a Hammersmith, Lilith"

◆ GOSSIP_LEARN_MOONCLOTH

#define GOSSIP_LEARN_MOONCLOTH   "Please teach me how to become a Mooncloth tailor"

◆ GOSSIP_LEARN_POTION

#define GOSSIP_LEARN_POTION   "Please teach me how to become a Master of Potions, Lauranna"

◆ GOSSIP_LEARN_SHADOWEAVE

#define GOSSIP_LEARN_SHADOWEAVE   "Please teach me how to become a Shadoweave tailor"

◆ GOSSIP_LEARN_SPELLFIRE

#define GOSSIP_LEARN_SPELLFIRE   "Please teach me how to become a Spellcloth tailor"

◆ GOSSIP_LEARN_SWORD

#define GOSSIP_LEARN_SWORD   "Please teach me how to become a Swordsmith, Seril"

◆ GOSSIP_LEARN_TRANSMUTE

#define GOSSIP_LEARN_TRANSMUTE   "Please teach me how to become a Master of Transmutations, Zarevhi"

◆ GOSSIP_SENDER_CHECK

#define GOSSIP_SENDER_CHECK   52

◆ GOSSIP_SENDER_LEARN

#define GOSSIP_SENDER_LEARN   50

◆ GOSSIP_SENDER_UNLEARN

#define GOSSIP_SENDER_UNLEARN   51

◆ GOSSIP_UNLEARN_AXE

#define GOSSIP_UNLEARN_AXE   "I wish to unlearn Axesmithing"

◆ GOSSIP_UNLEARN_ELIXIR

#define GOSSIP_UNLEARN_ELIXIR   "I wish to unlearn Elixir Mastery"

◆ GOSSIP_UNLEARN_GNOMISH

#define GOSSIP_UNLEARN_GNOMISH   "I wish to unlearn Gnomish engineering"

◆ GOSSIP_UNLEARN_GOBLIN

#define GOSSIP_UNLEARN_GOBLIN   "I wish to unlearn Goblin engineering"

◆ GOSSIP_UNLEARN_HAMMER

#define GOSSIP_UNLEARN_HAMMER   "I wish to unlearn Hammersmithing"

◆ GOSSIP_UNLEARN_MOONCLOTH

#define GOSSIP_UNLEARN_MOONCLOTH   "I wish to unlearn Mooncloth Tailoring"

◆ GOSSIP_UNLEARN_POTION

#define GOSSIP_UNLEARN_POTION   "I wish to unlearn Potion Mastery"

◆ GOSSIP_UNLEARN_SHADOWEAVE

#define GOSSIP_UNLEARN_SHADOWEAVE   "I wish to unlearn Shadoweave Tailoring"

◆ GOSSIP_UNLEARN_SMITH_SPEC

#define GOSSIP_UNLEARN_SMITH_SPEC   "I wish to unlearn my blacksmith specialty"

◆ GOSSIP_UNLEARN_SPELLFIRE

#define GOSSIP_UNLEARN_SPELLFIRE   "I wish to unlearn Spellfire Tailoring"

◆ GOSSIP_UNLEARN_SWORD

#define GOSSIP_UNLEARN_SWORD   "I wish to unlearn Swordsmithing"

◆ GOSSIP_UNLEARN_TRANSMUTE

#define GOSSIP_UNLEARN_TRANSMUTE   "I wish to unlearn Transmutation Mastery"

◆ GOSSIP_WEAPON_LEARN

#define GOSSIP_WEAPON_LEARN   "Please teach me how to become a Weaponsmith"

◆ GOSSIP_WEAPON_UNLEARN

#define GOSSIP_WEAPON_UNLEARN   "I wish to unlearn the art of Weaponsmithing"

◆ TALK_AXE_LEARN

#define TALK_AXE_LEARN   "Ah, a seasoned veteran you once were. I know you are capable, you merely need to ask and I shall teach you the way of the axesmith."

◆ TALK_AXE_UNLEARN

#define TALK_AXE_UNLEARN   "Forgetting your Axesmithing skill is not something to do lightly. If you choose to abandon it you will forget all recipes that require Axesmithing to create!"

◆ TALK_HAMMER_LEARN

#define TALK_HAMMER_LEARN   "Ah, a seasoned veteran you once were. I know you are capable, you merely need to ask and I shall teach you the way of the hammersmith."

◆ TALK_HAMMER_UNLEARN

#define TALK_HAMMER_UNLEARN   "Forgetting your Hammersmithing skill is not something to do lightly. If you choose to abandon it you will forget all recipes that require Hammersmithing to create!"

◆ TALK_MUST_UNLEARN_WEAPON

#define TALK_MUST_UNLEARN_WEAPON   "You must forget your weapon type specialty before I can help you. Go to Everlook in Winterspring and seek help there."

◆ TALK_SWORD_LEARN

#define TALK_SWORD_LEARN   "Ah, a seasoned veteran you once were. I know you are capable, you merely need to ask and I shall teach you the way of the swordsmith."

◆ TALK_SWORD_UNLEARN

#define TALK_SWORD_UNLEARN   "Forgetting your Swordsmithing skill is not something to do lightly. If you choose to abandon it you will forget all recipes that require Swordsmithing to create!"

Enumeration Type Documentation

◆ Gossips

enum Gossips
Enumerator
GOSSIP_MENU_PETER_GALEN 
GOSSIP_MENU_THORKAF_DRAGONEYE 
GOSSIP_MENU_BRUMN_WINTERHOOF 
GOSSIP_MENU_SARAH_TANNER 
GOSSIP_MENU_CARYSSIA_MOONHUNTER 
GOSSIP_MENU_SEJIB 
GOSSIP_MENU_UNLEARN_CONFIRM_DRAGONSCALE 
GOSSIP_MENU_UNLEARN_CONFIRM_ELEMENTAL 
GOSSIP_MENU_UNLEARN_CONFIRM_TRIBAL 
GOSSIP_MENU_OPTION_TRAIN 
GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_DRAGONSCALE 
GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_ELEMENTAL 
GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_TRIBAL 
GOSSIP_TEXT_UNLEARN_CONFIRM_DRAGONSCALE 
GOSSIP_TEXT_UNLEARN_CONFIRM_ELEMENTAL 
GOSSIP_TEXT_UNLEARN_CONFIRM_TRIBAL 
GOSSIP_MENU_GO_SOOTHSAYING_FOR_DUMMIES 
GOSSIP_MENU_OPTION_GO_LEARN_DRAGONSCALE 
GOSSIP_MENU_OPTION_GO_LEARN_ELEMENTAL 
GOSSIP_MENU_OPTION_GO_LEARN_TRIBAL 
225{
226 // Leatherworking
232 GOSSIP_MENU_SEJIB = 3073,
233
237
242
246
251
252};
@ GOSSIP_MENU_PETER_GALEN
Definition npc_professions.cpp:227
@ GOSSIP_MENU_UNLEARN_CONFIRM_ELEMENTAL
Definition npc_professions.cpp:235
@ GOSSIP_MENU_SARAH_TANNER
Definition npc_professions.cpp:230
@ GOSSIP_MENU_UNLEARN_CONFIRM_TRIBAL
Definition npc_professions.cpp:236
@ GOSSIP_TEXT_UNLEARN_CONFIRM_TRIBAL
Definition npc_professions.cpp:245
@ GOSSIP_MENU_OPTION_GO_LEARN_DRAGONSCALE
Definition npc_professions.cpp:248
@ GOSSIP_MENU_OPTION_GO_LEARN_TRIBAL
Definition npc_professions.cpp:250
@ GOSSIP_MENU_OPTION_TRAIN
Definition npc_professions.cpp:238
@ GOSSIP_TEXT_UNLEARN_CONFIRM_DRAGONSCALE
Definition npc_professions.cpp:243
@ GOSSIP_MENU_GO_SOOTHSAYING_FOR_DUMMIES
Definition npc_professions.cpp:247
@ GOSSIP_TEXT_UNLEARN_CONFIRM_ELEMENTAL
Definition npc_professions.cpp:244
@ GOSSIP_MENU_THORKAF_DRAGONEYE
Definition npc_professions.cpp:228
@ GOSSIP_MENU_OPTION_GO_LEARN_ELEMENTAL
Definition npc_professions.cpp:249
@ GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_TRIBAL
Definition npc_professions.cpp:241
@ GOSSIP_MENU_UNLEARN_CONFIRM_DRAGONSCALE
Definition npc_professions.cpp:234
@ GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_ELEMENTAL
Definition npc_professions.cpp:240
@ GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_DRAGONSCALE
Definition npc_professions.cpp:239
@ GOSSIP_MENU_BRUMN_WINTERHOOF
Definition npc_professions.cpp:229
@ GOSSIP_MENU_SEJIB
Definition npc_professions.cpp:232
@ GOSSIP_MENU_CARYSSIA_MOONHUNTER
Definition npc_professions.cpp:231

◆ ProfessionSpells

Enumerator
S_WEAPON 
S_ARMOR 
S_HAMMER 
S_AXE 
S_SWORD 
S_LEARN_WEAPON 
S_LEARN_ARMOR 
S_LEARN_HAMMER 
S_LEARN_AXE 
S_LEARN_SWORD 
S_UNLEARN_WEAPON 
S_UNLEARN_ARMOR 
S_UNLEARN_HAMMER 
S_UNLEARN_AXE 
S_UNLEARN_SWORD 
S_REP_ARMOR 
S_REP_WEAPON 
REP_ARMOR 
REP_WEAPON 
REP_HAMMER 
REP_AXE 
REP_SWORD 
S_DRAGON 
S_ELEMENTAL 
S_TRIBAL 
S_LEARN_DRAGON 
S_LEARN_ELEMENTAL 
S_LEARN_TRIBAL 
S_UNLEARN_DRAGON 
S_UNLEARN_ELEMENTAL 
S_UNLEARN_TRIBAL 
S_GOBLIN 
S_GNOMISH 
S_LEARN_GOBLIN 
S_LEARN_GNOMISH 
S_SPELLFIRE 
S_MOONCLOTH 
S_SHADOWEAVE 
S_UNLEARN_GOBLIN 
S_UNLEARN_GNOMISH 
S_LEARN_SPELLFIRE 
S_LEARN_MOONCLOTH 
S_LEARN_SHADOWEAVE 
S_UNLEARN_SPELLFIRE 
S_UNLEARN_MOONCLOTH 
S_UNLEARN_SHADOWEAVE 
S_TRANSMUTE 
S_ELIXIR 
S_POTION 
S_LEARN_TRANSMUTE 
S_LEARN_ELIXIR 
S_LEARN_POTION 
S_UNLEARN_TRANSMUTE 
S_UNLEARN_ELIXIR 
S_UNLEARN_POTION 
98{
99 S_WEAPON = 9787,
100 S_ARMOR = 9788,
101 S_HAMMER = 17040,
102 S_AXE = 17041,
103 S_SWORD = 17039,
104
105 S_LEARN_WEAPON = 9789,
106 S_LEARN_ARMOR = 9790,
107 S_LEARN_HAMMER = 39099,
108 S_LEARN_AXE = 39098,
109 S_LEARN_SWORD = 39097,
110
111 S_UNLEARN_WEAPON = 36436,
112 S_UNLEARN_ARMOR = 36435,
113 S_UNLEARN_HAMMER = 36441,
114 S_UNLEARN_AXE = 36439,
115 S_UNLEARN_SWORD = 36438,
116
117 S_REP_ARMOR = 17451,
118 S_REP_WEAPON = 17452,
119
120 REP_ARMOR = 46,
121 REP_WEAPON = 289,
122 REP_HAMMER = 569,
123 REP_AXE = 570,
124 REP_SWORD = 571,
125
126 S_DRAGON = 10656,
127 S_ELEMENTAL = 10658,
128 S_TRIBAL = 10660,
129
130 S_LEARN_DRAGON = 10657,
131 S_LEARN_ELEMENTAL = 10659,
132 S_LEARN_TRIBAL = 10661,
133
134 S_UNLEARN_DRAGON = 36434,
135 S_UNLEARN_ELEMENTAL = 36328,
136 S_UNLEARN_TRIBAL = 36433,
137
138 S_GOBLIN = 20222,
139 S_GNOMISH = 20219,
140
141 S_LEARN_GOBLIN = 20221,
142 S_LEARN_GNOMISH = 20220,
143
144 S_SPELLFIRE = 26797,
145 S_MOONCLOTH = 26798,
146 S_SHADOWEAVE = 26801,
147 S_UNLEARN_GOBLIN = 68334,
148 S_UNLEARN_GNOMISH = 68333,
149
150 S_LEARN_SPELLFIRE = 26796,
151 S_LEARN_MOONCLOTH = 26799,
152 S_LEARN_SHADOWEAVE = 26800,
153
154 S_UNLEARN_SPELLFIRE = 41299,
155 S_UNLEARN_MOONCLOTH = 41558,
156 S_UNLEARN_SHADOWEAVE = 41559,
157
158 S_TRANSMUTE = 28672,
159 S_ELIXIR = 28677,
160 S_POTION = 28675,
161
162 S_LEARN_TRANSMUTE = 28674,
163 S_LEARN_ELIXIR = 28678,
164 S_LEARN_POTION = 28676,
165
166 S_UNLEARN_TRANSMUTE = 41565,
167 S_UNLEARN_ELIXIR = 41564,
168 S_UNLEARN_POTION = 41563,
169};
@ S_LEARN_WEAPON
Definition npc_professions.cpp:105
@ S_GNOMISH
Definition npc_professions.cpp:139
@ S_LEARN_DRAGON
Definition npc_professions.cpp:130
@ S_LEARN_GNOMISH
Definition npc_professions.cpp:142
@ S_LEARN_GOBLIN
Definition npc_professions.cpp:141
@ S_AXE
Definition npc_professions.cpp:102
@ S_TRIBAL
Definition npc_professions.cpp:128
@ S_WEAPON
Definition npc_professions.cpp:99
@ S_GOBLIN
Definition npc_professions.cpp:138
@ S_REP_WEAPON
Definition npc_professions.cpp:118
@ S_SWORD
Definition npc_professions.cpp:103
@ S_UNLEARN_SWORD
Definition npc_professions.cpp:115
@ REP_HAMMER
Definition npc_professions.cpp:122
@ S_LEARN_POTION
Definition npc_professions.cpp:164
@ S_LEARN_MOONCLOTH
Definition npc_professions.cpp:151
@ S_LEARN_ELEMENTAL
Definition npc_professions.cpp:131
@ S_UNLEARN_WEAPON
Definition npc_professions.cpp:111
@ S_DRAGON
Definition npc_professions.cpp:126
@ S_MOONCLOTH
Definition npc_professions.cpp:145
@ S_UNLEARN_SPELLFIRE
Definition npc_professions.cpp:154
@ S_UNLEARN_TRANSMUTE
Definition npc_professions.cpp:166
@ S_UNLEARN_SHADOWEAVE
Definition npc_professions.cpp:156
@ S_LEARN_ARMOR
Definition npc_professions.cpp:106
@ S_LEARN_ELIXIR
Definition npc_professions.cpp:163
@ S_UNLEARN_TRIBAL
Definition npc_professions.cpp:136
@ S_HAMMER
Definition npc_professions.cpp:101
@ S_UNLEARN_HAMMER
Definition npc_professions.cpp:113
@ S_LEARN_HAMMER
Definition npc_professions.cpp:107
@ S_UNLEARN_DRAGON
Definition npc_professions.cpp:134
@ REP_SWORD
Definition npc_professions.cpp:124
@ S_LEARN_SPELLFIRE
Definition npc_professions.cpp:150
@ S_LEARN_TRANSMUTE
Definition npc_professions.cpp:162
@ S_LEARN_SHADOWEAVE
Definition npc_professions.cpp:152
@ S_SPELLFIRE
Definition npc_professions.cpp:144
@ S_ELEMENTAL
Definition npc_professions.cpp:127
@ S_UNLEARN_ELIXIR
Definition npc_professions.cpp:167
@ S_LEARN_AXE
Definition npc_professions.cpp:108
@ REP_ARMOR
Definition npc_professions.cpp:120
@ S_ELIXIR
Definition npc_professions.cpp:159
@ S_SHADOWEAVE
Definition npc_professions.cpp:146
@ S_UNLEARN_ELEMENTAL
Definition npc_professions.cpp:135
@ S_UNLEARN_GOBLIN
Definition npc_professions.cpp:147
@ S_TRANSMUTE
Definition npc_professions.cpp:158
@ S_UNLEARN_GNOMISH
Definition npc_professions.cpp:148
@ S_REP_ARMOR
Definition npc_professions.cpp:117
@ REP_AXE
Definition npc_professions.cpp:123
@ S_LEARN_SWORD
Definition npc_professions.cpp:109
@ S_UNLEARN_MOONCLOTH
Definition npc_professions.cpp:155
@ REP_WEAPON
Definition npc_professions.cpp:121
@ S_ARMOR
Definition npc_professions.cpp:100
@ S_UNLEARN_AXE
Definition npc_professions.cpp:114
@ S_UNLEARN_ARMOR
Definition npc_professions.cpp:112
@ S_UNLEARN_POTION
Definition npc_professions.cpp:168
@ S_POTION
Definition npc_professions.cpp:160
@ S_LEARN_TRIBAL
Definition npc_professions.cpp:132

◆ SpecializationQuests

Enumerator
Q_MASTER_TRANSMUTE 
Q_MASTER_ELIXIR 
Q_MASTER_POTION 
Q_ARMORSMITH_ALLIANCE 
Q_WEAPONSMITH_ALLIANCE 
Q_ARMORSMITH_HORDE 
Q_WEAPONSMITH_HORDE 
210{
211 /* Alchemy */
212 Q_MASTER_TRANSMUTE = 10899,
213 Q_MASTER_ELIXIR = 10902,
214 Q_MASTER_POTION = 10897,
215
216 /* Blacksmithing */
217 Q_ARMORSMITH_ALLIANCE = 5283, // The Art of the Armorsmith
218 Q_WEAPONSMITH_ALLIANCE = 5284, // The Way of the Weaponsmith
219 Q_ARMORSMITH_HORDE = 5301, // The Art of the Armorsmith
220 Q_WEAPONSMITH_HORDE = 5302, // The Way of the Weaponsmith
221};
@ Q_ARMORSMITH_ALLIANCE
Definition npc_professions.cpp:217
@ Q_ARMORSMITH_HORDE
Definition npc_professions.cpp:219
@ Q_MASTER_POTION
Definition npc_professions.cpp:214
@ Q_MASTER_TRANSMUTE
Definition npc_professions.cpp:212
@ Q_WEAPONSMITH_ALLIANCE
Definition npc_professions.cpp:218
@ Q_WEAPONSMITH_HORDE
Definition npc_professions.cpp:220
@ Q_MASTER_ELIXIR
Definition npc_professions.cpp:213

◆ SpecializationTrainers

Enumerator
N_TRAINER_TRANSMUTE 
N_TRAINER_ELIXIR 
N_TRAINER_POTION 
N_TRAINER_SMITHOMNI1 
N_TRAINER_SMITHOMNI2 
N_TRAINER_WEAPON1 
N_TRAINER_WEAPON2 
N_TRAINER_ARMOR1 
N_TRAINER_ARMOR2 
N_TRAINER_HAMMER 
N_TRAINER_AXE 
N_TRAINER_SWORD 
N_TRAINER_DRAGON1 
N_TRAINER_DRAGON2 
N_TRAINER_ELEMENTAL1 
N_TRAINER_ELEMENTAL2 
N_TRAINER_TRIBAL1 
N_TRAINER_TRIBAL2 
N_TRAINER_SPELLFIRE 
N_TRAINER_MOONCLOTH 
N_TRAINER_SHADOWEAVE 
175{
176 /* Alchemy */
177 N_TRAINER_TRANSMUTE = 22427, // Zarevhi
178 N_TRAINER_ELIXIR = 19052, // Lorokeem
179 N_TRAINER_POTION = 17909, // Lauranna Thar'well
180
181 /* Blacksmithing */
182 N_TRAINER_SMITHOMNI1 = 11145, // Myolor Sunderfury
183 N_TRAINER_SMITHOMNI2 = 11176, // Krathok Moltenfist
184 N_TRAINER_WEAPON1 = 11146, // Ironus Coldsteel
185 N_TRAINER_WEAPON2 = 11178, // Borgosh Corebender
186 N_TRAINER_ARMOR1 = 5164, // Grumnus Steelshaper
187 N_TRAINER_ARMOR2 = 11177, // Okothos Ironrager
188 N_TRAINER_HAMMER = 11191, // Lilith the Lithe
189 N_TRAINER_AXE = 11192, // Kilram
190 N_TRAINER_SWORD = 11193, // Seril Scourgebane
191
192 /* Leatherworking */
193 N_TRAINER_DRAGON1 = 7866, // Peter Galen
194 N_TRAINER_DRAGON2 = 7867, // Thorkaf Dragoneye
195 N_TRAINER_ELEMENTAL1 = 7868, // Sarah Tanner
196 N_TRAINER_ELEMENTAL2 = 7869, // Brumn Winterhoof
197 N_TRAINER_TRIBAL1 = 7870, // Caryssia Moonhunter
198 N_TRAINER_TRIBAL2 = 7871, // Se'Jib
199
200 /* Tailoring */
201 N_TRAINER_SPELLFIRE = 22213, // Gidge Spellweaver
202 N_TRAINER_MOONCLOTH = 22208, // Nasmara Moonsong
203 N_TRAINER_SHADOWEAVE = 22212, // Andrion Darkspinner
204};
@ N_TRAINER_TRANSMUTE
Definition npc_professions.cpp:177
@ N_TRAINER_SMITHOMNI1
Definition npc_professions.cpp:182
@ N_TRAINER_SMITHOMNI2
Definition npc_professions.cpp:183
@ N_TRAINER_AXE
Definition npc_professions.cpp:189
@ N_TRAINER_ELIXIR
Definition npc_professions.cpp:178
@ N_TRAINER_SHADOWEAVE
Definition npc_professions.cpp:203
@ N_TRAINER_ELEMENTAL1
Definition npc_professions.cpp:195
@ N_TRAINER_ARMOR1
Definition npc_professions.cpp:186
@ N_TRAINER_HAMMER
Definition npc_professions.cpp:188
@ N_TRAINER_TRIBAL1
Definition npc_professions.cpp:197
@ N_TRAINER_POTION
Definition npc_professions.cpp:179
@ N_TRAINER_WEAPON1
Definition npc_professions.cpp:184
@ N_TRAINER_DRAGON1
Definition npc_professions.cpp:193
@ N_TRAINER_MOONCLOTH
Definition npc_professions.cpp:202
@ N_TRAINER_ARMOR2
Definition npc_professions.cpp:187
@ N_TRAINER_SPELLFIRE
Definition npc_professions.cpp:201
@ N_TRAINER_DRAGON2
Definition npc_professions.cpp:194
@ N_TRAINER_WEAPON2
Definition npc_professions.cpp:185
@ N_TRAINER_SWORD
Definition npc_professions.cpp:190
@ N_TRAINER_ELEMENTAL2
Definition npc_professions.cpp:196
@ N_TRAINER_TRIBAL2
Definition npc_professions.cpp:198

Function Documentation

◆ AddSC_npc_professions()

void AddSC_npc_professions ( )
1253{
1254 new npc_prof_alchemy();
1255 new npc_prof_blacksmith();
1256 new npc_prof_leather();
1257 new npc_prof_tailor();
1259}
Definition npc_professions.cpp:1120
Definition npc_professions.cpp:463
Definition npc_professions.cpp:628
Definition npc_professions.cpp:850
Definition npc_professions.cpp:950

Referenced by AddWorldScripts().

◆ DoHighUnlearnCost()

◆ DoLearnCost()

◆ DoLowUnlearnCost()

int32 DoLowUnlearnCost ( Player *  player)
280{
281 uint8 level = player->GetLevel();
282 if (level < 66)
283 return 50000;
284 else
285 return 100000;
286}
std::uint8_t uint8
Definition Define.h:109
uint8 GetLevel() const
Definition Unit.h:1117

References Unit::GetLevel().

Referenced by npc_prof_blacksmith::SendActionMenu(), and npc_prof_blacksmith::SendConfirmUnlearn().

◆ DoMedUnlearnCost()

int32 DoMedUnlearnCost ( Player *  player)
269{
270 uint8 level = player->GetLevel();
271 if (level < 51)
272 return 250000;
273 else if (level < 66)
274 return 500000;
275 else
276 return 1000000;
277}

References Unit::GetLevel().

Referenced by npc_prof_leather::OnGossipSelect(), npc_prof_blacksmith::SendActionMenu(), and npc_prof_blacksmith::SendConfirmUnlearn().

◆ EquippedOk()

bool EquippedOk ( Player *  player,
uint32  spellId 
)
289{
290 SpellInfo const* spell = sSpellMgr->GetSpellInfo(spellId);
291 if (!spell)
292 return false;
293
294 for (uint8 i = 0; i < 3; ++i)
295 {
296 uint32 reqSpell = spell->Effects[i].TriggerSpell;
297 if (!reqSpell)
298 continue;
299
300 Item* item = nullptr;
302 {
303 item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, j);
304 if (item && item->GetTemplate()->RequiredSpell == reqSpell)
305 {
306 //player has item equipped that require specialty. Not allow to unlearn, player has to unequip first
307 LOG_DEBUG("scripts.ai", "Player attempt to unlearn spell {}, but item {} is equipped.", reqSpell, item->GetEntry());
308 return false;
309 }
310 }
311 }
312 return true;
313}
std::uint32_t uint32
Definition Define.h:107
#define LOG_DEBUG(filterType__,...)
Definition Log.h:157
@ EQUIPMENT_SLOT_END
Definition Player.h:681
@ EQUIPMENT_SLOT_START
Definition Player.h:661
#define INVENTORY_SLOT_BAG_0
Definition Player.h:657
#define sSpellMgr
Definition SpellMgr.h:851
Definition Item.h:220
ItemTemplate const * GetTemplate() const
Definition Item.cpp:538
uint32 GetEntry() const
Definition Object.h:123
Item * GetItemByPos(uint16 pos) const
Definition PlayerStorage.cpp:445
Definition SpellInfo.h:340
std::array< SpellEffectInfo, MAX_SPELL_EFFECTS > Effects
Definition SpellInfo.h:417
uint32 RequiredSpell
Definition ItemTemplate.h:639

References SpellInfo::Effects, EQUIPMENT_SLOT_END, EQUIPMENT_SLOT_START, Object::GetEntry(), Player::GetItemByPos(), Item::GetTemplate(), INVENTORY_SLOT_BAG_0, LOG_DEBUG, ItemTemplate::RequiredSpell, and sSpellMgr.

Referenced by ProcessUnlearnAction().

◆ ProcessCastaction()

void ProcessCastaction ( Player *  player,
Creature *  creature,
uint32  spellId,
uint32  triggeredSpellId,
int32  cost 
)
421{
422 if ((!spellId || !player->HasSpell(spellId)) && player->HasEnoughMoney(cost))
423 {
424 player->CastSpell(player, triggeredSpellId, true);
425 player->ModifyMoney(-cost);
426
427 // xinef: save spells!
428 player->SaveToDB(false, false);
429 }
430 else
431 player->SendBuyError(BUY_ERR_NOT_ENOUGHT_MONEY, creature, 0, 0);
432 CloseGossipMenuFor(player);
433}
@ BUY_ERR_NOT_ENOUGHT_MONEY
Definition Item.h:143
void CloseGossipMenuFor(Player *player)
Definition ScriptedGossip.cpp:56
void SaveToDB(bool create, bool logout)
Definition PlayerStorage.cpp:7238
bool ModifyMoney(int32 amount, bool sendError=true)
Definition Player.cpp:11711
bool HasEnoughMoney(uint32 amount) const
Definition Player.h:1633
void SendBuyError(BuyResult msg, Creature *creature, uint32 item, uint32 param)
Definition PlayerStorage.cpp:4174
bool HasSpell(uint32 spell) const override
Definition Player.cpp:4061
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1378

References BUY_ERR_NOT_ENOUGHT_MONEY, Unit::CastSpell(), CloseGossipMenuFor(), Player::HasEnoughMoney(), Player::HasSpell(), Player::ModifyMoney(), Player::SaveToDB(), and Player::SendBuyError().

Referenced by npc_prof_alchemy::SendActionMenu(), npc_prof_blacksmith::SendActionMenu(), npc_prof_tailor::SendActionMenu(), and go_evil_book_for_dummies::SendActionMenu().

◆ ProcessUnlearnAction()

void ProcessUnlearnAction ( Player *  player,
Creature *  creature,
uint32  spellId,
uint32  alternativeSpellId,
int32  cost 
)
436{
437 if (EquippedOk(player, spellId))
438 {
439 if (player->HasEnoughMoney(cost))
440 {
441 player->CastSpell(player, spellId, true);
442 ProfessionUnlearnSpells(player, spellId);
443 player->ModifyMoney(-cost);
444 if (alternativeSpellId)
445 creature->CastSpell(player, alternativeSpellId, true);
446
447 // xinef: save spells!
448 player->SaveToDB(false, false);
449 }
450 else
451 player->SendBuyError(BUY_ERR_NOT_ENOUGHT_MONEY, creature, 0, 0);
452 }
453 else
454 player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, nullptr, nullptr);
455 CloseGossipMenuFor(player);
456}
@ EQUIP_ERR_CANT_DO_RIGHT_NOW
Definition Item.h:86
void SendEquipError(InventoryResult msg, Item *pItem, Item *pItem2=nullptr, uint32 itemid=0)
Definition PlayerStorage.cpp:4131
void ProfessionUnlearnSpells(Player *player, uint32 type)
Definition npc_professions.cpp:319
bool EquippedOk(Player *player, uint32 spellId)
Definition npc_professions.cpp:288

References BUY_ERR_NOT_ENOUGHT_MONEY, Unit::CastSpell(), CloseGossipMenuFor(), EQUIP_ERR_CANT_DO_RIGHT_NOW, EquippedOk(), Player::HasEnoughMoney(), Player::ModifyMoney(), ProfessionUnlearnSpells(), Player::SaveToDB(), Player::SendBuyError(), and Player::SendEquipError().

Referenced by npc_prof_leather::OnGossipSelect(), npc_prof_alchemy::SendActionMenu(), npc_prof_blacksmith::SendActionMenu(), npc_prof_tailor::SendActionMenu(), and go_evil_book_for_dummies::SendActionMenu().

◆ ProfessionUnlearnSpells()

void ProfessionUnlearnSpells ( Player *  player,
uint32  type 
)
320{
321 switch (type)
322 {
323 case S_UNLEARN_WEAPON: // S_UNLEARN_WEAPON
324 player->removeSpell(36125, SPEC_MASK_ALL, false); // Light Earthforged Blade
325 player->removeSpell(36128, SPEC_MASK_ALL, false); // Light Emberforged Hammer
326 player->removeSpell(36126, SPEC_MASK_ALL, false); // Light Skyforged Axe
327 break;
328 case S_UNLEARN_ARMOR: // S_UNLEARN_ARMOR
329 player->removeSpell(36122, SPEC_MASK_ALL, false); // Earthforged Leggings
330 player->removeSpell(36129, SPEC_MASK_ALL, false); // Heavy Earthforged Breastplate
331 player->removeSpell(36130, SPEC_MASK_ALL, false); // Stormforged Hauberk
332 player->removeSpell(34533, SPEC_MASK_ALL, false); // Breastplate of Kings
333 player->removeSpell(34529, SPEC_MASK_ALL, false); // Nether Chain Shirt
334 player->removeSpell(34534, SPEC_MASK_ALL, false); // Bulwark of Kings
335 player->removeSpell(36257, SPEC_MASK_ALL, false); // Bulwark of the Ancient Kings
336 player->removeSpell(36256, SPEC_MASK_ALL, false); // Embrace of the Twisting Nether
337 player->removeSpell(34530, SPEC_MASK_ALL, false); // Twisting Nether Chain Shirt
338 player->removeSpell(36124, SPEC_MASK_ALL, false); // Windforged Leggings
339 break;
340 case S_UNLEARN_HAMMER: // S_UNLEARN_HAMMER
341 player->removeSpell(36262, SPEC_MASK_ALL, false); // Dragonstrike
342 player->removeSpell(34546, SPEC_MASK_ALL, false); // Dragonmaw
343 player->removeSpell(34545, SPEC_MASK_ALL, false); // Drakefist Hammer
344 player->removeSpell(36136, SPEC_MASK_ALL, false); // Lavaforged Warhammer
345 player->removeSpell(34547, SPEC_MASK_ALL, false); // Thunder
346 player->removeSpell(34567, SPEC_MASK_ALL, false); // Deep Thunder
347 player->removeSpell(36263, SPEC_MASK_ALL, false); // Stormherald
348 player->removeSpell(36137, SPEC_MASK_ALL, false); // Great Earthforged Hammer
349 break;
350 case S_UNLEARN_AXE: // S_UNLEARN_AXE
351 player->removeSpell(36260, SPEC_MASK_ALL, false); // Wicked Edge of the Planes
352 player->removeSpell(34562, SPEC_MASK_ALL, false); // Black Planar Edge
353 player->removeSpell(34541, SPEC_MASK_ALL, false); // The Planar Edge
354 player->removeSpell(36134, SPEC_MASK_ALL, false); // Stormforged Axe
355 player->removeSpell(36135, SPEC_MASK_ALL, false); // Skyforged Great Axe
356 player->removeSpell(36261, SPEC_MASK_ALL, false); // Bloodmoon
357 player->removeSpell(34543, SPEC_MASK_ALL, false); // Lunar Crescent
358 player->removeSpell(34544, SPEC_MASK_ALL, false); // Mooncleaver
359 break;
360 case S_UNLEARN_SWORD: // S_UNLEARN_SWORD
361 player->removeSpell(36258, SPEC_MASK_ALL, false); // Blazefury
362 player->removeSpell(34537, SPEC_MASK_ALL, false); // Blazeguard
363 player->removeSpell(34535, SPEC_MASK_ALL, false); // Fireguard
364 player->removeSpell(36131, SPEC_MASK_ALL, false); // Windforged Rapier
365 player->removeSpell(36133, SPEC_MASK_ALL, false); // Stoneforged Claymore
366 player->removeSpell(34538, SPEC_MASK_ALL, false); // Lionheart Blade
367 player->removeSpell(34540, SPEC_MASK_ALL, false); // Lionheart Champion
368 player->removeSpell(36259, SPEC_MASK_ALL, false); // Lionheart Executioner
369 break;
370 case S_UNLEARN_DRAGON: // S_UNLEARN_DRAGON
371 player->removeSpell(10619, SPEC_MASK_ALL, false); // Dragonscale Guantlets
372 player->removeSpell(10650, SPEC_MASK_ALL, false); // Dragonscale Breastplate
373 player->removeSpell(36076, SPEC_MASK_ALL, false); // Dragonstrike Leggings
374 player->removeSpell(24655, SPEC_MASK_ALL, false); // Green Dragonscale Gauntlets
375 player->removeSpell(24654, SPEC_MASK_ALL, false); // Blue Dragonscale Leggings
376 player->removeSpell(36079, SPEC_MASK_ALL, false); // Golden Dragonstrike Breastplate
377 player->removeSpell(35576, SPEC_MASK_ALL, false); // Ebon Netherscale Belt
378 player->removeSpell(35577, SPEC_MASK_ALL, false); // Ebon Netherscale Bracers
379 player->removeSpell(35575, SPEC_MASK_ALL, false); // Ebon Netherscale Breastplate
380 player->removeSpell(35582, SPEC_MASK_ALL, false); // Netherstrike Belt
381 player->removeSpell(35584, SPEC_MASK_ALL, false); // Netherstrike Bracers
382 player->removeSpell(35580, SPEC_MASK_ALL, false); // Netherstrike Breastplate
383 break;
384 case S_UNLEARN_ELEMENTAL: // S_UNLEARN_ELEMENTAL
385 player->removeSpell(36074, SPEC_MASK_ALL, false); // Blackstorm Leggings
386 player->removeSpell(36077, SPEC_MASK_ALL, false); // Primalstorm Breastplate
387 player->removeSpell(35590, SPEC_MASK_ALL, false); // Primalstrike Belt
388 player->removeSpell(35591, SPEC_MASK_ALL, false); // Primalstrike Bracers
389 player->removeSpell(35589, SPEC_MASK_ALL, false); // Primalstrike Vest
390 player->removeSpell(10630, SPEC_MASK_ALL, false); // Gauntlets of the Sea
391 player->removeSpell(10632, SPEC_MASK_ALL, false); // Helm of Fire
392 break;
393 case S_UNLEARN_TRIBAL: // S_UNLEARN_TRIBAL
394 player->removeSpell(35585, SPEC_MASK_ALL, false); // Windhawk Hauberk
395 player->removeSpell(35587, SPEC_MASK_ALL, false); // Windhawk Belt
396 player->removeSpell(35588, SPEC_MASK_ALL, false); // Windhawk Bracers
397 player->removeSpell(36075, SPEC_MASK_ALL, false); // Wildfeather Leggings
398 player->removeSpell(36078, SPEC_MASK_ALL, false); // Living Crystal Breastplate
399 player->removeSpell(10621, SPEC_MASK_ALL, false); // Wolfshead Helm
400 player->removeSpell(10647, SPEC_MASK_ALL, false); // Feathered Breastplate
401 break;
402 case S_UNLEARN_SPELLFIRE: // S_UNLEARN_SPELLFIRE
403 player->removeSpell(26752, SPEC_MASK_ALL, false); // Spellfire Belt
404 player->removeSpell(26753, SPEC_MASK_ALL, false); // Spellfire Gloves
405 player->removeSpell(26754, SPEC_MASK_ALL, false); // Spellfire Robe
406 break;
407 case S_UNLEARN_MOONCLOTH: // S_UNLEARN_MOONCLOTH
408 player->removeSpell(26760, SPEC_MASK_ALL, false); // Primal Mooncloth Belt
409 player->removeSpell(26761, SPEC_MASK_ALL, false); // Primal Mooncloth Shoulders
410 player->removeSpell(26762, SPEC_MASK_ALL, false); // Primal Mooncloth Robe
411 break;
412 case S_UNLEARN_SHADOWEAVE: // S_UNLEARN_SHADOWEAVE
413 player->removeSpell(26756, SPEC_MASK_ALL, false); // Frozen Shadoweave Shoulders
414 player->removeSpell(26757, SPEC_MASK_ALL, false); // Frozen Shadoweave Boots
415 player->removeSpell(26758, SPEC_MASK_ALL, false); // Frozen Shadoweave Robe
416 break;
417 }
418}
#define SPEC_MASK_ALL
Definition Player.h:178
void removeSpell(uint32 spellId, uint8 removeSpecMask, bool onlyTemporary, bool sendPacket=true)
Definition Player.cpp:3513

References Player::removeSpell(), S_UNLEARN_ARMOR, S_UNLEARN_AXE, S_UNLEARN_DRAGON, S_UNLEARN_ELEMENTAL, S_UNLEARN_HAMMER, S_UNLEARN_MOONCLOTH, S_UNLEARN_SHADOWEAVE, S_UNLEARN_SPELLFIRE, S_UNLEARN_SWORD, S_UNLEARN_TRIBAL, S_UNLEARN_WEAPON, and SPEC_MASK_ALL.

Referenced by ProcessUnlearnAction().