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

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

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

◆ SpecializationQuests

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

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

Function Documentation

◆ AddSC_npc_professions()

void AddSC_npc_professions ( )
1371{
1372 new npc_prof_alchemy();
1373 new npc_prof_blacksmith();
1375 new npc_prof_leather();
1376 new npc_prof_tailor();
1378}
Definition: npc_professions.cpp:470
Definition: npc_professions.cpp:635
Definition: npc_professions.cpp:876
Definition: npc_professions.cpp:968
Definition: npc_professions.cpp:1068
Definition: npc_professions.cpp:1238

Referenced by AddWorldScripts().

◆ DoHighUnlearnCost()

◆ DoLearnCost()

◆ DoLowUnlearnCost()

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

References Unit::GetLevel().

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

◆ DoMedUnlearnCost()

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

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

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

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

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

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