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"

Go to the source code of this file.

Classes

class  npc_prof_alchemy
 
class  npc_prof_blacksmith
 
class  npc_engineering_tele_trinket
 
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: "
 
#define GOSSIP_ITEM_ZAP   "This Dimensional Imploder sounds dangerous! How can I make one?"
 
#define GOSSIP_ITEM_JHORDY   "I must build a beacon for this marvelous device!"
 
#define GOSSIP_ITEM_KABLAM   "[PH] Unknown"
 

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
}
 
enum  Gossips {
  GOSSIP_MENU_SYLVANAS = 10950 ,
  GOSISP_MENU_JAINA = 11031 ,
  GOSSIP_OPTION_START = 0 ,
  GOSSIP_OPTION_START_SKIP = 1 ,
  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
}
 
enum  EngineeringTrinkets {
  NPC_ZAP = 14742 ,
  NPC_JHORDY = 14743 ,
  NPC_KABLAM = 21493 ,
  NPC_SMILES = 21494 ,
  SPELL_LEARN_TO_EVERLOOK = 23490 ,
  SPELL_LEARN_TO_GADGET = 23491 ,
  SPELL_LEARN_TO_AREA52 = 36956 ,
  SPELL_LEARN_TO_TOSHLEY = 36957 ,
  SPELL_TO_EVERLOOK = 23486 ,
  SPELL_TO_GADGET = 23489 ,
  SPELL_TO_AREA52 = 36954 ,
  SPELL_TO_TOSHLEY = 36955
}
 

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_ITEM_JHORDY

#define GOSSIP_ITEM_JHORDY   "I must build a beacon for this marvelous device!"

◆ GOSSIP_ITEM_KABLAM

#define GOSSIP_ITEM_KABLAM   "[PH] Unknown"

◆ GOSSIP_ITEM_ZAP

#define GOSSIP_ITEM_ZAP   "This Dimensional Imploder sounds dangerous! How can I make one?"

◆ 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

◆ EngineeringTrinkets

Enumerator
NPC_ZAP 
NPC_JHORDY 
NPC_KABLAM 
NPC_SMILES 
SPELL_LEARN_TO_EVERLOOK 
SPELL_LEARN_TO_GADGET 
SPELL_LEARN_TO_AREA52 
SPELL_LEARN_TO_TOSHLEY 
SPELL_TO_EVERLOOK 
SPELL_TO_GADGET 
SPELL_TO_AREA52 
SPELL_TO_TOSHLEY 
853{
854 NPC_ZAP = 14742,
855 NPC_JHORDY = 14743,
856 NPC_KABLAM = 21493,
857 NPC_SMILES = 21494,
858
860 SPELL_LEARN_TO_GADGET = 23491,
861 SPELL_LEARN_TO_AREA52 = 36956,
863
864 SPELL_TO_EVERLOOK = 23486,
865 SPELL_TO_GADGET = 23489,
866 SPELL_TO_AREA52 = 36954,
867 SPELL_TO_TOSHLEY = 36955,
868};
@ SPELL_LEARN_TO_EVERLOOK
Definition: npc_professions.cpp:859
@ NPC_SMILES
Definition: npc_professions.cpp:857
@ SPELL_TO_GADGET
Definition: npc_professions.cpp:865
@ NPC_ZAP
Definition: npc_professions.cpp:854
@ NPC_JHORDY
Definition: npc_professions.cpp:855
@ SPELL_TO_EVERLOOK
Definition: npc_professions.cpp:864
@ SPELL_TO_AREA52
Definition: npc_professions.cpp:866
@ SPELL_LEARN_TO_GADGET
Definition: npc_professions.cpp:860
@ SPELL_LEARN_TO_AREA52
Definition: npc_professions.cpp:861
@ SPELL_LEARN_TO_TOSHLEY
Definition: npc_professions.cpp:862
@ SPELL_TO_TOSHLEY
Definition: npc_professions.cpp:867
@ NPC_KABLAM
Definition: npc_professions.cpp:856

◆ Gossips

