30#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."
32#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."
33#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."
34#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."
36#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!"
37#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!"
38#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!"
44#define GOSSIP_SENDER_LEARN 50
45#define GOSSIP_SENDER_UNLEARN 51
46#define GOSSIP_SENDER_CHECK 52
52#define GOSSIP_LEARN_POTION "Please teach me how to become a Master of Potions, Lauranna"
53#define GOSSIP_UNLEARN_POTION "I wish to unlearn Potion Mastery"
54#define GOSSIP_LEARN_TRANSMUTE "Please teach me how to become a Master of Transmutations, Zarevhi"
55#define GOSSIP_UNLEARN_TRANSMUTE "I wish to unlearn Transmutation Mastery"
56#define GOSSIP_LEARN_ELIXIR "Please teach me how to become a Master of Elixirs, Lorokeem"
57#define GOSSIP_UNLEARN_ELIXIR "I wish to unlearn Elixir Mastery"
59#define BOX_UNLEARN_ALCHEMY_SPEC "Do you really want to unlearn your alchemy specialty and lose all associated recipes? \n Cost: "
61#define GOSSIP_WEAPON_LEARN "Please teach me how to become a Weaponsmith"
62#define GOSSIP_WEAPON_UNLEARN "I wish to unlearn the art of Weaponsmithing"
63#define GOSSIP_ARMOR_LEARN "Please teach me how to become a Armorsmith"
64#define GOSSIP_ARMOR_UNLEARN "I wish to unlearn the art of Armorsmithing"
66#define GOSSIP_UNLEARN_SMITH_SPEC "I wish to unlearn my blacksmith specialty"
67#define BOX_UNLEARN_ARMORORWEAPON "Do you really want to unlearn your blacksmith specialty and lose all associated recipes? \n Cost: "
69#define GOSSIP_LEARN_HAMMER "Please teach me how to become a Hammersmith, Lilith"
70#define GOSSIP_UNLEARN_HAMMER "I wish to unlearn Hammersmithing"
71#define GOSSIP_LEARN_AXE "Please teach me how to become a Axesmith, Kilram"
72#define GOSSIP_UNLEARN_AXE "I wish to unlearn Axesmithing"
73#define GOSSIP_LEARN_SWORD "Please teach me how to become a Swordsmith, Seril"
74#define GOSSIP_UNLEARN_SWORD "I wish to unlearn Swordsmithing"
76#define BOX_UNLEARN_WEAPON_SPEC "Do you really want to unlearn your weaponsmith specialty and lose all associated recipes? \n Cost: "
78#define GOSSIP_UNLEARN_DRAGON "I wish to unlearn Dragonscale Leatherworking"
79#define GOSSIP_UNLEARN_ELEMENTAL "I wish to unlearn Elemental Leatherworking"
80#define GOSSIP_UNLEARN_TRIBAL "I wish to unlearn Tribal Leatherworking"
82#define BOX_UNLEARN_LEATHER_SPEC "Do you really want to unlearn your leatherworking specialty and lose all associated recipes? \n Cost: "
84#define GOSSIP_LEARN_SPELLFIRE "Please teach me how to become a Spellcloth tailor"
85#define GOSSIP_UNLEARN_SPELLFIRE "I wish to unlearn Spellfire Tailoring"
86#define GOSSIP_LEARN_MOONCLOTH "Please teach me how to become a Mooncloth tailor"
87#define GOSSIP_UNLEARN_MOONCLOTH "I wish to unlearn Mooncloth Tailoring"
88#define GOSSIP_LEARN_SHADOWEAVE "Please teach me how to become a Shadoweave tailor"
89#define GOSSIP_UNLEARN_SHADOWEAVE "I wish to unlearn Shadoweave Tailoring"
91#define BOX_UNLEARN_TAILOR_SPEC "Do you really want to unlearn your tailoring specialty and lose all associated recipes? \n Cost: "
206 player->
CastSpell(player, triggeredSpellId,
true);
211 player->CLOSE_GOSSIP_MENU();
224 for (
uint8 i = 0; i < 3; ++i)
237 SF_LOG_DEBUG(
"scripts",
"player attempt to unlearn spell %u, but item %u is equipped.", reqSpell, item->
GetEntry());
344 player->
CastSpell(player, spellId,
true);
347 if (alternativeSpellId)
348 creature->
CastSpell(player, alternativeSpellId,
true);
355 player->CLOSE_GOSSIP_MENU();
374 if (creature->IsQuestGiver())
375 player->PrepareQuestMenu(creature->GetGUID());
377 if (creature->IsVendor())
380 if (creature->IsTrainer())
385 if (player->GetQuestRewardStatus(10899) || player->GetQuestRewardStatus(10902) || player->GetQuestRewardStatus(10897))
387 switch (creature->GetEntry())
411 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
500 player->PlayerTalkClass->ClearMenus();
539 if (creature->IsQuestGiver())
540 player->PrepareQuestMenu(creature->GetGUID());
542 if (creature->IsVendor())
545 if (creature->IsTrainer())
548 uint32 creatureId = creature->GetEntry();
587 if (player->HasSpell(
S_AXE))
599 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
620 player->CLOSE_GOSSIP_MENU();
628 player->CLOSE_GOSSIP_MENU();
646 player->CLOSE_GOSSIP_MENU();
650 player->CLOSE_GOSSIP_MENU();
654 player->CLOSE_GOSSIP_MENU();
730 player->PlayerTalkClass->ClearMenus();
775#define GOSSIP_ITEM_ZAP "This Dimensional Imploder sounds dangerous! How can I make one?"
776#define GOSSIP_ITEM_JHORDY "I must build a beacon for this marvelous device!"
777#define GOSSIP_ITEM_KABLAM "[PH] Unknown"
793 npcTextId = altTextId;
801 std::string gossipItem;
802 bool canLearn =
false;
806 switch (creature->GetEntry())
834 player->SEND_GOSSIP_MENU(npcTextId ? npcTextId : player->GetGossipTextId(creature), creature->GetGUID());
840 player->PlayerTalkClass->ClearMenus();
842 player->CLOSE_GOSSIP_MENU();
844 if (sender != creature->GetEntry())
878 if (creature->IsQuestGiver())
879 player->PrepareQuestMenu(creature->GetGUID());
881 if (creature->IsVendor())
884 if (creature->IsTrainer())
889 switch (creature->GetEntry())
909 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
966 player->PlayerTalkClass->ClearMenus();
1001 if (creature->IsQuestGiver())
1002 player->PrepareQuestMenu(creature->GetGUID());
1004 if (creature->IsVendor())
1007 if (creature->IsTrainer())
1013 if (player->GetQuestRewardStatus(10831) || player->GetQuestRewardStatus(10832) || player->GetQuestRewardStatus(10833))
1015 switch (creature->GetEntry())
1039 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
1128 player->PlayerTalkClass->ClearMenus();
@ BUY_ERR_NOT_ENOUGHT_MONEY
@ EQUIP_ERR_CLIENT_LOCKED_OUT
#define SF_LOG_DEBUG(filterType__,...)
#define INVENTORY_SLOT_BAG_0
#define GOSSIP_TEXT_TRAIN
#define GOSSIP_TEXT_BROWSE_GOODS
CreatureScript(const char *name)
ItemTemplate const * GetTemplate() const
ObjectGuid GetObjectGUID() const
void SendEquipError(InventoryResult msg, Item *pItem, Item *pItem2=NULL, uint32 itemid=0)
bool ModifyMoney(int64 amount, bool sendError=true)
WorldSession * GetSession() const
Item * GetItemByPos(uint16 pos) const
uint16 GetBaseSkillValue(uint32 skill) const
void removeSpell(uint32 spell_id, bool disabled=false, bool learn_low_rank=true)
bool HasSpell(uint32 spell) const override
void SendBuyFailed(BuyResult msg, ObjectGuid VendorGUID, uint32 item)
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
bool HasEnoughMoney(uint64 amount) const
SpellEffectInfo Effects[MAX_SPELL_EFFECTS]
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void SendTrainerList(uint64 guid)
void SendListInventory(uint64 guid)
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action) OVERRIDE
bool CanLearn(Player *player, uint32 textId, uint32 altTextId, uint32 skillValue, uint32 reqSpellId, uint32 spellId, uint32 &npcTextId)
npc_engineering_tele_trinket()
void SendActionMenu(Player *player, Creature *creature, uint32 action)
bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action) OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
void SendConfirmLearn(Player *player, Creature *creature, uint32 action)
bool HasAlchemySpell(Player *player)
void SendConfirmUnlearn(Player *player, Creature *creature, uint32 action)
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
bool HasWeaponSub(Player *player)
void SendConfirmUnlearn(Player *player, Creature *creature, uint32 action)
bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action) OVERRIDE
void SendConfirmLearn(Player *player, Creature *creature, uint32 action)
void SendActionMenu(Player *player, Creature *creature, uint32 action)
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action) OVERRIDE
void SendConfirmUnlearn(Player *player, Creature *creature, uint32 action)
void SendActionMenu(Player *player, Creature *creature, uint32 action)
void SendActionMenu(Player *player, Creature *creature, uint32 action)
bool HasTailorSpell(Player *player)
bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action) OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
void SendConfirmLearn(Player *player, Creature *creature, uint32 action)
void SendConfirmUnlearn(Player *player, Creature *creature, uint32 action)
#define GOSSIP_LEARN_POTION
#define GOSSIP_LEARN_SPELLFIRE
#define GOSSIP_UNLEARN_SHADOWEAVE
#define GOSSIP_UNLEARN_HAMMER
#define GOSSIP_LEARN_HAMMER
#define BOX_UNLEARN_ARMORORWEAPON
#define BOX_UNLEARN_ALCHEMY_SPEC
void AddSC_npc_professions()
#define GOSSIP_UNLEARN_POTION
#define GOSSIP_SENDER_CHECK
void ProfessionUnlearnSpells(Player *player, uint32 type)
#define BOX_UNLEARN_LEATHER_SPEC
#define GOSSIP_SENDER_LEARN
int32 DoHighUnlearnCost(Player *)
#define GOSSIP_UNLEARN_AXE
#define GOSSIP_UNLEARN_SMITH_SPEC
int32 DoMedUnlearnCost(Player *player)
#define GOSSIP_ITEM_KABLAM
#define GOSSIP_LEARN_SHADOWEAVE
#define GOSSIP_ARMOR_LEARN
#define GOSSIP_LEARN_ELIXIR
bool EquippedOk(Player *player, uint32 spellId)
#define GOSSIP_UNLEARN_ELIXIR
#define GOSSIP_UNLEARN_MOONCLOTH
#define GOSSIP_UNLEARN_ELEMENTAL
int32 DoLowUnlearnCost(Player *player)
#define GOSSIP_WEAPON_UNLEARN
void ProcessCastaction(Player *player, Creature *creature, uint32 spellId, uint32 triggeredSpellId, int32 cost)
#define GOSSIP_SENDER_UNLEARN
#define GOSSIP_UNLEARN_SPELLFIRE
#define GOSSIP_UNLEARN_DRAGON
#define BOX_UNLEARN_TAILOR_SPEC
#define GOSSIP_WEAPON_LEARN
#define GOSSIP_ARMOR_UNLEARN
#define GOSSIP_UNLEARN_SWORD
#define GOSSIP_UNLEARN_TRIBAL
void ProcessUnlearnAction(Player *player, Creature *creature, uint32 spellId, uint32 alternativeSpellId, int32 cost)
#define GOSSIP_LEARN_TRANSMUTE
#define GOSSIP_LEARN_SWORD
@ SPELL_LEARN_TO_EVERLOOK
#define BOX_UNLEARN_WEAPON_SPEC
#define GOSSIP_LEARN_MOONCLOTH
int32 DoLearnCost(Player *)
#define GOSSIP_UNLEARN_TRANSMUTE
#define GOSSIP_ITEM_JHORDY