Advertisement
Guest User

NPC fun

a guest
May 24th, 2010
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.72 KB | None | 0 0
  1. #include "ScriptedPch.h"
  2.  
  3.  
  4.  
  5. bool GossipHello_fun(Player *player, Creature *_creature)
  6. {
  7.     if (player->isInCombat())
  8.         {
  9.         player->CLOSE_GOSSIP_MENU();
  10.         _creature->MonsterWhisper("Si v boji. Skus neskor!", player->GetGUID());
  11.         return true;
  12.      }
  13.  
  14.  
  15.          player->ADD_GOSSIP_ITEM(7, "Special", GOSSIP_SENDER_MAIN, 8001);
  16.          player->ADD_GOSSIP_ITEM(7, "Buffy", GOSSIP_SENDER_MAIN, 8002);
  17.          player->ADD_GOSSIP_ITEM(7, "Dungy", GOSSIP_SENDER_MAIN, 8003);
  18.          player->ADD_GOSSIP_ITEM(7, "Vymena", GOSSIP_SENDER_MAIN, 8004);
  19.          player->ADD_GOSSIP_ITEM(7, "Mounti", GOSSIP_SENDER_MAIN, 8005);
  20.        
  21.         player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
  22.         return true;
  23. }
  24.  
  25.  
  26. void SendDefaultMenu_fun(Player *player, Creature *_creature, uint32 action )
  27. {
  28.     switch(action)
  29.     {
  30.  
  31.  
  32.     case 9010:
  33.  
  34.          player->ADD_GOSSIP_ITEM(7, "Special", GOSSIP_SENDER_MAIN, 8001);
  35.          player->ADD_GOSSIP_ITEM(7, "Buffy", GOSSIP_SENDER_MAIN, 8002);
  36.          player->ADD_GOSSIP_ITEM(7, "Dungy", GOSSIP_SENDER_MAIN, 8003);
  37.          player->ADD_GOSSIP_ITEM(7, "Vymena", GOSSIP_SENDER_MAIN, 8004);
  38.          player->ADD_GOSSIP_ITEM(7, "Mounti", GOSSIP_SENDER_MAIN, 8005);
  39.      
  40.         player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
  41.         break;
  42.  
  43.  
  44.     case 8001: //special
  45.  
  46.         player->ADD_GOSSIP_ITEM(5, "Repair", GOSSIP_SENDER_MAIN, 9001);
  47.         player->ADD_GOSSIP_ITEM(5, "Hp", GOSSIP_SENDER_MAIN, 9002);
  48.         player->ADD_GOSSIP_ITEM(5, "Mana", GOSSIP_SENDER_MAIN, 9003);
  49.         player->ADD_GOSSIP_ITEM(5, "Cooldown", GOSSIP_SENDER_MAIN, 9004);
  50.         player->ADD_GOSSIP_ITEM(7, "<-Menu", GOSSIP_SENDER_MAIN, 9010);
  51.  
  52.         player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
  53.  
  54.       break;
  55.  
  56.     case 9001: //repair
  57.         player->CLOSE_GOSSIP_MENU();
  58.         player->DurabilityRepairAll(false, 0, false);
  59.         _creature->MonsterWhisper("Oprava uspesna!", player->GetGUID());
  60.         break;
  61.  
  62.     case 9002://hp
  63.         player->CLOSE_GOSSIP_MENU();
  64.         player->SetHealth(player->GetMaxHealth());
  65.         _creature->MonsterWhisper("HP Full!", player->GetGUID());
  66.         break;
  67.  
  68.      case 9003://mana
  69.         player->CLOSE_GOSSIP_MENU();
  70.         player->SetPower(POWER_MANA, player->GetMaxPower(POWER_MANA));
  71.         _creature->MonsterWhisper("Mana Full!", player->GetGUID());
  72.         break;
  73.  
  74.      case 9004://cooldown
  75.         player->CLOSE_GOSSIP_MENU();
  76.         player->RemoveAllSpellCooldown();
  77.         _creature->MonsterWhisper("Cooldowns removed!", player->GetGUID());
  78.         break;
  79.  
  80. //------------------------------------------------
  81. case 8002: //buffy
  82.        
  83.         player->ADD_GOSSIP_ITEM(5, "Stamina", GOSSIP_SENDER_MAIN, 9006);
  84.         player->ADD_GOSSIP_ITEM(5, "Agility", GOSSIP_SENDER_MAIN, 9007);
  85.         player->ADD_GOSSIP_ITEM(5, "Intelect", GOSSIP_SENDER_MAIN, 9008);
  86.         player->ADD_GOSSIP_ITEM(5, "Strength", GOSSIP_SENDER_MAIN, 9009);
  87.         player->ADD_GOSSIP_ITEM(5, "Power Word: Fortitude", GOSSIP_SENDER_MAIN, 9011);
  88.         player->ADD_GOSSIP_ITEM(5, "Divine Spirit", GOSSIP_SENDER_MAIN, 9012);
  89.         player->ADD_GOSSIP_ITEM(5, "Blesing of Might", GOSSIP_SENDER_MAIN, 9013);
  90.         player->ADD_GOSSIP_ITEM(5, "Blesing of Wisdom", GOSSIP_SENDER_MAIN, 9014);
  91.         player->ADD_GOSSIP_ITEM(5, "Greater Blessing of Kings", GOSSIP_SENDER_MAIN, 9015);
  92.         player->ADD_GOSSIP_ITEM(5, "Mark of the Wild", GOSSIP_SENDER_MAIN, 9016);
  93.         player->ADD_GOSSIP_ITEM(5, "Thorns", GOSSIP_SENDER_MAIN, 9017);
  94.         player->ADD_GOSSIP_ITEM(5, "Arcane Intellect", GOSSIP_SENDER_MAIN, 9018);
  95.         player->ADD_GOSSIP_ITEM(7, "<-Menu", GOSSIP_SENDER_MAIN, 9010);
  96.  
  97.         player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
  98.  
  99.       break;
  100.  
  101. case 9006://stamina
  102.        player->CLOSE_GOSSIP_MENU();
  103.       _creature->CastSpell(player,48102,false);
  104. break;
  105.      
  106. case 9007://agility
  107.        player->CLOSE_GOSSIP_MENU();
  108.       _creature->CastSpell(player,58451,false);
  109. break;
  110.  
  111. case 9008://intelect
  112.        player->CLOSE_GOSSIP_MENU();
  113.       _creature->CastSpell(player,42995,false);
  114. break;
  115.  
  116. case 9009://strength
  117.         player->CLOSE_GOSSIP_MENU();
  118.        _creature->CastSpell(player,58449,false);
  119. break;
  120.  
  121.  
  122. case 9011://Power Word: Fortitude
  123.         player->CLOSE_GOSSIP_MENU();
  124.        _creature->CastSpell(player,48161,false);
  125. break;
  126.  
  127. case 9012://Divine Spirit
  128.         player->CLOSE_GOSSIP_MENU();
  129.        _creature->CastSpell(player,48073,false);
  130. break;
  131.  
  132. case 9013://Blesing of Might
  133.         player->CLOSE_GOSSIP_MENU();
  134.        _creature->CastSpell(player,48931,false);
  135. break;
  136.  
  137. case 9014://Blesing of Wisdom
  138.         player->CLOSE_GOSSIP_MENU();
  139.        _creature->CastSpell(player,48936,false);
  140. break;
  141.  
  142. case 9015://king
  143.         player->CLOSE_GOSSIP_MENU();
  144.        _creature->CastSpell(player,25898,false);
  145. break;
  146.  
  147. case 9016://Mark of the Wild
  148.         player->CLOSE_GOSSIP_MENU();
  149.        _creature->CastSpell(player,48469,false);
  150. break;
  151.  
  152. case 9017://Thons
  153.         player->CLOSE_GOSSIP_MENU();
  154.        _creature->CastSpell(player,53307,false);
  155. break;
  156.  
  157. case 9018://Arcane Intellect
  158.         player->CLOSE_GOSSIP_MENU();
  159.        _creature->CastSpell(player,42995,false);
  160. break;
  161.  
  162.  
  163. //---------dungy----------------------
  164.  
  165. case 8003: //dungy
  166.  
  167.  
  168.         player->ADD_GOSSIP_ITEM(5, "Naxxramas", GOSSIP_SENDER_MAIN, 10000);
  169.         player->ADD_GOSSIP_ITEM(5, "Ulduar", GOSSIP_SENDER_MAIN, 10001);
  170.         player->ADD_GOSSIP_ITEM(5, "The Nexus", GOSSIP_SENDER_MAIN, 10002);
  171.         player->ADD_GOSSIP_ITEM(5, "Trial of Chapmion", GOSSIP_SENDER_MAIN, 10003);
  172.         player->ADD_GOSSIP_ITEM(7, "<-Menu", GOSSIP_SENDER_MAIN, 9010);
  173.  
  174.         player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
  175. break;
  176.  
  177.  
  178. case 10000:
  179.     player->CLOSE_GOSSIP_MENU();
  180.     player->TeleportTo(571,3668.815430,-1263.773193,243.516174,4.785000f);
  181.     _creature->MonsterWhisper("Naxxramas!", player->GetGUID());
  182. break;
  183.  
  184. case 10001:
  185.     player->CLOSE_GOSSIP_MENU();
  186.     player->TeleportTo(571,9066.110352,-1304.405518,1058.399292,0.182814f);
  187.     _creature->MonsterWhisper("Ulduar!", player->GetGUID());
  188. break;
  189.  
  190. case 10002:
  191.     player->CLOSE_GOSSIP_MENU();
  192.     player->TeleportTo(571,3780.750000,6955.062012,104.879662,0.373613f);
  193.     _creature->MonsterWhisper("The Nexus!", player->GetGUID());
  194. break;
  195.  
  196. case 10003:
  197.     player->CLOSE_GOSSIP_MENU();
  198.     player->TeleportTo(571,8570.740234,737.573792,558.184448,2.298070f);
  199.     _creature->MonsterWhisper("ToCh!", player->GetGUID());
  200. break;
  201.  
  202. //------------------------zmena----------------------------------------
  203.  
  204. case 8004: //zmena
  205.  
  206.  
  207.         player->ADD_GOSSIP_ITEM(5, "10000 Honor -> 200 Arena", GOSSIP_SENDER_MAIN, 20000);
  208.         player->ADD_GOSSIP_ITEM(5, "50000 Honor -> 2000 Arena", GOSSIP_SENDER_MAIN, 20001);
  209.         player->ADD_GOSSIP_ITEM(5, "200 Arena -> 10000 Honor", GOSSIP_SENDER_MAIN, 20002);
  210.         player->ADD_GOSSIP_ITEM(5, "2000 Arena -> 50000 Honor", GOSSIP_SENDER_MAIN, 20003);
  211.  
  212.         player->ADD_GOSSIP_ITEM(7, "<-Menu", GOSSIP_SENDER_MAIN, 9010);
  213.  
  214.         player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
  215. break;
  216.  
  217. case 20000:
  218.  
  219.          if (player->GetHonorPoints() < 10000)
  220.          {
  221.            player->CLOSE_GOSSIP_MENU();
  222.            _creature->MonsterWhisper("Potrebuješ 10000Honor na Výmenu", player->GetGUID());
  223.          }
  224.          else
  225.          {
  226.          player->ModifyHonorPoints(-10000);
  227.          player->ModifyArenaPoints(+200);
  228.          player->CLOSE_GOSSIP_MENU();
  229.          _creature->MonsterWhisper("Výmena 10000Honor za 200 Arena Hotová !", player->GetGUID());
  230.          }
  231.          break;
  232.  
  233. case 20001:
  234.  
  235.          if (player->GetHonorPoints() < 50000)
  236.          {
  237.            player->CLOSE_GOSSIP_MENU();
  238.            _creature->MonsterWhisper("Potrebuješ 50000Honor na Výmenu", player->GetGUID());
  239.          }
  240.          else
  241.          {
  242.          player->ModifyHonorPoints(-50000);
  243.          player->ModifyArenaPoints(+2000);
  244.          player->CLOSE_GOSSIP_MENU();
  245.          _creature->MonsterWhisper("Výmena 50000Honor za 2000 Arena Hotová !", player->GetGUID());
  246.          }
  247.          break;
  248.  
  249. case 20002:
  250.  
  251.          if (player->GetArenaPoints() < 200)
  252.          {
  253.            player->CLOSE_GOSSIP_MENU();
  254.            _creature->MonsterWhisper("Potrebuješ 200Arena na Výmenu", player->GetGUID());
  255.          }
  256.          else
  257.          {
  258.          player->ModifyArenaPoints(-200);
  259.          player->ModifyHonorPoints(+10000);
  260.          player->CLOSE_GOSSIP_MENU();
  261.          _creature->MonsterWhisper("Výmena 200Arena za 10000 Honor Hotová !", player->GetGUID());
  262.          }
  263.          break;
  264.  
  265. case 20003:
  266.  
  267.          if (player->GetArenaPoints() < 2000)
  268.          {
  269.            player->CLOSE_GOSSIP_MENU();
  270.            _creature->MonsterWhisper("Potrebuješ 2000Arena na Výmenu", player->GetGUID());
  271.          }
  272.          else
  273.          {
  274.          player->ModifyArenaPoints(-2000);
  275.          player->ModifyHonorPoints(+50000);
  276.          player->CLOSE_GOSSIP_MENU();
  277.          _creature->MonsterWhisper("Výmena 2000Arena za 50000 Honor Hotová !", player->GetGUID());
  278.          }
  279.          break;
  280. //-------------mounti---------------
  281.  
  282. case 8005: //mounti
  283.  
  284.      
  285.           if ( player->GetTeam() == ALLIANCE )
  286.  
  287.              {
  288.  
  289.               player->ADD_GOSSIP_ITEM(5, "Mekgineer's Chopper(10000G)", GOSSIP_SENDER_MAIN, 30001);
  290.  
  291.              }
  292.              else
  293.              {
  294.  
  295.               player->ADD_GOSSIP_ITEM(5, "Mechano-hog(10000G)", GOSSIP_SENDER_MAIN, 30002);
  296.  
  297.              }
  298.         player->ADD_GOSSIP_ITEM(5, "Swift Spectral Tiger(2000G)", GOSSIP_SENDER_MAIN, 30000);
  299.         player->ADD_GOSSIP_ITEM(5, "Blizzard Bear(200G)", GOSSIP_SENDER_MAIN, 30003);
  300.         player->ADD_GOSSIP_ITEM(5, "X-51 Nether-Rocket X-TREME(red 280% 10000G)", GOSSIP_SENDER_MAIN, 30004);
  301.         player->ADD_GOSSIP_ITEM(5, "X-51 Nether-Rocket(blue 150% 5000G)", GOSSIP_SENDER_MAIN, 30005);
  302.  
  303.         player->ADD_GOSSIP_ITEM(7, "<-Menu", GOSSIP_SENDER_MAIN, 9010);
  304.  
  305.         player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
  306. break;
  307.  
  308.      
  309. case 30000: //Spectral
  310.  
  311.  
  312.     if (player->GetMoney() < 20000000)
  313.        {
  314.          player->CLOSE_GOSSIP_MENU();
  315.          _creature->MonsterWhisper("Potrebuješ 2000g", player->GetGUID());
  316.        }
  317.        else
  318.        {
  319.          player->ModifyMoney(-20000000);
  320.          player->learnSpell(42777, false);
  321.          _creature->MonsterWhisper("Odčitane 2000g Ďakujem.", player->GetGUID());
  322.  
  323.         }
  324.         break;
  325.  
  326. case 30001://Alliance Moto
  327.  
  328.      if (player->GetMoney() < 100000000)
  329.        {
  330.          player->CLOSE_GOSSIP_MENU();
  331.          _creature->MonsterWhisper("Potrebuješ 10000g", player->GetGUID());
  332.        }
  333.        else
  334.        {
  335.          player->ModifyMoney(-100000000);
  336.          player->learnSpell(60424, false);
  337.          _creature->MonsterWhisper("Odčitane 10000g Ďakujem.", player->GetGUID());
  338.  
  339.         }
  340.         break;
  341.  
  342. case 30002://Horde Moto
  343.  
  344.      if (player->GetMoney() < 100000000)
  345.        {
  346.          player->CLOSE_GOSSIP_MENU();
  347.          _creature->MonsterWhisper("Potrebuješ 10000g", player->GetGUID());
  348.        }
  349.        else
  350.        {
  351.          player->ModifyMoney(-100000000);
  352.          player->learnSpell(55531, false);
  353.          _creature->MonsterWhisper("Odčitane 10000g Ďakujem.", player->GetGUID());
  354.  
  355.         }
  356.         break;
  357.  
  358. case 30003://Ahn
  359.  
  360.      if (player->GetMoney() < 2000000)
  361.        {
  362.          player->CLOSE_GOSSIP_MENU();
  363.          _creature->MonsterWhisper("Potrebuješ 200g", player->GetGUID());
  364.        }
  365.        else
  366.        {
  367.          player->ModifyMoney(-2000000);
  368.          player->learnSpell(58983, false);
  369.          _creature->MonsterWhisper("Odčitane 200g Ďakujem.", player->GetGUID());
  370.         }
  371.         break;
  372.  
  373. case 30004://Rocket
  374.  
  375.      if (player->GetMoney() < 100000000)
  376.        {
  377.          player->CLOSE_GOSSIP_MENU();
  378.           _creature->MonsterWhisper("Potrebuješ 10000g", player->GetGUID());
  379.        }
  380.        else
  381.        {
  382.          player->ModifyMoney(-100000000);
  383.          player->learnSpell(46199, false);
  384.          _creature->MonsterWhisper("Odčitane 10000g Ďakujem.", player->GetGUID());
  385.  
  386.         }
  387.         break;
  388.  
  389. case 30005://Rocket (blue)
  390.  
  391.      if (player->GetMoney() < 50000000)
  392.        {
  393.          player->CLOSE_GOSSIP_MENU();
  394.          _creature->MonsterWhisper("Potrebuješ 5000g", player->GetGUID());
  395.        }
  396.        else
  397.        {
  398.          player->ModifyMoney(-50000000);
  399.          player->learnSpell(46197, false);
  400.          _creature->MonsterWhisper("Odčitane 5000g Ďakujem.", player->GetGUID());
  401.  
  402.         }
  403.         break;
  404.  
  405.  
  406.     default:
  407.         break;
  408.     }
  409.  
  410. }
  411.  
  412.  
  413. bool GossipSelect_fun(Player *player, Creature *_creature, uint32 sender, uint32 action)
  414. {
  415.  
  416.     if (player->isInCombat())
  417.         {
  418.         player->CLOSE_GOSSIP_MENU();
  419.         _creature->MonsterWhisper("Si v boji. Skus neskor!", player->GetGUID());
  420.         return true;
  421.     }
  422.  
  423.      
  424.       if (sender == GOSSIP_SENDER_MAIN)
  425.       SendDefaultMenu_fun( player, _creature, action );
  426.  
  427. return true;
  428. }
  429.  
  430.  
  431. void AddSC_fun(){
  432.         Script *newscript;
  433.         newscript = new Script;
  434.         newscript->Name = "fun";
  435.         newscript->pGossipHello = &GossipHello_fun;
  436.         newscript->pGossipSelect = &GossipSelect_fun;
  437.         newscript->RegisterSelf();
  438.      newscript->pItemHello = NULL;
  439.      newscript->pGOHello = NULL;
  440.      newscript->pAreaTrigger = NULL;
  441.      newscript->pItemQuestAccept = NULL;
  442.      newscript->pGOQuestAccept = NULL;
  443.      newscript->pGOChooseReward = NULL;
  444. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement