1. -----------------------------------------
  2. ----------- Salihq Deneme -----------
  3. ----------- Deneme -----------
  4. -----------------------------------------
  5. quest deviltower_zone begin
  6. state start begin
  7. function continue()
  8. if (get_time() > pc.getqf("last_login_time")) then
  9. say_title(string.format("%s:", mob_name(npc.get_race())))
  10. say("[ENTER]5 dakika içinde geri giriş yapmadığın[ENTER]için kaldığın yerden artık devam edemezsin.")
  11. say("")
  12. say_title("Geri Dönme Sistemi Hakkında Bilgi :")
  13. say("kuleye geri dönme sistemi (5,6,7,8) katlar için[ENTER]kullanılabilir eğer bu katlarda oyundan atma vs sorunlar[ENTER]olursa tek başınıza yeniden kuleye devam edebilirsiniz")
  14. pc.setqf("last_login_time", 0)
  15. pc.setqf("deviltower_continue", 0)
  16. return
  17. end
  18. if (pc.getqf("level") == 4 and pc.getqf("devil_stone4_fail_timer") ~= 3) then
  19. if party.is_party() then
  20. if not party.is_leader() then
  21. say_npc()
  22. say("yalnızca grup lideri giriş talebi yapabilir.")
  23. say("eğer grup'dan çıkarsan seni tek başına içeri alabilirim.")
  24. say("böylece kaldıgın yerden devam edebilirsin")
  25. else
  26. d.new_jump_party(66, special.devil_tower[3][1], special.devil_tower[3][2])
  27. deviltower_zone.process_floor()
  28. pc.setqf("last_login_time", 0)
  29. party.setqf("birkerebosmetinkes",1)
  30. party.syschat("Grup olarak kuleye tekrar giriş yaptınız")
  31. end
  32. else
  33. d.new_jump(66, special.devil_tower[3][1] * 100, special.devil_tower[3][2] * 100)
  34. deviltower_zone.process_floor()
  35. pc.setqf("last_login_time", 0)
  36. end
  37. elseif (pc.getqf("level") == 5 and pc.getqf("devil_stone5_fail_timer") ~= 4) then
  38. if party.is_party() then
  39. pc.setqf("bevisquestkontrol",1)
  40. if not party.is_leader() then
  41. say_npc()
  42. say("yalnızca grup lideri giriş talebi yapabilir.")
  43. say("eğer grup'dan çıkarsan seni tek başına içeri alabilirim.")
  44. say("böylece kaldıgın yerden devam edebilirsin")
  45. else
  46. d.new_jump_party(66, special.devil_tower[4][1], special.devil_tower[4][2])
  47. deviltower_zone.process_floor()
  48. pc.setqf("last_login_time", 0)
  49. end
  50. else
  51. d.new_jump(66, special.devil_tower[4][1] * 100, special.devil_tower[4][2] * 100)
  52. deviltower_zone.process_floor()
  53. pc.setqf("last_login_time", 0)
  54. end
  55. elseif (pc.getqf("level") >= 6 and pc.getqf("level") <= 9) then
  56. if party.is_party() then
  57. if not party.is_leader() then
  58. say_npc()
  59. say("yalnızca grup lideri giriş talebi yapabilir.")
  60. say("eğer grup'dan çıkarsan seni tek başına içeri alabilirim.")
  61. say("böylece kaldıgın yerden devam edebilirsin")
  62. else
  63. d.new_jump_party(66, special.devil_tower[5][1], special.devil_tower[5][2])
  64. deviltower_zone.process_floor()
  65. pc.setqf("last_login_time", 0)
  66. end
  67. else
  68. d.new_jump(66, special.devil_tower[5][1] * 100, special.devil_tower[5][2] * 100)
  69. deviltower_zone.process_floor()
  70. pc.setqf("last_login_time", 0)
  71. end
  72. else
  73. say("Bir hata oluştu.")
  74. pc.setqf("deviltower_continue", 0)
  75. end
  76. end
  77. function process_floor()
  78. d.setf("level", pc.getqf("level"))
  79. pc.setqf("deviltower_continue", 0)
  80. if (pc.getqf("level") == 4) then
  81. for i = 1, 6, 1 do
  82. if (pc.getqf("fake_metin"..i.."_x") > 0 and pc.getqf("fake_metin"..i.."_y") > 0) then
  83. d.set_unique("fake"..i, d.spawn_mob(8017, pc.getqf("fake_metin"..i.."_x"), pc.getqf("fake_metin"..i.."_y")))
  84. end
  85. end
  86. local vid = d.spawn_mob(8017, pc.getqf("real_metin_x"), pc.getqf("real_metin_y"))
  87. d.set_unique("real", vid)
  88. server_loop_timer('devil_stone4_update', 5, pc.get_map_index())
  89. server_timer('devil_stone4_fail'..pc.getqf("devil_stone4_fail_timer"), 5 * 60, pc.get_map_index())
  90. elseif (pc.getqf("level") == 5) then
  91. d.set_regen_file('data/dungeon/deviltower5_regen.txt')
  92. d.setf("stone_count", pc.getqf("stone_count"))
  93. server_timer('devil_stone5_fail'..pc.getqf("devil_stone5_fail_timer"), 5 * 60, get_server_timer_arg())
  94. local position_list = { {421, 452}, {380, 460}, {428, 414}, {398, 392}, {359, 426} }
  95. for i = 1, pc.getqf("stone_count"), 1 do
  96. d.spawn_mob(20073, position_list[i][1], position_list[i][2])
  97. end
  98. elseif (pc.getqf("level") == 6) then
  99. if (pc.getqf("proud_demon_king_killed") == 0) then
  100. d.regen_file('data/dungeon/deviltower6_regen.txt')
  101. elseif (pc.getqf("proud_demon_king_killed") == 1 and pc.getqf("deviltower_refine") == 1 and pc.getqf("refine_used") == 0) then
  102. d.spawn_mob(pc.getqf("reward_alchemist"), 425, 216)
  103. end
  104. elseif (pc.getqf("level") == 7) then
  105. if (pc.getqf("7_stone_kill") == 0) then
  106. local position_list = { {639, 658}, {611, 637}, {596, 674}, {629, 670} }
  107. for i = 1, 4, 1 do
  108. d.spawn_mob(8018, position_list[i][1], position_list[i][2])
  109. end
  110. else
  111. d.set_regen_file("data/dungeon/deviltower7_regen.txt")
  112. end
  113. d.jump_all(2638, 7294)
  114. elseif (pc.getqf("level") == 8) then
  115. d.set_regen_file("data/dungeon/deviltower8_regen.txt")
  116. d.spawn_mob(20366, 640, 460)
  117. d.jump_all(2638, 7059)
  118. --[[elseif (pc.getqf("level") == 9) then
  119. bugfix0001 start
  120. if() then
  121. else
  122. d.jump_all(2638, 6811)
  123. d.regen_file("data/dungeon/deviltower9_regen.txt")--]]
  124. --end
  125. end
  126. end
  127. function deviltower_continue()
  128. return pc.getf("deviltower_zone", "deviltower_continue") == 1
  129. end
  130. function clear_flags()
  131. for i = 1, 6, 1 do
  132. pc.setqf("fake_metin"..i.."_x", 0)
  133. pc.setqf("fake_metin"..i.."_y", 0)
  134. end
  135. pc.setqf("proud_demon_king_killed", 0)
  136. pc.setqf("stone_count", 0)
  137. pc.setqf("7_stone_kill", 0)
  138. pc.setqf("reward_alchemist", 0)
  139. end--]]
  140. when login begin
  141. if pc.get_map_index() == 66 then
  142. 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
  143. pc.warp(590500, 110500)
  144. end
  145. pc.set_warp_location(65, 5905, 1105)
  146. elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
  147. pc.set_warp_location(65, 5376+532, 512+596+4)
  148. end
  149. end
  150. when logout begin
  151. if pc.count_item(30300) >= 1 then
  152. pc.remove_item(30300, pc.count_item(30300))
  153. end
  154. if pc.count_item(30302) >= 1 then
  155. pc.remove_item(30302, pc.count_item(30302))
  156. end
  157. if (d.getf("level") >= 4) then
  158. if ((d.getf("level") == 9 and pc.getqf("lucifer_killed") == 1)) then
  159. return
  160. end
  161. if (d.getf("level") == 6 and pc.getqf("proud_demon_king_killed") == 1 and pc.getqf("refine_used") == 1) then
  162. if (pc.level < 75) then
  163. return
  164. end
  165. --d.setf("level", d.getf("level") + 1)
  166. end
  167. if (pc.getqf("last_login_time") == 0) then
  168. pc.setqf("last_login_time", get_time() + (5 * 60))
  169. end
  170. --pc.setqf("deviltower_continue", 1)
  171. --pc.setqf("level", d.getf("level"))
  172. pc.setqf("stone_count", d.getf("stone_count"))
  173. end
  174. end
  175. when 20348.chat."Şeytan Kulesi " begin
  176. if pc.get_level() < 40 then
  177. say_title("Şeytan Kulesi Bekçisi:")
  178. say(locale.deviltower_man_say_you_cant)
  179. else
  180. say_title("Şeytan Kulesi Bekçisi:")
  181. say(locale.deviltower_man_say)
  182. local secim = select(locale.kulesecim,locale.kulesecimiki,locale.kulesecimuc,"Vazgeçtim")
  183. if secim == 1 then
  184. pc.warp(216500,727000)
  185. elseif secim == 2 then
  186. say_npc()
  187. say("Eğer 50.000.000 yang verirsen seni hiçbir")
  188. say("şeyle uğraştırmadan 2.Kat'a gönderebilirim.")
  189. say("ister misin?")
  190. local icsecimiki = select("Girmek istiyorum","Girmek istemiyorum.")
  191. if icsecimiki ==1 then
  192. if pc.get_money() < 50000000 then
  193. say_npc()
  194. say_reward("Hay aksi!")
  195. say("Seni içeri alamam envanterinde yeterli")
  196. say("yang bulamadım bana 50.000.000 yang getirmelisin.")
  197. return
  198. end
  199. --[[if pc.is_busy() then
  200. say_npc()
  201. say_reward("Hay aksi!")
  202. say("Diğer penceleri kapatmadan buraya giremezsin.")
  203. say("Ticaret, NPC, Depo gibi.")
  204. say("Ek olarak 10 saniye beklemen gerekebilir.")
  205. return
  206. end --]]
  207. pc.change_money(-50000000)
  208. --d.new_jump(66, special.devil_tower[1][1], special.devil_tower[1][2])
  209. d.new_jump(66, special.devil_tower[1][1] * 100, special.devil_tower[1][2] * 100)
  210. d.regen_file("data/dungeon/deviltower2_regen.txt")
  211. 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")
  212. end
  213. elseif secim == 3 then
  214. say_npc()
  215. say("Eğer 75.000.000 yang verirsen seni ve grubunu hiçbir")
  216. say("şeyle uğraştırmadan 2.Kat'a gönderebilirim.")
  217. say("İster misin?")
  218. local icsecimgrup = select("Girmek İstiyorum","Girmek İstemiyorum.")
  219. if icsecimgrup ==1 then
  220. if pc.get_money() < 75000000 then
  221. say_npc()
  222. say_reward("Hay aksi!")
  223. say("Seni içeri alamam envanterinde yeterli")
  224. say("yang bulamadım bana 75.000.000 yang getirmelisin.")
  225. return
  226. end
  227. if not party.is_party() then
  228. say_npc()
  229. say_reward("Heey "..pc.get_name().."")
  230. say("Bu işlemi yapmak istiyorsan önce grup olmalısın")
  231. say("unutma kulede insanlar değişebilir kendine")
  232. say("güvenilir bir grup kurmanı tavsiye ederim")
  233. return
  234. end
  235. if not party.is_leader() then
  236. say_npc()
  237. say_reward("Heey "..pc.get_name().."")
  238. say("Cesaretini takdir ediyorum ama")
  239. say("yalnızca grup lideri giriş talebi yapabilir.")
  240. return
  241. end
  242. --[[if pc.is_busy() then
  243. say_npc()
  244. say_reward("Hay aksi!")
  245. say("Diğer penceleri kapatmadan buraya giremezsin.")
  246. say("Ticaret, NPC, Depo gibi.")
  247. say("Ek olarak 10 saniye beklemen gerekebilir.")
  248. return
  249. end --]]
  250. pc.change_money(-75000000)
  251. d.new_jump_party(66, special.devil_tower[1][1], special.devil_tower[1][2])
  252. d.regen_file("data/dungeon/deviltower2_regen.txt")
  253. 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")
  254. end
  255. end
  256. end
  257. end
  258. --[[when 20348.chat."Şeytan Kulesine devam et..." with (deviltower_zone.deviltower_continue() --[[and game.get_event_flag("dt_recall") == 0--]]) begin
  259. say_title(string.format("%s :",mob_name(npc.get_race())))
  260. say("Şeytan Kulesine daha önceden giriş yaptın.[ENTER]Kaldığın yerden devam etmek istiyor musun?[ENTER]")
  261. say_title("Geri Dönme Sistemi Hakkında Bilgi :")
  262. say("kuleye geri dönme sistemi (5,6,7,8) katlar için[ENTER]kullanılabilir eğer bu katlarda oyundan atma vs sorunlar[ENTER]olursa tek başınıza yeniden kuleye devam edebilirsiniz")
  263. say("")
  264. if (select(locale.yes, locale.no) == 2) then return end
  265. deviltower_zone.continue()
  266. end--]]
  267. when kill with npc.get_race() == 8015 begin
  268. timer("devil_stone1_1", 8)
  269. end
  270. when devil_stone1_1.timer begin
  271. d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
  272. d.regen_file("data/dungeon/deviltower2_regen.txt")
  273. 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")
  274. end
  275. when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  276. 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")
  277. d.check_eliminated()
  278. end
  279. function get_4floor_stone_pos()
  280. local positions =
  281. {
  282. {368, 629}, {419, 630}, {428, 653}, {422, 679},
  283. {395, 689}, {369, 679}, {361, 658},
  284. }
  285. for i = 1, 6 do
  286. local j = number(i, 7)
  287. if i != j then
  288. local t = positions[i];
  289. positions[i] = positions[j];
  290. positions[j] = t;
  291. end
  292. end
  293. return positions
  294. end
  295. when kill with npc.get_race() == 8016 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  296. --d.setf("level", 4)
  297. local positions = deviltower_zone.get_4floor_stone_pos()
  298. for i = 1, 6 do
  299. test_chat(positions[i][1], positions[i][2])
  300. d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
  301. end
  302. test_chat(positions[7][1], positions[7][2])
  303. local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
  304. test_chat(vid)
  305. d.set_unique("real", vid)
  306. server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
  307. server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
  308. notice_multiline(gameforge.deviltower_zone._50_dNotice,d.notice)
  309. end
  310. when devil_stone4_fail1.server_timer begin
  311. if d.select(get_server_timer_arg()) then
  312. pc.setqf("devil_stone4_fail_timer", 2)
  313. notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
  314. server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
  315. end
  316. end
  317. when devil_stone4_fail2.server_timer begin
  318. if d.select(get_server_timer_arg()) then
  319. pc.setqf("devil_stone4_fail_timer", 3)
  320. notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
  321. server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
  322. end
  323. end
  324. when devil_stone4_fail.server_timer begin
  325. if d.select(get_server_timer_arg()) then
  326. pc.setqf("devil_stone4_fail_timer", 1)
  327. notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
  328. d.clear_regen()
  329. d.exit_all()
  330. clear_server_timer('devil_stone4_update', get_server_timer_arg())
  331. end
  332. end
  333. when devil_stone4_update.server_timer begin
  334. if d.select(get_server_timer_arg()) then
  335. if not d.is_unique_dead("real") then
  336. for i = 1, 6 do
  337. if d.getf("fakedead" .. i) == 0 then
  338. if d.unique_get_hp_perc("fake" .. i) < 50 then
  339. d.purge_unique("fake" .. i)
  340. d.setf("fakedead" .. i, 1)
  341. notice_multiline(gameforge.deviltower_zone._90_dNotice,d.notice)
  342. end
  343. end
  344. end
  345. else
  346. server_timer("devil_stone4_end", 5, get_server_timer_arg())
  347. --d.kill_all()
  348. d.purge()
  349. notice_multiline(gameforge.deviltower_zone._100_dNotice,d.notice)
  350. clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
  351. clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
  352. clear_server_timer('devil_stone4_fail', get_server_timer_arg())
  353. pc.setqf("devil_stone4_fail_timer", 0)
  354. end
  355. else
  356. server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
  357. end
  358. end
  359. when devil_stone4_stop_timer.server_timer begin
  360. clear_server_timer('devil_stone4_update', get_server_timer_arg())
  361. end
  362. when devil_stone4_end.server_timer begin
  363. if d.select(get_server_timer_arg()) then
  364. clear_server_timer('devil_stone4_update', get_server_timer_arg())
  365. clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
  366. clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
  367. clear_server_timer('devil_stone4_fail', get_server_timer_arg())
  368. d.clear_regen()
  369. -- d.setf("level", 5)
  370. d.setf("stone_count", 5)
  371. notice_multiline(gameforge.deviltower_zone._110_dNotice,d.notice)
  372. d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
  373. server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
  374. clear_server_timer('devil_stone4_update', get_server_timer_arg())
  375. pc.setqf("dt_recall", 1)
  376. d.set_regen_file("data/dungeon/deviltower5_regen.txt")
  377. d.spawn_mob(20073, 421, 452)
  378. d.spawn_mob(20073, 380, 460)
  379. d.spawn_mob(20073, 428, 414)
  380. d.spawn_mob(20073, 398, 392)
  381. d.spawn_mob(20073, 359, 426)
  382. end
  383. end
  384. when devil_stone5_fail1.server_timer begin
  385. if d.select(get_server_timer_arg()) then
  386. pc.setqf("devil_stone5_fail_timer", 1)
  387. notice_multiline(gameforge.deviltower_zone._120_dNotice,d.notice)
  388. server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
  389. end
  390. end
  391. when devil_stone5_fail2.server_timer begin
  392. if d.select(get_server_timer_arg()) then
  393. pc.setqf("devil_stone5_fail_timer", 2)
  394. notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
  395. server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
  396. end
  397. end
  398. when devil_stone5_fail3.server_timer begin
  399. if d.select(get_server_timer_arg()) then
  400. pc.setqf("devil_stone5_fail_timer", 3)
  401. notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
  402. server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
  403. end
  404. end
  405. when devil_stone5_fail.server_timer begin
  406. if d.select(get_server_timer_arg()) then
  407. pc.setqf("devil_stone5_fail_timer", 4)
  408. notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
  409. d.exit_all()
  410. end
  411. end
  412. when kill with npc.get_race() == 8013 --[[and d.getf("level") == 5--]] begin
  413. --if pc.getqf("bevisquestkontrol") == 1 then
  414. -- pc.setqf("bevisquestkontrol",0)
  415. --else
  416. game.drop_item(50084, 1)
  417. --end
  418. end
  419. when devil_stone5.take with item.vnum == 50084 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  420. npc.purge()
  421. npc.purge()
  422. npc.purge()
  423. npc.purge()
  424. npc.purge()
  425. npc.purge()
  426. npc.purge()
  427. npc.purge()
  428. item.remove()
  429. d.setf("stone_count", d.getf("stone_count") - 1)
  430. if d.getf("stone_count") <= 0 then
  431. --d.setf("level", 6)
  432. d.clear_regen()
  433. d.regen_file("data/dungeon/deviltower6_regen.txt")
  434. notice_multiline(gameforge.deviltower_zone._130_dNotice,d.notice)
  435. d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
  436. local server_arg = d.get_map_index()
  437. clear_server_timer('devil_stone5_fail1', server_arg)
  438. clear_server_timer('devil_stone5_fail2', server_arg)
  439. clear_server_timer('devil_stone5_fail3', server_arg)
  440. clear_server_timer('devil_stone5_fail', server_arg)
  441. else
  442. d.notice(string.format(gameforge.deviltower_zone._140_dNotice, d.getf("stone_count")))
  443. end
  444. end
  445. 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
  446. d.kill_all()
  447. notice_multiline(gameforge.deviltower_zone._150_dNotice,d.notice)
  448. d.check_eliminated()
  449. notice_multiline(gameforge.deviltower_zone._160_dNotice,d.notice)
  450. local reward_alchemist = {20074, 20075, 20076}
  451. d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
  452. d.setqf2("deviltower_zone","deviltower_refine", 1)
  453. end
  454. 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
  455. say_title(mob_name(20074))
  456. say(gameforge.deviltower_zone._190_say)
  457. wait()
  458. if pc.level >=75 then
  459. say_title(mob_name(20074))
  460. say(gameforge.deviltower_zone._200_say)
  461. local s= select(gameforge.deviltower_zone._210_select, gameforge.locale.cancel, gameforge.deviltower_zone._220_select)
  462. if s==3 then
  463. pc.warp(590500, 110900)
  464. return
  465. end
  466. if s==2 then
  467. return
  468. end
  469. timer("devil_jump_7", 6)
  470. npc.unlock()
  471. d.purge()
  472. return
  473. end
  474. say_title(mob_name(20074))
  475. say(gameforge.deviltower_zone._230_say)
  476. wait()
  477. pc.warp(590500, 110500)
  478. return
  479. end
  480. 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
  481. say_title(mob_name(20075))
  482. say(gameforge.deviltower_zone._190_say)
  483. wait()
  484. if pc.level >=75 then
  485. say_title(mob_name(20075))
  486. say(gameforge.deviltower_zone._200_say)
  487. local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
  488. if s==3 then
  489. pc.warp(590500, 110900)
  490. return
  491. end
  492. if s==2 then
  493. return
  494. end
  495. timer("devil_jump_7", 6)
  496. npc.unlock()
  497. d.purge()
  498. return
  499. end
  500. say_title(mob_name(20075))
  501. say(gameforge.deviltower_zone._230_say)
  502. wait()
  503. pc.warp(590500, 110500)
  504. return
  505. end
  506. 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
  507. say_title(mob_name(20076))
  508. say(gameforge.deviltower_zone._190_say)
  509. wait()
  510. if pc.level >=75 then
  511. say_title(mob_name(20076))
  512. say(gameforge.deviltower_zone._200_say)
  513. local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
  514. if s==3 then
  515. pc.warp(590500, 110900)
  516. return
  517. end
  518. if s==2 then
  519. return
  520. end
  521. timer("devil_jump_7", 6)
  522. npc.unlock()
  523. d.purge()
  524. return
  525. end
  526. say_title(mob_name(20076))
  527. say(gameforge.deviltower_zone._230_say)
  528. wait()
  529. pc.warp(590500, 110500)
  530. return
  531. end
  532. when devil_jump_7.timer begin
  533. d.clear_regen()
  534. d.spawn_mob(8018, 639, 658)
  535. d.spawn_mob(8018, 611, 637)
  536. d.spawn_mob(8018, 596, 674)
  537. d.spawn_mob(8018, 629, 670)
  538. -- d.setf("level", 7)
  539. notice_multiline(gameforge.deviltower_zone._240_dNotice,d.notice)
  540. d.jump_all(2048+590, 6656+638)
  541. end
  542. when kill with npc.get_race() == 8018 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  543. local cont = d.getf("7_stone_kill") + 1
  544. d.setf("7_stone_kill", cont)
  545. if cont >= 4 then
  546. d.setf("7_stone_kill", 0)
  547. d.set_regen_file("data/dungeon/deviltower7_regen.txt")
  548. end
  549. end
  550. when kill with npc.get_race() == 8019 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  551. game.drop_item(30300, 1)
  552. local cont = d.getf("7_stone_kill_metin") + 1
  553. d.setf("7_stone_kill_metin", cont)
  554. if cont >= 200 then
  555. d.setf("7_stone_kill_metin", 0)
  556. notice_multiline("Metin kesme hakkiniz bitti!",d.notice)
  557. d.clear_regen()
  558. else
  559. d.notice("Metin kesme hakkiniz "..200-cont.." tane kaldi.")
  560. end
  561. end
  562. when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  563. pc.remove_item("30300", 1)
  564. local pct = number(1,5)
  565. if pct == 1 then
  566. game.drop_item(30302, 1)
  567. d.clear_regen()
  568. else
  569. game.drop_item(30301, 1)
  570. end
  571. end
  572. when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  573. --if d.getf( "level" ) != 7 then
  574. -- pc.remove_item( "30302", 1)
  575. -- return
  576. --end
  577. say_title(gameforge.blacksmith._40_sayTitle)
  578. say(gameforge.deviltower_zone._250_say)
  579. pc.remove_item("30302", 1)
  580. timer("devil_jump_8", 6)
  581. --d.setf("level", 8)
  582. d.clear_regen()
  583. end
  584. when devil_jump_8.timer begin
  585. --d.setf("level", 8)
  586. notice_multiline(gameforge.deviltower_zone._260_dNotice,d.notice)
  587. d.jump_all(2048+590, 6656+403)
  588. d.set_regen_file("data/dungeon/deviltower8_regen.txt")
  589. d.spawn_mob(20366, 640, 460)
  590. local _count = pc.count_item(30302)
  591. pc.remove_item(30302,_count)
  592. end
  593. when kill with npc.get_race() == 1040 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  594. local pct1 = number(1, 5)
  595. if pct1 == 1 then
  596. local pct2 = number(1, 10)
  597. if pct2 == 1 then
  598. game.drop_item(30304, 1)
  599. else
  600. game.drop_item(30303, 1)
  601. end
  602. else
  603. return
  604. end
  605. end
  606. when 20366.take with item.vnum == 30304 begin
  607. npc.purge()
  608. npc.purge()
  609. npc.purge()
  610. npc.purge()
  611. npc.purge()
  612. npc.purge()
  613. npc.purge()
  614. npc.purge()
  615. item.remove()
  616. timer("devil_jump_9", 6)
  617. end
  618. when devil_jump_9.timer begin
  619. -- d.setf("level", 9)
  620. notice_multiline(gameforge.deviltower_zone._270_dNotice,d.notice)
  621. d.jump_all(2048+590, 6656+155)
  622. d.regen_file("data/dungeon/deviltower9_regen.txt")
  623. end
  624. when kill with npc.get_race() == 1093 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
  625. d.kill_all()
  626. d.setqf2("deviltower_zone","9_done", 1)
  627. notice_multiline(gameforge.deviltower_zone._280_dNotice,d.notice)
  628. notice_multiline(gameforge.deviltower_zone._290_dNotice,d.notice)
  629. pc.setqf("lucifer_killed", 1)
  630. pc.setqf("dt_recall", 1)
  631. server_timer("devil_end_jump", 60, d.get_map_index())
  632. end
  633. when devil_end_jump.server_timer begin
  634. if d.select (get_server_timer_arg()) then
  635. d.clear_regen()
  636. d.exit_all()
  637. end
  638. end
  639. end
  640. end