1local WaveTimer = 00
2local Wave = 01
3local CATEGORY = 00
4local HARD = 00
5local INDEX = 00
6function onSay(player, words, param)
7 local split = param:splitTrimmed(" ")
8 HARD = tonumber(split[01])
9 if HARD < 01 then
10 HARD = 01
11 end
12
13 CATEGORY = tonumber(split[02])
14 if CATEGORY < 01 then
15 CATEGORY = 01
16 end
17
18 if _DEBUG_MODE then
19 local _TYPE = {
20 ["1"] = 'Versus',
21 ["2"] = 'Wave',
22 ["3"] = 'Survival',
23 }
24
25 if _TYPE[split[02]] then
26 if split[02] == "1" then
27 print("[TALK - COLISEU] " ..player:getName().. " - " .._TYPE[split[02]].. " | " .._GLOBAL_RANDOM.COLISEUM.ORDER[HARD][tonumber(split[01])][tonumber(split[04])].NAME)
28 else
29 print("[TALK - COLISEU] " ..player:getName().. " - " .._TYPE[split[02]])
30 end
31 else
32 print("[TALK - COLISEU] " ..player:getName().. " - " ..split[02])
33 end
34 end
35
36 ONLINE_PRICE = tonumber(split[03])
37 INDEX = tonumber(split[04])
38 local OnlineCoins = player:getStorageValue(_SYSTEM.ONLINE_COIN)
39 --print(HARD.. " | " ..CATEGORY.. " | " ..INDEX)
40
41 local party = player:getParty()
42 if party then
43
44 return false
45 end
46 if player:getLevel() < 200 then
47
48 return false
49 end
50
51 if CATEGORY == 01 then
52 local MonsterName = _GLOBAL_RANDOM.COLISEUM.ORDER[HARD][CATEGORY][INDEX].NAME
53 local MonsterPos = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_MONSTER_POS
54 local ColiseuPoints = ONLINE_PRICE
55 if OnlineCoins >= ColiseuPoints then
56 local from = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_X_POS
57 local to = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_Y_POS
58 for A = from.x, to.x do
59 for B = from.y, to.y do
60 for C = from.z, to.z do
61 local tile = Tile(A, B, C)
62 local creature = tile:getTopCreature()
63 if creature and creature:isPlayer() then
64
65 return false
66 end
67 end
68 end
69 end
70 for A = from.x, to.x do
71 for B = from.y, to.y do
72 for C = from.z, to.z do
73 local tile = Tile(A, B, C)
74 local creature = tile:getTopCreature()
75 if creature and creature:isMonster() then
76 doRemoveCreature(creature:getId())
77 end
78 end
79 end
80 end
81
82 Game.createMonster(MonsterName, MonsterPos, false, true)
83 player:setStorageValue(_SYSTEM.COLISEU[05], nil)
84 player:setStorageValue(_SYSTEM.COLISEU[06], HARD)
85 player:setStorageValue(_SYSTEM.COLISEU[07], INDEX)
86 player:teleportTo(_GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_PLAYER_POS)
87 player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
88 player:setStorageValue(_SYSTEM.ONLINE_COIN, (OnlineCoins - ColiseuPoints))
89 doBackpack(player, 11)
90 player:sendCancelMessage("@NoTeleport 01")
91 else
92
93 return false
94 end
95 end
96 if CATEGORY == 02 then
97 local ColiseuPoints = ONLINE_PRICE
98 if OnlineCoins >= ColiseuPoints then
99 local from = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_X_POS
100 local to = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_Y_POS
101 for A = from.x, to.x do
102 for B = from.y, to.y do
103 for C = from.z, to.z do
104 local tile = Tile(A, B, C)
105 local creature = tile:getTopCreature()
106 if creature and creature:isPlayer() then
107
108 return false
109 end
110 end
111 end
112 end
113 for A = from.x, to.x do
114 for B = from.y, to.y do
115 for C = from.z, to.z do
116 local tile = Tile(A, B, C)
117 local creature = tile:getTopCreature()
118 if creature and creature:isMonster() then
119 doRemoveCreature(creature:getId())
120 end
121 end
122 end
123 end
124 player:teleportTo(_GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_PLAYER_POS)
125 player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
126 player:setStorageValue(_SYSTEM.COLISEU[06], HARD)
127 player:setStorageValue(_SYSTEM.COLISEU[07], INDEX)
128 player:setStorageValue(_SYSTEM.COLISEU[08], 01)
129 player:setStorageValue(_SYSTEM.ONLINE_COIN, (OnlineCoins - ColiseuPoints))
130 doBackpack(player, 11)
131 player:sendCancelMessage("@NoTeleport 01")
132 player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ONDA [ 01/05 ]\nPrepare-se!")
133 addEvent(function()
134 local MonsterName = _GLOBAL_RANDOM.COLISEUM.ORDER[HARD][CATEGORY][INDEX].NAME
135 for M = 01, #_GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY][01] do
136 Game.createMonster(MonsterName, _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY][01][M], false, true)
137 player:setStorageValue(_SYSTEM.COLISEU[05], M)
138 end
139 end, 5000)
140 else
141
142 return false
143 end
144 end
145 if CATEGORY == 03 then
146 local ColiseuPoints = ONLINE_PRICE
147 if OnlineCoins >= ColiseuPoints then
148 local from = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_X_POS
149 local to = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_Y_POS
150 for A = from.x, to.x do
151 for B = from.y, to.y do
152 for C = from.z, to.z do
153 local tile = Tile(A, B, C)
154 local creature = tile:getTopCreature()
155 if creature and creature:isPlayer() then
156
157 return false
158 end
159 end
160 end
161 end
162 for A = from.x, to.x do
163 for B = from.y, to.y do
164 for C = from.z, to.z do
165 local tile = Tile(A, B, C)
166 local creature = tile:getTopCreature()
167 if creature and creature:isMonster() then
168 doRemoveCreature(creature:getId())
169 end
170 end
171 end
172 end
173
174 WaveTimer = 04
175 Wave = 00
176 player:teleportTo(_GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_PLAYER_POS)
177 player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
178 player:setStorageValue(_SYSTEM.ONLINE_COIN, (OnlineCoins - ColiseuPoints))
179 player:setStorageValue(_SYSTEM.COLISEU[05], nil)
180 player:setStorageValue(_SYSTEM.COLISEU[06], tonumber(split[05]))
181 player:setStorageValue(_SYSTEM.COLISEU[07], INDEX)
182 player:setStorageValue(_SYSTEM.COLISEU[08], 01)
183 doBackpack(player, 11)
184 player:sendCancelMessage("@NoTeleport 01")
185
186 onCheckWave(player)
187 else
188
189 return false
190 end
191 end
192
193 player:setStorageValue(_SYSTEM.DANGEROUS[01][01].STORAGE, 01)
194 player:setStorageValue(_SYSTEM.FIRST_DEAD_TUTOR, 02)
195 return false
196end
197function onCheckWave(cid)
198 local player = Player(cid)
199 local check = 00
200 local from = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_X_POS
201 local to = _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY].ARENA_Y_POS
202 for A = from.x, to.x do
203 for B = from.y, to.y do
204 for C = from.z, to.z do
205 local tile = Tile(A, B, C)
206 local creature = tile:getTopCreature()
207 if creature and creature:isPlayer() then
208 check = 01
209 end
210 end
211 end
212 end
213
214 if check > 00 then
215 check = 00
216 if WaveTimer > 00 and Wave < 05 then
217 if WaveTimer == 05 then
218 player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Novos monstros em alguns segundos.")
219 end
220 WaveTimer = WaveTimer - 01
221 addEvent(function() onCheckWave(player) end, 1000)
222 else
223 if Wave == 05 then
224 for A = from.x, to.x do
225 for B = from.y, to.y do
226 for C = from.z, to.z do
227 local tile = Tile(A, B, C)
228 local creature = tile:getTopCreature()
229 if creature and creature:isMonster() then
230 check = 01
231 end
232 end
233 end
234 end
235 if check == 00 then
236 player:setStorageValue(_SYSTEM.COLISEU[08], 02)
237
238 return false
239 end
240
241 addEvent(function() onCheckWave(player) end, 1000)
242 else
243 if Wave <= 04 then
244 Wave = Wave + 01
245 local QntMonster = math.random(01, 04)
246 for M = 01, #_GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY][QntMonster] do
247 local MonsterName = _GLOBAL_RANDOM.COLISEUM.ORDER[HARD][CATEGORY][INDEX].MONSTER[math.random(01, #_GLOBAL_RANDOM.COLISEUM.ORDER[HARD][CATEGORY][INDEX].MONSTER)]
248 Game.createMonster(MonsterName, _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY][QntMonster][M], false, true)
249 end
250
251 WaveTimer = math.random(20, 30)
252 addEvent(function() onCheckWave(player) end, 1000)
253 end
254 end
255 end
256 end
257end
258