[Wip] Specialization Switching For Engineering And Leatherworking.

[SIZE=18px]If you don’t know how it works:[/SIZE]



[SIZE=18px]ToDo-List and things i don’t like:[/SIZE]

1) Every time you relog, you learn all spells from quest rewards, so if you un-learn the specialization you get it back when you log. This can be exploited to have more than one spec and this is currently possible with alchemy and blacksmith


When reading it before talking to Narain Soothfancy

The content on the pages of this tome appear to be in constant flux. You feel as if your thoughts are being bled from your mind and consumed by the book. (nothing happens)

I don’t have any clue how to do this, when you read the book before talking to narain no options are available to learn or un-learn specs, in the function OnGossipHello should be a check that determines if you talked with narain but i don’t know how.

3) Various NPC_texts are missing and they came from sniffs wich i can’t obtain.

#2 and #3 aren’t very relevant but #1 should be fixed because we don’t want everyone running around with both specs.

CODE: https://github.com/elecyb/TrinityCore/commit/fb0ca6a33a9b6a5622399fa47225737b7ac0a560

its not will be easy to remove this quests ? any way if they want to switch back they need to redo this quests. like when you unlearn proff you need to work on the proff from the beginning.

quests should not be removed, in retail you keep all completed quests

link updated: https://github.com/elecyb/TrinityCore/commit/fb0ca6a33a9b6a5622399fa47225737b7ac0a560

I think this is ready for pull req. but first i want community opinions on one thing:
The book is a GO and for that reason the script should be in go_scrips.cpp, but if i move the script to go_scrips.cpp i lose the common functions ProfessionUnlearnSpells() DoHighUnlearnCost(), DoLearnCost(), etc, so i would need to hardcode or redefine the values, imo is better to have profession related scripts all together.

What i should do?

  1. Rename npc_professions.cpp to something different (proffesions_scrips.cpp for example)
  2. Move the book to go_scripts.cpp and hardcode the values.
  3. Do nothing, and leave it in npc_professions.cpp

This is a formalism and won’t change any functionality anyways.

For the double specialization bug i’m using this fix: https://gist.github.com/elecyb/5086202