eluna-scripts-ornfelt/lua/WowEmulationScriptPack/C++/Prof.cpp

698 lines
28 KiB
C++
Raw Permalink Normal View History

2023-08-16 00:50:59 +02:00
#include "ScriptPCH.h"
#include "ScriptMgr.h"
#include "Language.h"
#define MSG_GOSSIP_TEXT_GETTING_STARTED "Welcome to Warlord-Gaming!"
#define MSG_ERR_HONOR "You do not have enough Honor for the purchase!"
#define MSG_ERR_ARENA_POINT_1 "You do not have enough Apa!"
#define MSG_ERR_TITLE "At this character already has a title!"
#define MSG_ERR_INCOMBAT "You are in combat. Npc To use this exit it."
#define MSG_COMPLETE_RENAME "Make Payment Successfully Produced Logout and enter a new name Personazha.Ne Forget After a name change, leave the game and remove from the Client Folder Cache!"
#define MSG_CUSTOMIZE_COMPLETE "Make Payment succeeded, Logout, and Change the Appearance Personazha.Ne Forget after the change of appearance, leave the game and remove from the Client Folder Cache!"
#define MSG_CHANGE_FACTION_COMPLETE "Make Payment succeeded, Logout, and Change the fraction Personazha.Ne Forget after the change of appearance, leave the game and remove from the Client Folder Cache!"
#define MSG_GOSSIP_TEXT_MAX_HEALTH "Heal me!"
#define MSG_GOSSIP_TEXT_MAX_SKILL "Learn all the skills and weapons of defense."
#define MSG_GOSSIP_TEXT_BUFF_POWER_WORD "Power Word: Fortitude"
#define MSG_GOSSIP_TEXT_BUFF_BLESSING_OF_KINGS "Blessing of Kings"
#define MSG_GOSSIP_TEXT_BUFF_MARK_OF_THE_WILD "Mark of the Wild"
#define MSG_GOSSIP_TEXT_BUFF_ARCANE_BRILLIANCE "Dalaran Brilliance"
#define MSG_GOSSIP_TEXT_BUFF_BLESSING_OF_MIGHT "Greater Blessing of Might"
#define MSG_GOSSIP_TEXT_BUFF_BLESSING_OF_WISDOM "Blessing of Wisdom"
#define MSG_GOSSIP_TEXT_BUFF_THORNS "Thorns"
#define MSG_GOSSIP_TEXT_BUFF_DIVINE_SPIRIT "Divine Spirit"
#define MSG_GOSSIP_TEXT_BUFF_SHADOW_PROTECTION "Shadow Protection"
#define MSG_GOSSIP_TEXT_BUFF_STAMINA "Endurance"
#define MSG_GOSSIP_TEXT_BUFF_MENU "[Buffs Menu] ->"
#define MSG_GOSSIP_TEXT_MAIN_MENU "<- [Return to Main Menu]"
#define MSG_GOSSIP_TEXT_PROFFESION_MENU "[Professions Menu] ->"
#define MSG_GOSSIP_TEXT_PROFFESION_SECON_MENU "[The menu is secondary professions] ->"
#define MSG_GOSSIP_TEXT_RENAME "Character Name Change for Free." / / Thank Crispi
#define MSG_GOSSIP_TEXT_CUSTOM "Changing the appearance of the character for Free" / / Thank Crispi
#define MSG_GOSSIP_TEXT_CHANGE_FACTION "Character Faction Change for Free."
#define MSG_GOSSIP_TEXT_TITLES_JENKINS "Get the title for 500 Jenkins Apa."
#define MSG_GOSSIP_TEXT_TITLES_THE_LOVE_FOOL "Madly in Love Get a rank of 500 Apa."
#define MSG_GOSSIP_TEXT_TITLES_MERRYMAKER "Get Merry title for 500 Apa."
#define MSG_GOSSIP_TEXT_TITLES_SCARAB_LORD "Get the title of Lord of Skorobeev for 500 Apa."
#define MSG_GOSSIP_TEXT_TITLES_THE_NOBLE "Get A wonderful title for 500 Apa."
#define MSG_GOSSIP_TEXT_TITLES_OBSIDIAN_SLAYER "Get the title of Conqueror of Obsidian for 1 thousand Apa."
#define MSG_GOSSIP_TEXT_MORTH_GNOME_MALE "[Turn] Gnome, man."
#define MSG_GOSSIP_TEXT_MORTH_GNOME_FEMALE "[Turn] Dwarf, woman."
#define MSG_GOSSIP_TEXT_MORTH_HUMAN_FEMALE "[Turn] Man, woman."
#define MSG_GOSSIP_TEXT_MORTH_HUMAN_MALE "[Turn] Man, man."
#define MSG_GOSSIP_TEXT_MORTH_BLOOD_ELF_MALE "[Turn] Blood Elf, man."
#define MSG_GOSSIP_TEXT_MORTH_BLOOD_ELF_FEMALE "[Turn] Blood Elf, woman."
#define MSG_GOSSIP_TEXT_MORTH_TAUREN_MALE "[Turn] Tauren, man."
#define MSG_GOSSIP_TEXT_MORTH_TAUREN_FEMALE "[Turn] Tauren, woman."
#define MSG_GOSSIP_TEXT_ALCHEMY "Learn Alchemy"
#define MSG_GOSSIP_TEXT_BLACKSMITHING "Learn Blacksmithing."
#define MSG_GOSSIP_TEXT_ENCNANTING "Learn Enchanting."
#define MSG_GOSSIP_TEXT_ENGINEERING "Learn Engineering."
#define MSG_GOSSIP_TEXT_HERBALISM "Learn Herbalism."
#define MSG_GOSSIP_TEXT_INSCRIPTION "Learn Inscription"
#define MSG_GOSSIP_TEXT_JEWELCRAFTING "Learn Jewelcrafting."
#define MSG_GOSSIP_TEXT_LEATHERWORKING "Learn Leatherworking."
#define MSG_GOSSIP_TEXT_MINING "Learn Mining."
#define MSG_GOSSIP_TEXT_SKINNING "Learn Skinning."
#define MSG_GOSSIP_TEXT_TAILORING "Learn TAiloring."
#define MSG_GOSSIP_TEXT_RIDING "Learn riding."
#define MSG_GOSSIP_TEXT_COOKING "Learn cooking."
#define MSG_GOSSIP_TEXT_FIRST_AID "Learn first aid."
#define MSG_GOSSIP_TEXT_FISHING "Learn fishing."
#define CONST_HONOR_1 0
#define CONST_HONOR_2 0
#define CONST_ARENA_POINT_1 500
#define CONST_ARENA_POINT_2 1000
#define CONST_ARENA_POINT_3 3000
#define CONST_ARENA_POINT_4 5000
class npc_buffer : public CreatureScript
{
public:
npc_buffer() : CreatureScript("npc_buffer") { }
void CompleteLearnProfession(Player *player, Creature * _creature, SkillType skill)
{
if (PlayerAlreadyHasNineProfessions(player) && !IsSecondarySkill(skill))
_creature->MonsterWhisper("Already Trained 2 Proffesion!", player->GetGUID());
else
{
if (!LearnAllRecipesInProfession(player, skill))
_creature->MonsterWhisper("Error!", player->GetGUID());
}
}
bool IsSecondarySkill(SkillType skill) const
{
return skill == SKILL_COOKING || skill == SKILL_FIRST_AID;
}
bool PlayerAlreadyHasNineProfessions(const Player *pPlayer) const
{
uint32 skillCount = 0;
if (pPlayer->HasSkill(SKILL_MINING))
skillCount++;
if (pPlayer->HasSkill(SKILL_SKINNING))
skillCount++;
if (pPlayer->HasSkill(SKILL_HERBALISM))
skillCount++;
if (skillCount >= 2)
return true;
for (uint32 i = 0; i < sSkillLineStore.GetNumRows(); ++i)
{
SkillLineEntry const *SkillInfo = sSkillLineStore.LookupEntry(i);
if (!SkillInfo)
continue;
if (SkillInfo->categoryId == SKILL_CATEGORY_SECONDARY)
continue;
if ((SkillInfo->categoryId != SKILL_CATEGORY_PROFESSION) || !SkillInfo->canLink)
continue;
const uint32 skillID = SkillInfo->id;
if (pPlayer->HasSkill(skillID))
skillCount++;
if (skillCount >= 2)
return true;
}
return false;
}
bool LearnAllRecipesInProfession(Player *player, SkillType skill)
{
ChatHandler handler(player->GetSession());
char* skill_name;
SkillLineEntry const *SkillInfo = sSkillLineStore.LookupEntry(skill);
skill_name = SkillInfo->name[handler.GetSessionDbcLocale()];
if (!SkillInfo)
{
TC_LOG_ERROR(LOG_FILTER_GENERAL, "Teleport NPC: received non-valid skill ID (LearnAllRecipesInProfession)");
return false;
}
LearnSkillRecipesHelper(player, SkillInfo->id);
uint16 maxLevel = player->GetPureMaxSkillValue(SkillInfo->id);
player->SetSkill(SkillInfo->id, player->GetSkillStep(SkillInfo->id), maxLevel, maxLevel);
handler.PSendSysMessage(LANG_COMMAND_LEARN_ALL_RECIPES, skill_name);
return true;
}
// See "static void HandleLearnSkillRecipesHelper(Player* player,uint32 skill_id)" from cs_learn.cpp
void LearnSkillRecipesHelper(Player *player, uint32 skill_id)
{
uint32 classmask = player->getClassMask();
for (uint32 j = 0; j < sSkillLineAbilityStore.GetNumRows(); ++j)
{
SkillLineAbilityEntry const *skillLine = sSkillLineAbilityStore.LookupEntry(j);
if (!skillLine)
continue;
// wrong skill
if (skillLine->skillId != skill_id)
continue;
// not high rank
if (skillLine->forward_spellid)
continue;
// skip racial skills
if (skillLine->racemask != 0)
continue;
// skip wrong class skills
if (skillLine->classmask && (skillLine->classmask & classmask) == 0)
continue;
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(skillLine->spellId);
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo, player, false))
continue;
player->learnSpell(skillLine->spellId, false);
}
}
bool OnGossipHello(Player *player, Creature *_creature)
{
_creature->MonsterWhisper(MSG_GOSSIP_TEXT_GETTING_STARTED, player->GetGUID());
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_RIDING, GOSSIP_SENDER_MAIN, 35);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MAX_HEALTH, GOSSIP_SENDER_MAIN, 33);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MAX_SKILL, GOSSIP_SENDER_MAIN, 34);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_BUFF_MENU, GOSSIP_SENDER_MAIN, 2);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_PROFFESION_MENU, GOSSIP_SENDER_MAIN, 36);
player->SEND_GOSSIP_MENU (DEFAULT_GOSSIP_MESSAGE,_creature->GetGUID());
return true;
}
bool OnGossipSelect(Player *player, Creature *_creature, uint32 sender, uint32 action )
{
if (!player->getAttackers().empty())
{
_creature->MonsterWhisper(MSG_ERR_INCOMBAT, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
return false;
}
switch (action)
{
case 2:
player->PlayerTalkClass->ClearMenus();
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_POWER_WORD, GOSSIP_SENDER_MAIN, 3);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_BLESSING_OF_KINGS, GOSSIP_SENDER_MAIN, 4);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_MARK_OF_THE_WILD, GOSSIP_SENDER_MAIN, 5);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_ARCANE_BRILLIANCE, GOSSIP_SENDER_MAIN, 6);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_BLESSING_OF_MIGHT, GOSSIP_SENDER_MAIN, 7);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_BLESSING_OF_WISDOM, GOSSIP_SENDER_MAIN, 8);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_THORNS, GOSSIP_SENDER_MAIN, 9);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_DIVINE_SPIRIT, GOSSIP_SENDER_MAIN, 10);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_SHADOW_PROTECTION, GOSSIP_SENDER_MAIN, 11);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BUFF_STAMINA, GOSSIP_SENDER_MAIN, 12);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 21);
player->SEND_GOSSIP_MENU (DEFAULT_GOSSIP_MESSAGE,_creature->GetGUID());
break;
case 3:
// Наложение стойкости (Исправлено)
player->CastSpell(player, 69377, true);
player->CLOSE_GOSSIP_MENU();
break;
case 4:
// Наложение Благословение Королей (Исправлено)
player->CastSpell(player, 56525, true);
player->CLOSE_GOSSIP_MENU();
break;
case 5:
// Наложение Знак дикой природы
player->CastSpell(player, 1126, true);
player->CLOSE_GOSSIP_MENU();
break;
case 6:
// Наложение Чародейской гениальности Даларана (Исправлено)
player->CastSpell(player, 61316, true);
player->CLOSE_GOSSIP_MENU();
break;
case 7:
// Наложение Благословение могущества (Исправлено)
player->CastSpell(player, 29381, true);
player->CLOSE_GOSSIP_MENU();
break;
case 8:
// Наложение Благословение мудрости (Исправлено)
player->CastSpell(player, 56521, true);
player->CLOSE_GOSSIP_MENU();
break;
case 9:
// Наложение Шипов (Исправлено)
player->CastSpell(player, 53307, true);
player->CLOSE_GOSSIP_MENU();
break;
case 10:
// Наложение Божественный духа (Исправлено)
player->CastSpell(player, 48074, true);
player->CLOSE_GOSSIP_MENU();
break;
case 11:
// Наложение Защиты от темной магии (Исправлено)
player->CastSpell(player, 48170, true);
player->CLOSE_GOSSIP_MENU();
break;
case 12:
player->CastSpell(player, 48102, true);
player->CLOSE_GOSSIP_MENU();
break;
case 13:
if (player->GetHonorPoints() < CONST_HONOR_1)
{
_creature->MonsterWhisper(MSG_ERR_HONOR, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Наложение берсерка и отнятие 1 ляма хонора (Доработано)
player->CastSpell(player, 41924, true);
player->ModifyHonorPoints(-CONST_HONOR_1);
player->CLOSE_GOSSIP_MENU();
}
break;
case 14:
if (player->GetHonorPoints() < CONST_HONOR_2)
{
_creature->MonsterWhisper(MSG_ERR_HONOR, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Наложение Эгиды Рагнароса(Доработано)
player->CastSpell(player, 20620, true);
player->ModifyHonorPoints(-CONST_HONOR_2);
player->CLOSE_GOSSIP_MENU();
}
break;
case 15:
if (player->GetHonorPoints() < CONST_HONOR_2)
{
_creature->MonsterWhisper(MSG_ERR_HONOR, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Наложение Защита Нелтариона(Доработано)
player->CastSpell(player, 51512, true);
player->ModifyHonorPoints(-CONST_HONOR_2);
player->CLOSE_GOSSIP_MENU();
}
break;
case 16:
if (player->GetHonorPoints() < CONST_HONOR_2)
{
_creature->MonsterWhisper(MSG_ERR_HONOR, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Наложение Благословение А'дала
player->CastSpell(player, 35076, true);
player->ModifyHonorPoints(-CONST_HONOR_2);
player->CLOSE_GOSSIP_MENU();
}
break;
case 17:
if (player->GetHonorPoints() < CONST_HONOR_2)
{
_creature->MonsterWhisper(MSG_ERR_HONOR, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Наложение Критического срабатывания положительных эффектов
player->CastSpell(player, 31305, true);
player->ModifyHonorPoints(-CONST_HONOR_2);
player->CLOSE_GOSSIP_MENU();
}
break;
case 18:
if (player->GetHonorPoints() < CONST_HONOR_2)
{
_creature->MonsterWhisper(MSG_ERR_HONOR, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Наложение Благословения мистера Пинчи
player->CastSpell(player, 33053, true);
player->ModifyHonorPoints(-CONST_HONOR_2);
player->CLOSE_GOSSIP_MENU();
}
break;
case 19:
if (player->GetHonorPoints() < CONST_HONOR_2)
{
_creature->MonsterWhisper(MSG_ERR_HONOR, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Наложение Прозрачности
player->CastSpell(player, 37802, true);
player->ModifyHonorPoints(-CONST_HONOR_2);
player->CLOSE_GOSSIP_MENU();
case 20:
player->PlayerTalkClass->ClearMenus();
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_RIDING, GOSSIP_SENDER_MAIN, 35);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MAX_HEALTH, GOSSIP_SENDER_MAIN, 33);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MAX_SKILL, GOSSIP_SENDER_MAIN, 34);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_BUFF_MENU, GOSSIP_SENDER_MAIN, 2);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_PROFFESION_MENU, GOSSIP_SENDER_MAIN, 36);
player->SEND_GOSSIP_MENU (DEFAULT_GOSSIP_MESSAGE,_creature->GetGUID());
break;
case 21:
player->PlayerTalkClass->ClearMenus();
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_TITLES_JENKINS, GOSSIP_SENDER_MAIN, 23);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_TITLES_THE_LOVE_FOOL, GOSSIP_SENDER_MAIN, 24);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_TITLES_MERRYMAKER, GOSSIP_SENDER_MAIN, 25);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_TITLES_SCARAB_LORD, GOSSIP_SENDER_MAIN, 26);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_TITLES_THE_NOBLE, GOSSIP_SENDER_MAIN, 27);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_TITLES_OBSIDIAN_SLAYER, GOSSIP_SENDER_MAIN, 28);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 21);
player->SEND_GOSSIP_MENU (DEFAULT_GOSSIP_MESSAGE,_creature->GetGUID());
break;
case 22:
{CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(143);
if (player->HasTitle(titleInfo))
{
_creature->MonsterWhisper(MSG_ERR_TITLE, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
return false;
}
if (player->GetArenaPoints() < CONST_ARENA_POINT_1)
{
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Даем звание Дженкинс
player->SetTitle(titleInfo);
player->ModifyArenaPoints(-CONST_ARENA_POINT_1);
player->CLOSE_GOSSIP_MENU();
}
}
break;
case 23:
{CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(135);
if (player->HasTitle(titleInfo))
{
_creature->MonsterWhisper(MSG_ERR_TITLE, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
return false;
}
if (player->GetArenaPoints() < CONST_ARENA_POINT_1)
{
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Даем звание Безумно Влюбленный
player->SetTitle(titleInfo);
player->ModifyArenaPoints(-CONST_ARENA_POINT_1);
player->CLOSE_GOSSIP_MENU();
}
}
break;
case 24:
{CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(134);
if (player->HasTitle(titleInfo))
{
_creature->MonsterWhisper(MSG_ERR_TITLE, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
return false;
}
if (player->GetArenaPoints() < CONST_ARENA_POINT_1) {
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Даем звание Весельчак
player->SetTitle(titleInfo);
player->ModifyArenaPoints(-CONST_ARENA_POINT_1);
player->CLOSE_GOSSIP_MENU();
}
}
break;
case 25:
{CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(46);
if (player->HasTitle(titleInfo))
{
_creature->MonsterWhisper(MSG_ERR_TITLE, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
return false;
}
if (player->GetArenaPoints() < CONST_ARENA_POINT_1) {
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Даем звание Повелитель Скоробеев
player->SetTitle(titleInfo);
player->ModifyArenaPoints(-CONST_ARENA_POINT_1);
player->CLOSE_GOSSIP_MENU();
}
}
break;
case 26:
{CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(155);
if (player->HasTitle(titleInfo))
{
_creature->MonsterWhisper(MSG_ERR_TITLE, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
return false;
}
if (player->GetArenaPoints() < CONST_ARENA_POINT_1) {
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Даем звание Чудесный
player->SetTitle(titleInfo);
player->ModifyArenaPoints(-CONST_ARENA_POINT_1);
player->CLOSE_GOSSIP_MENU();
}
}
break;
case 27:
{CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(139);
if (player->HasTitle(titleInfo))
{
_creature->MonsterWhisper(MSG_ERR_TITLE, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
return false;
}
if (player->GetArenaPoints() < CONST_ARENA_POINT_1) {
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Даем звание Покоритель Обсидианового святилища
player->SetTitle(titleInfo);
player->ModifyArenaPoints(-CONST_ARENA_POINT_2);
player->CLOSE_GOSSIP_MENU();
}
}
break;
case 28:
player->PlayerTalkClass->ClearMenus();
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_RENAME, GOSSIP_SENDER_MAIN, 30);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_CUSTOM, GOSSIP_SENDER_MAIN, 31);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_CHANGE_FACTION, GOSSIP_SENDER_MAIN, 32);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 21);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_creature->GetGUID());
break;
case 29:
if (player->GetArenaPoints() < CONST_ARENA_POINT_3)
{
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Делаем Ренейм
player->SetAtLoginFlag(AT_LOGIN_RENAME);
player->ModifyArenaPoints(-CONST_ARENA_POINT_0);
_creature->MonsterWhisper(MSG_COMPLETE_RENAME, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}
break;
case 30:
if (player->GetArenaPoints() < CONST_ARENA_POINT_0)
{
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Делаем Смену внешности
player->SetAtLoginFlag(AT_LOGIN_CUSTOMIZE);
player->ModifyArenaPoints(-CONST_ARENA_POINT_0);
_creature->MonsterWhisper(MSG_CUSTOMIZE_COMPLETE, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}
break;
case 31:
if (player->GetArenaPoints() < CONST_ARENA_POINT_0)
{
_creature->MonsterWhisper(MSG_ERR_ARENA_POINT_1, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}else{
// Делаем Смену внешности
player->SetAtLoginFlag(AT_LOGIN_CHANGE_FACTION);
player->ModifyArenaPoints(-CONST_ARENA_POINT_0);
_creature->MonsterWhisper(MSG_CHANGE_FACTION_COMPLETE, player->GetGUID());
player->CLOSE_GOSSIP_MENU();
}
break;
case 32:
player->SetHealth(player->GetMaxHealth());
player->CLOSE_GOSSIP_MENU();
break;
case 33:
player->UpdateSkillsToMaxSkillsForLevel();
player->CLOSE_GOSSIP_MENU();
break;
case 34:
player->learnSpell(90265, true);
player->SetSkill(762, 6, 450, 450);
player->learnSpell(54197, true);
player->CLOSE_GOSSIP_MENU();
break;
case 35:
player->PlayerTalkClass->ClearMenus();
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_ALCHEMY, GOSSIP_SENDER_MAIN, 37);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BLACKSMITHING, GOSSIP_SENDER_MAIN, 38);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_ENCNANTING, GOSSIP_SENDER_MAIN, 39);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_ENGINEERING, GOSSIP_SENDER_MAIN, 40);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_HERBALISM, GOSSIP_SENDER_MAIN, 41);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_INSCRIPTION, GOSSIP_SENDER_MAIN, 42);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_JEWELCRAFTING, GOSSIP_SENDER_MAIN, 43);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_LEATHERWORKING, GOSSIP_SENDER_MAIN, 44);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_MINING, GOSSIP_SENDER_MAIN, 45);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_SKINNING, GOSSIP_SENDER_MAIN, 46);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_TAILORING, GOSSIP_SENDER_MAIN, 47);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_PROFFESION_SECON_MENU, GOSSIP_SENDER_MAIN, 48);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 21);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_creature->GetGUID());
break;
case 36:
CompleteLearnProfession(player, _creature, SKILL_ALCHEMY);
player->CLOSE_GOSSIP_MENU();
break;
case 37:
CompleteLearnProfession(player, _creature, SKILL_BLACKSMITHING);
player->CLOSE_GOSSIP_MENU();
break;
case 38:
CompleteLearnProfession(player, _creature, SKILL_ENCHANTING);
player->CLOSE_GOSSIP_MENU();
break;
case 39:
CompleteLearnProfession(player, _creature, SKILL_ENGINEERING);
player->CLOSE_GOSSIP_MENU();
break;
case 40:
CompleteLearnProfession(player, _creature, SKILL_HERBALISM);
player->CLOSE_GOSSIP_MENU();
case 41:
CompleteLearnProfession(player, _creature, SKILL_INSCRIPTION);
player->CLOSE_GOSSIP_MENU();
break;
case 42:
CompleteLearnProfession(player, _creature, SKILL_JEWELCRAFTING);
player->CLOSE_GOSSIP_MENU();
break;
case 43:
CompleteLearnProfession(player, _creature, SKILL_LEATHERWORKING);
player->CLOSE_GOSSIP_MENU();
break;
case 44:
CompleteLearnProfession(player, _creature, SKILL_MINING);
player->CLOSE_GOSSIP_MENU();
break;
case 45:
CompleteLearnProfession(player, _creature, SKILL_SKINNING);
player->CLOSE_GOSSIP_MENU();
break;
case 46:
CompleteLearnProfession(player, _creature, SKILL_TAILORING);
player->CLOSE_GOSSIP_MENU();
break;
case 47:
player->PlayerTalkClass->ClearMenus();
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_COOKING, GOSSIP_SENDER_MAIN, 49);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_FIRST_AID, GOSSIP_SENDER_MAIN, 50);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_FISHING, GOSSIP_SENDER_MAIN, 51);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 21);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_creature->GetGUID());
break;
case 48:
CompleteLearnProfession(player, _creature, SKILL_COOKING);
player->CLOSE_GOSSIP_MENU();
break;
case 49:
CompleteLearnProfession(player, _creature, SKILL_FIRST_AID);
player->CLOSE_GOSSIP_MENU();
break;
case 50:
CompleteLearnProfession(player, _creature, SKILL_FISHING);
player->CLOSE_GOSSIP_MENU();
break;
case 51:
player->PlayerTalkClass->ClearMenus();
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MORTH_GNOME_MALE, GOSSIP_SENDER_MAIN, 53);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MORTH_GNOME_FEMALE, GOSSIP_SENDER_MAIN, 54);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MORTH_HUMAN_MALE, GOSSIP_SENDER_MAIN, 55);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MORTH_HUMAN_FEMALE, GOSSIP_SENDER_MAIN, 56);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MORTH_BLOOD_ELF_MALE, GOSSIP_SENDER_MAIN, 57);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MORTH_BLOOD_ELF_MALE, GOSSIP_SENDER_MAIN, 58);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MORTH_TAUREN_MALE, GOSSIP_SENDER_MAIN, 59);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, MSG_GOSSIP_TEXT_MORTH_TAUREN_FEMALE, GOSSIP_SENDER_MAIN, 50);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 21);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_creature->GetGUID());
break;
case 52:
player->CastSpell(player, 37808, true);
player->CLOSE_GOSSIP_MENU();
break;
case 53:
player->CastSpell(player, 37809, true);
player->CLOSE_GOSSIP_MENU();
break;
case 54:
player->CastSpell(player, 35466, true);
player->CLOSE_GOSSIP_MENU();
break;
case 55:
player->CastSpell(player, 37805, true);
player->CLOSE_GOSSIP_MENU();
break;
case 56:
player->CastSpell(player, 37807, true);
player->CLOSE_GOSSIP_MENU();
break;
case 57:
player->CastSpell(player, 37806, true);
player->CLOSE_GOSSIP_MENU();
break;
case 58:
player->CastSpell(player, 37810, true);
player->CLOSE_GOSSIP_MENU();
break;
case 59:
player->CastSpell(player, 37811, true);
player->CLOSE_GOSSIP_MENU();
break;
case 60:
player->RemoveAllAuras();
player->CLOSE_GOSSIP_MENU();
}
}
return true;
}
};
void AddSC_npc_buffer()
{
new npc_buffer;
}