Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 07:04

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Problem] Devils Catacomb

Discussion on [Problem] Devils Catacomb within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
ondry147's Avatar
 
elite*gold: 0
Join Date: Apr 2012
Posts: 49
Received Thanks: 60
[Problem] Devils Catacomb

Hi... I have problem with devils catacomb...
All floor etc. is ok... I kill Azrael and notify the chat that Me and my group kill azrael... Then it teleports us (my group)away from map(devilscatacomb) and now crash server..
(in putty: conection refusen)
In syserr and syslog is not anything error.
Can you help me please?

Quest...
Code:
quest devilscatacomb begin
    state start begin
    
        when logout begin
            pc.remove_item(30311, pc.count_item(30311))
            pc.remove_item(30312, pc.count_item(30312))
            pc.remove_item(30313, pc.count_item(30313))
        end
        
        
        when login begin
            if pc.get_map_index() == 90 then
                if devilscatacomb.getLevelByCord() > 1 or not next_time_is_now() then
                
                    pc.warp((5913)*100, (993)*100, 65) -- 5913x993  591374x
                    
                end
                
                pc.set_warp_location(65, 5913, 993)
                
                say("Du musst den Seelenkristall-Schlüssel droppen")
                say("und dann auf die Statue des Kud ziehen, um in")
				say("die 2. Ebene zu gelangen...")
				say("")
				say_item_vnum(30311)
				say("") 
                
            elseif pc.get_map_index() >= (90 * 10000) then            
                pc.set_warp_location(65, 5913, 993)
            end
        end
        
        
        when 20367.chat."The Devil's Catacomb" with pc.is_gm() begin  --Enter the Devil Catacomb
            if pc.get_level() < 75 then
                say_title(mob_name(npc.get_race()) ..":")
				say("Du möchtest in die Katakomben des Teufels?")
                say("")
                say("So einfach geht das nicht, denn du hast")
                say("nicht die nötige Erfahrung dazu.")
				say("Komme am Besten wieder, wenn du Level 75")
                say("erreicht hast... ")
                    else
                        say_title(mob_name(npc.get_race()) ..":")
                        say("Du möchtest in die Katakomben des Teufels?")
                        say("")
						say("Ich kann dich gerne teleportieren, doch")
						say("ich möchte dich warnen: Es sind schon viele")
						say("eingetreten aber nicht mehr zurück gekommen!")
						say("")
						say("Soll ich dich ernsthaft teleportieren?")
						say("")
                        local s = select("Ja","Nein")
                        if s == 2 then
                            return
                        elseif s == 1 then
                            pc.warp(315300, 1209200)
                        end
                    end    
                end    
        
        
        when kill with pc.get_map_index() == 90 and pc.countitem(30311) < 1 begin
            local rnd = number(1,100)
            if rnd == 6 then
                game.drop_item_with_ownership(30311, 1)
            end
        end
        
        
        when 30101.take with item.vnum == 30311 begin --Teleport to 2nd Stage with the passenger ticket
        
            if party.is_party() then
            
                if party.is_leader() then
                    say("Das Eingangsportal wurde geöffnet.")
                    say("Geh schnell hindurch!")
                    wait()
                    say("Hier beginnt das wahre Abenteuer! Du hast")
                    say("jedoch nur eine Stunde Zeit, um die Devil's")
                    say("Catacomb zu erforschen.")
                    item.remove()
                    sys_log(0, "DC create try by "..pc.get_name())
                    d.join(90)
                else
                    say("Nur der Leiter der Gruppe darf bestimmen.")
                end
                
            else
                say("Ohne Gruppe kommst du nicht weiter.")
            end
            
        end
        
        
        when login with devilscatacomb.isInCatacomb() begin
            say("Zerstöre das Siegel dieses Tores, um die 3. Ebene")
            say("zu erreichen!")
            say("Du hast noch 60 Minute(n) Zeit.")
			d.spawn_mob(30103, 740, 227)
            loop_timer("item_check", 10)
            if party.is_leader() then
                d.set_regen_file("data/dungeon/dc/dc_regen1.txt")
                d.regen_file("data/dungeon/dc/dc_doors.txt")
                d.setf("level", 2) 
                server_timer("runtime", 6, pc.get_map_index())
            elseif pc.is_gm() and not party.is_party() then
                d.set_regen_file("data/dungeon/dc/dc_regen1.txt")
                d.regen_file("data/dungeon/dc/dc_doors.txt")
                d.setf("level", 2)
                server_timer("runtime", 6, pc.get_map_index())
            end
        end
        
        
        when item_check.timer with d.getf("level") == 3 begin
            if pc.countitem(30319) >= 1 then
                say("Du hast den Schrumpfkopf und wirst nun auf die")
                say("3. Ebene teleportiert.")
                pc.remove_item(30319, 1)
                timer("item_check_end", 2)
            else
                d.exit_all()
            end
        end
        
        
        when item_check_end.timer begin
            cleartimer("item_check")
        end
        
        
        when runtime.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.setf("time", get_time()+60*60*1)
                devilscatacomb.getTimeLeft()
                server_timer("runtime_end", 60*60, get_server_timer_arg())
            end
        end
        
        
        when runtime_end.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Die Zeit ist um.")
                d.exit_all()
            end
        end

        
        when 30103.click with devilscatacomb.isInCatacomb() and devilscatacomb.getLevelByCord() == 2 and npc.lock() begin
            say("Während du den Stein genauer untersuchst, kannst")
            say("du eine Gravur erkennen.")
            wait()
            say("Lediglich der Besitzer des Schrumpfkopfes")
            say("darf eintreten, nachdem die Siegel dreier Türen")
            say("aufgebrochen wurden.")
            say("Wenn du dieses Relikt nicht bei dir trägst,")
            say("wirst du aus der Devil's Catacomb teleportiert.")
			say("")
            wait()
            local s = select("Ja, lass mich eintreten!", "Nein, ich möchte nicht eintreten.")
            if s == 2 then
                return
            elseif s == 1 then
                if pc.count_item(30319) >= 1 then
                    npc.purge()
                    d.setf("level", 3)
                    d.purge()
                    d.clear_regen()
                    timer("dc_jump_3", 6)
                else
                    say("Du hast keinen Schrumpfkopf und wirst nun")
                    say("aus der Höhle teleportiert ...")
                    pc.warp(591374, 99325, 65)
                end
            end
        end
        
        
        when dc_jump_3.timer begin
            d.set_regen_file("data/dungeon/dc/dc_regen2.txt")
            d.notice("Suche den richtigen Metinstein und zerstöre ihn!")
            devilscatacomb.getTimeLeft()
            d.jump_all(4451, 12282)
            local positions = devilscatacomb.get3FloorStonePositions()
            for i = 1, 6 do
                d.set_unique("fake" .. i , d.spawn_mob(8037, positions[i][1], positions[i][2]))
            end
            d.set_unique("real", d.spawn_mob(8037, positions[7][1], positions[7][2]))
            server_loop_timer('dc_stone3_update', 10, pc.get_map_index())

        end
        
        
        when dc_stone3_update.server_timer begin
            if d.select(get_server_timer_arg()) then
                if not d.is_unique_dead("real") then
                    for i = 1, 6 do
                        if d.getf("fakedead" .. i) == 0 then
                            if d.unique_get_hp_perc("fake" .. i) < 30 then
                                if not d.is_unique_dead("fake" .. i) then
                                    d.purge_unique("fake" .. i)
                                end
                                d.setf("fakedead" .. i, 1)
                                d.notice("Du hast den falschen Metinstein zerstört. Finde den richtigen!");
                            end
                        end
                    end
                else
                    server_timer("dc_stone_end3", 5, get_server_timer_arg())
                    d.notice("Der richtige Metinstein wurde zerstört. Du darfst nun die 4. Ebene betreten.")
                end
            else
                server_timer('dc_stone3_stop_timer', 1, get_server_timer_arg())
            end
        end

        
        when dc_stone3_stop_timer.server_timer begin
            clear_server_timer('dc_stone3_update', get_server_timer_arg())
        end
        
        
        when dc_stone_end3.server_timer begin
            if d.select(get_server_timer_arg()) then
                clear_server_timer('dc_stone3_update', get_server_timer_arg())
                d.setf("level", 4)
                d.jump_all(3347, 12810)        
                d.clear_regen()
                d.set_regen_file("data/dungeon/dc/dc_regen3.txt")
                d.regen_file("data/dungeon/dc/dc_warps.txt")
                d.spawn_mob(30104, 500, 716)
            end
        end
        
        
        when 30104.click with devilscatacomb.isInCatacomb() and devilscatacomb.getLevelByCord() == 4  and npc.lock() begin
            npc.purge()
            say_in_map(pc.get_map_index(),"Du hast es geschafft! Hier ist der Ausgang des[ENTER]Labyrinths. Steige nun in die 5. Ebene hinab.")
            server_timer("dc4_enter", 6, pc.get_map_index())
        end
        
        
        when dc4_enter.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.jump_all(3918, 12939)
                
                d.set_regen_file("data/dungeon/dc/dc_regen4.txt")
                d.spawn_mob(30102, 848, 739)
                
                local mob_pos = { {1006, 649}, {979, 829}, {691, 822}, {714, 653}, {848, 593} }
                local rnd = number(1, 5)
                d.spawn_mob(2591, mob_pos[rnd][1], mob_pos[rnd][2])
                
                server_timer("dc4_message", 3, get_server_timer_arg())
            end
        end
        
        
        when dc4_message.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Besiege die Dämonenwachen, um das Fratzen-Totem zu erhalten. Es dient dir als Schlüssel zur 6. Ebene.")
                devilscatacomb.getTimeLeft()
            end
        end
        
        
        when 30102.take with item.vnum == 30312 begin
			say("Du hast das Fratze-Totem.")
            say("Nun kannst du in die nächste Ebene!")
			say("")
			wait()
			say("Viel Glück!")
            item.remove()
			npc.purge()
            d.clear_regen()
            timer("dc_level_5", 6)
        end
        
        
        when dc_level_5.timer begin
            d.jump_all(4312, 12799)
            timer("dc_level_5_start", 5)
        end
        
        
        when dc_level_5_start.timer begin
            d.setf("level", 5)
            d.notice("Besiege Charon und seine Schergen!")
            devilscatacomb.getTimeLeft()
            d.regen_file("data/dungeon/dc/dc_regen5.txt")
            d.spawn_mob(2597, 1301, 699)
        end
        
        
        when kill begin
            if devilscatacomb.isInCatacomb() then
                if npc.race == 2597 then
                    if d.count_monster() < 1000 then
                        d.setf("level", 6)
                        d.clear_regen()
                        timer("dc_level_5_end", 12)
                    else
                        if d.getf("charon_spawns") < 4 then
                            d.spawn_mob(2597, 1301, 699)
                            d.setf("charon_spawns", d.getf("charon_spawns") + 1)
                        else
                            d.notice("Du hast versagt Charon hat dich mit seinen Schergen")
                            d.notice("überlistet. Du verlässt nun die Höhle")
                            d.exit_all()
                        end
                    end
                end
                
                if npc.race == 2598 and  d.getf("level") == 6 then
                    clear_server_timer("runtime", pc.get_map_index())
                    clear_server_timer("runtime_end", pc.get_map_index())
                    notice_all(pc.get_name().." a "..tonumber(party.get_near_count()-1).." další členové porazili pána pekel - Azrela!")
                    timer("glory_message", 6)
                end
                
                if npc.race == 2591 then
                    game.drop_item_with_ownership(30312, 1)
                end
            end
        end
        
        
        when dc_level_5_end.timer begin
            say_in_map(pc.get_map_index(),"Du hast Charon besiegt! Nun wirst du[ENTER]zur letzten Ebene der Devil's Catacomb[ENTER]teleportiert.")
            timer("dc_level_6", 3)
        end
        
        
        when dc_level_6.timer begin
            d.jump_all(3145, 13187)
            timer("dc_level_6_into", 3)
        end
        
        when dc_level_6_into.timer begin
            d.regen_file("data/dungeon/dc/dc_regen6.txt")
            d.spawn_mob(2598, 74, 1103)
            d.notice("Besiege Azrael!")
        end
        
        when glory_message.timer begin
            local text = "Azrael wurde besiegt. Endlich herrscht[ENTER]Frieden in der Devil's Catacomb. Du wirst nun[ENTER]an die Oberfläche teleportiert."
            say_in_map(pc.get_map_index(), text)
            timer("dc_end", 20)    
        end
        
        
        when dc_end.timer begin
            d.exit_all()
        end
        
    end
    
    state _FUNC_ begin
    
        function getLevelByCord()
        
            if pc.get_local_x() > 30 and pc.get_local_y() > 45 and pc.get_local_x() < 450 and pc.get_local_y() < 450 then
                return 1
                
            elseif pc.get_local_x() > 540 and pc.get_local_y() > 39 and pc.get_local_x() < 1000 and pc.get_local_y() < 462 then
                return 2
                
            elseif pc.get_local_x() > 1048 and pc.get_local_y() > 35 and pc.get_local_x() < 1455 and pc.get_local_y() < 458 then
                return 3
                
            elseif pc.get_local_x() > 31 and pc.get_local_y() > 541 and pc.get_local_x() < 564 and pc.get_local_y() < 1058 then
                return 4
                
            elseif pc.get_local_x() > 650 and pc.get_local_y() > 540 and pc.get_local_x() < 1050 and pc.get_local_y() < 955 then
                return 5
                
            elseif pc.get_local_x() > 1175 and pc.get_local_y() > 576 and pc.get_local_x() < 1420 and pc.get_local_y() < 810 then
                return 6
                
            else
                return 0
            end
            
        end
        
        function isInCatacomb()
        
            if pc.get_map_index() >= (90 * 10000) and pc.in_dungeon() then
                return true
            else
                return false
            end
            
        end
        
        function get3FloorStonePositions()
        
            local positions = 
            {
                {1365, 352}, {1349, 150}, {1133, 167}, {1151, 364},
                {1234, 136}, {1255, 371}, {1132, 245},
            }
            
            for i = 1, 6 do
            
                local j = number(i, 7)
                
                if i != j then
                
                    local t = positions[i];
                    positions[i] = positions[j];
                    positions[j] = t;
                    
                end
                
            end 
            
            return positions
            
        end
        
        function getTimeLeft()
        
            local secondsLeft = (d.getf("time") - get_time())
            local minutesLeft = math.ceil(secondsLeft / 60)
            
            d.notice("Du hast noch "..minutesLeft.." Minute(n) Zeit.")
        
        end
        
    end
