antiblock
https://i.imgur.com/aJ17bf7.gif
  • Chatbox

    You don't have permission to chat.
    Load More
  • 0
Sign in to follow this  
uScared?

[Duvida] Problema Nas Catacumbas !

Question

Boas pessoal.. Eu já criei inúmeros tópicos, no entanto nenhum deles objectivo ou claro o suficiente para especificar o meu problema. Então decidi reformular isso.

O que se passa é o seguinte, eu invoco o npc: 20367 como referido na quest, falo com ele, possuo o item " Cabeça Encolhida " o membro do meu grupo também, e no entanto quando clico " Yes, i want to enter. " o npc desliga o chat, não teleporta, nem remove o item..

Não sei se poderá ser da quest, mas eventualmente é o mais obvio que possa ser, se não, aceito sugestões de onde poderá vir o problema.

As server-files são as " Metin2Limit ".

Cliente: Metin2Limit.

 

Aqui está a quest:

-------------------------------------------------------- The Devil´s Catacomb Quest-- (c) 2011 - 2012 by musicinstructor@elitepvpers.com------------------------------------------------------quest devils_catacomb beginstate start beginwhen 20367.chat."Enter the Devil's Catacomb" with pc.get_level() < 75 and pc.get_map_index() != 65 beginsay_title("Guardian of the Catacombs:")say("I will not give access to the Devil's Catacomb")say("to an unexperienced knight such as you.")say("")say("It is for your own safety.")say("")say_reward("Level 100 is required to enter.")say("")endwhen 20367.chat."Enter the Devil's Catacomb" with pc.get_level() >= 100 and pc.get_map_index() != 65 beginsay_title("Guardian of the Catacombs:")say("")-- if pc.getf("deviltower_zone", "dcenter") == 0 then-- say("You have to solve the Demon Tower")-- say("to pass this gate.")-- say("")-- return-- endif not party.is_party() thensay("You need a strong party to adventure into")say("the Devil´s Catacomb.")say("")returnelseif not party.is_leader() thensay("Only the leader of your group can start")say("the quest.")say("")returnendsay("Do you wish to enter Devil's Catacomb now?")say("")local s = select("Yes, I want to enter.", "No, I want to leave.")if s == 1 thenif pc.count_item(30319) < 1 thensay_title("Guardian of the Catacombs:")say("")say("You can not enter without")say_item_vnum(30319)say("")return--else-- pc.remove_item(30319, 1)endpc.setf("deviltower_zone", "dcenter", 0)--pc.warp(314700, 1210100)d.join(90)d.regen_file(get_locale_base_path().."/map/metin2_map_dd/regen.txt")d.regen_file(get_locale_base_path().."/map/metin2_map_dd/npc.txt")d.setf("base1_killed_mobs", 0)endendwhen 20367.chat."Back to the Dark Temple" with pc.get_map_index() == 90 beginsay_title("Guardian of the Catacombs:")say("")say("Are you sure you want to give up and")say("return to the Dark Temple?")say("")local s = select("Yes, I am too weak.", "No, I will fight on!")if s == 1 thenpc.warp(591400, 99900)endendfunction get_devil_base()local x = pc.get_local_x()local y = pc.get_local_y()if pc.get_map_index() == 90 and x > 30 and y > 45 and x < 450 and y < 450 thenreturn 1endif pc.get_map_index() >= 900000 and pc.get_map_index() < 1000000 thenif x > 30 and y > 45 and x < 450 and y < 450 thenreturn 1elseif x > 540 and y > 39 and x < 1000 and y < 462 thenreturn 2elseif x > 1048 and y > 35 and x < 1455 and y < 458 thenreturn 3elseif x > 31 and y > 541 and x < 564 and y < 1058 thenreturn 4elseif x > 650 and y > 540 and x < 1050 and y < 955 thenreturn 5elseif x > 1175 and y > 576 and x < 1420 and y < 810 thenreturn 6elseif x > 46 and y > 1091 and x < 102 and y < 1164 thenreturn 7endendreturn 0endfunction register_player(vid)local player_count = d.getf("player_count")player_count = player_count + 1d.setf("player_count", tonumber(player_count))d.setf(string.format("player%d", player_count), tonumber(vid))endfunction unregister_player(vid)local player_count = d.getf("player_count")local found = falsefor i = 1, player_count, 1 doif found == true thend.setf(string.format("player%d", tonumber(i)), d.getf(string.format("player%d", i+1)))endp = d.getf("player"..tostring(i))if p == vid theni = i -1found = trueendendif found == true thend.setf("player_count", tonumber(player_count - 1))endendfunction get_players()local players = {}local player_count = d.getf("player_count")for i = 1, player_count, 1 doplayers[i] = d.getf("player"..tostring(i))endreturn playersendfunction checkbase3item(pindex)local self_checked = falselocal self = pc.select(d.getf("player"..tostring(pindex)))if pc.count_item(30319) < 1 and self_checked == false thenwarp_to_village()elsepc.remove_item(30319, 1)endif pc.get_vid() == self thenself_checked = trueendpc.select(self)endfunction spawnbase4portals()d.spawn_goto_mob(70, 673, 94, 847)d.spawn_goto_mob(91, 948, 347, 564)d.spawn_goto_mob(401, 558, 272, 829)d.spawn_goto_mob(274, 713, 141, 807)d.spawn_goto_mob(68, 815, 313, 868)d.spawn_goto_mob(431, 935, 355, 840)d.spawn_goto_mob(430, 842, 499, 787)endfunction get_remaining_minutes()local m = 60 - (get_global_time() - d.getf("start_time"))/60if m <= 1 thenreturn "one minute"elsereturn string.format("%d minutes", m)endendwhen login with devils_catacomb.get_devil_base() == 1 beginaddimage(20, 12, "catacombs.tga")say("")say("")say("")say("")say_title("The Devil´s Catacomb: Level 1")say("")say("Hunt monsters in this area to obtain the Soul")say("Crystal Key and unlock the next level.")say("")say_item("Soul Crystal Key", 30311, "")pc.remove_item(30311, pc.count_item(30311))pc.remove_item(30312, pc.count_item(30312))endwhen kill with devils_catacomb.get_devil_base() == 1 begind.setf("base1_killed_mobs", d.getf("base1_killed_mobs"))if number(1, 100) == 1 or d.getf("base1_killed_mobs") >= 432 thengame.drop_item(30311, 1)endendwhen 30101.take with item.vnum == 30311 and devils_catacomb.get_devil_base() == 1 beginitem.remove()say_title("Statue of Kud:")say("")say("The entrance has been unlocked.")say("Pass it quickly!!")say("")wait()say_title("The Devil´s Catacomb:")say("")say("Here is where the real adventure starts.")say("")say("From now on you will only have one hour")say("to explore the Devil's Catacomb.")say("")wait()d.new_jump_all(90, 3626, 12083)d.clear_regen()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.setf("doors", 0)d.setf("start_time", get_global_time())server_timer("dc_time_expired", 60*60, d.get_map_index())server_timer("dc_time_notice", 30*60, d.get_map_index())server_timer("dc_time_notice", 45*60, d.get_map_index())server_timer("dc_time_notice", 50*60, d.get_map_index())server_timer("dc_time_notice", 55*60, d.get_map_index())endwhen login with pc.in_dungeon() == true and devils_catacomb.get_devil_base() != 0 beginpc.set_warp_location(65, 5914, 999)devils_catacomb.register_player(pc.get_vid())loop_timer("base7_smashout", 10)if party.is_leader() == true thend.setf("leader", pc.get_vid())endif devils_catacomb.get_devil_base() != 2 then return endsay_title("The Devil´s Catacomb: Level 2")say("")say("Destroy the seal of this door to reach Level 3.")say("You have "..devils_catacomb.get_remaining_minutes().." left.")say("")endwhen logout with pc.in_dungeon() == true and devils_catacomb.get_devil_base() > 1 begindevils_catacomb.unregister_player(pc.get_vid())endwhen 30111.kill or 30112.kill or 30113.kill or 30114.kill or 30115.kill or 30116.kill or 30117.kill or 30118.kill or 30119.kill with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 2 begind.setf("doors", d.getf("doors") + 1)endwhen 30103.click with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 2 and d.getf("doors") >= 11 and pc.get_vid() == d.getf("leader") beginnpc.lock()say_title("Tortoise Rock:")say("")say("As you observe the stone closely, you")say("encounter an inscription.")say("")wait()say_title("The Devil´s Catacomb:")say("")say("Only the one who possesses the shrunken head")say("may enter once the seal of three doors has")say("been broken.")say("")say_reward("If you do not possess this relic, you will")say_reward("be warped out from the Devil's Catacomb.")say("")wait()local s = select("Yes, let me enter.", "I don't have a Relic.")if s == 1 thenif pc.count_item(30319) < 1 thensay_title("The Devil´s Catacomb:")say("")say("You do not possess the shrunken head.")say("You will now be warped out from")say("the Devil's Catacomb..")say("")returnendsay_title("The Devil´s Catacomb:")say("")say("You possess the shrunken head and you will now")say("enter Level 3.")say("")timer("base3_jump", 4)wait()elsesay_title("The Devil´s Catacomb:")say("")say("You will now be warped out of the Devil's Catacomb.")say("")wait()pc.warp(5914, 999)endendwhen base3_jump.timer beginif d.getf("base3jump") == 1 thenreturnendd.setf("base3jump", 1)d.purge()--table.foreach(devils_catacomb.get_players(), devils_catacomb.checkbase3item)if pc.count_item(30319) < 1 thend.exit_all()elsepc.remove_item(30319, 1)end d.jump_all(4443, 12282)d.notice("Find the correct metin stone and destroy it!")d.notice("You have "..devils_catacomb.get_remaining_minutes().." left.")d.clear_regen()d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base3_regen.txt")d.spawn_mob(8038, 1237, 237)d.spawn_mob(8038, 1337, 166)d.spawn_mob(8038, 1152, 138)d.spawn_mob(8038, 1135, 344)d.spawn_mob(8038, 1367, 354)endwhen 8038.kill with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 3 and d.getf("warp_countdown_mode") != 1 beginlocal stone_count = d.getf("stone_count")stone_count = stone_count + 1if stone_count >= 5 or number(1, 5) == 5 thend.notice("You have destroyed the correct metin stone. You will now enter Level 4.")d.setf("warp_countdown_mode", 1)server_timer("base4_jump", 4, pc.get_map_index())elsed.setf("stone_count", stone_count + 1)d.notice("This was a false metin stone. Find the correct one, quick!")endendwhen base4_jump.server_timer beginif d.select(get_server_timer_arg()) thend.purge()d.jump_all(3144, 12617)d.clear_regen()--d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base4_portals.txt")devils_catacomb.spawnbase4portals()--d.spawn_mob(30104, 500, 717)d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base4_regen.txt")endendwhen 30104.click with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 4 beginnpc.purge()say_title("The Devil´s Catacomb:")say("")say("YES, found the way out! Let´s go down to the 5th")say("level!")server_timer("base5_jump", 4, pc.get_map_index())endwhen base5_jump.server_timer beginif d.select(get_server_timer_arg()) thend.purge()d.jump_all(3918, 12922)d.notice("Kill the Demon-Guards to obtain the Totem Faces. They serve as the key to Level 6!")d.notice("You have "..devils_catacomb.get_remaining_minutes().." left.")local pos ={{850, 588},{714, 655},{701, 817},{987, 838},{994, 657},}cid = number(1, 5)d.spawn_mob(2591, pos[cid][1], pos[cid][2]) d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base5_regen.txt")endendwhen 2591.kill with pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 5 begingame.drop_item(30312, 1)endwhen 30102.take with item.vnum == 30312 and pc.in_dungeon() == true and devils_catacomb.get_devil_base() == 5 beginitem.remove()d.purge()d.notice("From the dephts of the Devil's Catacomb comes a furious brawl.")d.notice("The Grim Reaper has awakened!")d.jump_all(4339, 12702)d.clear_regen()d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base6_regen.txt")server_loop_timer('base6_update', 10, pc.get_map_index())d.notice("Slay Grim Reaper and his minions!")d.notice("You have "..devils_catacomb.get_remaining_minutes().." left.")endwhen base6_update.server_timer beginif not d.select(get_server_timer_arg()) thenserver_timer("base6_update_stop_timer", 1, get_server_timer_arg())returnendif d.count_monster() == 0 thensay_in_map(d.get_map_index(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."You have gained victory over Charon![ENTER]You will now enter the last Level[ENTER]of the Devil's Catacomb![ENTER]")server_timer("base7_jump", 5, get_server_timer_arg())endendwhen base6_update_stop_timer.server_timer beginclear_server_timer("base6_update", get_server_timer_arg())endwhen base7_jump.server_timer beginclear_server_timer("base6_update", get_server_timer_arg())if not d.select(get_server_timer_arg()) thenreturnendd.purge()d.jump_all(3146, 13185)d.clear_regen()d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base7_regen.txt")d.set_unique("boss", d.spawn_mob(2598, 74, 1105))server_loop_timer("base7_boss_update", 10, get_server_timer_arg())d.notice("Kill Lord Gahnasel!")d.notice("You have "..devils_catacomb.get_remaining_minutes().." left.")d.setf("level", 7)endwhen base7_boss_update.server_timer beginif d.select(get_server_timer_arg()) thenif d.is_unique_dead("boss") thend.clear_regen()d.purge()clear_server_timer("dc_time_expired", get_server_timer_arg())say_in_map(d.get_map_index(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."Lord Gahnasel has been killed. Finally[ENTER]peace can return to the Catacombs.[ENTER]You will now be warped back out.[ENTER]")server_timer("base7_update_stop_timer", 1, get_server_timer_arg())server_timer("dc_end_jump", 60, get_server_timer_arg())endreturnendserver_timer("base7_update_stop_timer", 1, get_server_timer_arg())endwhen base7_update_stop_timer.server_timer beginclear_server_timer("base7_boss_update", get_server_timer_arg())endwhen base7_smashout.timer beginif d.getf("level") == 7 and devils_catacomb.get_devil_base() != 7 and d.select(pc.get_map_index()) thend.jump_all(3146, 13185)endendwhen dc_end_jump.server_timer beginif d.select(get_server_timer_arg()) thend.setf("level", 0)clear_server_timer("dc_time_expired", get_server_timer_arg())clear_server_timer("base7_smashout", get_server_timer_arg())clear_server_timer("base7_update_stop_timer", get_server_timer_arg())clear_server_timer("base7_boss_update", get_server_timer_arg())clear_server_timer("base6_update_stop_timer", get_server_timer_arg())clear_server_timer("base6_update", get_server_timer_arg())clear_server_timer("base5_jump", get_server_timer_arg())clear_server_timer("base4_jump", get_server_timer_arg())d.clear_regen()d.exit_all()endendwhen dc_time_expired.server_timer beginif d.select(get_server_timer_arg()) thend.setf("level", 0)d.notice("Your time is up. You failed to release the Catacombs")d.notice("from the claws of evil.")clear_server_timer("base7_smashout", get_server_timer_arg())clear_server_timer("base7_update_stop_timer", get_server_timer_arg())clear_server_timer("base7_boss_update", get_server_timer_arg())clear_server_timer("base6_update_stop_timer", get_server_timer_arg())clear_server_timer("base6_update", get_server_timer_arg())clear_server_timer("base5_jump", get_server_timer_arg())clear_server_timer("base4_jump", get_server_timer_arg())d.clear_regen()--table.foreach(devils_catacomb.get_players(), devils_catacomb.polyzombie)d.exit_all()endend when dc_time_notice.server_timer beginif d.select(get_server_timer_arg()) thend.notice("You have "..devils_catacomb.get_remaining_minutes().." left.")endend endend 

 