enum Gossips
Enumerator
GOSSIP_MENU_SYLVANAS 
GOSISP_MENU_JAINA 
GOSSIP_OPTION_START 
GOSSIP_OPTION_START_SKIP 
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 
231{
232 // Leatherworking
238 GOSSIP_MENU_SEJIB = 3073,
239
243
248
252
257
258};
@ GOSSIP_MENU_PETER_GALEN
Definition: npc_professions.cpp:233
@ GOSSIP_MENU_UNLEARN_CONFIRM_ELEMENTAL
Definition: npc_professions.cpp:241
@ GOSSIP_MENU_SARAH_TANNER
Definition: npc_professions.cpp:236
@ GOSSIP_MENU_UNLEARN_CONFIRM_TRIBAL
Definition: npc_professions.cpp:242
@ GOSSIP_TEXT_UNLEARN_CONFIRM_TRIBAL
Definition: npc_professions.cpp:251
@ GOSSIP_MENU_OPTION_GO_LEARN_DRAGONSCALE
Definition: npc_professions.cpp:254
@ GOSSIP_MENU_OPTION_GO_LEARN_TRIBAL
Definition: npc_professions.cpp:256
@ GOSSIP_MENU_OPTION_TRAIN
Definition: npc_professions.cpp:244
@ GOSSIP_TEXT_UNLEARN_CONFIRM_DRAGONSCALE
Definition: npc_professions.cpp:249
@ GOSSIP_MENU_GO_SOOTHSAYING_FOR_DUMMIES
Definition: npc_professions.cpp:253
@ GOSSIP_TEXT_UNLEARN_CONFIRM_ELEMENTAL
Definition: npc_professions.cpp:250
@ GOSSIP_MENU_THORKAF_DRAGONEYE
Definition: npc_professions.cpp:234
@ GOSSIP_MENU_OPTION_GO_LEARN_ELEMENTAL
Definition: npc_professions.cpp:255
@ GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_TRIBAL
Definition: npc_professions.cpp:247
@ GOSSIP_MENU_UNLEARN_CONFIRM_DRAGONSCALE
Definition: npc_professions.cpp:240
@ GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_ELEMENTAL
Definition: npc_professions.cpp:246
@ GOSSIP_MENU_OPTION_CONFIRM_UNLEARN_DRAGONSCALE
Definition: npc_professions.cpp:245
@ GOSSIP_MENU_BRUMN_WINTERHOOF
Definition: npc_professions.cpp:235
@ GOSSIP_MENU_SEJIB
Definition: npc_professions.cpp:238
@ GOSSIP_MENU_CARYSSIA_MOONHUNTER
Definition: npc_professions.cpp:237

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

◆ SpecializationQuests

Enumerator
Q_MASTER_TRANSMUTE 
Q_MASTER_ELIXIR 
Q_MASTER_POTION 
222{
223 /* Alchemy */
224 Q_MASTER_TRANSMUTE = 10899,
225 Q_MASTER_ELIXIR = 10902,
226 Q_MASTER_POTION = 10897,
227};
@ Q_MASTER_POTION
Definition: npc_professions.cpp:226
@ Q_MASTER_TRANSMUTE
Definition: npc_professions.cpp:224
@ Q_MASTER_ELIXIR
Definition: npc_professions.cpp:225

