1local AngelPos_1 = Position(3974, 1842, 14)
2local AngelPos_2 = Position(4057, 1842, 14)
3local AngelPos_3 = Position(4140, 1842, 14)
4local CLEAR_AREA = {
5 [10420] = {POS_X = {x=3938, y=1850, z=14}, POS_Y = {x=3964, y=1861, z=14}, toPos = {x=3953, y=1847, z=14}};
6 [10564] = {POS_X = {x=4021, y=1850, z=14}, POS_Y = {x=4047, y=1861, z=14}, toPos = {x=4036, y=1847, z=14}};
7 [10565] = {POS_X = {x=4104, y=1850, z=14}, POS_Y = {x=4130, y=1861, z=14}, toPos = {x=4119, y=1847, z=14}};
8}
9function onUse(player, item, fromPosition, target, toPosition, isHotkey)
10 local party = player:getParty()
11 if CLEAR_AREA[item.uid] then
12 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) < 02 then
13 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 01 then
14 local from = CLEAR_AREA[item.uid].POS_X
15 local to = CLEAR_AREA[item.uid].POS_Y
16 local checkArea = 0
17 for A = from.x, to.x do
18 for B = from.y, to.y do
19 for C = from.z, to.z do
20 local tile = Tile(A, B, C)
21 local creature = tile:getTopCreature()
22 if creature and creature:isMonster() then
23 local master = creature:getMaster()
24 if master and master:isPlayer() then
25 else
26 checkArea = 01
27 break
28 end
29 end
30 end
31 end
32 end
33 if checkArea == 0 then
34 if not party then
35 player:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, 02)
36 player:getPosition():sendMagicEffect(15)
37 else
38 local members = party:getMembers()
39 members[#members + 1] = party:getLeader()
40 for _, member in ipairs(members) do
41 member:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, 02)
42 member:getPosition():sendMagicEffect(15)
43 end
44 end
45
46 player:sendCancelMessage("@@TutorShow 26")
47 player:teleportTo(CLEAR_AREA[item.uid].toPos)
48 player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
49 return true
50 else
51
52 player:getPosition():sendMagicEffect(03)
53 return true
54 end
55 else
56 player:getPosition():sendMagicEffect(03)
57 return true
58 end
59 else
60 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 02 then
61 player:sendCancelMessage("@@TutorShow 26")
62 end
63 player:teleportTo(CLEAR_AREA[item.uid].toPos)
64 player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
65 return true
66 end
67 end
68 if item.uid == 10429 or item.uid == 10566 or item.uid == 10567 then
69 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) >= 06 then
70 if item.uid == 10429 then
71 player:teleportTo({x=3958, y=1835, z=14})
72 elseif item.uid == 10566 then
73 player:teleportTo({x=4041, y=1835, z=14})
74 elseif item.uid == 10567 then
75 player:teleportTo({x=4124, y=1835, z=14})
76 end
77 player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
78
79 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then
80 player:sendCancelMessage("@@TutorShow 27")
81 end
82 return true
83 else
84
85 player:getPosition():sendMagicEffect(03)
86 return true
87 end
88 end
89 if item.uid == 10434 or item.uid == 10568 or item.uid == 10569 then
90 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 07 then
91 if item.uid == 10434 then
92 player:teleportTo({x=3980, y=1860, z=14})
93 STEP_1 = 00
94 elseif item.uid == 10568 then
95 player:teleportTo({x=4063, y=1860, z=14})
96 STEP_2 = 00
97 elseif item.uid == 10569 then
98 player:teleportTo({x=4146, y=1860, z=14})
99 STEP_3 = 00
100 end
101 player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
102 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 07 then
103 player:sendCancelMessage("@@TutorShow 28")
104 end
105 return true
106 else
107
108 player:getPosition():sendMagicEffect(03)
109 return true
110 end
111 end
112 if item.uid == 10436 or item.uid == 10570 or item.uid == 10571 then
113 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 08 then
114 if item.uid == 10436 then
115 player:teleportTo({x=3945, y=1840, z=14})
116 elseif item.uid == 10570 then
117 player:teleportTo({x=4028, y=1840, z=14})
118 elseif item.uid == 10571 then
119 player:teleportTo({x=4111, y=1840, z=14})
120 end
121 player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
122 return true
123 else
124
125 player:getPosition():sendMagicEffect(03)
126 return true
127 end
128 end
129 -- SOUND PUZZLE
130 if item.uid == 10430 or item.uid == 10574 or item.uid == 10575 then
131 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then
132 if player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) < 01 then
133 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 01)
134 player:getPosition():sendMagicEffect(19)
135 if item.uid == 10430 then
136 AngelPos_1:sendMagicEffect(36)
137 elseif item.uid == 10574 then
138 AngelPos_2:sendMagicEffect(36)
139 elseif item.uid == 10575 then
140 AngelPos_3:sendMagicEffect(36)
141 end
142 return true
143 elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 01 then
144 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 02)
145 player:getPosition():sendMagicEffect(19)
146 if item.uid == 10430 then
147 AngelPos_1:sendMagicEffect(36)
148 elseif item.uid == 10574 then
149 AngelPos_2:sendMagicEffect(36)
150 elseif item.uid == 10575 then
151 AngelPos_3:sendMagicEffect(36)
152 end
153 return true
154 else
155 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil)
156 player:getPosition():sendMagicEffect(03)
157 if item.uid == 10430 then
158 AngelPos_1:sendMagicEffect(06)
159 elseif item.uid == 10574 then
160 AngelPos_2:sendMagicEffect(06)
161 elseif item.uid == 10575 then
162 AngelPos_3:sendMagicEffect(06)
163 end
164 end
165 else
166 player:getPosition():sendMagicEffect(03)
167 return true
168 end
169 elseif item.uid == 10431 or item.uid == 10576 or item.uid == 10577 then
170 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then
171 if player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 02 then
172 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 03)
173 player:getPosition():sendMagicEffect(20)
174 if item.uid == 10431 then
175 AngelPos_1:sendMagicEffect(36)
176 elseif item.uid == 10576 then
177 AngelPos_2:sendMagicEffect(36)
178 elseif item.uid == 10577 then
179 AngelPos_3:sendMagicEffect(36)
180 end
181 return true
182 elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 04 then
183 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 05)
184 player:getPosition():sendMagicEffect(20)
185 if item.uid == 10431 then
186 AngelPos_1:sendMagicEffect(36)
187 elseif item.uid == 10576 then
188 AngelPos_2:sendMagicEffect(36)
189 elseif item.uid == 10577 then
190 AngelPos_3:sendMagicEffect(36)
191 end
192 return true
193 elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 08 then
194 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil)
195 if item.uid == 10431 then
196 AngelPos_1:sendMagicEffect(36)
197 elseif item.uid == 10576 then
198 AngelPos_2:sendMagicEffect(36)
199 elseif item.uid == 10577 then
200 AngelPos_3:sendMagicEffect(36)
201 end
202
203 if not party then
204 player:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, 07)
205 player:getPosition():sendMagicEffect(15)
206 else
207 local members = party:getMembers()
208 members[#members + 1] = party:getLeader()
209 for _, member in ipairs(members) do
210 member:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, 07)
211 member:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil)
212 member:getPosition():sendMagicEffect(15)
213 end
214 end
215
216
217 return true
218 else
219 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil)
220 player:getPosition():sendMagicEffect(03)
221 if item.uid == 10431 then
222 AngelPos_1:sendMagicEffect(06)
223 elseif item.uid == 10576 then
224 AngelPos_2:sendMagicEffect(06)
225 elseif item.uid == 10577 then
226 AngelPos_3:sendMagicEffect(06)
227 end
228 return true
229 end
230 return true
231 else
232 player:getPosition():sendMagicEffect(03)
233 return true
234 end
235 elseif item.uid == 10432 or item.uid == 10578 or item.uid == 10579 then
236 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then
237 if player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 05 then
238 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 06)
239 player:getPosition():sendMagicEffect(24)
240 if item.uid == 10432 then
241 AngelPos_1:sendMagicEffect(36)
242 elseif item.uid == 10578 then
243 AngelPos_2:sendMagicEffect(36)
244 elseif item.uid == 10579 then
245 AngelPos_3:sendMagicEffect(36)
246 end
247 return true
248 elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 06 then
249 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 07)
250 player:getPosition():sendMagicEffect(24)
251 if item.uid == 10432 then
252 AngelPos_1:sendMagicEffect(36)
253 elseif item.uid == 10578 then
254 AngelPos_2:sendMagicEffect(36)
255 elseif item.uid == 10579 then
256 AngelPos_3:sendMagicEffect(36)
257 end
258 return true
259 elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 07 then
260 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 08)
261 player:getPosition():sendMagicEffect(24)
262 if item.uid == 10432 then
263 AngelPos_1:sendMagicEffect(36)
264 elseif item.uid == 10578 then
265 AngelPos_2:sendMagicEffect(36)
266 elseif item.uid == 10579 then
267 AngelPos_3:sendMagicEffect(36)
268 end
269 return true
270 else
271 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil)
272 player:getPosition():sendMagicEffect(03)
273 if item.uid == 10432 then
274 AngelPos_1:sendMagicEffect(06)
275 elseif item.uid == 10578 then
276 AngelPos_2:sendMagicEffect(06)
277 elseif item.uid == 10579 then
278 AngelPos_3:sendMagicEffect(06)
279 end
280 return true
281 end
282 else
283 player:getPosition():sendMagicEffect(03)
284 return true
285 end
286 elseif item.uid == 10433 or item.uid == 10580 or item.uid == 10581 then
287 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then
288 if player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 03 then
289 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 04)
290 player:getPosition():sendMagicEffect(22)
291 if item.uid == 10433 then
292 AngelPos_1:sendMagicEffect(36)
293 elseif item.uid == 10580 then
294 AngelPos_2:sendMagicEffect(36)
295 elseif item.uid == 10581 then
296 AngelPos_3:sendMagicEffect(36)
297 end
298 return true
299 else
300 player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil)
301 player:getPosition():sendMagicEffect(03)
302 if item.uid == 10433 then
303 AngelPos_1:sendMagicEffect(06)
304 elseif item.uid == 10580 then
305 AngelPos_2:sendMagicEffect(06)
306 elseif item.uid == 10581 then
307 AngelPos_3:sendMagicEffect(06)
308 end
309 return true
310 end
311 else
312 player:getPosition():sendMagicEffect(03)
313 return true
314 end
315 end
316
317 local ELEMENTS = {
318 [10421] = {ID = 01, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER
319 [10422] = {ID = 02, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER CRYSTAL
320 [10582] = {ID = 01, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER
321 [10583] = {ID = 02, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER CRYSTAL
322 [10584] = {ID = 01, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER
323 [10585] = {ID = 02, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER CRYSTAL
324
325 [10423] = {ID = 01, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH
326 [10424] = {ID = 02, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH CRYSTAL
327 [10586] = {ID = 01, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH
328 [10587] = {ID = 02, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH CRYSTAL
329 [10588] = {ID = 01, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH
330 [10589] = {ID = 02, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH CRYSTAL
331
332 [10425] = {ID = 01, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY
333 [10426] = {ID = 02, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY CRYSTAL
334 [10590] = {ID = 01, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY
335 [10591] = {ID = 02, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY CRYSTAL
336 [10592] = {ID = 01, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY
337 [10593] = {ID = 02, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY CRYSTAL
338
339 [10427] = {ID = 01, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE
340 [10428] = {ID = 02, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE CRYSTAL
341 [10594] = {ID = 01, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE
342 [10595] = {ID = 02, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE CRYSTAL
343 [10596] = {ID = 01, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE
344 [10597] = {ID = 02, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE CRYSTAL
345 }
346 if ELEMENTS[item.uid] then
347 if ELEMENTS[item.uid].ID == 01 then
348 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == ELEMENTS[item.uid].STORAGE_ID then
349 if player:getOutfit().lookType ~= ELEMENTS[item.uid].LOOKTYPE then
350
351 player:getPosition():sendMagicEffect(ELEMENTS[item.uid].EFFECT)
352 local condition = Condition(CONDITION_OUTFIT)
353 condition:setOutfit({lookType = ELEMENTS[item.uid].LOOKTYPE})
354 condition:setTicks(15000)
355 player:addCondition(condition)
356 else
357 player:getPosition():sendMagicEffect(03)
358 return true
359 end
360 else
361 player:getPosition():sendMagicEffect(ELEMENTS[item.uid].EFFECT)
362 return true
363 end
364 else
365 if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == ELEMENTS[item.uid].STORAGE_ID then
366 if player:getOutfit().lookType == ELEMENTS[item.uid].LOOKTYPE then
367 if not party then
368 if item.uid == 10428 or item.uid == 10595 or item.uid == 10597 then
369
370 else
371 player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Crystal Energizado!")
372 end
373 player:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, (ELEMENTS[item.uid].STORAGE_ID + 1))
374 player:getPosition():sendMagicEffect(13)
375 else
376 local members = party:getMembers()
377 members[#members + 1] = party:getLeader()
378 for _, member in ipairs(members) do
379 if item.uid == 10428 or item.uid == 10595 or item.uid == 10597 then
380
381 else
382 member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Crystal Energizado!")
383 end
384 member:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, (ELEMENTS[item.uid].STORAGE_ID + 1))
385 member:getPosition():sendMagicEffect(13)
386 end
387 end
388 else
389 player:getPosition():sendMagicEffect(ELEMENTS[item.uid].EFFECT)
390 return true
391 end
392 else
393 player:getPosition():sendMagicEffect(ELEMENTS[item.uid].EFFECT)
394 return true
395 end
396 end
397 end
398 return true
399end
400