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