◆ 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 
187{
188 /* Alchemy */
189 N_TRAINER_TRANSMUTE = 22427, // Zarevhi
190 N_TRAINER_ELIXIR = 19052, // Lorokeem
191 N_TRAINER_POTION = 17909, // Lauranna Thar'well
192
193 /* Blacksmithing */
194 N_TRAINER_SMITHOMNI1 = 11145, // Myolor Sunderfury
195 N_TRAINER_SMITHOMNI2 = 11176, // Krathok Moltenfist
196 N_TRAINER_WEAPON1 = 11146, // Ironus Coldsteel
197 N_TRAINER_WEAPON2 = 11178, // Borgosh Corebender
198 N_TRAINER_ARMOR1 = 5164, // Grumnus Steelshaper
199 N_TRAINER_ARMOR2 = 11177, // Okothos Ironrager
200 N_TRAINER_HAMMER = 11191, // Lilith the Lithe
201 N_TRAINER_AXE = 11192, // Kilram
202 N_TRAINER_SWORD = 11193, // Seril Scourgebane
203
204 /* Leatherworking */
205 N_TRAINER_DRAGON1 = 7866, // Peter Galen
206 N_TRAINER_DRAGON2 = 7867, // Thorkaf Dragoneye
207 N_TRAINER_ELEMENTAL1 = 7868, // Sarah Tanner
208 N_TRAINER_ELEMENTAL2 = 7869, // Brumn Winterhoof
209 N_TRAINER_TRIBAL1 = 7870, // Caryssia Moonhunter
210 N_TRAINER_TRIBAL2 = 7871, // Se'Jib
211
212 /* Tailoring */
213 N_TRAINER_SPELLFIRE = 22213, // Gidge Spellweaver
214 N_TRAINER_MOONCLOTH = 22208, // Nasmara Moonsong
215 N_TRAINER_SHADOWEAVE = 22212, // Andrion Darkspinner
216};
@ N_TRAINER_TRANSMUTE
Definition: npc_professions.cpp:189
@ N_TRAINER_SMITHOMNI1
Definition: npc_professions.cpp:194
@ N_TRAINER_SMITHOMNI2
Definition: npc_professions.cpp:195
@ N_TRAINER_AXE
Definition: npc_professions.cpp:201
@ N_TRAINER_ELIXIR
Definition: npc_professions.cpp:190
@ N_TRAINER_SHADOWEAVE
Definition: npc_professions.cpp:215
@ N_TRAINER_ELEMENTAL1
Definition: npc_professions.cpp:207
@ N_TRAINER_ARMOR1
Definition: npc_professions.cpp:198
@ N_TRAINER_HAMMER
Definition: npc_professions.cpp:200
@ N_TRAINER_TRIBAL1
Definition: npc_professions.cpp:209
@ N_TRAINER_POTION
Definition: npc_professions.cpp:191
@ N_TRAINER_WEAPON1
Definition: npc_professions.cpp:196
@ N_TRAINER_DRAGON1
Definition: npc_professions.cpp:205
@ N_TRAINER_MOONCLOTH
Definition: npc_professions.cpp:214
@ N_TRAINER_ARMOR2
Definition: npc_professions.cpp:199
@ N_TRAINER_SPELLFIRE
Definition: npc_professions.cpp:213
@ N_TRAINER_DRAGON2
Definition: npc_professions.cpp:206
@ N_TRAINER_WEAPON2
Definition: npc_professions.cpp:197
@ N_TRAINER_SWORD
Definition: npc_professions.cpp:202
@ N_TRAINER_ELEMENTAL2
Definition: npc_professions.cpp:208
@ N_TRAINER_TRIBAL2
Definition: npc_professions.cpp:210

Function Documentation

◆ AddSC_npc_professions()

void AddSC_npc_professions ( )
1370{
1371 new npc_prof_alchemy();
1372 new npc_prof_blacksmith();
1374 new npc_prof_leather();
1375 new npc_prof_tailor();
1377}
Definition: npc_professions.cpp:469
Definition: npc_professions.cpp:634
Definition: npc_professions.cpp:875
Definition: npc_professions.cpp:967
Definition: npc_professions.cpp:1067
Definition: npc_professions.cpp:1237

Referenced by AddWorldScripts().

◆ DoHighUnlearnCost()

◆ DoLearnCost()

◆ DoLowUnlearnCost()

int32 DoLowUnlearnCost ( Player player)
286{
287 uint8 level = player->GetLevel();
288 if (level < 66)
289 return 50000;
290 else
291 return 100000;
292}
std::uint8_t uint8
Definition: Define.h:110
uint8 GetLevel() const
Definition: Unit.h:1432

References Unit::GetLevel().

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

◆ DoMedUnlearnCost()

