Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- class vip_npc : public CreatureScript
- {
- public:
- vip_npc() : CreatureScript("vip_npc") { }
- bool SummonProfessionTrainer(Player *player, Creature * npc, uint32 npcID)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(npcID,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- return true;
- }
- void SummonTrainer(Player *player, Creature * npc) {
- if(player->getClass() == CLASS_HUNTER)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26325,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_ROGUE)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26329,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_PALADIN)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26327,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_DEATH_KNIGHT)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(29196,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_PRIEST)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26328,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_SHAMAN)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26330,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_WARLOCK)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26331,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_MAGE)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26326,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_WARRIOR)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26332,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- if(player->getClass() == CLASS_DRUID)
- {
- player->CLOSE_GOSSIP_MENU();
- player->SummonCreature(26324,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
- }
- }
- bool OnGossipHello(Player * player, Creature * npc)
- {
- if(player->isInCombat())
- {
- player->CLOSE_GOSSIP_MENU();
- npc->MonsterWhisper("Jsi v Combatu",player->GetGUID(),true);
- return false;
- }
- else
- {
- player->ADD_GOSSIP_ITEM(6, "Uprava Characteru", GOSSIP_SENDER_MAIN, 1);
- player->ADD_GOSSIP_ITEM(2, "Teleport", GOSSIP_SENDER_MAIN, 2);
- player->ADD_GOSSIP_ITEM(6, "Pujcit Mounta [10 Gold]", GOSSIP_SENDER_MAIN, 3);
- player->ADD_GOSSIP_ITEM(6, "Trainer", GOSSIP_SENDER_MAIN, 4);
- player->ADD_GOSSIP_ITEM(6, "Heal", GOSSIP_SENDER_MAIN, 5);
- player->ADD_GOSSIP_ITEM(6, "Goldy", GOSSIP_SENDER_MAIN, 6); // 1000 goldu = 5 EM
- player->SEND_GOSSIP_MENU(1, npc->GetGUID());
- return true;
- }
- }
- bool OnGossipSelect(Player * player, Creature * npc, uint32 sender, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch(action)
- {
- case 1:
- player->ADD_GOSSIP_ITEM(6, "Rename", GOSSIP_SENDER_MAIN, 7);
- player->ADD_GOSSIP_ITEM(6, "Customize", GOSSIP_SENDER_MAIN, 8);
- player->ADD_GOSSIP_ITEM(6, "Race Change", GOSSIP_SENDER_MAIN, 10);
- player->ADD_GOSSIP_ITEM(6, "Faction Change", GOSSIP_SENDER_MAIN, 9);
- player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 100);
- player->SEND_GOSSIP_MENU(1, npc->GetGUID());
- break;
- case 3:
- player->CLOSE_GOSSIP_MENU();
- player->ADD_GOSSIP_ITEM(6, "Riding Turtle", GOSSIP_SENDER_MAIN, 11);
- player->ADD_GOSSIP_ITEM(6, "Sea Turtle", GOSSIP_SENDER_MAIN, 12);
- player->ADD_GOSSIP_ITEM(6, "Big Love Rocket", GOSSIP_SENDER_MAIN, 13);
- player->ADD_GOSSIP_ITEM(6, "X-53 Touring Rocket", GOSSIP_SENDER_MAIN, 14);
- player->ADD_GOSSIP_ITEM(6, "X-51 Nether-Rocket X-TREME", GOSSIP_SENDER_MAIN, 15);
- player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 100);
- player->SEND_GOSSIP_MENU(1, npc->GetGUID());
- break;
- case 4:
- player->CLOSE_GOSSIP_MENU();
- player->ADD_GOSSIP_ITEM(6, "Profession Trainer", GOSSIP_SENDER_MAIN, 26);
- player->ADD_GOSSIP_ITEM(6, "Class Trainer", GOSSIP_SENDER_MAIN, 27);
- player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 100);
- player->SEND_GOSSIP_MENU(1, npc->GetGUID());
- break;
- case 5:
- player->CLOSE_GOSSIP_MENU();
- npc->CastSpell(player,69693,true);
- break;
- case 6:
- player->CLOSE_GOSSIP_MENU();
- if(player->GetItemCount(666666,false,0) <= 4)
- {
- npc->MonsterWhisper("Nedostatek Event Marek",player->GetGUID(),true);
- }
- else
- {
- player->ModifyMoney(20000000);
- player->AddItem(666666,-5);
- npc->MonsterWhisper("Hotovo.",player->GetGUID(),true);
- }
- break;
- case 7:
- player->CLOSE_GOSSIP_MENU();
- player->SetAtLoginFlag(AT_LOGIN_RENAME);
- player->MonsterWhisper("Po relogu si zmenis jmeno",player->GetGUID(),true);
- break;
- case 8:
- player->CLOSE_GOSSIP_MENU();
- player->SetAtLoginFlag(AT_LOGIN_CUSTOMIZE);
- player->MonsterWhisper("Po relogu si zmenis vzhled",player->GetGUID(),true);
- break;
- case 9:
- player->CLOSE_GOSSIP_MENU();
- player->SetAtLoginFlag(AT_LOGIN_CHANGE_FACTION);
- player->MonsterWhisper("Po relogu si zmenis frakci",player->GetGUID(),true);
- break;
- case 10:
- player->CLOSE_GOSSIP_MENU();
- player->SetAtLoginFlag(AT_LOGIN_CHANGE_RACE);
- player->MonsterWhisper("Po relogu si zmenis rasu",player->GetGUID(),true);
- break;
- case 11:
- if(player->GetMoney() < 100000)
- {
- player->CLOSE_GOSSIP_MENU();
- npc->MonsterWhisper("Nemas dostatek goldu.",player->GetGUID(),true);
- break;
- }
- else
- {
- player->RemoveAurasByType(SPELL_AURA_MOUNTED);
- player->RemoveMovementImpairingAuras();
- player->CLOSE_GOSSIP_MENU();
- player->AddAura(30174,player);
- player->ModifyMoney(-100000);
- break;
- }
- case 12:
- if(player->GetMoney() < 100000)
- {
- player->CLOSE_GOSSIP_MENU();
- npc->MonsterWhisper("Nemas dostatek goldu",player->GetGUID(),true);
- break;
- }
- else
- {
- player->RemoveAurasByType(SPELL_AURA_MOUNTED);
- player->CLOSE_GOSSIP_MENU();
- player->AddAura(64731,player);
- player->ModifyMoney(-100000);
- break;
- }
- case 13:
- if(player->GetMoney() < 100000)
- {
- player->CLOSE_GOSSIP_MENU();
- npc->MonsterWhisper("Nemas dostatek goldu",player->GetGUID(),true);
- break;
- }
- else
- {
- player->RemoveAurasByType(SPELL_AURA_MOUNTED);
- player->CLOSE_GOSSIP_MENU();
- player->AddAura(71345,player);
- player->ModifyMoney(-100000);
- break;
- }
- case 14:
- if(player->GetMoney() < 100000)
- {
- player->CLOSE_GOSSIP_MENU();
- npc->MonsterWhisper("Nemas dostatek goldu",player->GetGUID(),true);
- break;
- }
- else
- {
- player->RemoveAurasByType(SPELL_AURA_MOUNTED);
- player->CLOSE_GOSSIP_MENU();
- player->AddAura(75973,player);
- player->ModifyMoney(-100000);
- break;
- }
- case 15:
- if(player->GetMoney() < 100000)
- {
- player->CLOSE_GOSSIP_MENU();
- npc->MonsterWhisper("Nemas dostatek goldu",player->GetGUID(),true);
- break;
- }
- else
- {
- player->RemoveAurasByType(SPELL_AURA_MOUNTED);
- player->CLOSE_GOSSIP_MENU();
- player->AddAura(46199,player);
- player->ModifyMoney(-100000);
- break;
- }
- case 2: //Teleport
- player->PlayerTalkClass->ClearMenus();
- if (player->GetTeam() == HORDE ) //Hordská města
- {
- player->ADD_GOSSIP_ITEM(2, "Orgrimmar", GOSSIP_SENDER_MAIN, 16);
- player->ADD_GOSSIP_ITEM(2, "Thunder Bluff", GOSSIP_SENDER_MAIN, 17);
- player->ADD_GOSSIP_ITEM(2, "Silvermoon City", GOSSIP_SENDER_MAIN, 18);
- player->ADD_GOSSIP_ITEM(2, "Undercity", GOSSIP_SENDER_MAIN, 19);
- }
- else //Alianční města
- {
- player->ADD_GOSSIP_ITEM(2, "Stormwind City", GOSSIP_SENDER_MAIN, 20);
- player->ADD_GOSSIP_ITEM(2, "Ironforge", GOSSIP_SENDER_MAIN, 21);
- player->ADD_GOSSIP_ITEM(2, "The Exodar", GOSSIP_SENDER_MAIN, 22);
- player->ADD_GOSSIP_ITEM(2, "Darnassus", GOSSIP_SENDER_MAIN, 23);
- }
- if(player->getLevel() >= 58) //Do Outlandu od levelu 58
- {
- player->ADD_GOSSIP_ITEM(2, "Shattrath City", GOSSIP_SENDER_MAIN, 24);
- }
- if(player->getLevel() >= 68) //Do Northrendu od levelu 68
- {
- player->ADD_GOSSIP_ITEM(2, "Dalaran", GOSSIP_SENDER_MAIN, 25);
- }
- player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 100);
- player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
- break;
- case 16: //Orgrimmar
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(1, 1483.25f, -4416.525f, 25.003f, 0);
- break;
- case 17: //Thunder Bluff
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(1, -1197.3f, 30 , 177, 1.589f);
- break;
- case 18: //Silvermoon City
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(530, 9530.775f, -7300.459f, 15.24f, 3.139f);
- break;
- case 19: //Undercity
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(0, 1560.7f, 240.45f, -43.1045f, 0.01f);
- break;
- case 20: //Stormwind City
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(0, -8800.41f, 622.355f, 96.8f, 2.255f);
- break;
- case 21: //Ironforge
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(0, -4918.880f, -940.406f, 501.57f, 5.42f);
- break;
- case 22: //The Exodar
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(530 , -4016.944f, -11675.455f, -134.932f , 0.105f);
- break;
- case 23: //Darnassus
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(1, 9951.804f, 2280.401f, 1341.394f, 1.425f);
- break;
- case 24: //Shattrath City
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(530, -1837.538f, 5378.270f, -12.427f, 1.941f);
- break;
- case 25: //Dalaran
- player->CLOSE_GOSSIP_MENU();
- player->TeleportTo(571, 5848.875f, 602.287f, 651.142f, 2.448f);
- break;
- case 26:
- player->CLOSE_GOSSIP_MENU();
- player->PlayerTalkClass->ClearMenus();
- player->ADD_GOSSIP_ITEM(6, "Mining Trainer", GOSSIP_SENDER_MAIN, 28);
- player->ADD_GOSSIP_ITEM(6, "Herbalism Trainer", GOSSIP_SENDER_MAIN, 29);
- player->ADD_GOSSIP_ITEM(6, "Skining Trainer", GOSSIP_SENDER_MAIN, 30);
- player->ADD_GOSSIP_ITEM(6, "Blacksmithing Trainer", GOSSIP_SENDER_MAIN, 31);
- player->ADD_GOSSIP_ITEM(6, "Engineering Trainer", GOSSIP_SENDER_MAIN, 32);
- player->ADD_GOSSIP_ITEM(6, "Alchemy Trainer", GOSSIP_SENDER_MAIN, 33);
- player->ADD_GOSSIP_ITEM(6, "Jewelcrafting Trainer", GOSSIP_SENDER_MAIN, 43);
- player->ADD_GOSSIP_ITEM(6, "Inscription Trainer", GOSSIP_SENDER_MAIN, 34);
- player->ADD_GOSSIP_ITEM(6, "Enchanting", GOSSIP_SENDER_MAIN, 42);
- player->ADD_GOSSIP_ITEM(6, "Tailoring Trainer", GOSSIP_SENDER_MAIN, 35);
- player->ADD_GOSSIP_ITEM(6, "Leatherworking Trainer", GOSSIP_SENDER_MAIN, 36);
- player->ADD_GOSSIP_ITEM(6, "Cooking Trainer", GOSSIP_SENDER_MAIN, 37);
- player->ADD_GOSSIP_ITEM(6, "Fishing Trainer", GOSSIP_SENDER_MAIN, 38);
- player->ADD_GOSSIP_ITEM(6, "First Aid Trainer", GOSSIP_SENDER_MAIN, 39);
- player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 4);
- player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
- break;
- case 27:
- player->CLOSE_GOSSIP_MENU();
- SummonTrainer(player, npc);
- break;
- case 28:
- SummonProfessionTrainer(player,npc, 28698);
- break;
- case 29:
- SummonProfessionTrainer(player,npc, 28704);
- break;
- case 30:
- SummonProfessionTrainer(player,npc, 28696);
- break;
- case 31:
- SummonProfessionTrainer(player,npc, 28694);
- break;
- case 32:
- SummonProfessionTrainer(player,npc, 28697);
- break;
- case 33:
- player->PlayerTalkClass->ClearMenus();
- player->ADD_GOSSIP_ITEM(6, "Normal Alchemy Trainer", GOSSIP_SENDER_MAIN, 40);
- player->ADD_GOSSIP_ITEM(6, "Grand Master Alchemy Trainer", GOSSIP_SENDER_MAIN, 41);
- player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 26);
- player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
- break;
- case 34:
- SummonProfessionTrainer(player,npc, 28702);
- break;
- case 35:
- SummonProfessionTrainer(player,npc, 28699);
- break;
- case 36:
- SummonProfessionTrainer(player,npc, 28700);
- break;
- case 37:
- SummonProfessionTrainer(player,npc, 29631);
- break;
- case 38:
- SummonProfessionTrainer(player,npc, 28742);
- break;
- case 39:
- SummonProfessionTrainer(player,npc, 28706);
- break;
- case 40:
- SummonProfessionTrainer(player,npc, 19052);
- break;
- case 41:
- SummonProfessionTrainer(player,npc, 28703);
- break;
- case 42:
- SummonProfessionTrainer(player,npc, 28693);
- break;
- case 43:
- SummonProfessionTrainer(player,npc, 28701);
- break;
- case 100:
- player->ADD_GOSSIP_ITEM(6, "Uprava Characteru", GOSSIP_SENDER_MAIN, 1);
- player->ADD_GOSSIP_ITEM(2, "Teleport", GOSSIP_SENDER_MAIN, 2);
- player->ADD_GOSSIP_ITEM(6, "Pujcit Mounta [10 Gold]", GOSSIP_SENDER_MAIN, 3);
- player->ADD_GOSSIP_ITEM(6, "Trainer", GOSSIP_SENDER_MAIN, 4);
- player->ADD_GOSSIP_ITEM(6, "Heal", GOSSIP_SENDER_MAIN, 5);
- player->ADD_GOSSIP_ITEM(6, "Pls Goldy", GOSSIP_SENDER_MAIN, 6);
- player->SEND_GOSSIP_MENU(1, npc->GetGUID());
- break;
- }
- return true;
- }
- };
- void AddSC_vip_npc()
- {
- new vip_npc();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement