Rochet2

Vote Edition ~ Portal Master convert to C++ for Trinitycore

Jan 4th, 2012
458
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.71 KB | None | 0 0
  1. /*
  2. Portal Master convert to C++ for Trinitycore
  3. By Rochet2
  4.  
  5. Main credits:
  6. Rochet2
  7. Eric
  8. People who helped
  9.  
  10. ScriptName: TeLe_gossip_codebox
  11. */
  12.  
  13. #include "ScriptPCH.h"
  14.  
  15. // Voting settings
  16. std::string TABLE   =   "voteDB.votes";     // Table or database.table
  17. std::string COLUMN  =   "voted";            // 1 or 0, bool value.
  18.  
  19. // Teleport data
  20.  
  21. struct Eric
  22. {
  23.     uint32 menu_id, next_menu_id;
  24.     uint8 icon;
  25.     std::string name;
  26.     uint32 cost;
  27.     uint8 level, faction; // 0 Both, 1 Horde, 2 Ally
  28.     uint32 map;
  29.     float x, y, z, o;
  30.     bool CheckVote;
  31. };
  32. typedef struct Eric Rochet2;
  33.  
  34. //  {menu_id, next_menu_id, icon, name, cost, level, faction, map, x, y, z, o, CheckVote}
  35. Rochet2 TeLe [] = // key = i & Key
  36. {
  37.     {1, 0,  2,  "Stormwind",    1,  0,  2,  0,  -8842.09f,  626.358f,   94.0867f,   3.61363f, false},
  38.     {1, 0,  2,  "Orgrimmar",    0,  0,  1,  1,  1601.08f,   -4378.69f,  9.9846f,    2.14362f, false},
  39.     {1, 0,  2,  "Darnassus",    0,  0,  2,  1,  9869.91f,   2493.58f,   1315.88f,   2.78897f, false},
  40.     {1, 0,  2,  "Ironforge",    0,  0,  2,  0,  -4900.47f,  -962.585f,  501.455f,   5.40538f, false},
  41.     {1, 0,  2,  "Exodar",   0,  0,  2,  530,    -3864.92f,  -11643.7f,  -137.644f,  5.50862f, false},
  42.     {1, 0,  2,  "Thunder bluff",    0,  0,  1,  1,  -1274.45f,  71.8601f,   128.159f,   2.80623f, false},
  43.     {1, 0,  2,  "Undercity",    0,  0,  1,  0,  1633.75f,   240.167f,   -43.1034f,  6.26128f, false},
  44.     {1, 0,  2,  "Silvermoon city",  0,  0,  1,  530,    9738.28f,   -7454.19f,  13.5605f,   0.043914f, false},
  45.     {1, 0,  2,  "Dalaran",  0,  67, 0,  571,    5809.55f,   503.975f,   657.526f,   2.38338f, false},
  46.     {1, 0,  2,  "Shattrath",    0,  57, 0,  530,    -1887.62f,  5359.09f,   -12.4279f,  4.40435f, false},
  47.     {1, 0,  2,  "Booty bay",    0,  30, 0,  0,  -14281.9f,  552.564f,   8.90422f,   0.860144f, false},
  48.     {1, 0,  2,  "Gurubashi arena",  0,  30, 0,  0,  -13181.8f,  339.356f,   42.9805f,   1.18013f, false},
  49.     {1, 6,  3,  "Eastern Kingdoms", 0,  0,  0,  0,  0,  0,  0,  0, false},
  50.     {1, 7,  3,  "Kalimdor", 0,  0,  0,  0,  0,  0,  0,  0, false},
  51.     {1, 8,  3,  "Outland",  0,  58, 0,  0,  0,  0,  0,  0, false},
  52.     {1, 9,  3,  "Northrend",    0,  68, 0,  0,  0,  0,  0,  0, false},
  53.     {1, 2,  9,  "Classic Dungeons", 0,  15, 0,  0,  0,  0,  0,  0, true},
  54.     {1, 3,  9,  "BC Dungeons",  0,  59, 0,  0,  0,  0,  0,  0, true},
  55.     {1, 4,  9,  "Wrath Dungeons",   0,  69, 0,  0,  0,  0,  0,  0, true},
  56.     {1, 5,  9,  "Raid Teleports",   0,  57, 0,  0,  0,  0,  0,  0, true},
  57.  
  58.     {2, 0,  2,  "Gnomeregan",   0,  25, 2,  0,  -5163.54f,  925.423f,   257.181f,   1.57423f, false},
  59.     {2, 0,  2,  "The Deadmines",    0,  17, 2,  0,  -11209.6f,  1666.54f,   24.6974f,   1.42053f, false},
  60.     {2, 0,  2,  "The Stockade", 0,  22, 2,  0,  -8799.15f,  832.718f,   97.6348f,   6.04085f, false},
  61.     {2, 0,  2,  "Ragefire Chasm",   0,  15, 1,  1,  1811.78f,   -4410.5f,   -18.4704f,  5.20165f, false},
  62.     {2, 0,  2,  "Razorfen Downs",   0,  34, 1,  1,  -4657.3f,   -2519.35f,  81.0529f,   4.54808f, false},
  63.     {2, 0,  2,  "Razorfen Kraul",   0,  24, 1,  1,  -4470.28f,  -1677.77f,  81.3925f,   1.16302f, false},
  64.     {2, 0,  2,  "Scarlet Monastery",    0,  32, 1,  0,  2873.15f,   -764.523f,  160.332f,   5.10447f, false},
  65.     {2, 0,  2,  "Shadowfang Keep",  0,  18, 1,  0,  -234.675f,  1561.63f,   76.8921f,   1.24031f, false},
  66.     {2, 0,  2,  "Wailing Caverns",  0,  17, 1,  1,  -731.607f,  -2218.39f,  17.0281f,   2.78486f, false},
  67.     {2, 0,  2,  "Blackfathom Deeps",    0,  21, 0,  1,  4249.99f,   740.102f,   -25.671f,   1.34062f, false},
  68.     {2, 0,  2,  "Blackrock Depths", 0,  53, 0,  0,  -7179.34f,  -921.212f,  165.821f,   5.09599f, false},
  69.     {2, 0,  2,  "Blackrock Spire",  0,  57, 0,  0,  -7527.05f,  -1226.77f,  285.732f,   5.29626f, false},
  70.     {2, 0,  2,  "Dire Maul",    0,  55, 0,  1,  -3520.14f,  1119.38f,   161.025f,   4.70454f, false},
  71.     {2, 0,  2,  "Maraudon", 0,  45, 0,  1,  -1421.42f,  2907.83f,   137.415f,   1.70718f, false},
  72.     {2, 0,  2,  "Scholomance",  0,  55, 0,  0,  1269.64f,   -2556.21f,  93.6088f,   0.620623f, false},
  73.     {2, 0,  2,  "Stratholme",   0,  55, 0,  0,  3352.92f,   -3379.03f,  144.782f,   6.25978f, false},
  74.     {2, 0,  2,  "Sunken Temple",    0,  47, 0,  0,  -10177.9f,  -3994.9f,   -111.239f,  6.01885f, false},
  75.     {2, 0,  2,  "Uldaman",  0,  37, 0,  0,  -6071.37f,  -2955.16f,  209.782f,   0.015708f, false},
  76.     {2, 0,  2,  "Zul'Farrak",   0,  35, 0,  1,  -6801.19f,  -2893.02f,  9.00388f,   0.158639f, false},
  77.     {2, 1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  78.  
  79.     {3, 0,  2,  "Auchindoun",   0,  64, 0,  530,    -3324.49f,  4943.45f,   -101.239f,  4.63901f, false},
  80.     {3, 0,  2,  "Caverns of Time",  0,  66, 0,  1,  -8369.65f,  -4253.11f,  -204.272f,  -2.70526f, false},
  81.     {3, 0,  2,  "Coilfang Reservoir",   0,  62, 0,  530,    738.865f,   6865.77f,   -69.4659f,  6.27655f, false},
  82.     {3, 0,  2,  "Hellfire Citadel", 0,  59, 0,  530,    -347.29f,   3089.82f,   21.394f,    5.68114f, false},
  83.     {3, 0,  2,  "Magisters' Terrace",   0,  70, 0,  530,    12884.6f,   -7317.69f,  65.5023f,   4.799f, false},
  84.     {3, 0,  2,  "Tempest Keep", 0,  70, 0,  530,    3100.48f,   1536.49f,   190.3f, 4.62226f, false},
  85.     {3, 1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  86.  
  87.     {4, 0,  2,  "Azjol-Nerub",  0,  73, 0,  571,    3707.86f,   2150.23f,   36.76f, 3.22f, false},
  88.     {4, 0,  2,  "The Culling of Stratholme",    0,  79, 0,  1,  -8756.39f,  -4440.68f,  -199.489f,  4.66289f, false},
  89.     {4, 0,  2,  "Trial of the Champion",    0,  79, 0,  571,    8590.95f,   791.792f,   558.235f,   3.13127f, false},
  90.     {4, 0,  2,  "Drak'Tharon Keep", 0,  74, 0,  571,    4765.59f,   -2038.24f,  229.363f,   0.887627f, false},
  91.     {4, 0,  2,  "Gundrak",  0,  71, 0,  571,    6722.44f,   -4640.67f,  450.632f,   3.91123f, false},
  92.     {4, 0,  2,  "Icecrown Citadel Dungeons",    0,  79, 0,  571,    5643.16f,   2028.81f,   798.274f,   4.60242f, false},
  93.     {4, 0,  2,  "The Nexus Dungeons",   0,  71, 0,  571,    3782.89f,   6965.23f,   105.088f,   6.14194f, false},
  94.     {4, 0,  2,  "The Violet Hold",  0,  75, 0,  571,    5693.08f,   502.588f,   652.672f,   4.0229f, false},
  95.     {4, 0,  2,  "Halls of Lightning",   0,  79, 0,  571,    9136.52f,   -1311.81f,  1066.29f,   5.19113f, false},
  96.     {4, 0,  2,  "Halls of Stone",   0,  77, 0,  571,    8922.12f,   -1009.16f,  1039.56f,   1.57044f, false},
  97.     {4, 0,  2,  "Utgarde Keep", 0,  69, 0,  571,    1203.41f,   -4868.59f,  41.2486f,   0.283237f, false},
  98.     {4, 0,  2,  "Utgarde Pinnacle", 0,  75, 0,  571,    1267.24f,   -4857.3f,   215.764f,   3.22768f, false},
  99.     {4, 1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  100.  
  101.     {5, 0,  2,  "Black Temple", 0,  70, 0,  530,    -3649.92f,  317.469f,   35.2827f,   2.94285f, false},
  102.     {5, 0,  2,  "Blackwing Lair",   0,  60, 0,  229,    152.451f,   -474.881f,  116.84f,    0.001073f, false},
  103.     {5, 0,  2,  "Hyjal Summit", 0,  70, 0,  1,  -8177.89f,  -4181.23f,  -167.552f,  0.913338f, false},
  104.     {5, 0,  2,  "Serpentshrine Cavern", 0,  70, 0,  530,    797.855f,   6865.77f,   -65.4165f,  0.005938f, false},
  105.     {5, 0,  2,  "Trial of the Crusader",    0,  80, 0,  571,    8515.61f,   714.153f,   558.248f,   1.57753f, false},
  106.     {5, 0,  2,  "Gruul's Lair", 0,  70, 0,  530,    3530.06f,   5104.08f,   3.50861f,   5.51117f, false},
  107.     {5, 0,  2,  "Magtheridon's Lair",   0,  70, 0,  530,    -336.411f,  3130.46f,   -102.928f,  5.20322f, false},
  108.     {5, 0,  2,  "Icecrown Citadel", 0,  80, 0,  571,    5855.22f,   2102.03f,   635.991f,   3.57899f, false},
  109.     {5, 0,  2,  "Karazhan", 0,  70, 0,  0,  -11118.9f,  -2010.33f,  47.0819f,   0.649895f, false},
  110.     {5, 0,  2,  "Molten Core",  0,  60, 0,  230,    1126.64f,   -459.94f,   -102.535f,  3.46095f, false},
  111.     {5, 0,  2,  "Naxxramas",    0,  80, 0,  571,    3668.72f,   -1262.46f,  243.622f,   4.785f, false},
  112.     {5, 0,  2,  "Onyxia's Lair",    0,  80, 0,  1,  -4708.27f,  -3727.64f,  54.5589f,   3.72786f, false},
  113.     {5, 0,  2,  "Ruins of Ahn'Qiraj",   0,  60, 0,  1,  -8409.82f,  1499.06f,   27.7179f,   2.51868f, false},
  114.     {5, 0,  2,  "Sunwell Plateau",  0,  70, 0,  530,    12574.1f,   -6774.81f,  15.0904f,   3.13788f, false},
  115.     {5, 0,  2,  "The Eye",  0,  67, 0,  530,    3088.49f,   1381.57f,   184.863f,   4.61973f, false},
  116.     {5, 0,  2,  "Temple of Ahn'Qiraj",  0,  60, 0,  1,  -8240.09f,  1991.32f,   129.072f,   0.941603f, false},
  117.     {5, 0,  2,  "The Eye of Eternity",  0,  80, 0,  571,    3784.17f,   7028.84f,   161.258f,   5.79993f, false},
  118.     {5, 0,  2,  "The Obsidian Sanctum", 0,  80, 0,  571,    3472.43f,   264.923f,   -120.146f,  3.27923f, false},
  119.     {5, 0,  2,  "Ulduar",   0,  80, 0,  571,    9222.88f,   -1113.59f,  1216.12f,   6.27549f, false},
  120.     {5, 0,  2,  "Vault of Archavon",    0,  80, 0,  571,    5453.72f,   2840.79f,   421.28f,    0.0f, false},
  121.     {5, 0,  2,  "Zul'Gurub",    0,  57, 0,  0,  -11916.7f,  -1215.72f,  92.289f,    4.72454f, false},
  122.     {5, 0,  2,  "Zul'Aman", 0,  70, 1,  530,    6851.78f,   -7972.57f,  179.242f,   4.64691f, false},
  123.     {5, 1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  124.  
  125.     {6, 0,  2,  "Elwynn Forest",    0,  0,  2,  0,  -9449.06f,  64.8392f,   56.3581f,   3.07047f, false},
  126.     {6, 0,  2,  "Eversong Woods",   0,  0,  1,  530,    9024.37f,   -6682.55f,  16.8973f,   3.14131f, false},
  127.     {6, 0,  2,  "Dun Morogh",   0,  0,  2,  0,  -5603.76f,  -482.704f,  396.98f,    5.23499f, false},
  128.     {6, 0,  2,  "Tirisfal Glades",  0,  0,  1,  0,  2274.95f,   323.918f,   34.1137f,   4.24367f, false},
  129.     {6, 0,  2,  "Ghostlands",   0,  10, 1,  530,    7595.73f,   -6819.6f,   84.3718f,   2.56561f, false},
  130.     {6, 0,  2,  "Loch modan",   0,  10, 2,  0,  -5405.85f,  -2894.15f,  341.972f,   5.48238f, false},
  131.     {6, 0,  2,  "Silverpine Forest",    0,  10, 1,  0,  505.126f,   1504.63f,   124.808f,   1.77987f, false},
  132.     {6, 0,  2,  "Westfall", 0,  10, 2,  0,  -10684.9f,  1033.63f,   32.5389f,   6.07384f, false},
  133.     {6, 0,  2,  "Redridge mountains",   0,  15, 2,  0,  -9447.8f,   -2270.85f,  71.8224f,   0.283853f, false},
  134.     {6, 0,  2,  "Duskwood", 0,  18, 2,  0,  -10531.7f,  -1281.91f,  38.8647f,   1.56959f, false},
  135.     {6, 0,  2,  "Hillsbrad Foothills",  0,  20, 0,  0,  -385.805f,  -787.954f,  54.6655f,   1.03926f, false},
  136.     {6, 0,  2,  "Wetlands", 0,  20, 2,  0,  -3517.75f,  -913.401f,  8.86625f,   2.60705f, false},
  137.     {6, 0,  2,  "Alterac Mountains",    0,  30, 0,  0,  275.049f,   -652.044f,  130.296f,   0.502032f, false},
  138.     {6, 0,  2,  "Arathi Highlands", 0,  30, 0,  0,  -1581.45f,  -2704.06f,  35.4168f,   0.490373f, false},
  139.     {6, 0,  2,  "Stranglethorn Vale",   0,  30, 0,  0,  -11921.7f,  -59.544f,   39.7262f,   3.73574f, false},
  140.     {6, 0,  2,  "Badlands", 0,  35, 0,  0,  -6782.56f,  -3128.14f,  240.48f,    5.65912f, false},
  141.     {6, 0,  2,  "Swamp of Sorrows", 0,  35, 0,  0,  -10368.6f,  -2731.3f,   21.6537f,   5.29238f, false},
  142.     {6, 0,  2,  "The Hinterlands",  0,  40, 0,  0,  112.406f,   -3929.74f,  136.358f,   0.981903f, false},
  143.     {6, 0,  2,  "Searing Gorge",    0,  43, 0,  0,  -6686.33f,  -1198.55f,  240.027f,   0.916887f, false},
  144.     {6, 0,  2,  "The Blasted Lands",    0,  45, 0,  0,  -11184.7f,  -3019.31f,  7.29238f,   3.20542f, false},
  145.     {6, 0,  2,  "Burning Steppes",  0,  50, 0,  0,  -7979.78f,  -2105.72f,  127.919f,   5.10148f, false},
  146.     {6, 0,  2,  "Western Plaguelands",  0,  51, 0,  0,  1743.69f,   -1723.86f,  59.6648f,   5.23722f, false},
  147.     {6, 0,  2,  "Eastern Plaguelands",  0,  53, 0,  0,  2280.64f,   -5275.05f,  82.0166f,   4.7479f, false},
  148.     {6, 0,  2,  "Isle of Quel'Danas",   0,  70, 0,  530,    12806.5f,   -6911.11f,  41.1156f,   2.22935f, false},
  149.     {6, 1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  150.  
  151.     {7, 0,  2,  "Azuremyst Isle",   0,  0,  2,  530,    -4192.62f,  -12576.7f,  36.7598f,   1.62813f, false},
  152.     {7, 0,  2,  "Teldrassil",   0,  0,  2,  1,  9889.03f,   915.869f,   1307.43f,   1.9336f, false},
  153.     {7, 0,  2,  "Durotar",  0,  0,  1,  1,  228.978f,   -4741.87f,  10.1027f,   0.416883f, false},
  154.     {7, 0,  2,  "Mulgore",  0,  0,  1,  1,  -2473.87f,  -501.225f,  -9.42465f,  0.6525f, false},
  155.     {7, 0,  2,  "Bloodmyst Isle",   0,  15, 2,  530,    -2095.7f,   -11841.1f,  51.1557f,   6.19288f, false},
  156.     {7, 0,  2,  "Darkshore",    0,  10, 2,  1,  6463.25f,   683.986f,   8.92792f,   4.33534f, false},
  157.     {7, 0,  2,  "The Barrens",  0,  10, 1,  1,  -575.772f,  -2652.45f,  95.6384f,   0.006469f, false},
  158.     {7, 0,  2,  "Stonetalon Mountains", 0,  15, 0,  1,  1574.89f,   1031.57f,   137.442f,   3.8013f, false},
  159.     {7, 0,  2,  "Ashenvale Forest", 0,  18, 0,  1,  1919.77f,   -2169.68f,  94.6729f,   6.14177f, false},
  160.     {7, 0,  2,  "Thousand Needles", 0,  25, 1,  1,  -5375.53f,  -2509.2f,   -40.432f,   2.41885f, false},
  161.     {7, 0,  2,  "Desolace", 0,  30, 0,  1,  -656.056f,  1510.12f,   88.3746f,   3.29553f, false},
  162.     {7, 0,  2,  "Dustwallow Marsh", 0,  35, 0,  1,  -3350.12f,  -3064.85f,  33.0364f,   5.12666f, false},
  163.     {7, 0,  2,  "Feralas",  0,  40, 0,  1,  -4808.31f,  1040.51f,   103.769f,   2.90655f, false},
  164.     {7, 0,  2,  "Tanaris Desert",   0,  40, 0,  1,  -6940.91f,  -3725.7f,   48.9381f,   3.11174f, false},
  165.     {7, 0,  2,  "Azshara",  0,  45, 0,  1,  3117.12f,   -4387.97f,  91.9059f,   5.49897f, false},
  166.     {7, 0,  2,  "Felwood",  0,  48, 0,  1,  3898.8f,    -1283.33f,  220.519f,   6.24307f, false},
  167.     {7, 0,  2,  "Un'Goro Crater",   0,  48, 0,  1,  -6291.55f,  -1158.62f,  -258.138f,  0.457099f, false},
  168.     {7, 0,  2,  "Silithus", 0,  55, 0,  1,  -6815.25f,  730.015f,   40.9483f,   2.39066f, false},
  169.     {7, 0,  2,  "Winterspring", 0,  55, 0,  1,  6658.57f,   -4553.48f,  718.019f,   5.18088f, false},
  170.     {7, 1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  171.  
  172.     {8, 0,  2,  "Hellfire Peninsula",   0,  58, 0,  530,    -207.335f,  2035.92f,   96.464f,    1.59676f, false},
  173.     {8, 0,  2,  "Zangarmarsh",  0,  60, 0,  530,    -220.297f,  5378.58f,   23.3223f,   1.61718f, false},
  174.     {8, 0,  2,  "Terokkar Forest",  0,  62, 0,  530,    -2266.23f,  4244.73f,   1.47728f,   3.68426f, false},
  175.     {8, 0,  2,  "Nagrand",  0,  64, 0,  530,    -1610.85f,  7733.62f,   -17.2773f,  1.33522f, false},
  176.     {8, 0,  2,  "Blade's Edge Mountains",   0,  65, 0,  530,    2029.75f,   6232.07f,   133.495f,   1.30395f, false},
  177.     {8, 0,  2,  "Netherstorm",  0,  67, 0,  530,    3271.2f,    3811.61f,   143.153f,   3.44101f, false},
  178.     {8, 0,  2,  "Shadowmoon Valley",    0,  67, 0,  530,    -3681.01f,  2350.76f,   76.587f,    4.25995f, false},
  179.     {8, 1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  180.  
  181.     {9, 0,  2,  "Borean Tundra",    0,  68, 0,  571,    2954.24f,   5379.13f,   60.4538f,   2.55544f, false},
  182.     {9, 0,  2,  "Howling Fjord",    0,  68, 0,  571,    682.848f,   -3978.3f,   230.161f,   1.54207f, false},
  183.     {9, 0,  2,  "Dragonblight", 0,  71, 0,  571,    2678.17f,   891.826f,   4.37494f,   0.101121f, false},
  184.     {9, 0,  2,  "Grizzly Hills",    0,  73, 0,  571,    4017.35f,   -3403.85f,  290.0f, 5.35431f, false},
  185.     {9, 0,  2,  "Zul'Drak", 0,  74, 0,  571,    5560.23f,   -3211.66f,  371.709f,   5.55055f, false},
  186.     {9, 0,  2,  "Sholazar Basin",   0,  76, 0,  571,    5614.67f,   5818.86f,   -69.722f,   3.60807f, false},
  187.     {9, 0,  2,  "Crystalsong Forest",   0,  77, 0,  571,    5411.17f,   -966.37f,   167.082f,   1.57167f, false},
  188.     {9, 0,  2,  "Storm Peaks",  0,  77, 0,  571,    6120.46f,   -1013.89f,  408.39f,    5.12322f, false},
  189.     {9, 0,  2,  "Icecrown", 0,  77, 0,  571,    8323.28f,   2763.5f,    655.093f,   2.87223f, false},
  190.     {9, 0,  2,  "Wintergrasp",  0,  77, 0,  571,    4522.23f,   2828.01f,   389.975f,   0.215009f, false},
  191.     {9, 1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  192.  
  193. //  {10,    0,  2,  "Teleport", 0,  0,  0,  map,    xf, yf, zf, of, false},
  194. //  {10,    1,  7,  "Back..",   0,  0,  0,  0,  0,  0,  0,  0, false},
  195. };
  196.  
  197. // TextIDs from npc_text
  198. enum eEnums
  199. {
  200.     TEXT_MAIN_H     =   300000,         //Horde main menu text
  201.     TEXT_MAIN_A     =   300001,         //Alliance main menu text
  202.     TEXT_DUNGEON    =   300002,         //Dungeon teleport menu texts
  203.     TEXT_RAID       =   300003,         //Raid teleport menu text
  204.     TEXT_AREA       =   300004,         //Area teleport location menu texts
  205.    
  206.     TELEPORT_COUNT  =   sizeof TeLe/sizeof(*TeLe),
  207. };
  208.  
  209. #define ARE_YOU_SURE    "Are you sure, that you want to go to "
  210. #define ERROR_COMBAT    "|cffff0000You are in combat|r"
  211.  
  212. bool Custom_FactCheck (uint32 Fact, unsigned char Key)
  213. {
  214.     bool Show = false;
  215.     switch (TeLe[Key].faction)
  216.     {
  217.     case 0:
  218.         Show = true;
  219.         break;
  220.     case 1:
  221.         if (Fact == HORDE)
  222.             Show = true;
  223.         break;
  224.     case 2:
  225.         if (Fact == ALLIANCE)
  226.             Show = true;
  227.         break;
  228.     }
  229.     return (Show);
  230. }
  231.  
  232. uint32 Custom_GetText (unsigned int menu, Player* pPlayer)
  233. {
  234.     uint32 TEXT = TEXT_AREA;
  235.     switch (menu)
  236.     {
  237.     case 0:
  238.         switch (pPlayer->GetTeam())
  239.         {
  240.         case ALLIANCE:
  241.             TEXT = TEXT_MAIN_A;
  242.             break;
  243.         case HORDE:
  244.             TEXT = TEXT_MAIN_H;
  245.             break;
  246.         }
  247.     case 1:
  248.     case 2:
  249.     case 3:
  250.         TEXT = TEXT_DUNGEON;
  251.         break;
  252.     case 4:
  253.         TEXT = TEXT_RAID;
  254.         break;
  255.     }
  256.     return (TEXT);
  257. }
  258.  
  259. void Custom_GetMenu (Player* pPlayer, Creature* pCreature, uint32 Key)
  260. {
  261.     bool Voted = false;
  262.     QueryResult result = WorldDatabase.PQuery("SELECT %s FROM %s WHERE GUID = %u", COLUMN, TABLE, pPlayer->GetGUID());
  263.     if(result)
  264.     {
  265.         Field* field = result->Fetch();
  266.         if(field[0].GetUInt8() != 0)
  267.             Voted = true;
  268.     }
  269.  
  270.     bool ENDMENU = false;
  271.     for(uint32 i = 0; i < TELEPORT_COUNT; i++)
  272.     {
  273.         if (ENDMENU && TeLe[i].menu_id != Key)
  274.             break;
  275.         if ((!TeLe[i].CheckVote || (TeLe[i].CheckVote && Voted)) && TeLe[i].menu_id == Key && pPlayer->getLevel() >= TeLe[i].level && Custom_FactCheck(pPlayer->GetTeam(), i))
  276.         {
  277.             if (TeLe[i].next_menu_id != 0)
  278.                 pPlayer->ADD_GOSSIP_ITEM_EXTENDED(TeLe[i].icon, TeLe[i].name, GOSSIP_SENDER_MAIN, i, "", TeLe[i].cost, false);
  279.             else
  280.                 pPlayer->ADD_GOSSIP_ITEM_EXTENDED(TeLe[i].icon, TeLe[i].name, GOSSIP_SENDER_MAIN, i, ARE_YOU_SURE+TeLe[i].name, TeLe[i].cost, false);
  281.             ENDMENU = true;
  282.         }
  283.     }
  284.     pPlayer->PlayerTalkClass->SendGossipMenu(Custom_GetText(Key, pPlayer), pCreature->GetGUID());
  285. }
  286.  
  287. class TeLe_gossip_codebox : public CreatureScript
  288. {
  289.     public:
  290.     TeLe_gossip_codebox()
  291.     : CreatureScript("TeLe_gossip_codebox")
  292.     {
  293.     }
  294.  
  295.     bool OnGossipHello(Player* pPlayer, Creature* pCreature)
  296.     {
  297.         Custom_GetMenu(pPlayer, pCreature, 1);
  298.         return true;
  299.     }
  300.  
  301.     bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
  302.     {
  303.         pPlayer->PlayerTalkClass->ClearMenus(); // clear the menu
  304.  
  305.         pPlayer->ModifyMoney(-1 * TeLe[uiAction].cost); // take cash
  306.         uint32 Key = TeLe[uiAction].next_menu_id;
  307.         if (Key == 0) // if no next_menu_id, then teleport to coords
  308.         {
  309.             if (!pPlayer->isInCombat())
  310.             {
  311.                 pPlayer->CLOSE_GOSSIP_MENU();
  312.                 pPlayer->TeleportTo(TeLe[uiAction].map, TeLe[uiAction].x, TeLe[uiAction].y, TeLe[uiAction].z, TeLe[uiAction].o);
  313.                 return true;
  314.             }
  315.             pPlayer->GetSession()->SendAreaTriggerMessage(ERROR_COMBAT);
  316.             Key = TeLe[uiAction].menu_id;
  317.         }
  318.  
  319.         Custom_GetMenu(pPlayer, pCreature, Key);
  320.         return true;
  321.     }
  322. };
  323.  
  324. void AddSC_TeLe_gossip_codebox()
  325. {
  326.     new TeLe_gossip_codebox();
  327. }
Advertisement
Add Comment
Please, Sign In to add comment