int32 DoMedUnlearnCost ( Player player)
275{
276 uint8 level = player->GetLevel();
277 if (level < 51)
278 return 250000;
279 else if (level < 66)
280 return 500000;
281 else
282 return 1000000;
283}

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 
)
295{
296 SpellInfo const* spell = sSpellMgr->GetSpellInfo(spellId);
297 if (!spell)
298 return false;
299
300 for (uint8 i = 0; i < 3; ++i)
301 {
302 uint32 reqSpell = spell->Effects[i].TriggerSpell;
303 if (!reqSpell)
304 continue;
305
306 Item* item = nullptr;
308 {
309 item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, j);
310 if (item && item->GetTemplate()->RequiredSpell == reqSpell)
311 {
312 //player has item equipped that require specialty. Not allow to unlearn, player has to unequip first
313 LOG_DEBUG("scripts.ai", "Player attempt to unlearn spell {}, but item {} is equipped.", reqSpell, item->GetEntry());
314 return false;
315 }
316 }
317 }
318 return true;
319}
std::uint32_t uint32
Definition: Define.h:108
#define LOG_DEBUG(filterType__,...)
Definition: Log.h:169
@ EQUIPMENT_SLOT_END
Definition: Player.h:695
@ EQUIPMENT_SLOT_START
Definition: Player.h:675
#define INVENTORY_SLOT_BAG_0
Definition: Player.h:671
#define sSpellMgr
Definition: SpellMgr.h:825
Definition: Item.h:214
ItemTemplate const * GetTemplate() const
Definition: Item.cpp:545
uint32 RequiredSpell
Definition: ItemTemplate.h:648
uint32 GetEntry() const
Definition: Object.h:109
Item * GetItemByPos(uint16 pos) const
Definition: PlayerStorage.cpp:469
Definition: SpellInfo.h:314
std::array< SpellEffectInfo, MAX_SPELL_EFFECTS > Effects
Definition: SpellInfo.h:391

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 
)
427{
428 if ((!spellId || !player->HasSpell(spellId)) && player->HasEnoughMoney(cost))
429 {
430 player->CastSpell(player, triggeredSpellId, true);
431 player->ModifyMoney(-cost);
432
433 // xinef: save spells!
434 player->SaveToDB(false, false);
435 }
436 else
437 player->SendBuyError(BUY_ERR_NOT_ENOUGHT_MONEY, creature, 0, 0);
438 CloseGossipMenuFor(player);
439}
void CloseGossipMenuFor(Player *player)
Definition: ScriptedGossip.cpp:56
@ BUY_ERR_NOT_ENOUGHT_MONEY
Definition: Item.h:137
void SaveToDB(bool create, bool logout)
Definition: PlayerStorage.cpp:7073
bool ModifyMoney(int32 amount, bool sendError=true)
Definition: Player.cpp:11430
bool HasEnoughMoney(uint32 amount) const
Definition: Player.h:1582
void SendBuyError(BuyResult msg, Creature *creature, uint32 item, uint32 param)
Definition: PlayerStorage.cpp:4086
bool HasSpell(uint32 spell) const override
Definition: Player.cpp:3831
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:1169

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 
)
442{
443 if (EquippedOk(player, spellId))
444 {
445 if (player->HasEnoughMoney(cost))
446 {
447 player->CastSpell(player, spellId, true);
448 ProfessionUnlearnSpells(player, spellId);
449 player->ModifyMoney(-cost);
450 if (alternativeSpellId)
451 creature->CastSpell(player, alternativeSpellId, true);
452
453 // xinef: save spells!
454 player->SaveToDB(false, false);
455 }
456 else
457 player->SendBuyError(BUY_ERR_NOT_ENOUGHT_MONEY, creature, 0, 0);
458 }
459 else
460 player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, nullptr, nullptr);
461 CloseGossipMenuFor(player);
462}
@ EQUIP_ERR_CANT_DO_RIGHT_NOW
Definition: Item.h:80
void ProfessionUnlearnSpells(Player *player, uint32 type)
Definition: npc_professions.cpp:325
bool EquippedOk(Player *player, uint32 spellId)
Definition: npc_professions.cpp:294
void SendEquipError(InventoryResult msg, Item *pItem, Item *pItem2=nullptr, uint32 itemid=0)
Definition: PlayerStorage.cpp:4043

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

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().