Jump to content

pruden

Miembro
  • Contador contenido

    4
  • Ingreso

  • Última visita

Todo lo publicado por pruden

  1. Alguien podría elaborarme unas quest para el npc del biólogo una que consista en matar a azrael y pida nivel 96 otra que consista en matar al dragón rojo que pida nivel 94 y otra que pida matar al dragón azul y pida lv 92 todas devén tener almenos un texto en en que pueda explicar que hay que hacer para realizar la del 94 se debe completar antes la del 92 y para la realizar la de 96 la de 94 la recompensa por realizar cada una deve ser 50kk de yang
  2. Perfecto lo del nivel de catas solucionado thx ahora solo me falta averiguar cual es la quest de entrada a cape para cambiar el nivel tmb y como cambiar el tiempo en el que se puede permanecer en catas
  3. Quiero modificar el nivel de acceso a catacumbas para que enver de 75 pida que seamos nivel 90 para entrar y el tiempo que puedes permanecer en el mapa por 360 minutos también necesito saver que archivo tengo que modificar para hacer que el nivel de entrada a cape sea 75 enver de 90 uso los files maxmi 34k Aquí dejo la quest de catas que estoy usando quest devilscatacomb begin state start begin function setting() return { ["base"]={["x"] = 3072 , ["y"]= 12032 ,}, ["floor1_s"] = { ["x"] = 20, ["y"] = 20, }, ["floor1_e"] = { ["x"] = 500, ["y"] = 470,}, ["floor2_s"] = { ["x"] = 510, ["y"] = 18, }, ["floor2_e"] = { ["x"] = 978, ["y"] = 470,}, ["floor1_entry"] = {["x"] = 73, ["y"] = 63,}, ["floor2_entry"] = {["x"] = 550, ["y"] = 45,}, ["floor3_entry"] = {["x"] = 1378, ["y"] = 249,}, ["floor4_entry"] = {["x"] = 70, ["y"] = 592,}, ["floor5_entry"] = {["x"] = 846, ["y"] = 898}, ["floor6_entry"] = {["x"] = 1362, ["y"] = 666}, ["floor7_entry"] = {["x"] = 73, ["y"] = 1156}, ["map_idx"] = 206, ["rag"] = 30311, ["devil_king"] = 2591, ["reapers_credit1"] = 30319, ["reapers_credit2"] = 30320, ["reapers_credit3"] = 76002, ["reapers_credit4"] = 79001, ["floor3_stone"] = 8038, ["floor3_stone_pos"] = { {1366, 150}, {1366, 351}, {1234, 365}, {1234, 140}, {1150, 135}, {1130, 365}, {1135, 253} }, ["mob_regen_file_path"] = "data/dungeon/devilcatacomb/", ["floor4_regen_file"] = {"devilcatacomb_floor4_regen1.txt", "devilcatacomb_floor4_regen2.txt", "devilcatacomb_floor4_regen3.txt", "devilcatacomb_floor4_regen4.txt", "devilcatacomb_floor4_regen5.txt"} , ["credit_stone"] = 30101, ["credit_stone_pos"] = {307,323}, ["floor2_stone"] = 30103, ["floor2_stone_pos"] = {741,217}, ["floor2_merchant_npc"] = 20368, ["floor2_merchant_npc_pos"] = {734,214}, ["floor4_npc"] = 30104, ["floor4_npc_pos"] = {500, 717}, ["devil_king_pos"] = {{673,829},{691,638},{848,568},{1026,642},{1008,862}}, ["unlock_stone"] = 30312, ["floor5_stone"] = 30102, ["floor5_stone_pos"] = {848, 735}, ["devil_great_king"] = 2597 , ["devil_great_king_pos"] = {1303,704}, ["devil_emperor"] = 2598, ["devil_emperor_pos"] = {74,1103}, ["dc2_door_set_size"] = {4,2,3,2}, ["dc2_door_set1"] = { {{30111, 566, 117, 5},{30112, 562, 311, 5,},{30118, 663, 434, 7},{30119, 881, 434, 7}}, {{30116, 743, 390, 3},{30119, 612, 251, 1,}}, {{30113, 654, 211, 5},{30111, 707, 338, 7,},{30112, 775, 336, 7}}, {{30117, 733, 294, 3},{30113, 694, 271, 1,}} }, ["dc2_door_set2"] = { {{30115, 942, 141, 5},{30116, 942, 245, 5},{30117, 942, 321, 5},{30115, 763, 64, 7}}, {{30118, 643, 116, 3},{30114, 900, 167, 1}}, {{30114, 850, 293, 5},{30113, 715, 164, 7},{30114, 817, 162, 7}}, {{30111, 802, 277, 1},{30112, 800, 241, 1}} }, } end when login begin local setting = devilscatacomb.setting() local idx = pc.get_map_index() if idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then -- pc.set_warp_location(65, 5914, 992) -----------아귀동굴 좌표로 local level = d.getf("level") -- warp location이 0,0 이면 시스템 상으로, 종료 시, 종료 위치를 시작 위치로 저장한다. d.set_warp_location (0, 0, 0) if level == 2 then say("3. kata ulasmak i?n bu kapilarin m??lerini s?!") say("60 dakikan daha var.") elseif level == pc.getqf ("level") then -- say ("낙오되지 않기 위해 동료들과 합류하십시오.") --say (locale.devilcatacomb_follow_peer) else -- say (locale.devilcatacomb_dropout) -- say ("당신은 낙오되었습니다. 용신의 힘을 빌어 잠시 뒤 동굴 밖으로 이동합니다.") -- timer ("devilcatacomb_ban_timer", 5) end end if idx == setting.map_idx then pc.setf("devilscatacomb","last_exit_time", get_global_time()) -- 2?이상이면, 쫓겨나 if pc.get_x() < setting.floor1_s.x + setting.base.x or pc.get_y() < setting.floor1_s.y + setting.base.y or pc.get_x() > setting.floor1_e.x + setting.base.x or pc.get_y() > setting.floor1_e.y + setting.base.y then -- 아귀동굴 입구로 -- if not is_test_server() then --say (locale.devilcatacomb_dropout) timer ("devilcatacomb_ban_timer", 5) -- end else -- 아귀동굴 입구로 -- pc.set_warp_location(65, 5914, 992) say("Ruh Kristali Anahtari'ni ele ge?rmek i?n ") say("yaratiklari yok et. Bu ") say("sana sonraki katin kapisini a?r. ") pc.remove_item(30311, pc.count_item(30311)) pc.remove_item(30312, pc.count_item(30312)) end end end when logout begin local idx = pc.get_map_index() local setting = devilscatacomb.setting() if idx == setting.map_idx or idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then pc.setf("devilscatacomb","last_exit_time", get_global_time()) end end when devilcatacomb_ban_timer.timer begin pc.warp((5914)*100, (992)*100, 65) end when warp_timer.timer begin local level = d.getf("level") local level_switch = { [3] = "Dogru Metin Tasi'ni bul ve onu yok et!", [4] = "5. asamaya ulasmak i?n labirentten ?kis yolunu bul!", [5] = "Tartarus'u yen ve Surat Totemi'ni al.", [6] = "Kharoon ve cellatlarini yen!", } local t = 3600 -(get_global_time() - d.getf("enter_time")) local t_r = math.mod (t, 60) local t_m = (t - t_r) / 60 d.notice ( level_switch[level] ) d.notice ( "" ..t_m.." dakikan daha var.") d.set_warp_location (0, 0, 0) end when 20367.chat."Seytan Katakombu'na gider" with pc.get_map_index() == 65 begin local setting = devilscatacomb.setting() if pc.get_level() < 75 then say_title("Katakomb Bek?si:") say("75. seviyenin altinda oldugun i?n ") say("Katakomb'a giremezsin...") --elseif pc.getf("deviltower_zone","9_done") == 0 then -- say(locale.devilcatacomb_man_say_deviltop_clear) --elseif ((get_global_time() - pc.getf("devilscatacomb","last_exit_time")) < 1800) then -- say(locale.devilcatacomb_man_say_see_you_later) else say("Seytan Katakombu'na girmek") say("istiyor musun?") local s = select("Evet, birak i?ri gireyim!","Hayir, girmek istemiyorum.") if s == 1 then pc.warp ((setting.floor1_entry.x + setting.base.x )* 100, (setting.floor1_entry.y + setting.base.y) * 100) end end end when 20367.chat."Karanlik Tapinaga d?" with pc.get_map_index() == 206 begin say_title("Katakomb Bek?si:") say("") say("Savasmaktan vazge?p Karanlik Tapinaga d?mek") say("istedigine emin misin?") say("") local s = select("Evet, ?k g淮s??.", "Hayir, savasmaya devam edecegim!") if s == 1 then pc.warp(591400, 99900) end end -- 몬스터가 죽으면 발?하는 이벤트. when kill begin local setting = devilscatacomb.setting() -- 아귀동굴 1?이면 1% 확률로 ?시건을 드랍한다. if pc.get_x() > setting.floor1_s.x + setting.base.x and pc.get_y() > setting.floor1_s.y + setting.base.y and pc.get_x() < setting.floor1_e.x + setting.base.x and pc.get_y() < setting.floor1_e.y + setting.base.y then local j = number(1, 100) if j == 1 then game.drop_item (setting.rag, 1) end end end function spawn_doors () local setting = devilscatacomb.setting() for i = 1, 4 do local mob_set = setting.dc2_door_set1 local set_size = setting.dc2_door_set_size for j = 1, set_size do d.set_unique (i.."_1_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4])) end mob_set = setting.dc2_door_set2 for j = 1, set_size do d.set_unique (i.."_2_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4])) end end end -- ?시건을 나찰인증석에 드래그하면 2?으로 보낸다. 2?부터는 던전이다. when 30101.take begin local setting = devilscatacomb.setting() if item.vnum == setting.rag then if not party.is_party() then say("Katakombun daha alt asamalarina ge?ek i?n") say("g淮l?bir gruba ihtiyacin var.") say("") return elseif party.is_in_dungeon() then say("Senin grubun zaten zindanda.") say("") return end item.remove() say("M??l?kapi a?ldi. Acele et,") say("asagi iniyoruz.") wait() say("Asil macera simdi basliyor. Seytan ") say("Katakombu'nu kesfetmek i?n sadece") say("bir saatin var.") wait() d.new_jump_party (setting.map_idx, setting.floor2_entry.x + setting.base.x , setting.floor2_entry.y + setting.base.y ) d.setqf2("devilscatacomb","level", 2) d.setf ("level",2) --d.regen_file (setting.mob_regen_file_path.."dc_2f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base2_regen.txt") --d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base2_npc.txt") -- d.spawn_mob (setting.floor2_merchant_npc, setting.floor2_merchant_npc_pos[1], setting.floor2_merchant_npc_pos[2]) d.spawn_mob (setting.floor2_stone, setting.floor2_stone_pos[1], setting.floor2_stone_pos[2]) devilscatacomb.spawn_doors () server_timer('devilcatacomb_45m_left_timer',60 * 15, d.get_map_index()) d.setf("enter_time", get_global_time()) end end when devilcatacomb_45m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("45 dakikan daha var.") server_timer('devilcatacomb_30m_left_timer', 60 * 15, get_server_timer_arg()) end end when devilcatacomb_30m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("30 dakikan daha var.") server_timer('devilcatacomb_15m_left_timer', 60 * 15, get_server_timer_arg()) end end when devilcatacomb_15m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("15 dakikan daha var.") server_timer('devilcatacomb_5m_left_timer', 60 * 10, get_server_timer_arg()) end end when devilcatacomb_5m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("5 dakikan daha var.") server_timer('devilcatacomb_1m_left_timer', 60 * 4, get_server_timer_arg()) end end when devilcatacomb_1m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("1 dakikan daha var.") server_timer ("devilcatacomb_0m_left_timer", 60 * 1, get_server_timer_arg()) end end when devilcatacomb_0m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice("S?e bitti. Kendi g?enligin i?n Devil's Catacomb'dan disari isinlanacaksin.") d.set_warp_location (65, 5914, 992) server_timer('devilcatacomb_exit_timer', 7, get_server_timer_arg()) end end function is_dc2_doors_clear () local setting = devilscatacomb.setting() local clear = true for i = 1, 4 do local set_clear = true local mob_set = setting.dc2_door_set1 local set_size = setting.dc2_door_set_size for j = 1, set_size do set_clear = set_clear and d.is_unique_dead (i.."_1_"..j) end if not set_clear then set_clear = true mob_set = setting.dc2_door_set2 for j = 1, set_size do set_clear = set_clear and d.is_unique_dead (i.."_2_"..j) end end clear = clear and set_clear end return clear end -- 현황석을 클릭하면 3? 진입 여부를 선택할 수 있고 -- 진입시 사신의증표를 검사한다. -- 사신의 증표가 없다면 밖으로 워프된다. when 30103.click begin local setting = devilscatacomb.setting() if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then --if not devilscatacomb.is_dc2_doors_clear () and not is_test_server() then --say_title ("The Devil? Catacomb:") --say ("You first have to kill each door.") --say ("") --wait () --return --end say("Kaplumbaga Kayaligi'na yaklastik? ") say("bazi grav?ler dikkat ?kiyor... ") wait() say("...Sadece K淮?en Kafa'ya sahip olanlar") say("bir sonraki kademeye ge?bilirler. ") say("K淮?en Kafa'ya sahip degilsen yer y??e") say("isinlanacaksin.") wait() local s = select("Evet, ge?cegim!", "Hayir, ge?ek istemiyorum.") if s == 1 then if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then d.setf("devilcatacomb_floor2_stone_clicked", 1) d.setqf2("devilscatacomb","last_exit_time", get_global_time()) d.set_item_group ("reapers_credit", 4, setting.reapers_credit4, 1, setting.reapers_credit3, 1, setting.reapers_credit2, 1, setting.reapers_credit1, 1) d.say_diff_by_item_group ("reapers_credit", "K淮?en Kafa'ya sahipsin ve artik 3. kata[ENTER]isinlanabilirsin.[ENTER][ENTER]", "K淮?en Kafa'ya sahip degilsin.[ENTER]Simdi Seytan Katakombunun disina[ENTER]isinlanacaksin.[ENTER][ENTER]") timer ("devilcatacomb_floor3_enter_timer", 7) end end else say_title("Devil? Catacomb:") say ("") say ("L?fen bekle.") say ("") end end when devilcatacomb_floor3_enter_timer.timer begin local setting = devilscatacomb.setting() d.set_warp_location (65, 5914, 992) d.exit_all_by_item_group ("reapers_credit") d.delete_item_in_item_group_from_all ("reapers_credit") d.purge () d.jump_all (setting.floor3_entry.x + setting.base.x , setting.floor3_entry.y + setting.base.y) d.setf("level",3) d.setqf2("devilscatacomb","level", 3) --d.regen_file (setting.mob_regen_file_path.."dc_3f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base3_regen.txt") timer("warp_timer",3) local position = setting.floor3_stone_pos local n = number(1,7) for i = 1, 7 do if (i != n) then d.set_unique("fake"..i, d.spawn_mob( setting.floor3_stone, position[1], position[2])) end end local vid = d.spawn_mob( setting.floor3_stone, position[n][1], position[n][2]) d.set_unique ("real",vid) if (is_test_server()) then -- real stone pos chat (position[n][1],position[n][2]) end end when 8038.kill begin local setting = devilscatacomb.setting() -- 돌이 파괴되면 진짜가 죽었는지 확인해본다. -- 진짜가 죽었으면 4?으로 이동한다. if d.is_unique_dead("real") then d.notice ("Ger?k Metin Tasi'ni yok ettin! Sonraki kata ge?yorsun.") d.setf ("level",4) d.setqf2("devilscatacomb","level", 4) timer ("devilcatacomb_floor4_enter_timer", 3) else d.notice ("Yanlis Metin Tasi'ni yok ettin. Dogrusunu bul!") end end when devilcatacomb_floor4_enter_timer.timer begin local setting = devilscatacomb.setting() local i = number (1, 4) timer("warp_timer",3) d.purge () d.jump_all (setting.floor4_entry.x + setting.base.x , setting.floor4_entry.y + setting.base.y) --d.regen_file (setting.mob_regen_file_path.."dc_4f_regen.txt") --d.regen_file (setting.mob_regen_file_path..setting.floor4_regen_file) d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base4_regen.txt") d.spawn_goto_mob(70,673 , 94,844) if i == 1 then d.spawn_goto_mob(94,839 , 70,673) d.spawn_goto_mob(141,865 , 369,893) d.spawn_goto_mob(364,893 , 136,865) d.spawn_goto_mob(431,935 , 194,867) d.spawn_goto_mob(194,862 , 426,935) d.spawn_goto_mob(243,853 , 277,637) d.spawn_goto_mob(282,637 , 243,858) d.spawn_goto_mob(181,667 , 323,779) d.spawn_goto_mob(328,779 , 499,811) d.spawn_goto_mob(131,668, 345,560) d.spawn_goto_mob(345,55 , 131,663) d.spawn_goto_mob(180,566 , 401,563) d.spawn_goto_mob(401,558 , 185,566) d.spawn_goto_mob(296,568 , 67,810) d.spawn_goto_mob(67,815 , 291,568) d.spawn_goto_mob(140,822 , 356,717) d.spawn_goto_mob(351,717 , 140,817) d.spawn_goto_mob(189,711 , 414,712) d.spawn_goto_mob(419,712 , 189,716) d.spawn_goto_mob(274,712 , 369,776) d.spawn_goto_mob(364,776 , 274,717) d.spawn_goto_mob(224,779 , 366,814) d.spawn_goto_mob(366,809 , 229,779) d.spawn_goto_mob(274,842 , 352,839) d.spawn_goto_mob(347,839 , 274,837) d.spawn_goto_mob(429,841 , 70,577) d.spawn_goto_mob(55,864 , 55,920) d.spawn_goto_mob(50,920 , 60,864) d.spawn_goto_mob(144,919 , 90,943) d.spawn_goto_mob(90,948 , 139,919) d.spawn_goto_mob(312,852 , 406,876) d.spawn_goto_mob(406,871 , 312,857) elseif i == 2 then d.spawn_goto_mob(70,673 , 312,857) d.spawn_goto_mob(312,852 , 70,668) d.spawn_goto_mob(431,935 , 90,943) d.spawn_goto_mob(90,948 , 426,935) d.spawn_goto_mob(144,919 , 424,841) d.spawn_goto_mob(429,841 , 291,568) d.spawn_goto_mob(296,568 , 70,577) d.spawn_goto_mob(181,667 , 499,811) d.spawn_goto_mob(131,668, 345,560) d.spawn_goto_mob(345,55 , 131,663) d.spawn_goto_mob(180,566 , 401,563) d.spawn_goto_mob(401,558 , 185,566) d.spawn_goto_mob(282,637 , 67,810) d.spawn_goto_mob(67,815 , 277,637) d.spawn_goto_mob(140,822 , 189,716) d.spawn_goto_mob(189,711 , 140,817) d.spawn_goto_mob(274,712 , 229,779) d.spawn_goto_mob(224,779 , 274,717) d.spawn_goto_mob(328,779 , 274,837) d.spawn_goto_mob(274,842 , 323,779) d.spawn_goto_mob(351,717 , 194,867) d.spawn_goto_mob(194,862 , 356,717) d.spawn_goto_mob(419,712 , 243,858) d.spawn_goto_mob(243,853 , 414,712) d.spawn_goto_mob(364,776 , 366,814) d.spawn_goto_mob(366,809 , 369,776) d.spawn_goto_mob(347,839 , 70,673) d.spawn_goto_mob(94,839 , 60,864) d.spawn_goto_mob(55,864 , 94,844) d.spawn_goto_mob(141,865 , 55,920) d.spawn_goto_mob(50,920 , 136,865) d.spawn_goto_mob(364,893 , 406,876) d.spawn_goto_mob(406,871 , 369,893) elseif i == 3 then d.spawn_goto_mob(70,673 , 312,857) d.spawn_goto_mob(312,852 , 70,668) d.spawn_goto_mob(431,935 , 274,717) d.spawn_goto_mob(274,712 , 426,935) d.spawn_goto_mob(224,779 , 140,817) d.spawn_goto_mob(140,822 , 229,779) d.spawn_goto_mob(189,711 , 94,844) d.spawn_goto_mob(94,839 , 189,716) d.spawn_goto_mob(144,919 , 424,841) d.spawn_goto_mob(429,841 , 499,811) d.spawn_goto_mob(131,668 , 185,566) d.spawn_goto_mob(180,566 , 131,663) d.spawn_goto_mob(296,568 , 277,637) d.spawn_goto_mob(282,637 , 291,568) d.spawn_goto_mob(181,667 , 345,560) d.spawn_goto_mob(345,555 , 186,667) d.spawn_goto_mob(401,558 , 67,810) d.spawn_goto_mob(67,815 , 401,563) d.spawn_goto_mob(328,779 , 274,837) d.spawn_goto_mob(274,842 , 323,779) d.spawn_goto_mob(351,717 , 369,776) d.spawn_goto_mob(364,776 , 356,717) d.spawn_goto_mob(419,712 , 366,814) d.spawn_goto_mob(366,809 , 414,712) d.spawn_goto_mob(347,839 , 70,577) d.spawn_goto_mob(55,864 , 55,920) d.spawn_goto_mob(50,920 , 60,864) d.spawn_goto_mob(141,865 , 90,943) d.spawn_goto_mob(90,948 , 136,865) d.spawn_goto_mob(194,862 , 369,893) d.spawn_goto_mob(364,893 , 194,867) d.spawn_goto_mob(243,853 , 406,876) d.spawn_goto_mob(406,871 , 243,858) elseif i == 4 then d.spawn_goto_mob(131,668 , 67,810) d.spawn_goto_mob(67,815 , 185,566) d.spawn_goto_mob(282,637 , 274,717) d.spawn_goto_mob(274,712 , 277,637) d.spawn_goto_mob(274,842 , 94,844) d.spawn_goto_mob(94,839 , 274,837) d.spawn_goto_mob(144,919 , 499,811) d.spawn_goto_mob(70,673 , 345,560) d.spawn_goto_mob(345,555 , 70,668) d.spawn_goto_mob(401,558 , 70,577) d.spawn_goto_mob(296,568 , 186,667) d.spawn_goto_mob(181,667 , 291,568) d.spawn_goto_mob(140,822 , 189,716) d.spawn_goto_mob(189,711 , 140,817) d.spawn_goto_mob(224,779 , 323,779) d.spawn_goto_mob(328,779 , 229,779) d.spawn_goto_mob(351,717 , 352,839) d.spawn_goto_mob(347,839 , 356,617) d.spawn_goto_mob(419,712 , 424,841) d.spawn_goto_mob(429,841 , 414,712) d.spawn_goto_mob(364,776 , 366,814) d.spawn_goto_mob(366,809 , 369,776) d.spawn_goto_mob(55,864 , 194,867) d.spawn_goto_mob(194,862 , 60,864) d.spawn_goto_mob(141,865 , 90,943) d.spawn_goto_mob(90,948 , 136,865) d.spawn_goto_mob(50,920 , 369,893) d.spawn_goto_mob(364,893 , 55,920) d.spawn_goto_mob(243,853 , 406,876) d.spawn_goto_mob(406,871 , 243,858) d.spawn_goto_mob(312,852 , 426,935) d.spawn_goto_mob(431,935 , 312,857) end if (is_test_server()) then d.notice (setting.floor4_regen_file) end d.spawn_mob (setting.floor4_npc, setting.floor4_npc_pos[1], setting.floor4_npc_pos[2]) end -- devilcatacomb_floor4_stone는 클릭 시 4?에? 5?으로 이동시키는 npc이다. when 30104.click begin local setting =devilscatacomb.setting() local n = number (1,5) say("Basardin! Labirentin ?kisi burada. 5. kata in.") wait() if (is_test_server()) then -- devil_king pos chat (setting.devil_king_pos[n][1], setting.devil_king_pos[n][2]) end d.purge () d.jump_all (setting.floor5_entry.x + setting.base.x, setting.floor5_entry.y + setting.base.y ) d.setf ("level",5) d.setqf2("devilscatacomb","level", 5) timer("warp_timer",3) --d.regen_file (setting.mob_regen_file_path.."dc_5f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base5_regen.txt") d.spawn_mob (setting.devil_king, setting.devil_king_pos[n][1], setting.devil_king_pos[n][2]) d.spawn_mob (setting.floor5_stone, setting.floor5_stone_pos[1], setting.floor5_stone_pos[2]) end -- 아귀왕(2591)이 죽으면 봉인해체석 드랍 when 2591.kill begin local value = "1709862138" local a = get_quest_state("the_war_begins") local a_ = string.format("%d", a) if a_== value then set_quest_state("the_war_begins","rewards") end local setting = devilscatacomb.setting() game.drop_item (setting.unlock_stone, 1) end -- 사신?제비(30102)에 ?제해체석봉을 드래그하면 ?든 몬스터를 죽이고 -- 6?으로 이동하는 타이머를 동작시킨다. when 30102.take with item.vnum == 30312 begin local setting = devilscatacomb.setting() item.remove () d.notice("Seytan Katakombu'nun derinliklerinden t?ler ") d.notice("?perten bir ?glik duyuldu. Kharoon uyandi! ") -- 6?으로 이동 d.clear_regen() d.purge() timer("devilcatacomb_floor6_timer",2) end when devilcatacomb_floor6_timer.timer begin local setting = devilscatacomb.setting() d.setf("level",6) d.setqf2("devilscatacomb","level", 6) d.jump_all (setting.floor6_entry.x + setting.base.x, setting.floor6_entry.y + setting.base.y ) --d.regen_file (setting.mob_regen_file_path.."dc_6f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base6_regen.txt") d.spawn_mob (setting.devil_great_king, setting.devil_great_king_pos[1], setting.devil_great_king_pos[2]) timer("warp_timer",3) end -- 아걸(2597)이 죽으면, 6?의 타이머1이 동작한다. when 2597.kill begin local value = "-880201385" local b = get_quest_state("prince_kharoon") local b_ = string.format("%d", b) if b_== value then set_quest_state("prince_kharoon","finito") end server_timer ("floor6_eli_check_timer_1", 5,d.get_map_index()) end -- 6?의 타이머1은 던전의 ?든 몬스터 ?자를 보고, -- 0이면 7?으로 워프하는 타이머를 동작한다. -- 바로 7?으로 가지 않는 이유는, 유저에게 준비할 시간을 주기 위해?이다. -- 1이면 타이머2를 동작시킨다. -- 타이머1을 recursive하게 동작시키지 않은 것은, -- 그럴 경우 reset한 타이머1이 동작하지 않았기 때문이다. when floor6_eli_check_timer_1.server_timer begin if d.select(get_server_timer_arg()) then if d.count_monster() == 0 then say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil? Catacomb:[ENTER]"..color256(196, 196, 196).."Kharoon'u yendin! Simdi Seytan Katakombu'nun en[ENTER]son katina isinlanacaksin.") server_timer ("devilcatacomb_floor7_timer", 3, get_server_timer_arg()) else server_timer ("floor6_eli_check_timer_2", 5, get_server_timer_arg()) end end end when floor6_eli_check_timer_2.server_timer begin if d.select(get_server_timer_arg()) then if d.count_monster() == 0 then say_in_map(get_server_timer_arg(), color256(255, 230, 186).."Kharoon'u yendin! Simdi Seytan Katakombu'nun en[ENTER]son katina isinlanacaksin.") server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg()) else server_timer ("floor6_eli_check_timer_1", 5, get_server_timer_arg()) end end end when devilcatacomb_floor7_timer.server_timer begin if d.select(get_server_timer_arg()) then local setting = devilscatacomb.setting() d.setf("level",7) d.setqf2("devilscatacomb","level", 7) d.jump_all (setting.floor7_entry.x + setting.base.x, setting.floor7_entry.y + setting.base.y ) --d.regen_file (setting.mob_regen_file_path.."dc_7f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base7_regen.txt") d.spawn_mob (setting.devil_emperor, setting.devil_emperor_pos[1], setting.devil_emperor_pos[2]) server_timer ("devilcatacomb_floor7_say_timer", 2, get_server_timer_arg()) end end when devilcatacomb_floor7_say_timer.server_timer begin if d.select(get_server_timer_arg()) then local t = 3600 -(get_global_time() - d.getf("enter_time")) local t_r = math.mod (t, 60) local t_m = (t - t_r) / 60 d.notice("Azrail'i yen!") d.notice ("".. t_m.." dakikan daha var.") d.set_warp_location (0, 0, 0) end end -- 6?과 마찬가지로 사마휘(2598)이 죽으면 -- 7?의 타이머가 작동한다. when 2598.kill begin --notice_all(pc.get_name().."'s party has defeated Lord Gahnasel!") server_timer ("floor7_eli_check_timer_1", 5, d.get_map_index()) end -- 7?의 타이머는 6? 타이머와 비슷하며, -- 몬스터 ?자가 0이면 exit 타이머를 발?시킨다. -- 바로 exit하지 않는 이유는, 유저들에게 준비할 시간을 주기 위해?이다. when floor7_eli_check_timer_1.server_timer begin if d.select(get_server_timer_arg()) then if d.count_monster() == 0 then d.set_warp_location (65, 5914, 992) d.setqf2("devilscatacomb","done", 1) say_in_map(get_server_timer_arg(),"Azrail yenildi. Seytan Katakombu'na nihayet[ENTER]huzur hakim. Simdi yer y??e isinlanacaksin. ") clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg()) server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg()) else server_timer ("floor7_eli_check_timer_2", 5, get_server_timer_arg()) end end end when floor7_eli_check_timer_2.server_timer begin if d.select(get_server_timer_arg()) then if d.count_monster() == 0 then d.set_warp_location (65, 5914, 992) d.setqf2("devilscatacomb","done", 1) say_in_map(get_server_timer_arg(),"Azrail yenildi. Seytan Katakombu'na nihayet[ENTER]huzur hakim. Simdi yer y??e isinlanacaksin. ") clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg()) server_timer("devilcatacomb_exit_timer", 30, get_server_timer_arg()) else server_timer ("floor7_eli_check_timer_1", 5, get_server_timer_arg()) end end end when devilcatacomb_exit_timer.server_timer begin if d.select(get_server_timer_arg()) then d.setqf2("devilscatacomb","level", 0) d.setqf2("devilscatacomb","last_exit_time", get_global_time()) clear_server_timer("devilcatacomb_5m_left_timer", get_server_timer_arg()) clear_server_timer("devilcatacomb_1m_left_timer", get_server_timer_arg()) clear_server_timer("devilcatacomb_0m_left_timer", get_server_timer_arg()) clear_server_timer("floor6_eli_check_timer_1", get_server_timer_arg()) clear_server_timer("floor6_eli_check_timer_2", get_server_timer_arg()) clear_server_timer("floor7_eli_check_timer_1", get_server_timer_arg()) clear_server_timer("floor7_eli_check_timer_2", get_server_timer_arg()) clear_server_timer("devilcatacomb_floor7_say_timer", get_server_timer_arg()) clear_server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg()) d.clear_regen() d.exit_all() end end end --state end --quest
×
×
  • Crear nuevo...