Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 17:52

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

Advertisement



Quest Probleme Rotdrachen-Festung

Discussion on Quest Probleme Rotdrachen-Festung within the Metin2 Private Server forum part of the Metin2 category.

Closed Thread
 
Old   #1
 
elite*gold: 0
Join Date: Mar 2017
Posts: 13
Received Thanks: 1
Quest Probleme Rotdrachen-Festung

Hallo habe folgendes Problem

Dieses RUN Quest funktioniert nicht ich werde immer wd zurück teleportiert...
Kann mir jemand helfen Danke schonmal..


Code:
define BLOCK_DOOR 20387
define DUNGEON_MAN 20385
define DUNGEON_MAN_DIR 0
define DUNGEON_MAP_INDEX 351
define ENTER_LIMIT_TIME 30
define ENTRY_MAN 20394
define ENTRY_MAP_INDEX 62
define FINAL_BOSS 6091
define LEVEL2_KEY 30329
define LEVEL2_STONE 20386
define LEVEL4_TARGET 6051
define LEVEL5_REALKEY 30330
define LEVEL5_STONE 20386
define LEVEL5_GEN_LIMIT 100
define LEVEL6_TARGET 8057
define LEVEL_CUT 100
define MOB_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/"
define IN_DOOR 20388
define NPC_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/npc.txt"
define TICKET_GROUP 10033
define LIMITED_PASS_TICKET 71175

