SHOW:
|
|
- or go back to the newest paste.
| 1 | --[[ | |
| 2 | ## Gurubashi Theme Generator ## | |
| 3 | Original credits to Hkarta. | |
| 4 | ||
| 5 | - | Base for this script here by Sdyess: |
| 5 | + | Base for this script here by Sdyess: (link dead) |
| 6 | http://www.ac-web.org/forums/showthread.php?t=150939 | |
| 7 | ||
| 8 | Modified to lua by Rochet2 | |
| 9 | ||
| 10 | - | Use the SQL provieded by Sdyess! |
| 10 | + | SQL originally provided by Sdyess. |
| 11 | SQL by Daveido1h | |
| 12 | ]] | |
| 13 | ||
| 14 | --[[ | |
| 15 | ||
| 16 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; | |
| 17 | - | local function GetLastThemeTime() |
| 17 | + | /*!40101 SET NAMES utf8 */; |
| 18 | - | local Q = WorldDBQuery("SELECT `time` FROM `gurubashi_lastspawned`")
|
| 18 | + | /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; |
| 19 | - | if (Q) then |
| 19 | + | /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; |
| 20 | - | return Q:GetColumn(0):GetUInt32() |
| 20 | + | |
| 21 | - | else |
| 21 | + | -- Dumping structure for table gurubashi_spawns |
| 22 | - | return 0 |
| 22 | + | CREATE TABLE IF NOT EXISTS `gurubashi_spawns` ( |
| 23 | - | end |
| 23 | + | `theme` int(11) unsigned NOT NULL, |
| 24 | `entry` int(11) unsigned NOT NULL, | |
| 25 | `x` float NOT NULL, | |
| 26 | - | local function GossipObjects(player, m_creature) |
| 26 | + | `y` float NOT NULL, |
| 27 | - | m_creature:GossipCreateMenu(1, pPlayer, 0) |
| 27 | + | `z` float NOT NULL, |
| 28 | - | if (GetLastThemeTime() + 600 <= os.time()) then |
| 28 | + | `o` float NOT NULL |
| 29 | - | local Q = WorldDBQuery("SELECT `id`, `name` FROM `gurubashi_themes`")
|
| 29 | + | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
| 30 | - | if (Q) then |
| 30 | + | |
| 31 | - | for i = 1, Q:GetRowCount() do |
| 31 | + | -- Dumping data for table gurubashi_spawns: 167 rows |
| 32 | - | m_creature:GossipMenuAddItem(4, Q:GetColumn(1):GetString(), OFFSET_THEME + Q:GetColumn(0):GetInt32(), 0) |
| 32 | + | /*!40000 ALTER TABLE `gurubashi_spawns` DISABLE KEYS */; |
| 33 | - | Q:NextRow() |
| 33 | + | INSERT INTO `gurubashi_spawns` (`theme`, `entry`, `x`, `y`, `z`, `o`) VALUES |
| 34 | - | end |
| 34 | + | (1, 6000118, -13205.8, 274.844, 27.6802, 4.30156), |
| 35 | - | end |
| 35 | + | (1, 6000117, -13168, 275.081, 21.8574, 2.72372), |
| 36 | (1, 6000110, -13205.5, 274.828, 30.32, 4.27407), | |
| 37 | - | local time2 = GetLastThemeTime() + 600 - os.time() |
| 37 | + | (1, 6000119, -13187.7, 239.463, 21.8582, 3.77539), |
| 38 | - | local msg = "" |
| 38 | + | (1, 6000119, -13180.5, 291.8, 21.8582, 3.22953), |
| 39 | - | if (time2 < 60) then |
| 39 | + | (1, 6000119, -13178.4, 283.759, 21.8579, 4.64874), |
| 40 | - | msg = "Next change possible in less than minute." |
| 40 | + | (1, 6000119, -13227.1, 278.129, 21.8582, 5.76243), |
| 41 | (1, 6000119, -13173.3, 295.848, 21.8579, 4.20499), | |
| 42 | - | msg = "Next change possible in "..(time2 / 60).." minute/s." |
| 42 | + | (1, 6000119, -13202.6, 244.986, 21.8579, 2.8816), |
| 43 | - | end |
| 43 | + | (1, 6000119, -13186.4, 291.49, 21.8579, 5.90144), |
| 44 | - | m_creature:GossipMenuAddItem(0, msg, 2, 0) |
| 44 | + | (1, 6000119, -13192.9, 235.159, 21.8582, 3.5437), |
| 45 | (1, 6000119, -13173.4, 255.883, 21.8582, 4.31731), | |
| 46 | - | m_creature:GossipMenuAddItem(0, "Good bye", 1, 0) |
| 46 | + | (1, 6000119, -13205.5, 250.809, 21.8582, 2.8329), |
| 47 | - | m_creature:GossipSendMenu(player) |
| 47 | + | (1, 6000119, -13218.7, 268.308, 21.8582, 5.81348), |
| 48 | (1, 6000119, -13170.4, 287.805, 21.8582, 2.30276), | |
| 49 | (1, 6000119, -13228, 249.127, 21.8582, 5.77814), | |
| 50 | - | local function OnGossipHello(pCreature, event, pPlayer) |
| 50 | + | (1, 6000119, -13215.8, 312.145, 21.8582, 0.928307), |
| 51 | - | GossipObjects(pPlayer, pCreature) |
| 51 | + | (1, 6000119, -13180.1, 239.075, 21.8579, 5.35167), |
| 52 | (1, 6000119, -13221.7, 274.7, 21.8571, 4.26782), | |
| 53 | - | |
| 53 | + | (1, 6000119, -13167.4, 256.948, 21.8579, 6.12921), |
| 54 | - | local function OnGossipSelect(m_creature, event, player, sender, action, code) |
| 54 | + | (1, 6000119, -13170.8, 249.312, 21.8579, 5.68546), |
| 55 | - | if (action > OFFSET_THEME) then |
| 55 | + | (1, 6000119, -13184.4, 274.314, 21.8582, 5.65248), |
| 56 | - | WorldDBQuery("DELETE FROM `gurubashi_lastspawned`")
|
| 56 | + | (1, 6000119, -13210.4, 283.529, 21.8582, 5.86061), |
| 57 | - | WorldDBQuery("INSERT INTO `gurubashi_lastspawned` VALUES ("..os.time()..")")
|
| 57 | + | (1, 6000119, -13198.1, 271.543, 21.8582, 2.64048), |
| 58 | - | local Q = WorldDBQuery("SELECT `x`, `y`, `z`, `o`, `entry` FROM `gurubashi_spawns` WHERE `theme` = "..(action - OFFSET_THEME))
|
| 58 | + | (1, 6000119, -13193.6, 258.863, 21.8582, 2.69153), |
| 59 | - | if (Q) then |
| 59 | + | (1, 6000119, -13199.2, 314.904, 21.8582, 1.06968), |
| 60 | - | player:SendAreaTriggerMessage(12, 0, "Spawning gameobjects..") |
| 60 | + | (1, 6000119, -13203.6, 298.728, 21.8582, 6.15121), |
| 61 | - | for i = 1, Q:GetRowCount() do |
| 61 | + | (1, 6000119, -13231.4, 261.383, 21.8571, 4.62517), |
| 62 | - | m_creature:SpawnGameObject(Q:GetColumn(4):GetInt32(), Q:GetColumn(0):GetFloat(), Q:GetColumn(1):GetFloat(), Q:GetColumn(2):GetFloat(), Q:GetColumn(3):GetFloat(), 600000, 100) |
| 62 | + | (1, 6000119, -13175.7, 274.391, 21.8579, 5.77107), |
| 63 | - | Q:NextRow() |
| 63 | + | (1, 6000119, -13177.2, 267.055, 21.8579, 0.591363), |
| 64 | - | end |
| 64 | + | (1, 6000119, -13180.3, 245.738, 21.8582, 3.9521), |
| 65 | - | else |
| 65 | + | (1, 6000119, -13210.4, 302.124, 21.8582, 4.39192), |
| 66 | - | player:SendAreaTriggerMessage("No gameobjects found")
|
| 66 | + | (1, 6000119, -13233.7, 262.174, 21.8582, 4.16415), |
| 67 | - | OnGossipHello(m_creature, event, player) |
| 67 | + | (1, 6000119, -13173.5, 260.887, 21.8582, 5.30691), |
| 68 | - | end |
| 68 | + | (1, 6000119, -13186.7, 282.938, 21.8582, 4.39585), |
| 69 | - | elseif(action == 1) then |
| 69 | + | (1, 6000119, -13242.4, 276.602, 21.8573, 0.159389), |
| 70 | - | player:GossipComplete() |
| 70 | + | (1, 6000119, -13238.3, 281.879, 21.8573, 0.921225), |
| 71 | - | elseif(action == 2) then |
| 71 | + | (1, 6000119, -13225.4, 300.29, 21.8573, 3.53268), |
| 72 | - | GossipObjects(player, m_creature) |
| 72 | + | (1, 6000119, -13214.3, 292.125, 21.8573, 4.3652), |
| 73 | - | end |
| 73 | + | (1, 6000119, -13220.4, 307.884, 21.8573, 1.96581), |
| 74 | (1, 6000119, -13176.7, 304.866, 21.8573, 1.06653), | |
| 75 | (2, 6000113, -13203.6, 265.7, 21.8, 0), | |
| 76 | - | RegisterUnitGossipEvent(NPCID, 1, OnGossipHello) |
| 76 | + | (2, 6000113, -13204.2, 263, 21.8, 0), |
| 77 | - | RegisterUnitGossipEvent(NPCID, 2, OnGossipSelect) |
| 77 | + | (2, 6000113, -13201.4, 262.59, 21.8, 0), |
| 78 | (2, 6000111, -13211.4, 276.35, 21.8, 0), | |
| 79 | (2, 6000111, -13185.8, 256.4, 21.8, 0), | |
| 80 | (2, 6000111, -13202.1, 250.3, 21.8, 0), | |
| 81 | (2, 6000114, -13174.5, 284.3, 21.8, 0), | |
| 82 | (2, 6000114, -13190.1, 302.3, 21.8, 0), | |
| 83 | (2, 6000114, -13215.4, 301.6, 21.8, 0), | |
| 84 | (2, 6000112, -13194.1, 282.35, 19, 0), | |
| 85 | (2, 6000119, -13187.7, 239.463, 21.8582, 3.77539), | |
| 86 | (2, 6000119, -13180.5, 291.8, 21.8582, 3.22953), | |
| 87 | (2, 6000119, -13178.4, 283.759, 21.8579, 4.64874), | |
| 88 | (2, 6000119, -13227.1, 278.129, 21.8582, 5.76243), | |
| 89 | (2, 6000119, -13173.3, 295.848, 21.8579, 4.20499), | |
| 90 | (2, 6000119, -13202.6, 244.986, 21.8579, 2.8816), | |
| 91 | (2, 6000119, -13186.4, 291.49, 21.8579, 5.90144), | |
| 92 | (2, 6000119, -13192.9, 235.159, 21.8582, 3.5437), | |
| 93 | (2, 6000119, -13173.4, 255.883, 21.8582, 4.31731), | |
| 94 | (2, 6000119, -13205.5, 250.809, 21.8582, 2.8329), | |
| 95 | (2, 6000119, -13218.7, 268.308, 21.8582, 5.81348), | |
| 96 | (2, 6000119, -13170.4, 287.805, 21.8582, 2.30276), | |
| 97 | (2, 6000119, -13228, 249.127, 21.8582, 5.77814), | |
| 98 | (2, 6000119, -13215.8, 312.145, 21.8582, 0.928307), | |
| 99 | (2, 6000119, -13180.1, 239.075, 21.8579, 5.35167), | |
| 100 | (2, 6000119, -13221.7, 274.7, 21.8571, 4.26782), | |
| 101 | (2, 6000119, -13167.4, 256.948, 21.8579, 6.12921), | |
| 102 | (2, 6000119, -13170.8, 249.312, 21.8579, 5.68546), | |
| 103 | (2, 6000119, -13184.4, 274.314, 21.8582, 5.65248), | |
| 104 | (2, 6000119, -13210.4, 283.529, 21.8582, 5.86061), | |
| 105 | (2, 6000119, -13198.1, 271.543, 21.8582, 2.64048), | |
| 106 | (2, 6000119, -13193.6, 258.863, 21.8582, 2.69153), | |
| 107 | (2, 6000119, -13199.2, 314.904, 21.8582, 1.06968), | |
| 108 | (2, 6000119, -13203.6, 298.728, 21.8582, 6.15121), | |
| 109 | (2, 6000119, -13231.4, 261.383, 21.8571, 4.62517), | |
| 110 | (2, 6000119, -13175.7, 274.391, 21.8579, 5.77107), | |
| 111 | (2, 6000119, -13177.2, 267.055, 21.8579, 0.591363), | |
| 112 | (2, 6000119, -13180.3, 245.738, 21.8582, 3.9521), | |
| 113 | (2, 6000119, -13210.4, 302.124, 21.8582, 4.39192), | |
| 114 | (2, 6000119, -13233.7, 262.174, 21.8582, 4.16415), | |
| 115 | (2, 6000119, -13173.5, 260.887, 21.8582, 5.30691), | |
| 116 | (2, 6000119, -13186.7, 282.938, 21.8582, 4.39585), | |
| 117 | (2, 6000119, -13242.4, 276.602, 21.8573, 0.159389), | |
| 118 | (2, 6000119, -13238.3, 281.879, 21.8573, 0.921225), | |
| 119 | (2, 6000119, -13225.4, 300.29, 21.8573, 3.53268), | |
| 120 | (2, 6000119, -13214.3, 292.125, 21.8573, 4.3652), | |
| 121 | (2, 6000119, -13220.4, 307.884, 21.8573, 1.96581), | |
| 122 | (2, 6000119, -13176.7, 304.866, 21.8573, 1.06653), | |
| 123 | (3, 6000110, -293.268, -2664.01, 120.55, 4.76707), | |
| 124 | (3, 6000110, -297.909, -2667.51, 127.08, 1.03251), | |
| 125 | (3, 6000111, -262.17, -2645.9, 125.866, 5.60904), | |
| 126 | (3, 6000111, -1486.42, 526.784, 142.354, 1.77347), | |
| 127 | (3, 6000112, -241.205, -2648.73, 122.741, 5.38912), | |
| 128 | (3, 6000113, -254.937, -2664.5, 122.403, 0.877), | |
| 129 | (3, 6000114, -251.201, -2667.65, 121.778, 1.17624), | |
| 130 | (3, 6000115, -276.437, -2660.31, 122.567, 4.27856), | |
| 131 | (3, 6000115, -271.854, -2658.65, 122.628, 0.418328), | |
| 132 | (3, 6000116, -267.148, -2655.72, 122.602, 2.31507), | |
| 133 | (3, 6000117, -267.712, -2658.16, 125.609, 4.53539), | |
| 134 | (3, 6000117, -272.264, -2649.73, 122.459, 5.64908), | |
| 135 | (3, 6000117, -270.348, -2652.22, 122.613, 2.31114), | |
| 136 | (3, 6000117, -272.47, -2652.4, 122.674, 3.24184), | |
| 137 | (3, 6000120, -238.774, -2570.31, 163.17, 2.01427), | |
| 138 | (3, 6000120, -233.616, -2587.23, 185.726, 4.83934), | |
| 139 | (3, 6000120, -13204, 273, 17.4388, 1.50755), | |
| 140 | (3, 6000121, -251.025, -2603.47, 192.756, 0.812609), | |
| 141 | (3, 6000122, -241.481, -2584.59, 185.905, 1.29955), | |
| 142 | (3, 6000122, -13201.5, 280.86, 25.2712, 3.87555), | |
| 143 | (3, 6000122, -13207.5, 256.319, 24.8636, 4.47638), | |
| 144 | (3, 6000122, -13227, 273.394, 24.7136, 2.3558), | |
| 145 | (3, 6000122, -13214.8, 289.288, 24.8299, 4.74341), | |
| 146 | (3, 6000123, -186.58, -2605.13, 207.157, 2.64021), | |
| 147 | (3, 6000123, -218.607, -2578.01, 196.721, 4.11755), | |
| 148 | (3, 6000124, -234.26, -2600.91, 208.531, 1.80219), | |
| 149 | (3, 6000124, -228.942, -2594.19, 222.955, 0.675144), | |
| 150 | (3, 6000124, -13204.2, 263.16, 25.1665, 1.66072), | |
| 151 | (3, 6000124, -13204.3, 268.294, 25.3861, 3.07836), | |
| 152 | (3, 6000124, -13214.4, 270.035, 25.1944, 4.25253), | |
| 153 | (3, 6000124, -13208.7, 276.679, 25.4071, 1.07559), | |
| 154 | (3, 6000124, -13217.1, 278.225, 25.0689, 2.85059), | |
| 155 | (3, 6000124, -13224.5, 283.428, 24.7078, 2.54822), | |
| 156 | (3, 6000124, -13222.2, 291.453, 24.5588, 0.824266), | |
| 157 | (3, 6000124, -13231.4, 262.306, 24.4435, 3.55746), | |
| 158 | (3, 6000124, -13233.5, 251.119, 23.8527, 3.70668), | |
| 159 | (3, 6000124, -13241, 271.689, 24.0802, 2.93306), | |
| 160 | (3, 6000124, -13233.2, 291.237, 24.2631, 2.17908), | |
| 161 | (3, 6000124, -13212.3, 303.589, 24.2717, 0.333392), | |
| 162 | (3, 6000124, -13212.3, 303.589, 24.2717, 1.25624), | |
| 163 | (3, 6000124, -13212.2, 307.054, 24.0447, 1.76675), | |
| 164 | (3, 6000124, -13198.8, 308.434, 23.9304, 1.46044), | |
| 165 | (3, 6000124, -13185.6, 301.572, 24.2001, 4.5392), | |
| 166 | (3, 6000124, -13167.1, 286.922, 23.5056, 2.88987), | |
| 167 | (3, 6000124, -13173.5, 278.781, 24.3101, 3.92267), | |
| 168 | (3, 6000124, -13176.7, 273.083, 25.0311, 4.80232), | |
| 169 | (3, 6000124, -13196.1, 242.097, 24.2017, 4.89264), | |
| 170 | (3, 6000124, -13208.6, 244.898, 24.3776, 4.05226), | |
| 171 | (3, 6000125, -13186.4, 256.64, 24.5668, 2.27724), | |
| 172 | (3, 6000125, -13182.2, 259.654, 24.5465, 0.180231), | |
| 173 | (3, 6000125, -13184.4, 286.078, 24.6236, 3.67133), | |
| 174 | (3, 6000125, -13189, 289.142, 24.6753, 0.781064), | |
| 175 | (3, 6000125, -13181.8, 291.011, 24.3994, 6.271), | |
| 176 | (3, 6000126, -186.979, -2617, 206.865, 4.86525), | |
| 177 | (3, 6000126, -13210.4, 279.867, 23.5357, 5.72907), | |
| 178 | (3, 6000126, -13199.6, 267.771, 23.6485, 2.37149), | |
| 179 | (3, 6000126, -13216.6, 264.357, 23.4314, 1.00882), | |
| 180 | (3, 6000127, -163.572, -2611.32, 205.179, 1.55714), | |
| 181 | (3, 6000127, -13239.3, 261.181, 23.0034, 3.36503), | |
| 182 | (3, 6000127, -13236.6, 263.074, 23.2352, 0.612207), | |
| 183 | (3, 6000127, -13233.5, 264.871, 23.3779, 0.462981), | |
| 184 | (3, 6000127, -13230.2, 266.156, 23.5204, 0.305901), | |
| 185 | (3, 6000127, -13227.2, 266.984, 23.6516, 0.246996), | |
| 186 | (3, 6000127, -13223.8, 267.906, 23.7959, 0.282339), | |
| 187 | (3, 6000127, -13220.3, 268.995, 23.9446, 0.341244), | |
| 188 | (3, 6000127, -13216.9, 270.403, 24.0969, 0.415857), | |
| 189 | (3, 6000127, -13213.8, 271.861, 24.233, 0.466908), | |
| 190 | (3, 6000127, -13210.7, 273.792, 24.3767, 0.290194), | |
| 191 | (3, 6000127, -13207.1, 273.777, 24.5207, 6.23959), | |
| 192 | (3, 6000127, -13202.6, 273.419, 24.5323, 6.17675), | |
| 193 | (3, 6000127, -13198.2, 273.688, 24.3519, 0.140973), | |
| 194 | (3, 6000127, -13194.1, 273.484, 24.1867, 5.91365), | |
| 195 | (3, 6000127, -13189.8, 272.922, 24.02, 0.160611), | |
| 196 | (3, 6000127, -13185.5, 273.637, 23.8414, 0.168465), | |
| 197 | (3, 6000127, -13181.5, 274.256, 23.6722, 6.1532), | |
| 198 | (3, 6000127, -13176.8, 273.006, 23.4937, 5.96078), | |
| 199 | (3, 6000127, -13172, 272.635, 23.3019, 0.0585103), | |
| 200 | (3, 6000127, -13167.1, 272.97, 22.9589, 0.0820722); | |
| 201 | /*!40000 ALTER TABLE `gurubashi_spawns` ENABLE KEYS */; | |
| 202 | ||
| 203 | ||
| 204 | -- Dumping structure for table gurubashi_themes | |
| 205 | CREATE TABLE IF NOT EXISTS `gurubashi_themes` ( | |
| 206 | `theme` int(11) unsigned NOT NULL, | |
| 207 | `name` text, | |
| 208 | PRIMARY KEY (`theme`) | |
| 209 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; | |
| 210 | ||
| 211 | -- Dumping data for table gurubashi_themes: 4 rows | |
| 212 | /*!40000 ALTER TABLE `gurubashi_themes` DISABLE KEYS */; | |
| 213 | INSERT INTO `gurubashi_themes` (`theme`, `name`) VALUES | |
| 214 | (0, 'No Theme'), | |
| 215 | (1, 'Marsh Theme'), | |
| 216 | (2, 'Elwynn Theme'), | |
| 217 | (3, 'Winter Theme'); | |
| 218 | /*!40000 ALTER TABLE `gurubashi_themes` ENABLE KEYS */; | |
| 219 | /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; | |
| 220 | /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; | |
| 221 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; | |
| 222 | ||
| 223 | ||
| 224 | -- ---------------------------- | |
| 225 | -- Items By Hkarta | |
| 226 | -- ---------------------------- | |
| 227 | ||
| 228 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000113, 5, 28, 'ARENA_bush', '', '', '', 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 229 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000110, 5, 7331, 'ARENA_water', '', '', '', 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 230 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000111, 5, 967, 'ARENA_tree', '', '', '', 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 231 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000114, 5, 7341, 'ARENA_hugetree', '', '', '', 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 232 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000112, 14, 7465, 'ARENA_humanhouse', '', '', '', 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 233 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000118, 14, 7051, 'ARENA_bridge', '', '', '', 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 234 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000115, 5, 6151, 'ARENA_fence', '', '', '', 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 235 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000116, 5, 4315, 'ARENA_rock', '', '', '', 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 236 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000127, 5, 362, 'ARENA_walkstone', '', '', '', 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 237 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000117, 5, 223, 'ARENA_boat', '', '', '', 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 238 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000119, 5, 2315, 'ARENA_grass', '', '', '', 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 239 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000120, 5, 8557, 'ARENA_snow_A', '', '', '', 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 240 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000121, 14, 8557, 'ARENA_snow_B', '', '', '', 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 241 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000122, 5, 927, 'ARENA_snow_tree_1', '', '', '', 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 242 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000123, 5, 7801, 'ARENA_snow_tree_2', '', '', '', 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 243 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000124, 5, 8219, 'ARENA_snow_myst', '', '', '', 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 244 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000125, 5, 7492, 'ARENA_frozenrock', '', '', '', 0, 0, 0.23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 245 | INSERT INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `data0`, `data1`, `data2`, `data3`, `data4`, `data5`, `data6`, `data7`, `data8`, `data9`, `data10`, `data11`, `data12`, `data13`, `data14`, `data15`, `data16`, `data17`, `data18`, `data19`, `data20`, `data21`, `data22`, `data23`, `ScriptName`) VALUES (6000126, 5, 7666, 'ARENA_frostmonolite', '', '', '', 0, 0, 1.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); | |
| 246 | ||
| 247 | ]] | |
| 248 | ||
| 249 | local NPCID = 123123 -- NPC ENTRY HERE | |
| 250 | local ThemeChangeDelay = 10*60 -- time until a theme can be changed again in seconds | |
| 251 | ||
| 252 | -- dont touch | |
| 253 | local OFFSET_THEME = 1000 | |
| 254 | local Themes = {}
| |
| 255 | local LastThemeTime = 0 | |
| 256 | local CurrentTheme = -1 | |
| 257 | do | |
| 258 | -- Load themes on startup | |
| 259 | ||
| 260 | local ids = {}
| |
| 261 | local Q = WorldDBQuery("SELECT `theme`, `name` FROM `gurubashi_themes` ORDER BY `theme` ASC")
| |
| 262 | if (Q) then | |
| 263 | repeat | |
| 264 | local theme = Q:GetUInt32(0) | |
| 265 | Themes[theme] = {name = Q:GetString(1), spawns = {}}
| |
| 266 | table.insert(ids, theme) | |
| 267 | until not Q:NextRow() | |
| 268 | else | |
| 269 | error("No themes found for Gurubashi arena creator!")
| |
| 270 | end | |
| 271 | ||
| 272 | Q = WorldDBQuery("SELECT `x`, `y`, `z`, `o`, `entry`, `theme` FROM `gurubashi_spawns` WHERE `theme` IN ("..table.concat(ids, ", ")..")")
| |
| 273 | if (Q) then | |
| 274 | repeat | |
| 275 | table.insert(Themes[Q:GetUInt32(5)].spawns, {Q:GetUInt32(4), Q:GetFloat(0), Q:GetFloat(1), Q:GetFloat(2), Q:GetFloat(3), 0})
| |
| 276 | until not Q:NextRow() | |
| 277 | else | |
| 278 | error("No spawns found for Gurubashi arena creator!")
| |
| 279 | end | |
| 280 | end | |
| 281 | ||
| 282 | local function OnGossipHello(event, player, creature) | |
| 283 | local curtime = os.time() | |
| 284 | if (LastThemeTime <= curtime) then | |
| 285 | for k,v in pairs(Themes) do | |
| 286 | player:GossipMenuAddItem(4, v.name, 1, OFFSET_THEME + k, 0) | |
| 287 | end | |
| 288 | player:GossipSendMenu(100, creature) | |
| 289 | else | |
| 290 | local remaining = LastThemeTime - curtime | |
| 291 | if (remaining <= 60) then | |
| 292 | player:SendNotification("Next change possible in "..remaining.." seconds.")
| |
| 293 | else | |
| 294 | player:SendNotification("Next change possible in "..math.ceil(remaining / 60).." minutes.")
| |
| 295 | end | |
| 296 | end | |
| 297 | end | |
| 298 | ||
| 299 | local function DespawnObjectIfNeed(theme, eventid, delay, repeats, go) | |
| 300 | if (not theme or CurrentTheme < 0 or CurrentTheme ~= theme) then | |
| 301 | go:RemoveEvents() | |
| 302 | go:Despawn() | |
| 303 | end | |
| 304 | end | |
| 305 | ||
| 306 | local function OnGossipSelect(event, player, creature, sender, action, code) | |
| 307 | if (action >= OFFSET_THEME) then | |
| 308 | local theme = action - OFFSET_THEME | |
| 309 | ||
| 310 | if (not Themes[theme]) then | |
| 311 | player:SendBroadcastMessage("Invalid theme ("..theme..") selected")
| |
| 312 | OnGossipHello(event, player, creature) | |
| 313 | return | |
| 314 | end | |
| 315 | ||
| 316 | if (CurrentTheme == theme) then | |
| 317 | player:SendAreaTriggerMessage("The theme is already active")
| |
| 318 | OnGossipHello(event, player, creature) | |
| 319 | return | |
| 320 | end | |
| 321 | ||
| 322 | player:SendAreaTriggerMessage("Changing theme..")
| |
| 323 | ||
| 324 | CurrentTheme = theme | |
| 325 | LastThemeTime = os.time() + ThemeChangeDelay | |
| 326 | ||
| 327 | for k,v in ipairs(Themes[theme].spawns) do | |
| 328 | local go = creature:SummonGameObject(table.unpack(v)) | |
| 329 | if(go) then | |
| 330 | go:RegisterEvent(function(...) DespawnObjectIfNeed(theme, ...) end, 5000, 0) | |
| 331 | end | |
| 332 | end | |
| 333 | end | |
| 334 | player:GossipComplete() | |
| 335 | end | |
| 336 | ||
| 337 | RegisterCreatureGossipEvent(NPCID, 1, OnGossipHello) | |
| 338 | RegisterCreatureGossipEvent(NPCID, 2, OnGossipSelect) |