1. quest deviltower_zone begin
  2. state start begin
  3. when login begin
  4. if pc.get_map_index() == 66 then
  5. if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
  6. pc.warp((5376+532)*100, (512+596+4)*100, 65)
  7. end
  8. pc.set_warp_location(65, 5376+532, 512+596+4)
  9. local ch = pc.get_channel_id()
  10. if game.get_event_flag("kule_"..ch.."_sifre") != pc.getqf("kule_sifre") then
  11. syschat("Sizden önce başkası kuleyi almış. Dışarı gönderiliyorsun.")
  12. warp_to_village()
  13. end
  14. if global_getvarchar("kule_"..ch.."_lider") == pc.get_name() then
  15. clear_server_timer("kule_bosalt_"..ch.."")
  16. server_timer("kule_bosalt_"..ch.."",15*60)
  17. syschat("15 dakikalık süre başladı. Arkadaşlarının içeri girebilmesi için gereken şifre : "..game.get_event_flag("kule_"..ch.."_sifre"))
  18. end
  19. elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
  20. pc.set_warp_location(65, 5376+532, 512+596+4)
  21. end
  22. end
  23. when logout begin
  24. if pc.count_item(30300) >= 1 then
  25. pc.remove_item(30300, pc.count_item(30300))
  26. end
  27. if pc.count_item(30302) >= 1 then
  28. pc.remove_item(30302, pc.count_item(30302))
  29. end
  30. end
  31. when 20348.chat."Şeytan Kulesi " begin
  32. local ch = pc.get_channel_id()
  33. local durum = game.get_event_flag("kule_"..ch)
  34. if pc.get_level() < 40 then
  35. say_title("Kule Bekçisi :")
  36. say("")
  37. say("40 seviye altı kuleye giremez.")
  38. return
  39. else
  40. say_title("Kule Bekçisi :")
  41. say("Şeytan kulesine girmek istiyor musun ?")
  42. pc.setqf("kule_bug_engel",get_time()+10)
  43. local s = select("Gir ", "Vazgeç ")
  44. if get_time() > pc.getqf("kule_bug_engel") then
  45. say_title("Kule Bekcisi:")
  46. say("10 saniye doldu şansını tekrar dene.")
  47. pc.setqf("kule_bug_engel",get_time()+0)
  48. return
  49. end
  50. if 1 == s and game.get_event_flag("kule_kullanimda"..pc.get_channel_id().."") == 0 then
  51. local sifre = number(0,9)
  52. local sifre2 = number(0,9)
  53. local sifre3 = number(0,9)
  54. local sifre4 = number(0,9)
  55. local sifre5 = number(0,9)
  56. local pins = tostring(""..sifre.."-"..sifre2.."-"..sifre3.."-"..sifre4.."-"..sifre5.."")
  57. local pin = tonumber(""..sifre..""..sifre2..""..sifre3..""..sifre4..""..sifre5.."")
  58. local rando2 = pc.getqf("random2")
  59. if rando2 == 0 then
  60. say_reward("Yazman gereken şifre : "..pins)
  61. say_reward("10 saniye süren var!")
  62. pc.setqf("random2",1)
  63. elseif rando2 == 1 then
  64. say()
  65. say()
  66. say()
  67. say()
  68. say()
  69. say_reward("Yazman gereken şifre : "..pins)
  70. say_reward("10 saniye süren var!")
  71. pc.setqf("random2",0)
  72. end
  73. local giris = tonumber ( input ( "" ) )
  74. if get_time() > pc.getqf("kule_bug_engel") then
  75. say_title("Kule Bekçisi:")
  76. say("10 saniye doldu şansını tekrar dene.")
  77. pc.setqf("kule_bug_engel",get_time()+0)
  78. return
  79. end
  80. if giris != pin then
  81. say_title("Kule Bekçisi:")
  82. say("")
  83. say_reward("Malesef, Yanlış yazdın.")
  84. return
  85. end
  86. if pin and pin <= 99999 then
  87. say_title("Sura Ruhu:")
  88. say("")
  89. say("Arzu edersen seni doğrudan Şeytan Kulesi'ne")
  90. say("götürebilirim. Seçimini Yap.")
  91. pc.setqf("kule_bug_engel",get_time()+10)
  92. local zaxd = select("İçeri bırak!","Vazgeç ")
  93. if get_time() > pc.getqf("kule_bug_engel") then
  94. say_title("Sura Ruhu:")
  95. say("10 saniye doldu şansını tekrar dene.")
  96. pc.setqf("kule_bug_engel",get_time()+0)
  97. return
  98. end
  99. if zaxd == 2 then
  100. return
  101. elseif zaxd == 1 and game.get_event_flag("kule_kullanimda"..pc.get_channel_id().."") == 0 then
  102. if game.get_event_flag("kule_kullanimda"..pc.get_channel_id().."") != 0 then
  103. syschat("Şeytan kulesine başka bir grup girdi.")
  104. return
  105. end
  106. say_title("Şeytan Kulesi:")
  107. pc.setqf("kule_bug_engel",get_time()+10)
  108. say("İçeride kimse yok. İçeri girebilirsin.")
  109. say("Dikkatli ol içerisi tehlikelerle dolu.")
  110. say("")
  111. say_reward("İçerde en fazla 10 dakika durabilirsin.")
  112. say_reward("Süre dolduğunda içeriden atılacaksın.")
  113. say("")
  114. npc.unlock()
  115. game.set_event_flag("kule_"..ch,1)
  116. game.set_event_flag("kule_"..ch.."_sifre",pin)
  117. global_setvarchar("kule_"..ch.."_lider",pc.get_name())
  118. pc.setqf("kule_sifre",pin)
  119. clear_server_timer("kule_kontrol_et_"..ch.."_1")
  120. clear_server_timer("kule_kontrol_et_"..ch.."_2")
  121. server_timer("kule_kontrol_et_"..ch.."_1",15)
  122. wait()
  123. pc.warp(216500,727000)
  124. end
  125. else
  126. say_title("Sura Ruhu:")
  127. say("")
  128. say("Bir hata oluştu.")
  129. say("")
  130. end
  131. end
  132. end
  133. end
  134. when kule_bosalt_1.server_timer begin
  135. notice_all("CH1: Şeytan Kulesi Bekleme Süresi Sona Erdi! Girişler Açıldı.")
  136. game.set_event_flag("kule_1",0)
  137. clear_server_timer('kule_kontrol_et_1_1')
  138. clear_server_timer('kule_kontrol_et_1_2')
  139. clear_server_timer('kule_bosalt_1')
  140. warp_all_to_village(66, 3)
  141. end
  142. when kule_bosalt_2.server_timer begin
  143. notice_all("CH2: Şeytan Kulesi Bekleme Süresi Sona Erdi! Girişler Açıldı.")
  144. game.set_event_flag("kule_2",0)
  145. clear_server_timer('kule_kontrol_et_2_1')
  146. clear_server_timer('kule_kontrol_et_2_2')
  147. clear_server_timer('kule_bosalt_2')
  148. warp_all_to_village(66, 3)
  149. end
  150. when kule_bosalt_3.server_timer begin
  151. notice_all("CH3: Şeytan Kulesi Bekleme Süresi Sona Erdi! Girişler Açıldı.")
  152. game.set_event_flag("kule_3",0)
  153. clear_server_timer('kule_kontrol_et_3_1')
  154. clear_server_timer('kule_kontrol_et_3_2')
  155. clear_server_timer('kule_bosalt_3')
  156. warp_all_to_village(66, 3)
  157. end
  158. when kule_bosalt_4.server_timer begin
  159. notice_all("CH4: Şeytan Kulesi Bekleme Süresi Sona Erdi! Girişler Açıldı.")
  160. game.set_event_flag("kule_4",0)
  161. clear_server_timer('kule_kontrol_et_4_1')
  162. clear_server_timer('kule_kontrol_et_4_2')
  163. clear_server_timer('kule_bosalt_4')
  164. warp_all_to_village(66, 3)
  165. end
  166. when kule_bosalt_5.server_timer begin
  167. notice_all("CH5: Şeytan Kulesi Bekleme Süresi Sona Erdi! Girişler Açıldı.")
  168. game.set_event_flag("kule_5",0)
  169. clear_server_timer('kule_kontrol_et_5_1')
  170. clear_server_timer('kule_kontrol_et_5_2')
  171. clear_server_timer('kule_bosalt_5')
  172. warp_all_to_village(66, 3)
  173. end
  174. when kule_bosalt_6.server_timer begin
  175. notice_all("CH6: Şeytan Kulesi Bekleme Süresi Sona Erdi! Girişler Açıldı.")
  176. game.set_event_flag("kule_6",0)
  177. clear_server_timer('kule_kontrol_et_6_1')
  178. clear_server_timer('kule_kontrol_et_6_2')
  179. clear_server_timer('kule_bosalt_6')
  180. warp_all_to_village(66, 3)
  181. end
  182. when kule_kontrol_et_1_1.server_timer begin
  183. if pc.kule_kontrol(66) == 0 then
  184. if game.get_event_flag("kule_1") == 1 then
  185. notice_all("CH1: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  186. game.set_event_flag("kule_1",0)
  187. clear_server_timer('kule_kontrol_et_1_1')
  188. clear_server_timer('kule_kontrol_et_1_2')
  189. clear_server_timer('kule_bosalt_1')
  190. end
  191. else
  192. clear_server_timer('kule_kontrol_et_1_1')
  193. server_timer("kule_kontrol_et_1_2",15)
  194. end
  195. end
  196. when kule_kontrol_et_1_2.server_timer begin
  197. if pc.kule_kontrol(66) == 0 then
  198. if game.get_event_flag("kule_1") == 1 then
  199. notice_all("CH1: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  200. game.set_event_flag("kule_1",0)
  201. clear_server_timer('kule_kontrol_et_1_1')
  202. clear_server_timer('kule_kontrol_et_1_2')
  203. clear_server_timer('kule_bosalt_1')
  204. end
  205. else
  206. clear_server_timer('kule_kontrol_et_1_2')
  207. server_timer("kule_kontrol_et_1_1",15)
  208. end
  209. end
  210. when kule_kontrol_et_2_1.server_timer begin
  211. if pc.kule_kontrol(66) == 0 then
  212. if game.get_event_flag("kule_2") == 1 then
  213. notice_all("CH2: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  214. game.set_event_flag("kule_2",0)
  215. clear_server_timer('kule_kontrol_et_2_1')
  216. clear_server_timer('kule_kontrol_et_2_2')
  217. clear_server_timer('kule_bosalt_2')
  218. end
  219. else
  220. clear_server_timer('kule_kontrol_et_2_1')
  221. server_timer("kule_kontrol_et_2_2",15)
  222. end
  223. end
  224. when kule_kontrol_et_2_2.server_timer begin
  225. if pc.kule_kontrol(66) == 0 then
  226. if game.get_event_flag("kule_2") == 1 then
  227. notice_all("CH2: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  228. game.set_event_flag("kule_2",0)
  229. clear_server_timer('kule_kontrol_et_2_1')
  230. clear_server_timer('kule_kontrol_et_2_2')
  231. clear_server_timer('kule_bosalt_2')
  232. end
  233. else
  234. clear_server_timer('kule_kontrol_et_2_2')
  235. server_timer("kule_kontrol_et_2_1",15)
  236. end
  237. end
  238. when kule_kontrol_et_3_1.server_timer begin
  239. if pc.kule_kontrol(66) == 0 then
  240. if game.get_event_flag("kule_3") == 1 then
  241. notice_all("CH3: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  242. game.set_event_flag("kule_3",0)
  243. clear_server_timer('kule_kontrol_et_3_1')
  244. clear_server_timer('kule_kontrol_et_3_2')
  245. clear_server_timer('kule_bosalt_3')
  246. end
  247. else
  248. clear_server_timer('kule_kontrol_et_3_1')
  249. server_timer("kule_kontrol_et_3_2",15)
  250. end
  251. end
  252. when kule_kontrol_et_3_2.server_timer begin
  253. if pc.kule_kontrol(66) == 0 then
  254. if game.get_event_flag("kule_3") == 1 then
  255. notice_all("CH3: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  256. game.set_event_flag("kule_3",0)
  257. clear_server_timer('kule_kontrol_et_3_1')
  258. clear_server_timer('kule_kontrol_et_3_2')
  259. clear_server_timer('kule_bosalt_3')
  260. end
  261. else
  262. clear_server_timer('kule_kontrol_et_3_2')
  263. server_timer("kule_kontrol_et_3_1",15)
  264. end
  265. end
  266. when kule_kontrol_et_4_1.server_timer begin
  267. if pc.kule_kontrol(66) == 0 then
  268. if game.get_event_flag("kule_4") == 1 then
  269. notice_all("CH4: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  270. game.set_event_flag("kule_4",0)
  271. clear_server_timer('kule_kontrol_et_4_1')
  272. clear_server_timer('kule_kontrol_et_4_2')
  273. clear_server_timer('kule_bosalt_4')
  274. end
  275. else
  276. clear_server_timer('kule_kontrol_et_4_1')
  277. server_timer("kule_kontrol_et_4_2",15)
  278. end
  279. end
  280. when kule_kontrol_et_4_2.server_timer begin
  281. if pc.kule_kontrol(66) == 0 then
  282. if game.get_event_flag("kule_4") == 1 then
  283. notice_all("CH4: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  284. game.set_event_flag("kule_4",0)
  285. clear_server_timer('kule_kontrol_et_4_1')
  286. clear_server_timer('kule_kontrol_et_4_2')
  287. clear_server_timer('kule_bosalt_4')
  288. end
  289. else
  290. clear_server_timer('kule_kontrol_et_4_2')
  291. server_timer("kule_kontrol_et_4_1",15)
  292. end
  293. end
  294. when kule_kontrol_et_5_1.server_timer begin
  295. if pc.kule_kontrol(66) == 0 then
  296. if game.get_event_flag("kule_5") == 1 then
  297. notice_all("CH5: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  298. game.set_event_flag("kule_5",0)
  299. clear_server_timer('kule_kontrol_et_5_1')
  300. clear_server_timer('kule_kontrol_et_5_2')
  301. clear_server_timer('kule_bosalt_5')
  302. end
  303. else
  304. clear_server_timer('kule_kontrol_et_5_1')
  305. server_timer("kule_kontrol_et_5_2",15)
  306. end
  307. end
  308. when kule_kontrol_et_5_2.server_timer begin
  309. if pc.kule_kontrol(66) == 0 then
  310. if game.get_event_flag("kule_5") == 1 then
  311. notice_all("CH5: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  312. game.set_event_flag("kule_4",0)
  313. clear_server_timer('kule_kontrol_et_5_1')
  314. clear_server_timer('kule_kontrol_et_5_2')
  315. clear_server_timer('kule_bosalt_5')
  316. end
  317. else
  318. clear_server_timer('kule_kontrol_et_5_2')
  319. server_timer("kule_kontrol_et_5_1",15)
  320. end
  321. end
  322. when kule_kontrol_et_6_1.server_timer begin
  323. if pc.kule_kontrol(66) == 0 then
  324. if game.get_event_flag("kule_6") == 1 then
  325. notice_all("CH6: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  326. game.set_event_flag("kule_6",0)
  327. clear_server_timer('kule_kontrol_et_6_1')
  328. clear_server_timer('kule_kontrol_et_6_2')
  329. clear_server_timer('kule_bosalt_6')
  330. end
  331. else
  332. clear_server_timer('kule_kontrol_et_6_1')
  333. server_timer("kule_kontrol_et_6_2",15)
  334. end
  335. end
  336. when kule_kontrol_et_6_2.server_timer begin
  337. if pc.kule_kontrol(66) == 0 then
  338. if game.get_event_flag("kule_6") == 1 then
  339. notice_all("CH6: Şeytan Kulesinde Kimse Kalmadığından Girişleri Açıldı.")
  340. game.set_event_flag("kule_6",0)
  341. clear_server_timer('kule_kontrol_et_6_1')
  342. clear_server_timer('kule_kontrol_et_6_2')
  343. clear_server_timer('kule_bosalt_6')
  344. end
  345. else
  346. clear_server_timer('kule_kontrol_et_6_2')
  347. server_timer("kule_kontrol_et_6_1",15)
  348. end
  349. end
  350. when kill with npc.get_race() == 8015 and pc.get_map_index() == 66 begin
  351. local ch = pc.get_channel_id()
  352. notice_all("CH"..ch..": Şeytan Kulesindeki Metin Taşı Kesildi! Girişler Açıldı.")
  353. game.set_event_flag("kule_"..ch,0)
  354. clear_server_timer("kule_kontrol_et_"..ch.."_1", get_server_timer_arg())
  355. clear_server_timer("kule_kontrol_et_"..ch.."_2", get_server_timer_arg())
  356. clear_server_timer("kule_bosalt_"..ch.."", get_server_timer_arg())
  357. timer("devil_stone1_1", 6)
  358. end
  359. when devil_stone1_1.timer begin
  360. d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
  361. d.regen_file("data/dungeon/deviltower2_regen.txt")
  362. d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
  363. end
  364. when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  365. d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
  366. d.check_eliminated()
  367. end
  368. function get_4floor_stone_pos()
  369. local positions =
  370. {
  371. {368, 629}, {419, 630}, {428, 653}, {422, 679},
  372. {395, 689}, {369, 679}, {361, 658},
  373. }
  374. for i = 1, 6 do
  375. local j = number(i, 7)
  376. if i != j then
  377. local t = positions[i];
  378. positions[i] = positions[j];
  379. positions[j] = t;
  380. end
  381. end
  382. return positions
  383. end
  384. when kill with npc.get_race() == 8016 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  385. d.setf("level", 4)
  386. local positions = deviltower_zone.get_4floor_stone_pos()
  387. for i = 1, 6 do
  388. test_chat(positions[i][1], positions[i][2])
  389. d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
  390. end
  391. test_chat(positions[7][1], positions[7][2])
  392. local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
  393. test_chat(vid)
  394. d.set_unique("real", vid)
  395. server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
  396. server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
  397. notice_multiline(gameforge.deviltower_zone._50_dNotice,d.notice)
  398. end
  399. when devil_stone4_fail1.server_timer begin
  400. if d.select(get_server_timer_arg()) then
  401. notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
  402. server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
  403. end
  404. end
  405. when devil_stone4_fail2.server_timer begin
  406. if d.select(get_server_timer_arg()) then
  407. notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
  408. server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
  409. end
  410. end
  411. when devil_stone4_fail.server_timer begin
  412. if d.select(get_server_timer_arg()) then
  413. notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
  414. d.clear_regen()
  415. d.exit_all()
  416. clear_server_timer('devil_stone4_update', get_server_timer_arg())
  417. end
  418. end
  419. when devil_stone4_update.server_timer begin
  420. if d.select(get_server_timer_arg()) then
  421. if not d.is_unique_dead("real") then
  422. for i = 1, 6 do
  423. if d.getf("fakedead" .. i) == 0 then
  424. if d.unique_get_hp_perc("fake" .. i) < 50 then
  425. d.purge_unique("fake" .. i)
  426. d.setf("fakedead" .. i, 1)
  427. notice_multiline(gameforge.deviltower_zone._90_dNotice,d.notice)
  428. end
  429. end
  430. end
  431. else
  432. server_timer("devil_stone4_end", 5, get_server_timer_arg())
  433. --d.kill_all()
  434. d.purge()
  435. notice_multiline(gameforge.deviltower_zone._100_dNotice,d.notice)
  436. clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
  437. clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
  438. clear_server_timer('devil_stone4_fail', get_server_timer_arg())
  439. end
  440. else
  441. server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
  442. end
  443. end
  444. when devil_stone4_stop_timer.server_timer begin
  445. clear_server_timer('devil_stone4_update', get_server_timer_arg())
  446. end
  447. when devil_stone4_end.server_timer begin
  448. if d.select(get_server_timer_arg()) then
  449. clear_server_timer('devil_stone4_update', get_server_timer_arg())
  450. clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
  451. clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
  452. clear_server_timer('devil_stone4_fail', get_server_timer_arg())
  453. d.clear_regen()
  454. d.setf("level", 5)
  455. d.setf("stone_count", 5)
  456. notice_multiline(gameforge.deviltower_zone._110_dNotice,d.notice)
  457. d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
  458. server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
  459. clear_server_timer('devil_stone4_update', get_server_timer_arg())
  460. d.set_regen_file("data/dungeon/deviltower5_regen.txt")
  461. d.spawn_mob(20073, 421, 452)
  462. d.spawn_mob(20073, 380, 460)
  463. d.spawn_mob(20073, 428, 414)
  464. d.spawn_mob(20073, 398, 392)
  465. d.spawn_mob(20073, 359, 426)
  466. end
  467. end
  468. when devil_stone5_fail1.server_timer begin
  469. if d.select(get_server_timer_arg()) then
  470. notice_multiline(gameforge.deviltower_zone._120_dNotice,d.notice)
  471. server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
  472. end
  473. end
  474. when devil_stone5_fail2.server_timer begin
  475. if d.select(get_server_timer_arg()) then
  476. notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
  477. server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
  478. end
  479. end
  480. when devil_stone5_fail3.server_timer begin
  481. if d.select(get_server_timer_arg()) then
  482. notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
  483. server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
  484. end
  485. end
  486. when devil_stone5_fail.server_timer begin
  487. if d.select(get_server_timer_arg()) then
  488. notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
  489. d.exit_all()
  490. end
  491. end
  492. when kill with npc.get_race() == 1062 and d.getf("level") == 5 begin
  493. local KILL_COUNT_FOR_DROP_KEY = 50
  494. local n =d.getf("count") + 1
  495. d.setf("count", n)
  496. if n == KILL_COUNT_FOR_DROP_KEY then
  497. game.drop_item(50084, 1)
  498. d.setf("count", 0)
  499. end
  500. end
  501. when devil_stone5.take with item.vnum == 50084 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  502. npc.purge()
  503. item.remove()
  504. d.setf("stone_count", d.getf("stone_count") - 1)
  505. if d.getf("stone_count") <= 0 then
  506. d.setf("level", 6)
  507. d.clear_regen()
  508. d.regen_file("data/dungeon/deviltower6_regen.txt")
  509. notice_multiline(gameforge.deviltower_zone._130_dNotice,d.notice)
  510. d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
  511. local server_arg = d.get_map_index()
  512. clear_server_timer('devil_stone5_fail1', server_arg)
  513. clear_server_timer('devil_stone5_fail2', server_arg)
  514. clear_server_timer('devil_stone5_fail3', server_arg)
  515. clear_server_timer('devil_stone5_fail', server_arg)
  516. else
  517. d.notice(string.format(gameforge.deviltower_zone._140_dNotice, d.getf("stone_count")))
  518. end
  519. end
  520. when kill with npc.get_race() == 1092 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
  521. d.kill_all()
  522. notice_multiline(gameforge.deviltower_zone._150_dNotice,d.notice)
  523. d.check_eliminated()
  524. notice_multiline(gameforge.deviltower_zone._160_dNotice,d.notice)
  525. local reward_alchemist = {20074, 20075, 20076}
  526. d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
  527. d.setqf2("deviltower_zone","can_refine", 1)
  528. end
  529. when 20074.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
  530. say_title(mob_name(20074))
  531. say(gameforge.deviltower_zone._190_say)
  532. wait()
  533. if pc.level >=75 then
  534. say_title(mob_name(20074))
  535. say(gameforge.deviltower_zone._200_say)
  536. local s= select(gameforge.deviltower_zone._210_select, gameforge.locale.cancel, gameforge.deviltower_zone._220_select)
  537. if s==3 then
  538. pc.warp(590500, 110900)
  539. return
  540. end
  541. if s==2 then
  542. return
  543. end
  544. timer("devil_jump_7", 6)
  545. npc.unlock()
  546. d.purge()
  547. return
  548. end
  549. say_title(mob_name(20074))
  550. say(gameforge.deviltower_zone._230_say)
  551. wait()
  552. pc.warp(590500, 110500)
  553. return
  554. end
  555. when 20075.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
  556. say_title(mob_name(20075))
  557. say(gameforge.deviltower_zone._190_say)
  558. wait()
  559. if pc.level >=75 then
  560. say_title(mob_name(20075))
  561. say(gameforge.deviltower_zone._200_say)
  562. local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
  563. if s==3 then
  564. pc.warp(590500, 110900)
  565. return
  566. end
  567. if s==2 then
  568. return
  569. end
  570. timer("devil_jump_7", 6)
  571. npc.unlock()
  572. d.purge()
  573. return
  574. end
  575. say_title(mob_name(20075))
  576. say(gameforge.deviltower_zone._230_say)
  577. wait()
  578. pc.warp(590500, 110500)
  579. return
  580. end
  581. when 20076.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
  582. say_title(mob_name(20076))
  583. say(gameforge.deviltower_zone._190_say)
  584. wait()
  585. if pc.level >=75 then
  586. say_title(mob_name(20076))
  587. say(gameforge.deviltower_zone._200_say)
  588. local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
  589. if s==3 then
  590. pc.warp(590500, 110900)
  591. return
  592. end
  593. if s==2 then
  594. return
  595. end
  596. timer("devil_jump_7", 6)
  597. npc.unlock()
  598. d.purge()
  599. return
  600. end
  601. say_title(mob_name(20076))
  602. say(gameforge.deviltower_zone._230_say)
  603. wait()
  604. pc.warp(590500, 110500)
  605. return
  606. end
  607. when devil_jump_7.timer begin
  608. d.clear_regen()
  609. d.spawn_mob(8018, 639, 658)
  610. d.spawn_mob(8018, 611, 637)
  611. d.spawn_mob(8018, 596, 674)
  612. d.spawn_mob(8018, 629, 670)
  613. d.setf("level", 7)
  614. notice_multiline(gameforge.deviltower_zone._240_dNotice,d.notice)
  615. d.jump_all(2048+590, 6656+638)
  616. end
  617. when kill with npc.get_race() == 8018 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  618. local cont = d.getf("7_stone_kill") + 1
  619. d.setf("7_stone_kill", cont)
  620. if cont >= 4 then
  621. d.setf("7_stone_kill", 0)
  622. d.set_regen_file("data/dungeon/deviltower7_regen.txt")
  623. end
  624. end
  625. when kill with npc.get_race() == 8019 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  626. game.drop_item(30300, 1)
  627. end
  628. when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  629. pc.remove_item("30300", 1)
  630. local pct = number(1,10)
  631. if pct == 1 then
  632. game.drop_item(30302, 1)
  633. d.clear_regen()
  634. else
  635. game.drop_item(30301, 1)
  636. end
  637. end
  638. when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  639. if d.getf( "level" ) != 7 then
  640. pc.remove_item( "30302", 1)
  641. return
  642. end
  643. if d.getf("bug_devam") == 1 then
  644. say_reward("Bu işlem daha önce yapıldı!")
  645. return
  646. end
  647. d.setf ("bug_devam",1)
  648. say_title(gameforge.blacksmith._40_sayTitle)
  649. say(gameforge.deviltower_zone._250_say)
  650. pc.remove_item("30302", 1)
  651. timer("devil_jump_8", 6)
  652. d.clear_regen()
  653. end
  654. when devil_jump_8.timer begin
  655. d.setf("level", 8)
  656. notice_multiline(gameforge.deviltower_zone._260_dNotice,d.notice)
  657. d.jump_all(2048+590, 6656+403)
  658. d.set_regen_file("data/dungeon/deviltower8_regen.txt")
  659. d.spawn_mob(20366, 640, 460)
  660. local _count = pc.count_item(30302)
  661. pc.remove_item(30302,_count)
  662. end
  663. when kill with npc.get_race() == 1040 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  664. local pct1 = number(1, 5)
  665. if pct1 == 1 then
  666. local pct2 = number(1, 10)
  667. if pct2 == 1 then
  668. game.drop_item(30304, 1)
  669. else
  670. game.drop_item(30303, 1)
  671. end
  672. else
  673. return
  674. end
  675. end
  676. when 20366.take with item.vnum == 30304 begin
  677. npc.purge()
  678. item.remove()
  679. timer("devil_jump_9", 6)
  680. end
  681. when devil_jump_9.timer begin
  682. d.setf("level", 9)
  683. notice_multiline(gameforge.deviltower_zone._270_dNotice,d.notice)
  684. d.jump_all(2048+590, 6656+155)
  685. d.regen_file("data/dungeon/deviltower9_regen.txt")
  686. end
  687. when kill with npc.get_race() == 1093 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  688. d.kill_all()
  689. d.setqf2("deviltower_zone","9_done", 1)
  690. notice_multiline(gameforge.deviltower_zone._280_dNotice,d.notice)
  691. notice_multiline(gameforge.deviltower_zone._290_dNotice,d.notice)
  692. server_timer("devil_end_jump", 60, d.get_map_index())
  693. end
  694. when devil_end_jump.server_timer begin
  695. if d.select (get_server_timer_arg()) then
  696. d.clear_regen()
  697. d.exit_all()
  698. end
  699. end
  700. end
  701. end