View difference between Paste ID: 3s3g8Lwm and phP92XWP
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)