Npc métiers ( apprend le métier et le met à sa compétence maximum donc 450 )
Code :
#include "ScriptPCH.h"
#include <cstring>
#define SPELL_CALLIGRAPHIE 45363
#define SKILL_CALLIGRAPHIE 773
#define SPELL_INGENIEUR 51306
#define SKILL_INGENIEUR 202
#define SPELL_ENCHANTEUR 51313
#define SKILL_ENCHANTEUR 333
#define SPELL_TRAVAILDUCUIR 51302
#define SKILL_TRAVAILDUCUIR 165
#define SPELL_COUTURE 51309
#define SKILL_COUTURE 197
#define SPELL_FORGE 51300
#define SKILL_FORGE 164
#define SPELL_JOAILLER 51311
#define SKILL_JOAILLER 755
#define SPELL_HERBORISTERIE 50301
#define SKILL_HERBORISTERIE 182
#define SPELL_SECOURISME 45542
#define SKILL_SECOURISME 129
#define SPELL_ALCHIMIE 51304
#define SKILL_ALCHIMIE 171
#define SPELL_CUISINE 51296
#define SKILL_CUISINE 185
class npc_metiers : public CreatureScript
{
public:
npc_metiers()
: CreatureScript("npc_metiers")
{
}
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Calligraphie", GOSSIP_SENDER_MAIN, 2000); //ACTION 2000
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Ingenierie", GOSSIP_SENDER_MAIN, 2001);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Enchantement", GOSSIP_SENDER_MAIN, 2002);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Travail du cuir", GOSSIP_SENDER_MAIN, 2003);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Couture", GOSSIP_SENDER_MAIN, 2004);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Forge", GOSSIP_SENDER_MAIN, 2005);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Joaillerie", GOSSIP_SENDER_MAIN, 2006);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Herboristerie", GOSSIP_SENDER_MAIN, 2007);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Secourisme", GOSSIP_SENDER_MAIN, 2008);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Alchimie", GOSSIP_SENDER_MAIN, 2009);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Cuisine", GOSSIP_SENDER_MAIN, 2010);
pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
return true;
}
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
pPlayer->PlayerTalkClass->ClearMenus();
//SELECTION SELON ACTION
switch(uiAction)
{
case 2000:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_CALLIGRAPHIE, true); //SPELL ID CALIGRAPHIE
pPlayer->SetSkill(SKILL_CALLIGRAPHIE, pPlayer->GetSkillStep(SKILL_CALLIGRAPHIE), 450, pPlayer->GetPureMaxSkillValue(SKILL_CALLIGRAPHIE));
break;
case 2001:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_INGENIEUR, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_INGENIEUR, pPlayer->GetSkillStep(SKILL_INGENIEUR), 450, pPlayer->GetPureMaxSkillValue(SKILL_INGENIEUR));
//SORTIE DU SWITCH => SELECTION
break;
case 2002:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_ENCHANTEUR, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_ENCHANTEUR, pPlayer->GetSkillStep(SKILL_ENCHANTEUR), 450, pPlayer->GetPureMaxSkillValue(SKILL_ENCHANTEUR));
break;
case 2003:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_TRAVAILDUCUIR, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_TRAVAILDUCUIR, pPlayer->GetSkillStep(SKILL_TRAVAILDUCUIR), 450, pPlayer->GetPureMaxSkillValue(SKILL_TRAVAILDUCUIR));
break;
case 2004:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_COUTURE, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_COUTURE, pPlayer->GetSkillStep(SKILL_COUTURE), 450, pPlayer->GetPureMaxSkillValue(SKILL_COUTURE));
break;
case 2005:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_FORGE, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_FORGE, pPlayer->GetSkillStep(SKILL_FORGE), 450, pPlayer->GetPureMaxSkillValue(SKILL_FORGE));
break;
case 2006:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_JOAILLER, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_JOAILLER, pPlayer->GetSkillStep(SKILL_JOAILLER), 450, pPlayer->GetPureMaxSkillValue(SKILL_JOAILLER));
break;
case 2007:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_HERBORISTERIE, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_HERBORISTERIE, pPlayer->GetSkillStep(SKILL_HERBORISTERIE), 450, pPlayer->GetPureMaxSkillValue(SKILL_HERBORISTERIE));
break;
case 2008:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_SECOURISME, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_SECOURISME, pPlayer->GetSkillStep(SKILL_SECOURISME), 450, pPlayer->GetPureMaxSkillValue(SKILL_SECOURISME));
break;
case 2009:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_ALCHIMIE, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_ALCHIMIE, pPlayer->GetSkillStep(SKILL_ALCHIMIE), 450, pPlayer->GetPureMaxSkillValue(SKILL_ALCHIMIE));
break;
case 2010:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->learnSpell(SPELL_CUISINE, true); //SPELL ID INGENIEUR
pPlayer->SetSkill(SKILL_CUISINE, pPlayer->GetSkillStep(SKILL_CUISINE), 450, pPlayer->GetPureMaxSkillValue(SKILL_CUISINE));
break;
}
return true;
}
};
void AddSC_npc_metiers()
{
new npc_metiers();
}
Et un NPC téléporteur :
Code :
#include "ScriptPCH.h"
#include <cstring>
class npc_teleporteur : public CreatureScript
{
public:
npc_teleporteur()
: CreatureScript("npc_teleporteur")
{
}
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
{
// TEXT BONJOUR NOM JOUEUR
//DoScriptText(SAY_HELLO, pCreature);
/*MENU
if(pPlayer->getClass() == CLASS_HUNTER) {
//HUNTER
}
if(pPlayer->isGameMaster()) {
} else if(pPlayer->GetTeam() == ALLIANCE) { //SI LE JOUEUR EST ALLIANCEUX
//ALLIANCE
} else { //SINON IL EST HORDEUX
//HORDE
}
*/
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "Zone Duel", GOSSIP_SENDER_MAIN, 2000); //ACTION 2000
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "Zone Shop", GOSSIP_SENDER_MAIN, 2001);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "Hache-Tripes", GOSSIP_SENDER_MAIN, 2002);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "Dalaran", GOSSIP_SENDER_MAIN, 2003);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "Shattrath", GOSSIP_SENDER_MAIN, 2004);
pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
return true;
}
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
pPlayer->PlayerTalkClass->ClearMenus();
//SELECTION SELON ACTION
switch(uiAction)
{
case 2000:
pPlayer->CLOSE_GOSSIP_MENU();
//DoScriptText(SAY_WRONG_LEVEL, pCreature);
pPlayer->TeleportTo(1, -10710.816406f, 2482.410156f,7.921670f, 3.411966f);
break;
case 2001:
//TELEPORTATION
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->TeleportTo(1, -5084.569824f, -1970.650024f,91.536987f, 2.152980f);
//SORTIE DU SWITCH => SELECTION
break;
case 2002:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->TeleportTo(1, -3760.950439f, 1174.449097f,127.435844f, 4.705639f);
break;
case 2003:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,647.767029f, 1.640f);
break;
case 2004:
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->TeleportTo(530, -1838.160034f, 5301.790039f,-12.4280f, 5.95170);
break;
}
return true;
}
};
void AddSC_npc_teleporteur()
{
new npc_teleporteur();
}