Advertisement
Guest User

Untitled

a guest
Aug 13th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 15.14 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2. class vip_npc : public CreatureScript
  3. {
  4. public:
  5.         vip_npc() : CreatureScript("vip_npc") { }
  6.  
  7. bool SummonProfessionTrainer(Player *player, Creature * npc, uint32 npcID)
  8. {
  9.     player->CLOSE_GOSSIP_MENU();
  10.     player->SummonCreature(npcID,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  11.     return true;
  12. }
  13. void SummonTrainer(Player *player, Creature * npc) {
  14.                 if(player->getClass() == CLASS_HUNTER)
  15.                 {
  16.                     player->CLOSE_GOSSIP_MENU();
  17.                     player->SummonCreature(26325,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  18.                 }
  19.                 if(player->getClass() == CLASS_ROGUE)
  20.                 {
  21.                     player->CLOSE_GOSSIP_MENU();
  22.                     player->SummonCreature(26329,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  23.                 }
  24.                 if(player->getClass() == CLASS_PALADIN)
  25.                 {
  26.                     player->CLOSE_GOSSIP_MENU();
  27.                     player->SummonCreature(26327,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  28.                 }
  29.                 if(player->getClass() == CLASS_DEATH_KNIGHT)
  30.                 {
  31.                     player->CLOSE_GOSSIP_MENU();
  32.                     player->SummonCreature(29196,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  33.                 }
  34.                 if(player->getClass() == CLASS_PRIEST)
  35.                 {
  36.                     player->CLOSE_GOSSIP_MENU();
  37.                     player->SummonCreature(26328,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  38.                 }
  39.                 if(player->getClass() == CLASS_SHAMAN)
  40.                 {
  41.                     player->CLOSE_GOSSIP_MENU();
  42.                     player->SummonCreature(26330,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  43.                 }
  44.                 if(player->getClass() == CLASS_WARLOCK)
  45.                 {
  46.                     player->CLOSE_GOSSIP_MENU();
  47.                     player->SummonCreature(26331,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  48.                 }
  49.                 if(player->getClass() == CLASS_MAGE)
  50.                 {
  51.                     player->CLOSE_GOSSIP_MENU();
  52.                     player->SummonCreature(26326,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  53.                 }
  54.                 if(player->getClass() == CLASS_WARRIOR)
  55.                 {
  56.                     player->CLOSE_GOSSIP_MENU();
  57.                     player->SummonCreature(26332,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  58.                 }
  59.                 if(player->getClass() == CLASS_DRUID)
  60.                 {
  61.                     player->CLOSE_GOSSIP_MENU();
  62.                     player->SummonCreature(26324,player->GetPositionX(),player->GetPositionY(),player->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,25000);
  63.                 }
  64. }
  65. bool OnGossipHello(Player * player, Creature * npc)
  66. {
  67.         if(player->isInCombat())
  68.         {
  69.             player->CLOSE_GOSSIP_MENU();
  70.             npc->MonsterWhisper("Jsi v Combatu",player->GetGUID(),true);
  71.             return false;
  72.         }
  73.         else
  74.         {
  75.             player->ADD_GOSSIP_ITEM(6, "Uprava Characteru", GOSSIP_SENDER_MAIN, 1);
  76.             player->ADD_GOSSIP_ITEM(2, "Teleport", GOSSIP_SENDER_MAIN, 2);
  77.             player->ADD_GOSSIP_ITEM(6, "Pujcit Mounta [10 Gold]", GOSSIP_SENDER_MAIN, 3);
  78.             player->ADD_GOSSIP_ITEM(6, "Trainer", GOSSIP_SENDER_MAIN, 4);
  79.             player->ADD_GOSSIP_ITEM(6, "Heal", GOSSIP_SENDER_MAIN, 5);
  80.             player->ADD_GOSSIP_ITEM(6, "Goldy", GOSSIP_SENDER_MAIN, 6); // 1000 goldu = 5 EM
  81.             player->SEND_GOSSIP_MENU(1, npc->GetGUID());
  82.             return true;
  83.         }
  84. }
  85. bool OnGossipSelect(Player * player, Creature * npc, uint32 sender, uint32 action)
  86. {
  87.     player->PlayerTalkClass->ClearMenus();
  88.     switch(action)
  89.     {
  90.         case 1:
  91.                 player->ADD_GOSSIP_ITEM(6, "Rename", GOSSIP_SENDER_MAIN, 7);
  92.                 player->ADD_GOSSIP_ITEM(6, "Customize", GOSSIP_SENDER_MAIN, 8);
  93.                 player->ADD_GOSSIP_ITEM(6, "Race Change", GOSSIP_SENDER_MAIN, 10);
  94.                 player->ADD_GOSSIP_ITEM(6, "Faction Change", GOSSIP_SENDER_MAIN, 9);
  95.                 player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 100);
  96.                 player->SEND_GOSSIP_MENU(1, npc->GetGUID());
  97.                 break;
  98.         case 3:
  99.                 player->CLOSE_GOSSIP_MENU();
  100.                 player->ADD_GOSSIP_ITEM(6, "Riding Turtle", GOSSIP_SENDER_MAIN, 11);
  101.                 player->ADD_GOSSIP_ITEM(6, "Sea Turtle", GOSSIP_SENDER_MAIN, 12);
  102.                 player->ADD_GOSSIP_ITEM(6, "Big Love Rocket", GOSSIP_SENDER_MAIN, 13);
  103.                 player->ADD_GOSSIP_ITEM(6, "X-53 Touring Rocket", GOSSIP_SENDER_MAIN, 14);
  104.                 player->ADD_GOSSIP_ITEM(6, "X-51 Nether-Rocket X-TREME", GOSSIP_SENDER_MAIN, 15);
  105.                 player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 100);
  106.                 player->SEND_GOSSIP_MENU(1, npc->GetGUID());
  107.                 break;
  108.         case 4:
  109.                 player->CLOSE_GOSSIP_MENU();
  110.                 player->ADD_GOSSIP_ITEM(6, "Profession Trainer", GOSSIP_SENDER_MAIN, 26);
  111.                 player->ADD_GOSSIP_ITEM(6, "Class Trainer", GOSSIP_SENDER_MAIN, 27);
  112.                 player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 100);
  113.                 player->SEND_GOSSIP_MENU(1, npc->GetGUID());
  114.                 break;
  115.         case 5:
  116.                 player->CLOSE_GOSSIP_MENU();
  117.                 npc->CastSpell(player,69693,true);
  118.                 break;
  119.         case 6:
  120.                 player->CLOSE_GOSSIP_MENU();
  121.                 if(player->GetItemCount(666666,false,0) <= 4)
  122.                 {
  123.                     npc->MonsterWhisper("Nedostatek Event Marek",player->GetGUID(),true);
  124.                 }
  125.                 else
  126.                 {
  127.                     player->ModifyMoney(20000000);
  128.                     player->AddItem(666666,-5);
  129.                     npc->MonsterWhisper("Hotovo.",player->GetGUID(),true);
  130.                 }
  131.                 break;
  132.         case 7:
  133.                 player->CLOSE_GOSSIP_MENU();
  134.                 player->SetAtLoginFlag(AT_LOGIN_RENAME);
  135.                 player->MonsterWhisper("Po relogu si zmenis jmeno",player->GetGUID(),true);
  136.                 break;
  137.         case 8:
  138.                 player->CLOSE_GOSSIP_MENU();
  139.                 player->SetAtLoginFlag(AT_LOGIN_CUSTOMIZE);
  140.                 player->MonsterWhisper("Po relogu si zmenis vzhled",player->GetGUID(),true);
  141.                 break;
  142.         case 9:
  143.                 player->CLOSE_GOSSIP_MENU();
  144.                 player->SetAtLoginFlag(AT_LOGIN_CHANGE_FACTION);
  145.                 player->MonsterWhisper("Po relogu si zmenis frakci",player->GetGUID(),true);
  146.                 break;
  147.         case 10:
  148.                 player->CLOSE_GOSSIP_MENU();
  149.                 player->SetAtLoginFlag(AT_LOGIN_CHANGE_RACE);
  150.                 player->MonsterWhisper("Po relogu si zmenis rasu",player->GetGUID(),true);
  151.                 break;
  152.         case 11:
  153.                 if(player->GetMoney() < 100000)
  154.                 {
  155.                     player->CLOSE_GOSSIP_MENU();
  156.                     npc->MonsterWhisper("Nemas dostatek goldu.",player->GetGUID(),true);
  157.                     break;
  158.                 }
  159.                 else
  160.                 {
  161.                     player->RemoveAurasByType(SPELL_AURA_MOUNTED);
  162.                     player->RemoveMovementImpairingAuras();
  163.                     player->CLOSE_GOSSIP_MENU();
  164.                     player->AddAura(30174,player);
  165.                     player->ModifyMoney(-100000);
  166.                     break;
  167.                 }
  168.         case 12:
  169.                 if(player->GetMoney() < 100000)
  170.                 {
  171.                     player->CLOSE_GOSSIP_MENU();
  172.                     npc->MonsterWhisper("Nemas dostatek goldu",player->GetGUID(),true);
  173.                     break;
  174.                 }
  175.                 else
  176.                 {
  177.                     player->RemoveAurasByType(SPELL_AURA_MOUNTED);
  178.                     player->CLOSE_GOSSIP_MENU();
  179.                     player->AddAura(64731,player);
  180.                     player->ModifyMoney(-100000);
  181.                     break;
  182.                 }
  183.         case 13:
  184.                 if(player->GetMoney() < 100000)
  185.                 {
  186.                     player->CLOSE_GOSSIP_MENU();
  187.                     npc->MonsterWhisper("Nemas dostatek goldu",player->GetGUID(),true);
  188.                     break;
  189.                 }
  190.                 else
  191.                 {
  192.                     player->RemoveAurasByType(SPELL_AURA_MOUNTED);
  193.                     player->CLOSE_GOSSIP_MENU();
  194.                     player->AddAura(71345,player);
  195.                     player->ModifyMoney(-100000);
  196.                     break;
  197.                 }
  198.         case 14:
  199.                 if(player->GetMoney() < 100000)
  200.                 {
  201.                     player->CLOSE_GOSSIP_MENU();
  202.                     npc->MonsterWhisper("Nemas dostatek goldu",player->GetGUID(),true);
  203.                     break;
  204.                 }
  205.                 else
  206.                 {
  207.                     player->RemoveAurasByType(SPELL_AURA_MOUNTED);
  208.                     player->CLOSE_GOSSIP_MENU();
  209.                     player->AddAura(75973,player);
  210.                     player->ModifyMoney(-100000);
  211.                     break;
  212.                 }
  213.         case 15:
  214.                 if(player->GetMoney() < 100000)
  215.                 {
  216.                     player->CLOSE_GOSSIP_MENU();
  217.                     npc->MonsterWhisper("Nemas dostatek goldu",player->GetGUID(),true);
  218.                     break;
  219.                 }
  220.                 else
  221.                 {
  222.                     player->RemoveAurasByType(SPELL_AURA_MOUNTED);
  223.                     player->CLOSE_GOSSIP_MENU();
  224.                     player->AddAura(46199,player);
  225.                     player->ModifyMoney(-100000);
  226.                     break;
  227.                 }
  228.         case 2: //Teleport
  229.                player->PlayerTalkClass->ClearMenus();
  230.                if (player->GetTeam() == HORDE ) //Hordská města
  231.                                 {
  232.                                         player->ADD_GOSSIP_ITEM(2, "Orgrimmar", GOSSIP_SENDER_MAIN, 16);
  233.                                         player->ADD_GOSSIP_ITEM(2, "Thunder Bluff", GOSSIP_SENDER_MAIN, 17);
  234.                                         player->ADD_GOSSIP_ITEM(2, "Silvermoon City", GOSSIP_SENDER_MAIN, 18);
  235.                                         player->ADD_GOSSIP_ITEM(2, "Undercity", GOSSIP_SENDER_MAIN, 19);
  236.                                 }
  237.        
  238.         else //Alianční města
  239.                                 {
  240.                                         player->ADD_GOSSIP_ITEM(2, "Stormwind City", GOSSIP_SENDER_MAIN, 20);
  241.                                         player->ADD_GOSSIP_ITEM(2, "Ironforge", GOSSIP_SENDER_MAIN, 21);
  242.                                         player->ADD_GOSSIP_ITEM(2, "The Exodar", GOSSIP_SENDER_MAIN, 22);
  243.                                         player->ADD_GOSSIP_ITEM(2, "Darnassus", GOSSIP_SENDER_MAIN, 23);
  244.                                 }
  245.                if(player->getLevel() >= 58) //Do Outlandu od levelu 58
  246.                 {
  247.                                         player->ADD_GOSSIP_ITEM(2, "Shattrath City", GOSSIP_SENDER_MAIN, 24);
  248.                 }
  249.                if(player->getLevel() >= 68) //Do Northrendu od levelu 68
  250.                 {
  251.                                         player->ADD_GOSSIP_ITEM(2, "Dalaran", GOSSIP_SENDER_MAIN, 25);
  252.                 }
  253.                 player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 100);
  254.                                 player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
  255.                                 break;
  256.        case 16: //Orgrimmar
  257.                                 player->CLOSE_GOSSIP_MENU();
  258.                                 player->TeleportTo(1, 1483.25f, -4416.525f, 25.003f, 0);
  259.                                 break;
  260.        case 17: //Thunder Bluff
  261.                                 player->CLOSE_GOSSIP_MENU();
  262.                                 player->TeleportTo(1, -1197.3f, 30 , 177, 1.589f);
  263.                                 break;
  264.        case 18: //Silvermoon City
  265.                                 player->CLOSE_GOSSIP_MENU();
  266.                                 player->TeleportTo(530, 9530.775f, -7300.459f, 15.24f, 3.139f);
  267.                                 break;
  268.        case 19: //Undercity
  269.                                 player->CLOSE_GOSSIP_MENU();
  270.                                 player->TeleportTo(0, 1560.7f, 240.45f, -43.1045f, 0.01f);
  271.                                 break;
  272.        case 20: //Stormwind City
  273.                                 player->CLOSE_GOSSIP_MENU();
  274.                                 player->TeleportTo(0, -8800.41f, 622.355f, 96.8f, 2.255f);
  275.                                 break;
  276.        case 21: //Ironforge
  277.                                 player->CLOSE_GOSSIP_MENU();
  278.                                 player->TeleportTo(0, -4918.880f, -940.406f, 501.57f, 5.42f);
  279.                                 break;
  280.        case 22: //The Exodar
  281.                                 player->CLOSE_GOSSIP_MENU();
  282.                                 player->TeleportTo(530 , -4016.944f, -11675.455f, -134.932f , 0.105f);
  283.                                 break;
  284.        case 23: //Darnassus
  285.                                 player->CLOSE_GOSSIP_MENU();
  286.                                 player->TeleportTo(1, 9951.804f, 2280.401f, 1341.394f, 1.425f);
  287.                                 break;
  288.        case 24: //Shattrath City
  289.                                 player->CLOSE_GOSSIP_MENU();
  290.                                 player->TeleportTo(530, -1837.538f, 5378.270f, -12.427f, 1.941f);
  291.                                 break;
  292.         case 25: //Dalaran
  293.                                 player->CLOSE_GOSSIP_MENU();
  294.                                 player->TeleportTo(571, 5848.875f, 602.287f, 651.142f, 2.448f);
  295.                                 break;
  296.         case 26:
  297.                     player->CLOSE_GOSSIP_MENU();
  298.                     player->PlayerTalkClass->ClearMenus();
  299.                     player->ADD_GOSSIP_ITEM(6, "Mining Trainer", GOSSIP_SENDER_MAIN, 28);
  300.                     player->ADD_GOSSIP_ITEM(6, "Herbalism Trainer", GOSSIP_SENDER_MAIN, 29);
  301.                     player->ADD_GOSSIP_ITEM(6, "Skining Trainer", GOSSIP_SENDER_MAIN, 30);
  302.                     player->ADD_GOSSIP_ITEM(6, "Blacksmithing Trainer", GOSSIP_SENDER_MAIN, 31);
  303.                     player->ADD_GOSSIP_ITEM(6, "Engineering Trainer", GOSSIP_SENDER_MAIN, 32);
  304.                     player->ADD_GOSSIP_ITEM(6, "Alchemy Trainer", GOSSIP_SENDER_MAIN, 33);
  305.                     player->ADD_GOSSIP_ITEM(6, "Jewelcrafting Trainer", GOSSIP_SENDER_MAIN, 43);
  306.                     player->ADD_GOSSIP_ITEM(6, "Inscription Trainer", GOSSIP_SENDER_MAIN, 34);
  307.                     player->ADD_GOSSIP_ITEM(6, "Enchanting", GOSSIP_SENDER_MAIN, 42);
  308.                     player->ADD_GOSSIP_ITEM(6, "Tailoring Trainer", GOSSIP_SENDER_MAIN, 35);
  309.                     player->ADD_GOSSIP_ITEM(6, "Leatherworking Trainer", GOSSIP_SENDER_MAIN, 36);
  310.                     player->ADD_GOSSIP_ITEM(6, "Cooking Trainer", GOSSIP_SENDER_MAIN, 37);
  311.                     player->ADD_GOSSIP_ITEM(6, "Fishing Trainer", GOSSIP_SENDER_MAIN, 38);
  312.                     player->ADD_GOSSIP_ITEM(6, "First Aid Trainer", GOSSIP_SENDER_MAIN, 39);
  313.                     player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 4);
  314.                     player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
  315.                     break;
  316.             case 27:
  317.                     player->CLOSE_GOSSIP_MENU();
  318.                     SummonTrainer(player, npc);
  319.                     break;
  320.             case 28:
  321.                     SummonProfessionTrainer(player,npc, 28698);
  322.                     break;
  323.             case 29:
  324.                     SummonProfessionTrainer(player,npc, 28704);
  325.                     break;
  326.             case 30:
  327.                     SummonProfessionTrainer(player,npc, 28696);
  328.                     break;
  329.             case 31:
  330.                     SummonProfessionTrainer(player,npc, 28694);
  331.                     break;
  332.             case 32:
  333.                     SummonProfessionTrainer(player,npc, 28697);
  334.                     break;
  335.             case 33:
  336.                     player->PlayerTalkClass->ClearMenus();
  337.                     player->ADD_GOSSIP_ITEM(6, "Normal Alchemy Trainer", GOSSIP_SENDER_MAIN, 40);
  338.                     player->ADD_GOSSIP_ITEM(6, "Grand Master Alchemy Trainer", GOSSIP_SENDER_MAIN, 41);
  339.                     player->ADD_GOSSIP_ITEM(2, "Zpet", GOSSIP_SENDER_MAIN, 26);
  340.                     player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
  341.                     break;
  342.             case 34:
  343.                     SummonProfessionTrainer(player,npc, 28702);
  344.                     break;
  345.             case 35:
  346.                     SummonProfessionTrainer(player,npc, 28699);
  347.                     break;
  348.             case 36:
  349.                     SummonProfessionTrainer(player,npc, 28700);
  350.                     break;
  351.             case 37:
  352.                     SummonProfessionTrainer(player,npc, 29631);
  353.                     break;
  354.             case 38:
  355.                     SummonProfessionTrainer(player,npc, 28742);
  356.                     break;
  357.             case 39:
  358.                     SummonProfessionTrainer(player,npc, 28706);
  359.                     break;
  360.             case 40:
  361.                     SummonProfessionTrainer(player,npc, 19052);
  362.                     break;
  363.             case 41:
  364.                     SummonProfessionTrainer(player,npc, 28703);
  365.                     break;
  366.             case 42:
  367.                     SummonProfessionTrainer(player,npc, 28693);
  368.                     break;
  369.             case 43:
  370.                     SummonProfessionTrainer(player,npc, 28701);
  371.                     break;
  372.             case 100:
  373.                     player->ADD_GOSSIP_ITEM(6, "Uprava Characteru", GOSSIP_SENDER_MAIN, 1);
  374.                     player->ADD_GOSSIP_ITEM(2, "Teleport", GOSSIP_SENDER_MAIN, 2);
  375.                     player->ADD_GOSSIP_ITEM(6, "Pujcit Mounta [10 Gold]", GOSSIP_SENDER_MAIN, 3);
  376.                     player->ADD_GOSSIP_ITEM(6, "Trainer", GOSSIP_SENDER_MAIN, 4);
  377.                     player->ADD_GOSSIP_ITEM(6, "Heal", GOSSIP_SENDER_MAIN, 5);
  378.                     player->ADD_GOSSIP_ITEM(6, "Pls Goldy", GOSSIP_SENDER_MAIN, 6);
  379.                     player->SEND_GOSSIP_MENU(1, npc->GetGUID());
  380.                     break;
  381.             }
  382.             return true;
  383.     }
  384. };
  385.  
  386.  
  387. void AddSC_vip_npc()
  388. {
  389.     new vip_npc();
  390. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement