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.
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:
E aqui está outra quest, que não sei se estará relacionada com o problema ou não.
Share this post
Link to post
Share on other sites