E aqui está outra quest, que não sei se estará relacionada com o problema ou não.

 

quest devilcatacomb_zone beginstate 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"] = 90,["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}}},}endwhen login beginlocal setting = devilcatacomb_zone.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 thensay_title("The Devil´s Catacomb: Level 2")say("")say("Destroy the seal of this door to reach Level 3.")say("You have 60 minutes left.")say("")elseif level == pc.getqf ("level") then-- say ("³«¿ÀµÇÁö ¾Ê±â À§ÇØ µ¿·áµé°ú ÇÕ·ùÇϽʽÿÀ.")--say (locale.devilcatacomb_follow_peer)else-- say (locale.devilcatacomb_dropout)-- say ("´ç½ÅÀº ³«¿ÀµÇ¾ú½À´Ï´Ù. ¿ë½ÅÀÇ ÈûÀ» ºô¾î Àá½Ã µÚ µ¿±¼ ¹ÛÀ¸·Î À̵¿ÇÕ´Ï´Ù.")-- timer ("devilcatacomb_ban_timer", 5)endendif idx == setting.map_idx thenpc.setf("devilcatacomb_zone","last_exit_time", get_global_time())-- 2ÃþÀÌ»óÀ̸é, ÂѰܳªif pc.get_x() < setting.floor1_s.x + setting.base.xor pc.get_y() < setting.floor1_s.y + setting.base.yor pc.get_x() > setting.floor1_e.x + setting.base.xor pc.get_y() > setting.floor1_e.y + setting.base.ythen-- ¾Æ±Íµ¿±¼ ÀÔ±¸·Î-- if not is_test_server() then--say (locale.devilcatacomb_dropout)timer ("devilcatacomb_ban_timer", 5)-- endelse -- ¾Æ±Íµ¿±¼ ÀÔ±¸·Î-- pc.set_warp_location(65, 5914, 992)addimage(20, 12, "catacombs.tga")say("")say("")say("")say("")say_title("The Devil´s Catacomb: Level 1")say("")say("Hunt monsters in this area to obtain the Soul")say("Crystal Key and unlock the next level.")say("")say_item("Soul Crystal Key", 30311, "")pc.remove_item(30311, pc.count_item(30311))pc.remove_item(30312, pc.count_item(30312))endendend when logout beginlocal idx = pc.get_map_index()local setting = devilcatacomb_zone.setting()if idx == setting.map_idx or idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) thenpc.setf("devilcatacomb_zone","last_exit_time", get_global_time())endend when devilcatacomb_ban_timer.timer beginpc.warp((5914)*100, (992)*100, 65)end when warp_timer.timer beginlocal level = d.getf("level")local level_switch = {[3] = "Find the correct metin stone and destroy it!",[4] = "Find the right way.",[5] = "Kill the Demon-Guards to obtain the Totem Faces. They serve as the key to Level 6!",[6] = "Slay Grim Reaper and his minions!",}local t = 3600 -(get_global_time() - d.getf("enter_time"))local t_r = math.mod (t, 60)local t_m = (t - t_r) / 60d.notice ( level_switch[level] )d.notice ( "You have " ..t_m.." minutes left.")d.set_warp_location (0, 0, 0)end when 20367.chat."Enter the Devil's Catacomb" with pc.get_map_index() == 65 beginlocal setting = devilcatacomb_zone.setting()if pc.get_level() < 100 thensay_title("Guardian of the Catacombs:")say("")say("I will not give access to the Devil's Catacomb")say("to an unexperienced knight such as you.")say("")say("It is for your own safety.")say("")say_reward("Level 100 is required to enter.")say("")--elseif pc.getf("deviltower_zone","9_done") == 0 then-- say(locale.devilcatacomb_man_say_deviltop_clear)--elseif ((get_global_time() - pc.getf("devilcatacomb_zone","last_exit_time")) < 1800) then-- say(locale.devilcatacomb_man_say_see_you_later)elsesay_title("Guardian of the Catacombs:")say("")say("Do you wish to enter Devil's Catacomb now?")say("")local s = select("Yes, I want to enter.", "No, I want to leave.")if s == 1 thenpc.warp ((setting.floor1_entry.x + setting.base.x )* 100, (setting.floor1_entry.y + setting.base.y) * 100)endendend when 20367.chat."Back to the Dark Temple" with pc.get_map_index() == 90 beginsay_title("Guardian of the Catacombs:")say("")say("Are you sure you want to give up and")say("return to the Dark Temple?")say("")local s = select("Yes, I am too weak.", "No, I will fight on!")if s == 1 thenpc.warp(591400, 99900)endend -- ¸ó½ºÅÍ°¡ Á×À¸¸é ¹ß»ýÇÏ´Â À̺¥Æ®.when kill beginlocal setting = devilcatacomb_zone.setting()-- ¾Æ±Íµ¿±¼ 1ÃþÀ̸é 1% È®·ü·Î ±Ý½Ã°ÇÀ» µå¶øÇÑ´Ù.if pc.get_x() > setting.floor1_s.x + setting.base.xand pc.get_y() > setting.floor1_s.y + setting.base.yand pc.get_x() < setting.floor1_e.x + setting.base.xand pc.get_y() < setting.floor1_e.y + setting.base.y thenlocal j = number(1, 100)if j == 1 thengame.drop_item (setting.rag, 1)endendend function spawn_doors ()local setting = devilcatacomb_zone.setting()for i = 1, 4 dolocal mob_set = setting.dc2_door_set1[i]local set_size = setting.dc2_door_set_size[i]for j = 1, set_size dod.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]))endmob_set = setting.dc2_door_set2[i]for j = 1, set_size dod.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]))endendend-- ±Ý½Ã°ÇÀ» ³ªÂûÀÎÁõ¼®¿¡ µå·¡±×Çϸé 2ÃþÀ¸·Î º¸³½´Ù. 2ÃþºÎÅÍ´Â ´øÀüÀÌ´Ù.when devilcatacomb_credit_stone. take  beginlocal setting = devilcatacomb_zone.setting() if item.vnum == setting.rag then if not party.is_party() thensay_title("Statue of Kud:")say("")say("You need a strong party to adventure into the")say("Devil´s Catacomb.")say("")returnelseif party.is_in_dungeon() thensay_title("Statue of Kud:")say("")say("Your Party is already in a dungeon.")say("")returnend item.remove()say_title("Statue of Kud:")say("")say("The entrance has been unlocked.")say("Pass it quickly!!")say("")wait()say_title("Statue of Kud:")say("")say("Here is where the real adventure starts.")say("")say("From now on you will only have one hour")say("to explore the Devil's Catacomb.")say("")wait()d.new_jump_party (setting.map_idx, setting.floor2_entry.x + setting.base.x  , setting.floor2_entry.y + setting.base.y )d.setqf2("devilcatacomb_zone","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]) devilcatacomb_zone.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 beginif d.select(get_server_timer_arg()) thend.notice ("You have 45 minutes left.")server_timer('devilcatacomb_30m_left_timer', 60 * 15, get_server_timer_arg())endend when devilcatacomb_30m_left_timer.server_timer beginif d.select(get_server_timer_arg()) thend.notice ("You have 30 minutes left.")server_timer('devilcatacomb_15m_left_timer', 60 * 15, get_server_timer_arg())endend when devilcatacomb_15m_left_timer.server_timer beginif d.select(get_server_timer_arg()) thend.notice ("You have 15 minutes left.")server_timer('devilcatacomb_5m_left_timer', 60 * 10, get_server_timer_arg())endend when devilcatacomb_5m_left_timer.server_timer beginif d.select(get_server_timer_arg()) thend.notice ("You have 5 minutes left.")server_timer('devilcatacomb_1m_left_timer', 60 * 4, get_server_timer_arg())endend when devilcatacomb_1m_left_timer.server_timer beginif d.select(get_server_timer_arg()) thend.notice ("You have 1 minute left.")server_timer ("devilcatacomb_0m_left_timer", 60 * 1, get_server_timer_arg())endend when devilcatacomb_0m_left_timer.server_timer beginif d.select(get_server_timer_arg()) thend.notice("Your time is up. You failed to release the Catacombs")d.notice("from the claws of evil.")d.set_warp_location (65, 5914, 992)server_timer('devilcatacomb_exit_timer', 7, get_server_timer_arg())endend function is_dc2_doors_clear ()local setting = devilcatacomb_zone.setting()local clear = truefor i = 1, 4 dolocal set_clear = truelocal mob_set = setting.dc2_door_set1[i]local set_size = setting.dc2_door_set_size[i]for j = 1, set_size doset_clear = set_clear and d.is_unique_dead (i.."_1_"..j)endif not set_clear thenset_clear = truemob_set = setting.dc2_door_set2[i]for j = 1, set_size doset_clear = set_clear and d.is_unique_dead (i.."_2_"..j)endendclear = clear and set_clearend return clearend -- ÇöȲ¼®À» Ŭ¸¯Çϸé 3Ãþ ÁøÀÔ ¿©ºÎ¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ°í-- ÁøÀԽà »ç½ÅÀÇÁõÇ¥¸¦ °Ë»çÇÑ´Ù.-- »ç½ÅÀÇ ÁõÇ¥°¡ ¾ø´Ù¸é ¹ÛÀ¸·Î ¿öÇÁµÈ´Ù.when devilcatacomb_floor2_stone.click beginlocal setting = devilcatacomb_zone.setting() if d.getf("devilcatacomb_floor2_stone_clicked") == 0 thenif not devilcatacomb_zone.is_dc2_doors_clear () and not is_test_server() thensay_title ("The Devil´s Catacomb:")say ("You first have to kill each door.")say ("")wait ()returnendsay_title("Tortoise Rock:")say("")say("As you observe the stone closely, you")say("encounter an inscription.")say("")wait()say_title("The Devil´s Catacomb:")say("")say("Only the one who possesses the shrunken head")say("may enter once the seal of three doors has")say("been broken.")say("")say_reward("If you do not possess this relic, you will")say_reward("be warped out from the Devil's Catacomb.")say("")wait()local s = select("Yes, let me enter.", "I don't have a Relic.")if s == 1 thenif d.getf("devilcatacomb_floor2_stone_clicked") == 0 thend.setf("devilcatacomb_floor2_stone_clicked", 1)d.setqf2("devilcatacomb_zone","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", "The Devil´s Catacomb:[ENTER][ENTER]You possess the shrunken head and you will now[ENTER]enter Level 3.[ENTER][ENTER]", "The Devil´s Catacomb:[ENTER][ENTER]You do not possess the shrunken head.[ENTER]You will now be warped out from[ENTER]the Devil's Catacomb..[ENTER][ENTER]")timer ("devilcatacomb_floor3_enter_timer", 7)endendelsesay_title("The Devil´s Catacomb:")say ("")say ("Please wait.")say ("")endend when devilcatacomb_floor3_enter_timer.timer beginlocal setting = devilcatacomb_zone.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("devilcatacomb_zone","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 doif (i != n)thend.set_unique("fake"..i, d.spawn_mob( setting.floor3_stone, position[i][1], position[i][2]))endend 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 poschat (position[n][1],position[n][2])end end when devilcatacomb3_stone.kill beginlocal setting = devilcatacomb_zone.setting()-- µ¹ÀÌ Æı«µÇ¸é ÁøÂ¥°¡ Á×¾ú´ÂÁö È®ÀÎÇغ»´Ù.-- ÁøÂ¥°¡ Á×¾úÀ¸¸é 4ÃþÀ¸·Î À̵¿ÇÑ´Ù.if d.is_unique_dead("real") thend.notice ("You have destroyed the correct metin stone. You will now enter Level 4.") d.setf ("level",4)d.setqf2("devilcatacomb_zone","level", 4)timer ("devilcatacomb_floor4_enter_timer", 3)elsed.notice ("This was a false metin stone. Find the correct one, quick!")endend when devilcatacomb_floor4_enter_timer.timer beginlocal setting = devilcatacomb_zone.setting()local i = number (1, 5)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[i])d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base4_regen.txt")d.spawn_goto_mob(70, 673, 94, 847)d.spawn_goto_mob(91, 948, 347, 564)d.spawn_goto_mob(401, 558, 272, 829)d.spawn_goto_mob(274, 713, 141, 807)d.spawn_goto_mob(68, 815, 313, 868)d.spawn_goto_mob(431, 935, 355, 840)d.spawn_goto_mob(430, 842, 499, 787) if (is_test_server()) thend.notice (setting.floor4_regen_file[i])endd.spawn_mob (setting.floor4_npc, setting.floor4_npc_pos[1], setting.floor4_npc_pos[2])end -- devilcatacomb_floor4_stone´Â Ŭ¸¯ ½Ã 4Ãþ¿¡¼­ 5ÃþÀ¸·Î À̵¿½ÃÅ°´Â npcÀÌ´Ù.when devilcatacomb_floor4_stone.click beginlocal setting = devilcatacomb_zone.setting()local n = number (1,5)say_title("The Devil´s Catacomb:")say("")say("YES, found the way out! Let´s go down to the 5th")say("level!")wait()if (is_test_server()) then-- devil_king poschat (setting.devil_king_pos[n][1], setting.devil_king_pos[n][2])endd.purge ()d.jump_all (setting.floor5_entry.x + setting.base.x, setting.floor5_entry.y + setting.base.y )d.setf ("level",5)d.setqf2("devilcatacomb_zone","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 devilcatacomb_devil_king.kill beginlocal setting = devilcatacomb_zone.setting()game.drop_item (setting.unlock_stone, 1)end -- »ç½Å±ÝÁ¦ºñ(30102)¿¡ ±ÝÁ¦ÇØü¼®ºÀÀ» µå·¡±×ÇÏ¸é ¸ðµç ¸ó½ºÅ͸¦ Á×ÀÌ°í-- 6ÃþÀ¸·Î À̵¿Çϴ ŸÀ̸Ӹ¦ µ¿ÀÛ½ÃŲ´Ù.when devilcatacomb_floor5_stone.take beginlocal setting = devilcatacomb_zone.setting()if item.vnum == setting.unlock_stone thenitem.remove ()d.notice("From the dephts of the Devil's Catacomb comes a furious brawl.")d.notice("The Grim Reaper has awakened!")-- 6ÃþÀ¸·Î À̵¿d.clear_regen()d.purge()timer("devilcatacomb_floor6_timer",2)endend when devilcatacomb_floor6_timer.timer beginlocal setting = devilcatacomb_zone.setting()d.setf("level",6)d.setqf2("devilcatacomb_zone","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 devilcatacomb_devil_great_king.kill beginserver_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 beginif d.select(get_server_timer_arg()) thenif d.count_monster() == 0 thensay_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."You have gained victory over Charon![ENTER]You will now enter the last Level[ENTER]of the Devil's Catacomb![ENTER]")server_timer ("devilcatacomb_floor7_timer", 3, get_server_timer_arg())elseserver_timer ("floor6_eli_check_timer_2", 5, get_server_timer_arg())endendend when floor6_eli_check_timer_2.server_timer beginif d.select(get_server_timer_arg()) thenif d.count_monster() == 0 thensay_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."You have gained victory over Charon![ENTER]You will now enter the last Level[ENTER]of the Devil's Catacomb![ENTER]")server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg())elseserver_timer ("floor6_eli_check_timer_1", 5, get_server_timer_arg())endendend when devilcatacomb_floor7_timer.server_timer beginif d.select(get_server_timer_arg()) thenlocal setting = devilcatacomb_zone.setting() d.setf("level",7)d.setqf2("devilcatacomb_zone","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 beginif 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) / 60d.notice("Kill Lord Gahnasel!")d.notice ("You have ".. t_m.." minutes left.")d.set_warp_location (0, 0, 0)endend -- 6Ãþ°ú ¸¶Âù°¡Áö·Î »ç¸¶ÈÖ(2598)ÀÌ Á×À¸¸é-- 7ÃþÀÇ Å¸À̸Ӱ¡ ÀÛµ¿ÇÑ´Ù.when 2598.kill beginnotice_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 beginif d.select(get_server_timer_arg()) thenif d.count_monster() == 0 thend.set_warp_location (65, 5914, 992)d.setqf2("devilcatacomb_zone","done", 1)say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."Lord Gahnasel has been killed. Finally[ENTER]peace can return to the Catacombs.[ENTER]You will now be warped back out.[ENTER]") clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg())elseserver_timer ("floor7_eli_check_timer_2", 5, get_server_timer_arg())endendend when floor7_eli_check_timer_2.server_timer beginif d.select(get_server_timer_arg()) thenif d.count_monster() == 0 thend.set_warp_location (65, 5914, 992)d.setqf2("devilcatacomb_zone","done", 1)say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."Lord Gahnasel has been killed. Finally[ENTER]peace can return to the Catacombs.[ENTER]You will now be warped back out.[ENTER]") clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg())server_timer("devilcatacomb_exit_timer", 30, get_server_timer_arg())elseserver_timer ("floor7_eli_check_timer_1", 5, get_server_timer_arg())endendend when devilcatacomb_exit_timer.server_timer beginif d.select(get_server_timer_arg()) thend.setqf2("devilcatacomb_zone","level", 0)d.setqf2("devilcatacomb_zone","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()endendend  --stateend   --quest 

Share this post


Link to post
Share on other sites

4 answers to this question

  • 0

Imagem colocada

 

"d.join(90)"

 

Teu mapa de catacumbas tem que ter index 90 e estar no mesmo core do mapa onde és teleportado.

Share this post


Link to post
Share on other sites
antiblock
diamwall
  • 0

Obrigado ! Resultou ! Graças a isso consegui aperceber-me de uma estupidez que me passou em branco. Nunca pensei ser tão obvio. O mapa não estava no Index.

Muito obrigado pela ajuda, +1 :)

Share this post


Link to post
Share on other sites
  • 0

Pelo que parece, depois de um reboot sem qualquer alteração na quest, surgiu um novo problema. Utilizo as mesmas quests postadas a cima, mas quando dou a chave azurite á estatua Kud, a chave desaparece e eu não sou teleportado.

Share this post


Link to post
Share on other sites
  • 0

Tenta modificar o d.new_jump_all(90, 3626, 12083) para d.jump_all(90, 3626, 12083)

 

 

Cumprimentos, Owsap

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this