quest flame_dungeon begin
    state start begin
        when ENTRY_MAN.click with pc.get_level() >= 100 begin
            pc.give_item2(LIMITED_PASS_TICKET, 1)
            set_state(run)
        end
        
        when flame_dungeon_45m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 45),d.notice)
                notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
            end
        end
        when flame_dungeon_30m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 30),d.notice)
                notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
            end
        end
        when flame_dungeon_15m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 15),d.notice)
                notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
            end
        end
        when flame_dungeon_5m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 5),d.notice)
                notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
            end
        end
        when flame_dungeon_1m_left_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 1),d.notice)
                notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
            end
        end
        when flame_dungeon_0m_left_timer.server_timer begin
            local setting = flame_dungeon.setting()
            if d.select(get_server_timer_arg()) then        
                notice_multiline(gameforge.flame_dungeon._190_notice,d.notice)
                notice_multiline(gameforge.flame_dungeon._200_notice,d.notice)
                server_timer("dungeon_end_timer",10,d.get_map_index())    
            end
        end
        
        when dungeon_end_timer.server_timer begin -- ?? ??? (??? ????)
            local setting = flame_dungeon.setting()
            if d.select(get_server_timer_arg()) then
                flame_dungeon.clear_timer(d.get_map_index())        
                d.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) 
                d.exit_all()
                d.setf("party_leader_pid", 0)
            end
        end

        when killed_A_1.server_timer begin -- ??? ???1 (level1,level3)
            if d.select(get_server_timer_arg()) then
                if d.count_monster() <= 0 then -- 1?? ??? ???
                    if d.getf("level") == 11 then
                        notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
                        notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
                    else
                        notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
                        notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
                    end
                    d.setf("level",0)
                else 
                    server_timer ("killed_A_2", 6, get_server_timer_arg())
                end
            end
        end
        when killed_A_2.server_timer begin -- ??? ???2 (1? 2 ?????? ???)
            if d.select(get_server_timer_arg()) then
                if d.count_monster() <= 0 then -- 1?? ??? ???
                    if d.getf("level") == 11 then
                        notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
                        notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
                    else
                        notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
                        notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
                    end
                    d.setf("level",0)
                else 
                    server_timer ("killed_A_1", 6, get_server_timer_arg())
                end
            end
        end
    end

    state run begin
    
    function setting()
        return 
        {
        ["bossroom_entry_pos"] = {8109,6867},
        ["boss_pos"] = {686,637},
        ["doors_pos"] = {
            {320,394},
            {293,359},
            {333,321},
            {378,320},
            {400,355},
            {394,401}
        },
        ["idoors_pos"] = {
            {268,447},
            {234,359},
            {300,264},
            {454,217},
            {470,355},
            {467,469}
        },
        ["doors_dir"] = {135,90,210,152,90,223},
        ["idoors_dir"] = {135,90,210,135,90,239},
        ["dungeon_entry_pos"] = {7762, 6739},-- ??? ?? ???? ?
        ["DUNGEON_MAN_bpos"] = {690,722},
        ["DUNGEON_MAN_pos"] = {354,362},
        ["LEVEL2_STONE_pos"] = {195,352},
        ["LEVEL4_TARGET_pos"] = {470,175},
        ["LEVEL5_STONE_pos"] = {
                {486, 345},
                {511, 336},
                {525, 349},
                {521, 365},
                {503, 372},
                {486, 365},
                {500, 354}
        },
        ["LEVEL6_TARGET_pos"] = {511,480},
        ["outside_entry_pos"] = {6142,7068}, --??????? ??? ?
        ["YAK_pos"] = {376, 397} -- ?? ??
        
        }
    end
    function is_flamed(idx) -- ???? ??? ?? 
        return idx >= DUNGEON_MAP_INDEX * 10000 and idx < (DUNGEON_MAP_INDEX + 1) *10000
    end
    function make_dungeon() -- ?? ???
        local setting = flame_dungeon.setting()
        d.new_jump_party(DUNGEON_MAP_INDEX, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
        -- d.spawn_mob_ac_dir(DUNGEON_MAN, setting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],DUNGEON_MAN_DIR)
        -- d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2])
        d.regen_file(NPC_REGEN_FILE_PATH)
        d.setf("level",0)
        for i=1,6 do
            d.set_unique("door"..i, d.spawn_mob_ac_dir(BLOCK_DOOR, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))
        end
        for i=1,6 do
            d.set_unique("idoor"..i, d.spawn_mob_ac_dir(IN_DOOR, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i]))
        end
        d.setf("clear_count",0)
        d.setf("started",0)
        d.setf("dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??
    end    
    function go_boss() -- ??? ?? 
        local setting = flame_dungeon.setting()
        if pc.get_level() < 104 then --????
            -- syschat(gameforge.flame_dungeon._580_notice)
            say(gameforge.flame_dungeon._580_notice)
            return
        else
            -- say_title(gameforge.flame_dungeon._010_say)
            say_title("Schlund des Am-heh")
            say("")
            say("Möchtest du durch den Schlund des Am-heh gehen und")
            say("deinem Schicksal begegnen?")
            local warp = select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select)
            if warp == 1 then
                d.notice("Besiegt Razador, den König über Feuer und Asche.")
                d.setf("level",17)
                d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
                d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_fild_boss.txt")
            --    d.spawn_mob(DUNGEON_MAN,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2])
                d.spawn_mob(FINAL_BOSS,setting.boss_pos[1],setting.boss_pos[2])
            end
        
        end
    end
    function level_clear() -- ?? ???, ?????, ?????
        d.setf("level",0)
        d.clear_regen()
        d.purge_area(750000,620000,817400,689400) -- ??? -- d.purge() ????
    end
    function clear_timer(inx) -- ??? ????
        clear_server_timer ("flame_dungeon_0m_left_timer", inx)
        clear_server_timer ("flame_dungeon_1m_left_timer", inx)
        clear_server_timer ("flame_dungeon_5m_left_timer", inx)
        clear_server_timer ("flame_dungeon_10m_left_timer", inx)
        clear_server_timer ("flame_dungeon_15m_left_timer", inx)
        clear_server_timer ("flame_dungeon_30m_left_timer", inx)
        clear_server_timer ("flame_dungeon_45m_left_timer", inx)
        clear_server_timer ("killed_A_1", inx)
        clear_server_timer ("killed_A_2", inx)
        clear_server_timer ("flame_dungeon_ticket_remove", inx)    
    end
    
        when login begin
            local idx = pc.get_map_index()
            local setting = flame_dungeon.setting()
            if idx == DUNGEON_MAP_INDEX then
                pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
            elseif flame_dungeon.is_flamed(idx) then -- ?? ??, ??? ?? ??
            ------------------------------------------------------------------------------------------------------------------------------------------------------
            --??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
            --???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
            ------------------------------------------------------------------------------------------------------------------------------------------------------
                -- pc.set_warp_location(0, 0 , 0) --???? ?? ???? ??? ?? ??
                pc.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
                local ticketGroup = {71093, 1, 71130, 1}
                if d.getf("dungeon_enter") == 0 then -- ???? ???
                    local canPass = false
                    for i=1, table.getn(ticketGroup),2 do 
                        if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
                            canPass = true
                            break
                        end
                    end

                    if get_global_time() - pc.getf("flame_dungeon","exit_time") < ENTER_LIMIT_TIME * 60 then -- ??????? ????
                        notice_multiline(gameforge.flame_dungeon._050_notice,d.notice)
                        say(gameforge.flame_dungeon._060_say)
                        timer("flame_dungeon_warp_timer", 5)
                    elseif not canPass then
                        notice_multiline(gameforge.flame_dungeon._070_notice,d.notice)
                        say(gameforge.flame_dungeon._080_say)
                        timer("flame_dungeon_warp_timer", 5)
                    elseif pc.get_level() < 100 then
                        notice_multiline(gameforge.flame_dungeon._090_notice,d.notice)
                        say(gameforge.flame_dungeon._100_say)
                        timer("flame_dungeon_warp_timer", 5)
                    end
                elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ????? ??? ???????
                    
                    for i=1, table.getn(ticketGroup),2 do 
                        if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
                            pc.remove_item(ticketGroup[i], ticketGroup[i+1])
                            break
                        end
                    end
                    pc.setf("flame_dungeon","ticket_delete",1)
                end
            else
                pc.setf("flame_dungeon","ticket_delete",0)
            end
        end
        when flame_dungeon_warp_timer.timer begin
            local setting = flame_dungeon.setting()
            pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
        end
        when logout begin
            local idx = pc.get_map_index()
            if flame_dungeon.is_flamed(idx) then 
                if d.getf("dungeon_enter") == 1 then -- ???? ?? ?? ? ????
                    pc.setf("flame_dungeon","exit_time",get_global_time()) -- ???? ???? ??? ??? ??, ?? ???? ??? or ?? ???? ???
                end
                

            end
        end
        when ENTRY_MAN.chat.gameforge.flame_dungeon._110_npcChat begin
        
            local setting = flame_dungeon.setting()
            if party.is_party() then
                -- ?? ?? ?? ?? ??? ?????
                local party_check = 0
                if d.find(party.getf("dungeon_index")) then
                    party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
                end
                
                if d.find(party.getf("dungeon_index")) and party_check then
                    if get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then -- ?? ?? 5? ??
                        local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
                        if dungeon_level == 17 then -- ??
                            pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party.getf("dungeon_index"))
                        else
                            pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party.getf("dungeon_index"))
                        end
                    else -- 5? ???? ? ?? ??
                        say_title(mob_name(ENTRY_MAN))
                        say(gameforge.flame_dungeon._590_say)
                    end
                else
                    local pids = {party.get_member_pids()}
                    local noTicketMembers = {}
                    local notEnoughLevelMembers = {}
                    local ticketCheck = true
                    local levelCheck = true
                    local ticketGroup = {71175, 1, 71130, 1}
                    for i, pid in next, pids, nil do
                        q.begin_other_pc_block(pid)
                        local canPass = false
                        for idx=1, table.getn(ticketGroup),2 do 
                            if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
                                canPass = true
                                break
                            end
                        end
                        
                        if not canPass then
                            table.insert(noTicketMembers, pc.get_name())
                            ticketCheck = false
                        end
                        if pc.level < LEVEL_CUT then
                            table.insert(notEnoughLevelMembers, pc.get_name())
                            levelCheck = false
                        end
                        q.end_other_pc_block()
                    end

                    if not ticketCheck then
                        say_title("Die Rotdrachen-Festung ~ Dungeon")
                        say("")
                        say_reward("Betreten fehlgeschlagen!")
                        say("")
                        say("Um die Rotdrachen-Festung zu betreten,")
                        say("benötigt jedes Mitglied der Gruppe einen")
                        say("Passierschein. Folgende Spieler tragen derzeit")
                        say("keinen bei sich:")
                        for i, name in next, noTicketMembers, nil do
                            say(color(1,1,0), "  ~  "..name)
                        end
                        if levelCheck then
                            return
                        else
                            wait()
                        end
                    end

                    if not levelCheck then
                        say_title("Die Rotdrachen-Festung ~ Dungeon")
                        say("")
                        say_reward("Betreten fehlgeschlagen!")
                        say("")
                        say("Um die Rotdrachen-Festung zu betreten,")
                        say("muss jedes Mitglied der Gruppe Level 100")
                        say("erreicht haben. Folgende Spieler haben derzeit")
                        say("das Level nicht erreicht:")
                        for i, name in next, notEnoughLevelMembers, nil do
                            say(color(1,1,0), "  ~  "..name)
                        end
                        return
                    end

                    if party.is_leader() then
                        say_title("Die Rotdrachen-Festung ~ Dungeon")
                        say("")
                        say("Einen Kampf mit Razador aufnehmen.")
                        say("")
                        say_reward("Möchtest du die Rotdrachen-Festung betreten?")
                        local warp = select(gameforge.flame_dungeon._130_select,gameforge.flame_dungeon._140_select)
                        if warp == 1 then
                            if party.is_map_member_flag_lt("exit_time", get_global_time() - ENTER_LIMIT_TIME * 60 ) then
                                flame_dungeon.make_dungeon()
                            else
                                --say("test : ???? ?? ????? ??? ?????.")
                                say_title("Die Rotdrachen-Festung ~ Dungeon")
                                say("")
                                say_reward("Betreten fehlgeschlagen!")
                                say("")
                                say("Die Wartezeit für den Wiedereintritt in die")
                                say("Rotdrachen-Festung ist noch nicht abgelaufen. ")
                                say("Verb. Zeit: "..LIB_duration(pc.getf("flame_dungeon","exit_time") - get_global_time()).."")
                            end
                        end
                        
                        party.setf("flame_dungeon_boss_kill_count", 0)
                        
                    else
                        say(gameforge.flame_dungeon._150_say)
                    end
                end
            else
                say_title("Die Rotdrachen-Festung ~ Dungeon")
                say("")
                say_reward("Betreten fehlgeschlagen!")
                say("")
                say("Ich schätze deinen Mut, doch alleine wirst du in")
                say("der Rotdrachen-Festung in dein Verderben rennen.")
                say("Stelle eine starke Gruppe zusammen und ich werde")
                say("dir Einlass gewähren.")
            end
        end
        -- when ENTRY_MAN.chat."Test : ?????" with is_test_server() begin -- ????
            -- local setting = flame_dungeon.setting()
            -- pc.setf("flame_dungeon","fdRtest",1)
            -- pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, DUNGEON_MAP_INDEX)
        -- end
        
        
        when ENTRY_MAN.chat."TEST : Init time limit init" with is_test_server() begin -- ????
            pc.setf("flame_dungeon","exit_time",get_global_time()-3550)
            say("Done")
        end
        -- when DUNGEON_MAN.chat."Test : ?? ??" with is_test_server() begin -- ????
            -- say("?? ??? : "..d.count_monster())
            -- say("level : "..d.getf("level"))
            -- say("Dmap index : "..d.get_map_index())
            -- say("Pmap index : "..pc.get_map_index())
            -- say("access limit : "..pc.getf("flame_dungeon","exit_time"))
            -- say("global time : "..get_global_time())
            -- if flame_dungeon.is_flamed(d.get_map_index()) then
                -- say("in dungeon") -- is_flamed ?? ??
            -- end
            -- if d.is_unique_dead("stone1") then
                -- say("stone1 is dead")
            -- else
                -- say("stone1 is not dead")
            -- end
        -- end
        -- when DUNGEON_MAN.chat."????" begin -- ????
            -- say("??? ???")
            -- flame_dungeon.clear_timer(d.get_map_index())
            -- flame_dungeon.make_dungeon()
        -- end
        when DUNGEON_MAN.chat."Test : Boss Room" with is_test_server() begin -- ????
            flame_dungeon.go_boss()
        end
        
        -- < ?? ?? ???>
        -- when DUNGEON_MAN.chat."???" begin -- ???? ??? ?? ? ?? ???
            -- local setting = flame_dungeon.setting()
            -- say("??? ????????")
            -- local warp = select("??","??")
            -- if warp == 1 then
                -- pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
            -- end
        -- end
        
        -- <<<< ?? ??>>>> --
        when DUNGEON_MAN.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'? x?? ?? ??? ?? ? ?? ?? , '1x'? x?? ?? ??? ???
            local setting = flame_dungeon.setting()
            if d.getf("started") == 0 then
                say_title("Schlund des Am-heh")
                say("")
                say_reward("Der Schlund des Am-heh wurde erweckt.")
                say("")
                say("Nun kommt niemand mehr herein – oder heraus.")
                say("Die Tore der Rotdrachen-Festung schließen sich für")
                say("eine Stunde.")
                wait()
                d.setf("started",1)
                -- ???? ?????? ??? ??? exit timer? ???? ???? ????? ????? ????? ?
                server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
                notice_multiline(gameforge.flame_dungeon._250_notice,d.notice)
                notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                
                -- ??? ??? ??
                -- ?? ?? ??? ?? ??? ???? ??? ???? ??? ??? ????.
                local pids = {party.get_member_pids()}
                local ticketGroup = {71093, 1, 71130, 1}
                for i, pid in next, pids, nil do
                    q.begin_other_pc_block(pid)
                    local canPass = false
                    for idx=1, table.getn(ticketGroup),2 do 
                        if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
                            canPass = true
                            pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
                            break
                        end
                    end
                    
                    if not canPass then
                        pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
                    end
                    q.end_other_pc_block()
                end
                d.setqf2("flame_dungeon","ticket_delete",1)
                d.setf("dungeon_enter",1)
                
                -- ??? ??? ??? ?? ??? ????.
                party.setf("dungeon_index", d.get_map_index())
                d.setf("party_leader_pid", party.get_leader_pid())
            end
            if d.getf("level") < 7 then --???? ???
                if d.getf("clear_count") == 6 then -- ? ??? ??? ???
                    d.setf("level",7)
                else
                    local rand = number(1,6)--???? ????? ?? ???? ?? ?? ?????? ???
                    local setlev = 0
                    d.setf("level",7) -- ?? ?? ??? ?? ??? ?????? ??? ????? ????
                    for i=1,50 do
                        setlev = setlev + 1
                        if setlev > 6 then
                            setlev = 1
                        end
                        if not d.is_unique_dead("door"..setlev) then
                            rand = rand - 1
                            if rand == 0 then
                                d.setf("level",setlev)
                                d.setf("clear_count",d.getf("clear_count")+1)
                                break
                            end    
                        end
                    end
                end
            end
                if d.getf("level") == 1 then
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Aufgabe: Wagt euch in den Ring der Dämonen und")
                    say("geht als Sieger hervor.")
                    notice_multiline(gameforge.flame_dungeon._260_say,d.notice)
                    d.kill_unique("door1")
                    d.kill_unique("idoor1")
                    d.setf("level",11)
                    d.regen_file (MOB_REGEN_FILE_PATH.."fd_a.txt")
                        
                    server_timer ("killed_A_1", 12, d.get_map_index())
                elseif d.getf("level") == 11 then
                    say(gameforge.flame_dungeon._270_say)
                    say_title(gameforge.flame_dungeon._280_sayTitle .. d.count_monster())
                elseif d.getf("level") == 2 then
                        say_title("Schlund des Am-heh")
                        say("")
                        say("Aufgabe: Findet das goldene Zahnrad und löst damit")
                        say("den verborgenen Mechanismus in der Stele der Isfet")
                        say("aus.")
                        notice_multiline(gameforge.flame_dungeon._290_say,d.notice)
                        d.spawn_mob(LEVEL2_STONE, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ??? ??
                        d.kill_unique("door2")
                        d.kill_unique("idoor2")
                        d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_b.txt")
                        d.setf("level",12)
                elseif d.getf("level") == 12 then
                    say(gameforge.flame_dungeon._310_say)
                elseif d.getf("level") == 3 then
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Aufgabe: Wagt euch in den Ring der Dämonen und")
                    say("geht als Sieger hervor.")
                    notice_multiline(gameforge.flame_dungeon._260_say,d.notice)
                    d.kill_unique("door3")
                    d.kill_unique("idoor3")
                    d.setf("level",13)
                    d.regen_file (MOB_REGEN_FILE_PATH.."fd_c.txt")
                    server_timer ("killed_A_1", 12, d.get_map_index())
                elseif d.getf("level") == 13 then
                    say(gameforge.flame_dungeon._270_say)
                    say_title(gameforge.flame_dungeon._280_sayTitle..d.count_monster())
                elseif d.getf("level") == 4 then -- 474 178
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Aufgabe: Besiegt Ignator, Bewacher der Glut.")
                    notice_multiline(gameforge.flame_dungeon._320_notice,d.notice)
                    d.setf("level",14)
                    d.kill_unique("door4")
                    d.kill_unique("idoor4")
                    d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_d.txt")
                    d.spawn_mob(LEVEL4_TARGET,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- ????? ??
                elseif d.getf("level") == 14 then
                    say(gameforge.flame_dungeon._330_say)
                    say(gameforge.flame_dungeon._340_say)
                elseif d.getf("level") == 5 then -- 510 355
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Aufgabe: Sucht nach den Steinen der Maat und zieht")
                    say("sie in der richtigen Reihenfolge auf die sieben")
                    say("Stelen der Isfet.")
                    say("Wendet ihr den Stein der Maat auf der falschen")
                    say("Stele an, zerbricht er.")
                    notice_multiline(gameforge.flame_dungeon._350_say,d.notice)
                    notice_multiline(gameforge.flame_dungeon._360_say,d.notice)
                    d.kill_unique("door5")
                    d.kill_unique("idoor5")
                    d.setf("level",15)
                    d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
                    local vis = { 0,0,0,0,0,0,0}
                    for i=1,7 do
                        vis[i] = 0
                    end
                    for i = 1, 7 do -- ???? ???
                        local ran = number(1,7)
                        local st = 0
                        for j = 1, 50 do
                            st = st + 1
                            if st > 7 then
                                st = 1
                            end
                            if vis[st] == 0 then
                                ran = ran - 1
                                if ran == 0 then
                                    vis[st] = 1
                                    d.set_unique("stone5_"..st, d.spawn_mob(LEVEL5_STONE, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
                                    break
                                end
                            end
                        end
                    end  
                elseif d.getf("level") == 15 then
                    say(gameforge.flame_dungeon._370_say)
                elseif d.getf("level") == 6 then -- 507 490
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Aufgabe: Nur wer die sengende Hitze nicht scheut,")
                    say("wird den Metin des Fegefeuers zerstören.")
                    notice_multiline(gameforge.flame_dungeon._380_say,d.notice)
                    d.setf("level",16)
                    d.kill_unique("door6")
                    d.kill_unique("idoor6")
                    d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_f.txt")
                    d.spawn_mob(LEVEL6_TARGET, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??
                elseif d.getf("level") == 16 then
                    say(gameforge.flame_dungeon._390_say)
                    say(gameforge.flame_dungeon._400_say)
                elseif d.getf("level") == 7 then
                    -- setskin(NOWINDOW)
                    flame_dungeon.go_boss()
                else
                    say(gameforge.flame_dungeon._410_say)
                end
            npc.unlock()        
        end
    
        when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2?? ??? ?? ??
            local i = number(1, 100) -- 100?? 1 ??? ????
            if i == 1 then
                game.drop_item (LEVEL2_KEY, 1)
            end
        end
        when LEVEL2_STONE.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == LEVEL2_KEY and d.getf("level") == 12 begin -- 2?? ?? ????
            local i = number(1, 5) -- 5?? 1 ??? ?? ??
            if i == 1 then
                npc.purge()
                item.remove()
                notice_multiline(gameforge.flame_dungeon._440_notice,d.notice)
                notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
                flame_dungeon.level_clear()
            else
                item.remove()
                say_title("Schlund des Am-heh")
                say("")
                say("Dieses Zahnrad war eine Fälschung und wurde")
                say("zerstört. Findet das Original.")
            end
        end

        when LEVEL4_TARGET.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
            notice_multiline(gameforge.flame_dungeon._460_notice,d.notice)
            notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
            flame_dungeon.level_clear()
        end

        when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5?? ??? ?? ??
            local i = number(1, 30) -- 30?? 1 ??? ????
            if i == 1 then
                game.drop_item (LEVEL5_REALKEY, 1)
            end
        end
        when LEVEL5_STONE.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == LEVEL5_REALKEY and d.getf("level") == 15 begin -- 5?? ???? ????
            local setting = flame_dungeon.setting()
            if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
                npc.purge()
                item.remove()
                say_title("Schlund des Am-heh")
                say("")
                say("Das war eine weise Wahl. Zerstört nun die nächste")
                say("Stele.")
                d.setf("stonekill",2) -- 2? ?? ???
                if d.count_monster() < LEVEL5_GEN_LIMIT then
                    d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_2") then 
                if d.getf("stonekill") == 2 then -- 2??? ?? ??? 2???? ??? ??? ?
                    npc.purge()
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Das war eine weise Wahl. Zerstört nun die nächste")
                    say("Stele.")
                    d.setf("stonekill",3)
                    if d.count_monster() < LEVEL5_GEN_LIMIT then
                        d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
                    end
                else
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Falsche Reihenfolge. Der Stein der Maat wurde")
                    say("dabei zerstört.")
            --        say("2?")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
                if d.getf("stonekill") == 3 then
                    npc.purge()
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Das war eine weise Wahl. Zerstört nun die nächste")
                    say("Stele.")
                    d.setf("stonekill",4)
                    if d.count_monster() < LEVEL5_GEN_LIMIT then
                        d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
                    end
                else
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Falsche Reihenfolge. Der Stein der Maat wurde")
                    say("dabei zerstört.")
            --        say("3?")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
                if d.getf("stonekill") == 4 then
                    npc.purge()
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Das war eine weise Wahl. Zerstört nun die nächste")
                    say("Stele.")
                    d.setf("stonekill",5)
                    if d.count_monster() < LEVEL5_GEN_LIMIT then
                        d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
                    end
                else
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Falsche Reihenfolge. Der Stein der Maat wurde")
                    say("dabei zerstört.")
                --    say("4?")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
                if d.getf("stonekill") == 5 then
                    npc.purge()
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Das war eine weise Wahl. Zerstört nun die nächste")
                    say("Stele.")
                    d.setf("stonekill",6)
                    if d.count_monster() < LEVEL5_GEN_LIMIT then
                        d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
                    end
                else
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Falsche Reihenfolge. Der Stein der Maat wurde")
                    say("dabei zerstört.")
            --        say("5?")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
                if d.getf("stonekill") == 6 then
                    npc.purge()
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Das war eine weise Wahl. Zerstört nun die letzte")
                    say("Stele.")
                    d.setf("stonekill",7)
                    if d.count_monster() < LEVEL5_GEN_LIMIT then
                        d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt")
                    end
                else
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Falsche Reihenfolge. Der Stein der Maat wurde")
                    say("dabei zerstört.")
            --        say("6?")
                end
            else 
                if d.getf("stonekill") == 7 then
                    npc.purge()
                    item.remove()
                    notice_multiline(gameforge.flame_dungeon._440_notice,d.notice)
                    notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
                    flame_dungeon.level_clear()
                else
                    item.remove()
                    say_title("Schlund des Am-heh")
                    say("")
                    say("Falsche Reihenfolge. Der Stein der Maat wurde")
                    say("dabei zerstört.")
            --        say("7?")
                end
            end
        end

        when LEVEL6_TARGET.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ??? ???? ?
            notice_multiline(gameforge.flame_dungeon._540_notice,d.notice)
            notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
            flame_dungeon.level_clear()
        end

        when FINAL_BOSS.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ?? ????
            --notice_multiline(gameforge.flame_dungeon._550_notice,d.notice)
            game.drop_item_with_ownership(72000, 1)
            game.drop_item_with_ownership(81001, 1)
            game.drop_item_with_ownership(72000, 1)
            notice_all("Die Gruppe von ".. pc.get_name() .." haben Razador besiegt. Herzlichen Glückwunsch!")
            notice_all("Endlich herrscht Frieden in der Rotdrachen-Festung.")
            notice_multiline(gameforge.flame_dungeon._560_notice,d.notice)
            server_timer("dungeon_end_timer", 60,d.get_map_index())    
            flame_dungeon.level_clear()
            
            -- ??? ?, ??? ?? ???(104?, 105? ???) ???? ??? ??? ??? ??? ???.
            if party.is_party() then
                party.setf("flame_dungeon_boss_kill_count", 1)
            end
            
        end
    end
end
.JaY is offline  
Old 03/13/2017, 11:11   #2


 
Nectix's Avatar
 
elite*gold: 26
The Black Market: 135/0/0
Join Date: Apr 2012
Posts: 23,018
Received Thanks: 3,060


#closed
Nectix is offline  
Closed Thread


Similar Threads Similar Threads
[O/X]Quest Probleme!
09/02/2014 - Metin2 Private Server - 0 Replies
.<3
Probleme bei Quest
12/09/2012 - Metin2 Private Server - 1 Replies
Hallo Also ich hab jetzt alle quests bearbeitet usw und jetzt kommt das PLAYER_MAX_LEVEL: 99LocalService locale/germany/locale_string.txt locale/germany/quest/locale.lua:1340:`}expected near`LoLz´ Assertion failed: (ms_singleton), function instance,file ../../common singleton .h, line 26. lostmt2#connect: Operation Timed Out MasterAuth6 HILFEEEEEEEEEEEEEE
2 Quest Probleme
04/21/2012 - Metin2 Private Server - 7 Replies
Ja wie der Name des Threads schon sagt, habe ich 2 Probleme mit Quests. Also das erste Problem lässt sich leicht schildern. Das passiert mit dem Regenbogenstein & Pferdezucker ect. Wenn ich darauf klicke z.B auf den Regenbogenstein und wähle meine Lehre wird ja alles Perfekter Meister. Allerdings kann ich die Kamara danach nicht mehr drehen. Das ist genauso als wenn ich ablehne und es sein lasse. Das gleiche gilt für Pferdezucker. Wenn ich auf "Namen geben" Klicke oder "keinen Namen geben"...
Probleme mit bio quest 3 :(
12/12/2010 - Metin2 - 2 Replies
Heei Leute wenn ich den seelenstein bei bio quest 3 kaufe kann ich den dann auch abgebn oder muss ich den selber droppen ?
Quest Probleme?
11/11/2009 - Metin2 Private Server - 1 Replies
Sers... mich würd ma interessieren ob euch evtl. was ähnliches aufgefallen/passiert ist ... ich hab ne quest übersetzt, hochgeladen, make.sh usw ... ig ging die quest ohne probleme ... dann etwas später, ne andere quest hochgeladen, make.sh ... und aufeinmal geht eine der vorringen quests nicht mehr?! dann heute nach einigen versuchen des fixens ging keine der beiden quests mehr und wesentlich interessanter, danach ging eine quest aber dafür eine komplett andere nicht mehr die ich...



All times are GMT +2. The time now is 17:52.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.