end
Thanks and sorry for by bad english.
ondry147 is offline  
Reply


Similar Threads Similar Threads
[HELP]Devils Catacomb Problem
05/30/2013 - Metin2 Private Server - 3 Replies
Guten Abend, Und zwar könnte mir jemand bei Devils Catacomb Behilflich sein? :/ Also alles eingefügt aber bekomme nicht hin das der npc anklickbar ist & dan da die quest erscheint.. Wäre sehr nett.. Mfg Ferox.
[Problem]Devils Catacomb!
11/27/2012 - Metin2 Private Server - 1 Replies
Hey Community, es geht darum, dass ich heute den Devil's Catacomb eingefügt hab Hier der Thread: http://www.elitepvpers.com/forum/metin2-pserver-g uides-strategies/2063156-release-devils-catacomb-f ull-entbuggt.html Alles geklappt und so, aber wenn ich mich zu der Map teleportiert habe, dann ist alles schwarz und sobald ich mich bewege kriege ich kick! Was habe ich falsch gemacht?
Problem mit Devils catacomb
11/24/2012 - Metin2 Private Server - 4 Replies
Neues problem-.- Undzwar, nun funtzt die map zwar mit Index 206 aber sie ist ne 99% savezone, nur am anfang wo der teleporter steht kann ich mobs spawnwn/erscheinen welche, wen ich 3 meter wegrenne kann man nixmehr spawnen und die map ist leer.. weis einer wie ich das mit der savezone ändern kann??
Problem with Devils Catacomb
09/09/2012 - Metin2 Private Server - 0 Replies
Hello Comunity. Today i tried to install Devils Catacomb into my server acording to Topic : http://www.elitepvpers.com/forum/metin2-pserver-gu ides-strategies/2063156-release-devils-catacomb-fu ll-entbuggt.html Everything goes fine but when i transfer file metin2_map_devilscatacomb at Serverside, i can't log in with my charackter. Can anyone help me?
Devils Catacomb problem
04/04/2012 - Metin2 Private Server - 0 Replies
Hey. ich habe mir eben versucht die Devils Catacomb einzufügen, Clientside hat alles geklappt, doch jetz habe ich serverside eingefügt, wie es HIER beschrieben ist... Jetzt will ich mich einloggen, und werde wieder zur serverwahl geschmissen. Was kann das sein??



All times are GMT +1. The time now is 07:04.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.