SHOW:
|
|
- or go back to the newest paste.
1 | ||
2 | /* | |
3 | Portal Master convert to C++ for Trinitycore | |
4 | By Rochet2 | |
5 | ||
6 | Credits: | |
7 | Rochet2 | |
8 | Eric | |
9 | ||
10 | ScriptName: TeLe_gossip_codebox | |
11 | */ | |
12 | ||
13 | #include "ScriptPCH.h" | |
14 | ||
15 | // Teleport data | |
16 | - | struct Eric |
16 | + | |
17 | struct Rochet2 | |
18 | - | uint32 menu_id, next_menu_id; |
18 | + | |
19 | - | uint8 icon; |
19 | + | uint32 menu_id; |
20 | - | std::string name; |
20 | + | uint32 next_menu_id; |
21 | - | uint32 cost; |
21 | + | uint8 icon; |
22 | - | uint8 level, faction; // 0 Both, 1 Horde, 2 Ally |
22 | + | std::string name; |
23 | - | uint32 map; |
23 | + | uint32 cost; |
24 | - | float x, y, z, o; |
24 | + | uint8 level; |
25 | uint8 faction; // 0 Both, 1 Horde, 2 Ally | |
26 | - | typedef struct Eric Rochet2; |
26 | + | uint32 map; |
27 | float x; | |
28 | - | // {menu_id, next_menu_id, icon, name, cost, level, faction, map, x, y, z, o} |
28 | + | float y; |
29 | - | Rochet2 TeLe [] = // key = i & Key |
29 | + | float z; |
30 | float o; | |
31 | - | {1, 0, 2, "Stormwind", 0, 0, 2, 0, -8842.09f, 626.358f, 94.0867f, 3.61363f}, |
31 | + | |
32 | - | {1, 0, 2, "Orgrimmar", 0, 0, 1, 1, 1601.08f, -4378.69f, 9.9846f, 2.14362f}, |
32 | + | |
33 | - | {1, 0, 2, "Darnassus", 0, 0, 2, 1, 9869.91f, 2493.58f, 1315.88f, 2.78897f}, |
33 | + | |
34 | - | {1, 0, 2, "Ironforge", 0, 0, 2, 0, -4900.47f, -962.585f, 501.455f, 5.40538f}, |
34 | + | |
35 | - | {1, 0, 2, "Exodar", 0, 0, 2, 530, -3864.92f, -11643.7f, -137.644f, 5.50862f}, |
35 | + | |
36 | - | {1, 0, 2, "Thunder bluff", 0, 0, 1, 1, -1274.45f, 71.8601f, 128.159f, 2.80623f}, |
36 | + | TEXT_MAIN_H = 300000, //Horde main menu text |
37 | - | {1, 0, 2, "Undercity", 0, 0, 1, 0, 1633.75f, 240.167f, -43.1034f, 6.26128f}, |
37 | + | TEXT_MAIN_A = 300001, //Alliance main menu text |
38 | - | {1, 0, 2, "Silvermoon city", 0, 0, 1, 530, 9738.28f, -7454.19f, 13.5605f, 0.043914f}, |
38 | + | TEXT_DUNGEON = 300002, //Dungeon teleport menu texts |
39 | - | {1, 0, 2, "Dalaran", 0, 67, 0, 571, 5809.55f, 503.975f, 657.526f, 2.38338f}, |
39 | + | TEXT_RAID = 300003, //Raid teleport menu text |
40 | - | {1, 0, 2, "Shattrath", 0, 57, 0, 530, -1887.62f, 5359.09f, -12.4279f, 4.40435f}, |
40 | + | TEXT_AREA = 300004, //Area teleport location menu texts |
41 | - | {1, 0, 2, "Booty bay", 0, 30, 0, 0, -14281.9f, 552.564f, 8.90422f, 0.860144f}, |
41 | + | |
42 | - | {1, 0, 2, "Gurubashi arena", 0, 30, 0, 0, -13181.8f, 339.356f, 42.9805f, 1.18013f}, |
42 | + | |
43 | - | {1, 6, 3, "Eastern Kingdoms", 0, 0, 0, 0, 0, 0, 0, 0}, |
43 | + | |
44 | - | {1, 7, 3, "Kalimdor", 0, 0, 0, 0, 0, 0, 0, 0}, |
44 | + | #define ERROR_COMBAT "You are in combat" |
45 | - | {1, 8, 3, "Outland", 0, 58, 0, 0, 0, 0, 0, 0}, |
45 | + | |
46 | - | {1, 9, 3, "Northrend", 0, 68, 0, 0, 0, 0, 0, 0}, |
46 | + | |
47 | - | {1, 2, 9, "Classic Dungeons", 0, 15, 0, 0, 0, 0, 0, 0}, |
47 | + | |
48 | - | {1, 3, 9, "BC Dungeons", 0, 59, 0, 0, 0, 0, 0, 0}, |
48 | + | public: |
49 | - | {1, 4, 9, "Wrath Dungeons", 0, 69, 0, 0, 0, 0, 0, 0}, |
49 | + | typedef std::map<uint32, Rochet2*> TeLeTypeMap; |
50 | - | {1, 5, 9, "Raid Teleports", 0, 57, 0, 0, 0, 0, 0, 0}, |
50 | + | typedef UNORDERED_MAP<uint32, TeLeTypeMap > TeLeTypeUMap; |
51 | TeLeTypeUMap TeLe; | |
52 | - | {2, 0, 2, "Gnomeregan", 0, 25, 2, 0, -5163.54f, 925.423f, 257.181f, 1.57423f}, |
52 | + | |
53 | - | {2, 0, 2, "The Deadmines", 0, 17, 2, 0, -11209.6f, 1666.54f, 24.6974f, 1.42053f}, |
53 | + | TeLe_gossip_codebox() : CreatureScript("TeLe_gossip_codebox") |
54 | - | {2, 0, 2, "The Stockade", 0, 22, 2, 0, -8799.15f, 832.718f, 97.6348f, 6.04085f}, |
54 | + | { |
55 | - | {2, 0, 2, "Ragefire Chasm", 0, 15, 1, 1, 1811.78f, -4410.5f, -18.4704f, 5.20165f}, |
55 | + | QueryResult result = WorldDatabase.Query("SELECT menu_id, next_menu_id, icon, name, cost, level, faction, map, x, y, z, o FROM table_here"); |
56 | - | {2, 0, 2, "Razorfen Downs", 0, 34, 1, 1, -4657.3f, -2519.35f, 81.0529f, 4.54808f}, |
56 | + | if (result) |
57 | - | {2, 0, 2, "Razorfen Kraul", 0, 24, 1, 1, -4470.28f, -1677.77f, 81.3925f, 1.16302f}, |
57 | + | { |
58 | - | {2, 0, 2, "Scarlet Monastery", 0, 32, 1, 0, 2873.15f, -764.523f, 160.332f, 5.10447f}, |
58 | + | do |
59 | - | {2, 0, 2, "Shadowfang Keep", 0, 18, 1, 0, -234.675f, 1561.63f, 76.8921f, 1.24031f}, |
59 | + | { |
60 | - | {2, 0, 2, "Wailing Caverns", 0, 17, 1, 1, -731.607f, -2218.39f, 17.0281f, 2.78486f}, |
60 | + | uint32 i = 0; |
61 | - | {2, 0, 2, "Blackfathom Deeps", 0, 21, 0, 1, 4249.99f, 740.102f, -25.671f, 1.34062f}, |
61 | + | Field* fields = result->Fetch(); |
62 | - | {2, 0, 2, "Blackrock Depths", 0, 53, 0, 0, -7179.34f, -921.212f, 165.821f, 5.09599f}, |
62 | + | uint32 menu_id = fields[i++].GetUInt32(); |
63 | - | {2, 0, 2, "Blackrock Spire", 0, 57, 0, 0, -7527.05f, -1226.77f, 285.732f, 5.29626f}, |
63 | + | |
64 | - | {2, 0, 2, "Dire Maul", 0, 55, 0, 1, -3520.14f, 1119.38f, 161.025f, 4.70454f}, |
64 | + | Rochet2* data = new Rochet2; |
65 | - | {2, 0, 2, "Maraudon", 0, 45, 0, 1, -1421.42f, 2907.83f, 137.415f, 1.70718f}, |
65 | + | data->next_menu_id = fields[i++].GetUInt32(); |
66 | - | {2, 0, 2, "Scholomance", 0, 55, 0, 0, 1269.64f, -2556.21f, 93.6088f, 0.620623f}, |
66 | + | data->icon = fields[i++].GetUInt8(); |
67 | - | {2, 0, 2, "Stratholme", 0, 55, 0, 0, 3352.92f, -3379.03f, 144.782f, 6.25978f}, |
67 | + | data->name = fields[i++].GetString(); |
68 | - | {2, 0, 2, "Sunken Temple", 0, 47, 0, 0, -10177.9f, -3994.9f, -111.239f, 6.01885f}, |
68 | + | data->cost = fields[i++].GetUInt32(); |
69 | - | {2, 0, 2, "Uldaman", 0, 37, 0, 0, -6071.37f, -2955.16f, 209.782f, 0.015708f}, |
69 | + | data->level = fields[i++].GetUInt8(); |
70 | - | {2, 0, 2, "Zul'Farrak", 0, 35, 0, 1, -6801.19f, -2893.02f, 9.00388f, 0.158639f}, |
70 | + | data->faction = fields[i++].GetUInt8(); |
71 | - | {2, 1, 7, "Back..", 0, 0, 0, 0, 0, 0, 0, 0}, |
71 | + | data->map = fields[i++].GetUInt32(); |
72 | data->x = fields[i++].GetFloat(); | |
73 | - | {3, 0, 2, "Auchindoun", 0, 64, 0, 530, -3324.49f, 4943.45f, -101.239f, 4.63901f}, |
73 | + | data->y = fields[i++].GetFloat(); |
74 | - | {3, 0, 2, "Caverns of Time", 0, 66, 0, 1, -8369.65f, -4253.11f, -204.272f, -2.70526f}, |
74 | + | data->z = fields[i++].GetFloat(); |
75 | - | {3, 0, 2, "Coilfang Reservoir", 0, 62, 0, 530, 738.865f, 6865.77f, -69.4659f, 6.27655f}, |
75 | + | data->o = fields[i++].GetFloat(); |
76 | - | {3, 0, 2, "Hellfire Citadel", 0, 59, 0, 530, -347.29f, 3089.82f, 21.394f, 5.68114f}, |
76 | + | |
77 | - | {3, 0, 2, "Magisters' Terrace", 0, 70, 0, 530, 12884.6f, -7317.69f, 65.5023f, 4.799f}, |
77 | + | // TeLe[menu_id][id] = data; |
78 | - | {3, 0, 2, "Tempest Keep", 0, 70, 0, 530, 3100.48f, 1536.49f, 190.3f, 4.62226f}, |
78 | + | TeLe[menu_id][TeLe[menu_id].size()] = data; |
79 | - | {3, 1, 7, "Back..", 0, 0, 0, 0, 0, 0, 0, 0}, |
79 | + | } |
80 | while (!result->NextRow()); | |
81 | - | {4, 0, 2, "Azjol-Nerub", 0, 73, 0, 571, 3707.86f, 2150.23f, 36.76f, 3.22f}, |
81 | + | } |
82 | - | {4, 0, 2, "The Culling of Stratholme", 0, 79, 0, 1, -8756.39f, -4440.68f, -199.489f, 4.66289f}, |
82 | + | } |
83 | - | {4, 0, 2, "Trial of the Champion", 0, 79, 0, 571, 8590.95f, 791.792f, 558.235f, 3.13127f}, |
83 | + | |
84 | - | {4, 0, 2, "Drak'Tharon Keep", 0, 74, 0, 571, 4765.59f, -2038.24f, 229.363f, 0.887627f}, |
84 | + | ~TeLe_gossip_codebox() |
85 | - | {4, 0, 2, "Gundrak", 0, 71, 0, 571, 6722.44f, -4640.67f, 450.632f, 3.91123f}, |
85 | + | { |
86 | - | {4, 0, 2, "Icecrown Citadel Dungeons", 0, 79, 0, 571, 5643.16f, 2028.81f, 798.274f, 4.60242f}, |
86 | + | for (TeLeTypeUMap::iterator it = TeLe.begin(); it != TeLe.end(); ++it) |
87 | - | {4, 0, 2, "The Nexus Dungeons", 0, 71, 0, 571, 3782.89f, 6965.23f, 105.088f, 6.14194f}, |
87 | + | { |
88 | - | {4, 0, 2, "The Violet Hold", 0, 75, 0, 571, 5693.08f, 502.588f, 652.672f, 4.0229f}, |
88 | + | for (TeLeTypeMap::iterator itr = it->second.begin(); itr != it->second.end(); ++itr) |
89 | - | {4, 0, 2, "Halls of Lightning", 0, 79, 0, 571, 9136.52f, -1311.81f, 1066.29f, 5.19113f}, |
89 | + | delete itr->second; |
90 | - | {4, 0, 2, "Halls of Stone", 0, 77, 0, 571, 8922.12f, -1009.16f, 1039.56f, 1.57044f}, |
90 | + | } |
91 | - | {4, 0, 2, "Utgarde Keep", 0, 69, 0, 571, 1203.41f, -4868.59f, 41.2486f, 0.283237f}, |
91 | + | } |
92 | - | {4, 0, 2, "Utgarde Pinnacle", 0, 75, 0, 571, 1267.24f, -4857.3f, 215.764f, 3.22768f}, |
92 | + | |
93 | - | {4, 1, 7, "Back..", 0, 0, 0, 0, 0, 0, 0, 0}, |
93 | + | bool OnGossipHello(Player* player, Creature* creature) |
94 | { | |
95 | - | {5, 0, 2, "Black Temple", 0, 70, 0, 530, -3649.92f, 317.469f, 35.2827f, 2.94285f}, |
95 | + | Custom_GetMenu(player, creature, 1); // 1 = main menu |
96 | - | {5, 0, 2, "Blackwing Lair", 0, 60, 0, 229, 152.451f, -474.881f, 116.84f, 0.001073f}, |
96 | + | return true; |
97 | - | {5, 0, 2, "Hyjal Summit", 0, 70, 0, 1, -8177.89f, -4181.23f, -167.552f, 0.913338f}, |
97 | + | } |
98 | - | {5, 0, 2, "Serpentshrine Cavern", 0, 70, 0, 530, 797.855f, 6865.77f, -65.4165f, 0.005938f}, |
98 | + | |
99 | - | {5, 0, 2, "Trial of the Crusader", 0, 80, 0, 571, 8515.61f, 714.153f, 558.248f, 1.57753f}, |
99 | + | bool OnGossipSelect(Player* player, Creature* creature, uint32 menu_id, uint32 id) |
100 | - | {5, 0, 2, "Gruul's Lair", 0, 70, 0, 530, 3530.06f, 5104.08f, 3.50861f, 5.51117f}, |
100 | + | { |
101 | - | {5, 0, 2, "Magtheridon's Lair", 0, 70, 0, 530, -336.411f, 3130.46f, -102.928f, 5.20322f}, |
101 | + | Rochet2* data = TeLe[menu_id][id]; |
102 | - | {5, 0, 2, "Icecrown Citadel", 0, 80, 0, 571, 5855.22f, 2102.03f, 635.991f, 3.57899f}, |
102 | + | |
103 | - | {5, 0, 2, "Karazhan", 0, 70, 0, 0, -11118.9f, -2010.33f, 47.0819f, 0.649895f}, |
103 | + | player->PlayerTalkClass->ClearMenus(); // clear the menu |
104 | - | {5, 0, 2, "Molten Core", 0, 60, 0, 230, 1126.64f, -459.94f, -102.535f, 3.46095f}, |
104 | + | player->ModifyMoney(-1 * data->cost); // take cash |
105 | - | {5, 0, 2, "Naxxramas", 0, 80, 0, 571, 3668.72f, -1262.46f, 243.622f, 4.785f}, |
105 | + | |
106 | - | {5, 0, 2, "Onyxia's Lair", 0, 80, 0, 1, -4708.27f, -3727.64f, 54.5589f, 3.72786f}, |
106 | + | if (data->next_menu_id) |
107 | - | {5, 0, 2, "Ruins of Ahn'Qiraj", 0, 60, 0, 1, -8409.82f, 1499.06f, 27.7179f, 2.51868f}, |
107 | + | Custom_GetMenu(player, creature, data->next_menu_id); |
108 | - | {5, 0, 2, "Sunwell Plateau", 0, 70, 0, 530, 12574.1f, -6774.81f, 15.0904f, 3.13788f}, |
108 | + | else if (player->isInCombat()) |
109 | - | {5, 0, 2, "The Eye", 0, 67, 0, 530, 3088.49f, 1381.57f, 184.863f, 4.61973f}, |
109 | + | { |
110 | - | {5, 0, 2, "Temple of Ahn'Qiraj", 0, 60, 0, 1, -8240.09f, 1991.32f, 129.072f, 0.941603f}, |
110 | + | player->GetSession()->SendNotification(ERROR_COMBAT); |
111 | - | {5, 0, 2, "The Eye of Eternity", 0, 80, 0, 571, 3784.17f, 7028.84f, 161.258f, 5.79993f}, |
111 | + | Custom_GetMenu(player, creature, data->menu_id); |
112 | - | {5, 0, 2, "The Obsidian Sanctum", 0, 80, 0, 571, 3472.43f, 264.923f, -120.146f, 3.27923f}, |
112 | + | } |
113 | - | {5, 0, 2, "Ulduar", 0, 80, 0, 571, 9222.88f, -1113.59f, 1216.12f, 6.27549f}, |
113 | + | else |
114 | - | {5, 0, 2, "Vault of Archavon", 0, 80, 0, 571, 5453.72f, 2840.79f, 421.28f, 0.0f}, |
114 | + | { |
115 | - | {5, 0, 2, "Zul'Gurub", 0, 57, 0, 0, -11916.7f, -1215.72f, 92.289f, 4.72454f}, |
115 | + | player->CLOSE_GOSSIP_MENU(); |
116 | - | {5, 0, 2, "Zul'Aman", 0, 70, 1, 530, 6851.78f, -7972.57f, 179.242f, 4.64691f}, |
116 | + | player->TeleportTo(data->map, data->x, data->y, data->z, data->o); |
117 | - | {5, 1, 7, "Back..", 0, 0, 0, 0, 0, 0, 0, 0}, |
117 | + | } |
118 | return true; | |
119 | - | {6, 0, 2, "Elwynn Forest", 0, 0, 2, 0, -9449.06f, 64.8392f, 56.3581f, 3.07047f}, |
119 | + | } |
120 | - | {6, 0, 2, "Eversong Woods", 0, 0, 1, 530, 9024.37f, -6682.55f, 16.8973f, 3.14131f}, |
120 | + | |
121 | - | {6, 0, 2, "Dun Morogh", 0, 0, 2, 0, -5603.76f, -482.704f, 396.98f, 5.23499f}, |
121 | + | bool Custom_FactCheck(uint32 team, uint32 fact) |
122 | - | {6, 0, 2, "Tirisfal Glades", 0, 0, 1, 0, 2274.95f, 323.918f, 34.1137f, 4.24367f}, |
122 | + | { |
123 | - | {6, 0, 2, "Ghostlands", 0, 10, 1, 530, 7595.73f, -6819.6f, 84.3718f, 2.56561f}, |
123 | + | switch (fact) |
124 | - | {6, 0, 2, "Loch modan", 0, 10, 2, 0, -5405.85f, -2894.15f, 341.972f, 5.48238f}, |
124 | + | { |
125 | - | {6, 0, 2, "Silverpine Forest", 0, 10, 1, 0, 505.126f, 1504.63f, 124.808f, 1.77987f}, |
125 | + | case 0: return true; |
126 | - | {6, 0, 2, "Westfall", 0, 10, 2, 0, -10684.9f, 1033.63f, 32.5389f, 6.07384f}, |
126 | + | case 1: return (team == HORDE); |
127 | - | {6, 0, 2, "Redridge mountains", 0, 15, 2, 0, -9447.8f, -2270.85f, 71.8224f, 0.283853f}, |
127 | + | case 2: return (team == ALLIANCE); |
128 | - | {6, 0, 2, "Duskwood", 0, 18, 2, 0, -10531.7f, -1281.91f, 38.8647f, 1.56959f}, |
128 | + | } |
129 | - | {6, 0, 2, "Hillsbrad Foothills", 0, 20, 0, 0, -385.805f, -787.954f, 54.6655f, 1.03926f}, |
129 | + | return false; |
130 | - | {6, 0, 2, "Wetlands", 0, 20, 2, 0, -3517.75f, -913.401f, 8.86625f, 2.60705f}, |
130 | + | } |
131 | - | {6, 0, 2, "Alterac Mountains", 0, 30, 0, 0, 275.049f, -652.044f, 130.296f, 0.502032f}, |
131 | + | |
132 | - | {6, 0, 2, "Arathi Highlands", 0, 30, 0, 0, -1581.45f, -2704.06f, 35.4168f, 0.490373f}, |
132 | + | uint32 Custom_GetText(uint32 menu, uint32 team) |
133 | - | {6, 0, 2, "Stranglethorn Vale", 0, 30, 0, 0, -11921.7f, -59.544f, 39.7262f, 3.73574f}, |
133 | + | { |
134 | - | {6, 0, 2, "Badlands", 0, 35, 0, 0, -6782.56f, -3128.14f, 240.48f, 5.65912f}, |
134 | + | switch (menu) |
135 | - | {6, 0, 2, "Swamp of Sorrows", 0, 35, 0, 0, -10368.6f, -2731.3f, 21.6537f, 5.29238f}, |
135 | + | { |
136 | - | {6, 0, 2, "The Hinterlands", 0, 40, 0, 0, 112.406f, -3929.74f, 136.358f, 0.981903f}, |
136 | + | case 1: |
137 | - | {6, 0, 2, "Searing Gorge", 0, 43, 0, 0, -6686.33f, -1198.55f, 240.027f, 0.916887f}, |
137 | + | if (team == ALLIANCE) |
138 | - | {6, 0, 2, "The Blasted Lands", 0, 45, 0, 0, -11184.7f, -3019.31f, 7.29238f, 3.20542f}, |
138 | + | return TEXT_MAIN_A; |
139 | - | {6, 0, 2, "Burning Steppes", 0, 50, 0, 0, -7979.78f, -2105.72f, 127.919f, 5.10148f}, |
139 | + | else |
140 | - | {6, 0, 2, "Western Plaguelands", 0, 51, 0, 0, 1743.69f, -1723.86f, 59.6648f, 5.23722f}, |
140 | + | return TEXT_MAIN_H; |
141 | - | {6, 0, 2, "Eastern Plaguelands", 0, 53, 0, 0, 2280.64f, -5275.05f, 82.0166f, 4.7479f}, |
141 | + | case 2: |
142 | - | {6, 0, 2, "Isle of Quel'Danas", 0, 70, 0, 530, 12806.5f, -6911.11f, 41.1156f, 2.22935f}, |
142 | + | case 3: |
143 | - | {6, 1, 7, "Back..", 0, 0, 0, 0, 0, 0, 0, 0}, |
143 | + | case 4: |
144 | return TEXT_DUNGEON; | |
145 | - | {7, 0, 2, "Azuremyst Isle", 0, 0, 2, 530, -4192.62f, -12576.7f, 36.7598f, 1.62813f}, |
145 | + | case 5: |
146 | - | {7, 0, 2, "Teldrassil", 0, 0, 2, 1, 9889.03f, 915.869f, 1307.43f, 1.9336f}, |
146 | + | return TEXT_RAID; |
147 | - | {7, 0, 2, "Durotar", 0, 0, 1, 1, 228.978f, -4741.87f, 10.1027f, 0.416883f}, |
147 | + | } |
148 | - | {7, 0, 2, "Mulgore", 0, 0, 1, 1, -2473.87f, -501.225f, -9.42465f, 0.6525f}, |
148 | + | return TEXT_AREA; |
149 | - | {7, 0, 2, "Bloodmyst Isle", 0, 15, 2, 530, -2095.7f, -11841.1f, 51.1557f, 6.19288f}, |
149 | + | } |
150 | - | {7, 0, 2, "Darkshore", 0, 10, 2, 1, 6463.25f, 683.986f, 8.92792f, 4.33534f}, |
150 | + | |
151 | - | {7, 0, 2, "The Barrens", 0, 10, 1, 1, -575.772f, -2652.45f, 95.6384f, 0.006469f}, |
151 | + | void Custom_GetMenu(Player* player, Creature* creature, uint32 menu_id) |
152 | - | {7, 0, 2, "Stonetalon Mountains", 0, 15, 0, 1, 1574.89f, 1031.57f, 137.442f, 3.8013f}, |
152 | + | { |
153 | - | {7, 0, 2, "Ashenvale Forest", 0, 18, 0, 1, 1919.77f, -2169.68f, 94.6729f, 6.14177f}, |
153 | + | for (TeLeTypeMap::iterator it = TeLe[menu_id].begin(); it != TeLe[menu_id].end(); ++it) |
154 | - | {7, 0, 2, "Thousand Needles", 0, 25, 1, 1, -5375.53f, -2509.2f, -40.432f, 2.41885f}, |
154 | + | { |
155 | - | {7, 0, 2, "Desolace", 0, 30, 0, 1, -656.056f, 1510.12f, 88.3746f, 3.29553f}, |
155 | + | if (player->getLevel() >= it->second->level && Custom_FactCheck(player->GetTeam(), it->second->faction)) |
156 | - | {7, 0, 2, "Dustwallow Marsh", 0, 35, 0, 1, -3350.12f, -3064.85f, 33.0364f, 5.12666f}, |
156 | + | { |
157 | - | {7, 0, 2, "Feralas", 0, 40, 0, 1, -4808.31f, 1040.51f, 103.769f, 2.90655f}, |
157 | + | if (it->second->next_menu_id) |
158 | - | {7, 0, 2, "Tanaris Desert", 0, 40, 0, 1, -6940.91f, -3725.7f, 48.9381f, 3.11174f}, |
158 | + | player->ADD_GOSSIP_ITEM_EXTENDED(it->second->icon, it->second->name, menu_id, it->first, "", it->second->cost, false); |
159 | - | {7, 0, 2, "Azshara", 0, 45, 0, 1, 3117.12f, -4387.97f, 91.9059f, 5.49897f}, |
159 | + | else |
160 | - | {7, 0, 2, "Felwood", 0, 48, 0, 1, 3898.8f, -1283.33f, 220.519f, 6.24307f}, |
160 | + | player->ADD_GOSSIP_ITEM_EXTENDED(it->second->icon, it->second->name, menu_id, it->first, ARE_YOU_SURE+it->second->name, it->second->cost, false); |
161 | - | {7, 0, 2, "Un'Goro Crater", 0, 48, 0, 1, -6291.55f, -1158.62f, -258.138f, 0.457099f}, |
161 | + | } |
162 | - | {7, 0, 2, "Silithus", 0, 55, 0, 1, -6815.25f, 730.015f, 40.9483f, 2.39066f}, |
162 | + | } |
163 | - | {7, 0, 2, "Winterspring", 0, 55, 0, 1, 6658.57f, -4553.48f, 718.019f, 5.18088f}, |
163 | + | player->PlayerTalkClass->SendGossipMenu(Custom_GetText(menu_id, player->GetTeam()), creature->GetGUID()); |
164 | - | {7, 1, 7, "Back..", 0, 0, 0, 0, 0, 0, 0, 0}, |
164 | + | } |
165 | }; | |
166 | - | {8, 0, 2, "Hellfire Peninsula", 0, 58, 0, 530, -207.335f, 2035.92f, 96.464f, 1.59676f}, |
166 | + | |
167 | - | {8, 0, 2, "Zangarmarsh", 0, 60, 0, 530, -220.297f, 5378.58f, 23.3223f, 1.61718f}, |
167 | + | |
168 | - | {8, 0, 2, "Terokkar Forest", 0, 62, 0, 530, -2266.23f, 4244.73f, 1.47728f, 3.68426f}, |
168 | + | |
169 | - | {8, 0, 2, "Nagrand", 0, 64, 0, 530, -1610.85f, 7733.62f, -17.2773f, 1.33522f}, |
169 | + | |
170 | - | {8, 0, 2, "Blade's Edge Mountains", 0, 65, 0, 530, 2029.75f, 6232.07f, 133.495f, 1.30395f}, |
170 | + | } |