Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 15.34 KB | None | 0 0
  1. #include "ScriptedGossip.h"
  2. #include "WorldSession.h"
  3. #include "Auras\SpellAuras.h"
  4. #include "ScriptMgr.h"
  5. #include "ScriptedCreature.h"
  6. #include "GossipDef.h"
  7. #include "Creature.h"
  8.  
  9. /* SQL:
  10. UPDATE `creature_template` SET `modelid1` = '24843' WHERE `entry` = '4779';
  11. UPDATE `creature_template` SET `modelid1` = '24839' WHERE `entry` = '4777';
  12. UPDATE `creature_template` SET `modelid1` = '18724' WHERE `entry` = '20150';
  13. UPDATE `creature_template` SET `modelid1` = '29673' WHERE `entry` = '20152';
  14. UPDATE `creature_template` SET `modelid1` = '28060' WHERE `entry` = '22511';
  15. UPDATE `creature_template` SET `modelid1` = '28649' WHERE `entry` = '20151';
  16. UPDATE `creature_template` SET `modelid1` = '11088' WHERE `entry` = '20072';
  17. UPDATE `creature_template` SET `modelid1` = '28871' WHERE `entry` = '22513';
  18. UPDATE `creature_template` SET `modelid1` = '25682' WHERE `entry` = '12148';
  19. UPDATE `creature_template` SET `modelid1` = '25753' WHERE `entry` = '14549';
  20. UPDATE `creature_template` SET `modelid1` = '19252' WHERE `entry` = '22512';
  21. UPDATE `creature_template` SET `modelid1` = '21602' WHERE `entry` = '20149';
  22. UPDATE `creature_template` SET `modelid1` = '29079' WHERE `entry` = '14333';
  23. UPDATE `creature_template` SET `modelid1` = '19252' WHERE `entry` = '22512';
  24. UPDATE `creature_template` SET `modelid1` = '28811' WHERE `entry` = '22510';
  25. UPDATE `creature_template` SET `modelid1` = '29115' WHERE `entry` = '7749';
  26. UPDATE `creature_template` SET `modelid1` = '31664' WHERE `entry` = '10180';
  27. UPDATE `creature_template` SET `modelid1` = '8011' WHERE `entry` = '6074';
  28. UPDATE `creature_template` SET `modelid1` = '17328' WHERE `entry` = '308';
  29. UPDATE `creature_template` SET `modelid1` = '17166' WHERE `entry` = '358';
  30. UPDATE `creature_template` SET `modelid1` = '19367' WHERE `entry` = '284';
  31. UPDATE `creature_template` SET `modelid1` = '20782' WHERE `entry` = '4271';
  32. UPDATE `creature_template` SET `modelid1` = '21661' WHERE `entry` = '4710';
  33. UPDATE `creature_template` SET `modelid1` = '20526' WHERE `entry` = '4272';
  34. UPDATE `creature_template` SET `modelid1` = '26610' WHERE `entry` = '7739';
  35. UPDATE `creature_template` SET `modelid1` = '19060' WHERE `entry` = '4269';
  36. UPDATE `creature_template` SET `modelid1` = '2490' WHERE `entry` = '7690';
  37. UPDATE `creature_template` SET `modelid1` = '10318' WHERE `entry` = '7687';
  38. UPDATE `creature_template` SET `modelid1` = '17702' WHERE `entry` = '307';
  39. */
  40.  
  41. int32 duration = 10000; // 10 seconds in milliseconds.
  42. uint32 spellid[] = { 72282, 75620, 6899, 6898, 34899, // mount spell ids
  43. 34898, 39316, 34897, 34896, 39318,
  44. 18992, 23249, 39317, 34790, 22718,
  45. 39317, 39315, 10969, 17454, 8394,
  46. 470, 580, 458, 6653, 6777, 6654,
  47. 10873, 6648, 10793, 10789, 472 };
  48.  
  49. class Try_Script : public CreatureScript
  50. {
  51. public:
  52.     Try_Script() : CreatureScript("Try_Script") { }
  53.  
  54.     struct Try_Script_AI : public ScriptedAI
  55.     {
  56.         Try_Script_AI(Creature* creature) : ScriptedAI(creature) { }
  57.  
  58.         void SetAuraDuration(Player* plr)
  59.         {
  60.             for (uint32 spell : spellid)
  61.             {
  62.                 if (!plr->HasAura(spell))
  63.                     continue;
  64.  
  65.                 Aura* aura = plr->GetAura(spell);
  66.                 aura->SetDuration(duration, false);
  67.                 plr->GetSession()->SendAreaTriggerMessage("Done, you can now test your mount. Remember that you have only 10 seconds to test it.");
  68.             }
  69.         }
  70.  
  71.         bool GossipHello(Player *player) override
  72.         {
  73.             if (!player->IsAlive())
  74.                 return false;
  75.  
  76.             AddGossipItemFor(player, 10, "|CFF6a6a6a -------- 1875 Arena Points --------", GOSSIP_SENDER_MAIN, 100);
  77.             AddGossipItemFor(player, 10, "|TInterface/icons/spell_deathknight_summondeathcharger:26:26:-22:0|t|r Invincible's Reins", GOSSIP_SENDER_MAIN, 1);
  78.             AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_celestialhorse:26:26:-22:0|t|r Celestial Steed", GOSSIP_SENDER_MAIN, 2);
  79.             AddGossipItemFor(player, 10, "|CFF6a6a6a -- 1750 Rating + 1875 Arena Points --", GOSSIP_SENDER_MAIN, 100);
  80.             AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_bone_08:26:26:-22:0|t|r Centaur-Mammoth", GOSSIP_SENDER_MAIN, 3);
  81.             AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_bone_07:26:26:-22:0|t|r Frozen Centaur-Mammoth", GOSSIP_SENDER_MAIN, 4);
  82.             AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_monsterfang_01:26:26:-22:0|t|r Black Stinger", GOSSIP_SENDER_MAIN, 5);
  83.             AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_blackdirewolf:26:26:-22:0|t|r Skoll", GOSSIP_SENDER_MAIN, 6);
  84.             AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_flyingcarpet:26:26:-22:0|t|r Earth Carpet", GOSSIP_SENDER_MAIN, 7);
  85.             AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_head_tiger_01:26:26:-22:0|t|r Loque'nahak", GOSSIP_SENDER_MAIN, 8);
  86.             AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_orb_05:26:26:-22:0|t|r Mounting Wasp", GOSSIP_SENDER_MAIN, 9);
  87.             AddGossipItemFor(player, 10, "|CFF6a6a6a -- 1930 Rating + 2250 Arena Points --", GOSSIP_SENDER_MAIN, 100);
  88.             AddGossipItemFor(player, 10, "|TInterface/icons/Ability_Hunter_Pet_NetherRay:26:26:-22:0|t|r Blue MANTARRAYA", GOSSIP_SENDER_MAIN, 11);
  89.             AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_spectraltiger:26:26:-22:0|t|r Gondria Tiger", GOSSIP_SENDER_MAIN, 12);
  90.             AddGossipItemFor(player, 10, "Next page -->", GOSSIP_SENDER_MAIN, 13);
  91.             AddGossipItemFor(player, 10, "Bye", GOSSIP_SENDER_MAIN, 100);
  92.  
  93.             SendGossipMenuFor(player, 1, me->GetGUID());
  94.             return true;
  95.         }
  96.  
  97.         bool GossipSelect(Player * player, uint32 sender, uint32 uiAction) override
  98.         {
  99.             player->PlayerTalkClass->ClearMenus();
  100.  
  101.             if (player->IsMounted())
  102.             {
  103.                 player->GetSession()->SendAreaTriggerMessage("|cff87CEFAYou must get down of your mount.|r");
  104.                 CloseGossipMenuFor(player);
  105.                 return false;
  106.             }
  107.  
  108.             if (sender == GOSSIP_SENDER_MAIN)
  109.             {
  110.                 switch (uiAction)
  111.                 {
  112.                 case 1:
  113.                     player->AddAura(72282, player);
  114.                     break;
  115.                 case 2:
  116.                     player->AddAura(75620, player);
  117.                     break;
  118.                 case 3:
  119.                     player->AddAura(6899, player);
  120.                     break;
  121.                 case 4:
  122.                     player->AddAura(6898, player);
  123.                     break;
  124.                 case 5:
  125.                     player->AddAura(34899, player);
  126.                     break;
  127.                 case 6:
  128.                     player->AddAura(34898, player);
  129.                     break;
  130.                 case 7:
  131.                     player->AddAura(39316, player);
  132.                     break;
  133.                 case 8:
  134.                     player->AddAura(34897, player);
  135.                     break;
  136.                 case 9:
  137.                     player->AddAura(34896, player);
  138.                     break;
  139.                 case 11:
  140.                     player->AddAura(65641, player);
  141.                     break;
  142.                 case 12:
  143.                     player->AddAura(39318, player);
  144.                     break;
  145.                 case 13:
  146.                 {
  147.                     AddGossipItemFor(player, 10, "|CFF6a6a6a -- 2050 rating + 2625 arena points --|r", GOSSIP_SENDER_MAIN, 100);
  148.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_blackpanther:26:26:-22:0|t|r Jade Tiger", GOSSIP_SENDER_MAIN, 14);
  149.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_hunter_pet_bat:26:26:-22:0|t|r Gargoyle", GOSSIP_SENDER_MAIN, 15);
  150.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_sandbox_spectraltiger_01:26:26:-22:0|t|r Spectral Toy Tiger", GOSSIP_SENDER_MAIN, 21);
  151.                     AddGossipItemFor(player, 10, "|CFF6a6a6a -- 2350 rating + 3000 ap --", GOSSIP_SENDER_MAIN, 100);
  152.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_ridingelekk_purple:26:26:-22:0|t|r Pink Elephant", GOSSIP_SENDER_MAIN, 16);
  153.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_gem_pearl_05:26:26:-22:0|t|r Pink Stinger", GOSSIP_SENDER_MAIN, 20);
  154.                     AddGossipItemFor(player, 10, "|CFF6a6a6a -- arena top: 1,2,3 --", GOSSIP_SENDER_MAIN, 100);
  155.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_head_tauren_01:26:26:-22:0|t|r Tauren Boat", GOSSIP_SENDER_MAIN, 17);
  156.                     AddGossipItemFor(player, 10, "|TInterface/icons/achievement_boss_xt002deconstructor_01:26:26:-22:0|t|r Mechanic Robot", GOSSIP_SENDER_MAIN, 18);
  157.                     AddGossipItemFor(player, 10, "Next page -->", GOSSIP_SENDER_MAIN, 19);
  158.                     AddGossipItemFor(player, 10, "<- Prvious Page", GOSSIP_SENDER_MAIN, 101);
  159.                     AddGossipItemFor(player, 10, "Bye", GOSSIP_SENDER_MAIN, 100);
  160.                     SendGossipMenuFor(player, 1, me->GetGUID());
  161.                     return true;
  162.                     break;
  163.                 }
  164.                 case 14:
  165.                     player->AddAura(18992, player);
  166.                     break;
  167.                 case 15:
  168.                     player->AddAura(23249, player);
  169.                     break;
  170.                 case 16:
  171.                     player->AddAura(39317, player);
  172.                     break;
  173.                 case 17:
  174.                     player->AddAura(34790, player);
  175.                     break;
  176.                 case 18:
  177.                     player->AddAura(22718, player);
  178.                     break;
  179.                 case 19:
  180.                 {
  181.                     AddGossipItemFor(player, 10, "|CFF6a6a6a -- Zul'Aman Loot --|r", GOSSIP_SENDER_MAIN, 100);
  182.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_gear_01:26:26:-22:0|t|r Bronze Mechano-Tank", GOSSIP_SENDER_MAIN, 22);
  183.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_gear_05:26:26:-22:0|t|r White Mechano-Tank", GOSSIP_SENDER_MAIN, 23);
  184.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_gyrocoptor:26:26:-22:0|t|r Light Aircraft", GOSSIP_SENDER_MAIN, 24);
  185.                     //AddGossipItemFor(player, 10, "|CFF6a6a6a -- Zul'Aman 5 Tokens --|r", GOSSIP_SENDER_MAIN, 100);
  186.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_ebongryphon:26:26:-22:0|t|r Ghost Bird", GOSSIP_SENDER_MAIN, 25);
  187.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_ebonblade:26:26:-22:0|t|r Skeletal Bird", GOSSIP_SENDER_MAIN, 26);
  188.                     AddGossipItemFor(player, 10, "|TInterface/icons/spell_nature_nullifypoison:26:26:-22:0|t|r Yellow Stinger", GOSSIP_SENDER_MAIN, 27);
  189.                     //AddGossipItemFor(player, 10, "|CFF6a6a6a -- Zul'Aman 5 Tokens + 1800 Rating --|r", GOSSIP_SENDER_MAIN, 100);
  190.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_orb_01:26:26:-22:0|t|r Waterball", GOSSIP_SENDER_MAIN, 28);
  191.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_drum_06:26:26:-22:0|t|r L70 ETC Drummer", GOSSIP_SENDER_MAIN, 29);
  192.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_ore_ethernium_01:26:26:-22:0|t|r Jellyfishy", GOSSIP_SENDER_MAIN, 30);
  193.                     //AddGossipItemFor(player, 10, "|CFF6a6a6a -- Zul'Aman 5 Tokens + 2200 Rating --|r", GOSSIP_SENDER_MAIN, 100);
  194.                     AddGossipItemFor(player, 10, "|TInterface/icons/spell_nature_naturesblessing:26:26:-22:0|t|r It's a stick!|r", GOSSIP_SENDER_MAIN, 31);
  195.                     AddGossipItemFor(player, 10, "Next page -->", GOSSIP_SENDER_MAIN, 32);
  196.                     AddGossipItemFor(player, 10, "<- Prvious Page", GOSSIP_SENDER_MAIN, 13);
  197.                     AddGossipItemFor(player, 10, "Bye", GOSSIP_SENDER_MAIN, 100);
  198.                     SendGossipMenuFor(player, 1, me->GetGUID());
  199.                     return true;
  200.                     break;
  201.                 }
  202.                 case 20:
  203.                     player->AddAura(39317, player);
  204.                     break;
  205.                 case 21:
  206.                     player->AddAura(39315, player);
  207.                     break;
  208.                 case 22:
  209.                     player->AddAura(10969, player);
  210.                     break;
  211.                 case 23:
  212.                     player->AddAura(17454, player);
  213.                     break;
  214.                 case 24:
  215.                     player->AddAura(8394, player);
  216.                     break;
  217.                 case 25:
  218.                     player->AddAura(470, player);
  219.                     break;
  220.                 case 26:
  221.                     player->AddAura(580, player);
  222.                     break;
  223.                 case 27:
  224.                     player->AddAura(458, player);
  225.                     break;
  226.                 case 28:
  227.                     player->AddAura(6653, player);
  228.                     break;
  229.                 case 29:
  230.                     player->AddAura(6777, player);
  231.                     break;
  232.                 case 30:
  233.                     player->AddAura(6654, player);
  234.                     break;
  235.                 case 31:
  236.                     player->AddAura(10873, player);
  237.                     break;
  238.                 case 32:
  239.                 {
  240.                     AddGossipItemFor(player, 10, "|CFF6a6a6a -- Exclusive Mounts --|r", GOSSIP_SENDER_MAIN, 100);
  241.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_razorscale:26:26:-22:0|t|r Dark Drake", GOSSIP_SENDER_MAIN, 33);
  242.                     AddGossipItemFor(player, 10, "|TInterface/icons/inv_misc_toy_08:26:26:-22:0|t|r Gnome Rocket", GOSSIP_SENDER_MAIN, 34);
  243.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_rocketmount:26:26:-22:0|t|r Podracer", GOSSIP_SENDER_MAIN, 35);
  244.                     AddGossipItemFor(player, 10, "|TInterface/icons/ability_mount_goldengryphon:26:26:-22:0|t|r Corrupted Gryphon", GOSSIP_SENDER_MAIN, 36);
  245.                     AddGossipItemFor(player, 10, "<- Prvious Page", GOSSIP_SENDER_MAIN, 19);
  246.                     AddGossipItemFor(player, 10, "Bye", GOSSIP_SENDER_MAIN, 100);
  247.                     SendGossipMenuFor(player, 1, me->GetGUID());
  248.                     return true;
  249.                     break;
  250.                 }
  251.                 case 33:
  252.                     player->AddAura(6648, player);
  253.                     break;
  254.                 case 34:
  255.                     player->AddAura(10793, player);
  256.                     break;
  257.                 case 35:
  258.                     player->AddAura(10789, player);
  259.                     break;
  260.                 case 36:
  261.                     player->AddAura(472, player);
  262.                     break;
  263.                 case 100:
  264.                     CloseGossipMenuFor(player);
  265.                     break;
  266.                 case 101:
  267.                     GossipHello(player);
  268.                     return true;
  269.                     break;
  270.                 }
  271.  
  272.                 SetAuraDuration(player);
  273.                 CloseGossipMenuFor(player);
  274.             }
  275.             return true;
  276.  
  277.         }
  278.     };
  279.  
  280.     CreatureAI* GetAI(Creature* creature) const override
  281.     {
  282.         return new Try_Script_AI(creature);
  283.     }
  284. };
  285.  
  286. void AddSC_Try_Script()
  287. {
  288.     new Try_Script();
  289. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement