Yardım Catacomb quest

  • Konuyu açan Konuyu açan KuqsalTRY
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 0
  • Gösterim Gösterim 14
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

KuqsalTRY

Üye
Üye
Mesaj
5
Beğeni
0
Puan
403
Ticaret Puanı
0
Bu questi Offical queste cevirebilecek var mı?

Catacomb.lua:
Genişlet Daralt Kopyala
quest devilcatacomb_zone begin
    state start begin

        when devilcatacomb_man.chat."Devil Catacomb " begin
            if pc.get_level() < 75 then
                say("Bunu yapamazsın. Minimum Level: 75 ")
                return
            else
                say("Başlamak istiyor musun? ")
                local s = select("Evet", "Vazgeç ")
                if s == 1 then
                    pc.warp((73+3072)*100,(63+12032)*100)
                else
                    return
                end
            end
        end

        when kill with pc.get_map_index() == 216 begin
            local j = number(1, 80)
            if j == 1 then
                game.drop_item (30311, 1)
            end
        end

        when devilcatacomb_credit_stone.take with pc.get_map_index() == 216 and item.get_vnum() == 30311 begin
            local cooldown = pc.getf("devilcatacomb_zone","cooldown")
            local real_time = get_global_time()
            local r_cooldown = pc.getf("devilcatacomb_zone","cooldown") - real_time
            if not pc.is_gm() and  cooldown > real_time then
                say_title(mob_name(20367).." - "..pc.get_name())
                say("")
                say("Soğuma Süresi: ")
                say(r_cooldown.." second... ")
                return
            end
            pc.remove_item(30311,pc.count_item(30311))
            say_title(mob_name(30101).." - "..pc.get_name())
            say("")
            say("Merhaba, zindana girmek istiyor musun? ")
            local x = select("Bireysel ","Grup ","Vazgeç ")
            if x == 1 then
                d.new_jump(216,(3072+550)*100,(12032 + 45)*100)
                if d.select(d.get_map_index()) then
                    d.setf("first_regen",1)
                    d.setf("DungeonBlock",1)
                end
            elseif x == 2 then
                if party.is_party() then
                    local user_fail_cooldown = {}
                    local CooldownCheck = true
                    local pids = {party.get_member_pids()}
                    for i, pid in next, pids, nil do
                        q.begin_other_pc_block(pid)
                        if not pc.is_gm() and pc.getf("devilcatacomb_zone","cooldown") > get_global_time() then
                            table.insert(user_fail_cooldown, pc.get_name())
                            CooldownCheck = false
                        end
                        q.end_other_pc_block()
                    end
                    if CooldownCheck == false then
                        say("Soğuma süresi süren oyuncular: ")
                        local a = 1
                        for i, name in next, user_fail_cooldown, nil do
                            say(string.format("%d. %s",a,name))
                            a = a+1
                        end
                        return
                    end
                    d.new_jump_party(216,(3072+550),(12032+45))
                    if d.select(d.get_map_index()) then
                        d.setf("DungeonBlock",1)
                        d.setf("first_regen",1)
                    end
                else
                    say_title(mob_name(30101).." - "..pc.get_name())
                    say("")
                    say("Bir partiniz bulunmamakta! ")
                    return
                end
            elseif x == 3 then
                return
            end
        end

        when login with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 begin
            local real_time = get_global_time()
            local index = pc.get_map_index()
            if index >= 2160000 and index <= 2169990 then
                if d.select(index) then
                    if d.getf("DungeonBlock") == 1 then
                        if d.getf("first_regen") == 1 then
                            if d.getf("ticket") == 1 then
                                server_timer("devilcatacomb_2", 1,index)
                            else
                                server_timer("devilcatacomb_1",1,index)
                            end
                            cmdchat(string.format("RefreshDungeonTimer %d %d",1,d.getf("real_time")-real_time))
                        else
                            cmdchat(string.format("RefreshDungeonTimer %d %d",d.getf("level"),d.getf("real_time")-real_time))
                        end
                    else
                        pc.warp(591400,99200)
                    end
                end
            end
        end

        when devilcatacomb_1.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.getf("first_regen") == 1 then
                    d.purge()
                    d.clear_regen()
                    d.setf("first_regen",0)
                    d.setf("level",2)
                    d.setf("kaplumbaga_timer",1)
                    d.spawn_mob(30103, 741, 217)
                    server_timer('devilcatacomb_full_timer',60*60, d.get_map_index())
                    d.setf("real_time",get_global_time()+60*60)
                    d.regen_file ("data/dungeon/devilcatacomb/dc_2f_regen.txt")
                    d.regen_file("data/dungeon/devilcatacomb/devilcatacomb_floor4_regen2.txt")
                    --d.regen_file("data/dungeon/devilcatacomb/2_door.txt")
                    --d.clear_regen()
                    GetMissionInfo(d.getf("level"),d.getf("real_time")-get_global_time())
                    d.mission_notice(d.get_map_index(),"Şeytanlaşmış kaplumbağayı bulun. ")
                end
            end
        end

        when devilcatacomb_full_timer.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.setf("DungeonBlock",0)
                d.global_warp_all_to_base(5918*100, 993*100,get_server_timer_arg(),60)
            end
        end

        when devilcatacomb_floor2_stone.click with pc.get_map_index() >= 2160000 and pc.get_map_index() < 2169990 begin
            if d.select(pc.get_map_index()) then
                if d.getf("level") == 2 then

                    if not devilcatacomb_zone.is_dc2_doors_clear () then
                        say(gameforge.devilcatacomb_zone._220_say)-- Kapılar kırılmadan ısınlanamazsin
                        wait ()
                        return
                    end

                    if pc.count_item(30319) < 1 then
                        say_item_vnum(30319)
                        say("Gerekli esya olmadan giris yapamazsin.")
                        return
                    end

                    if d.getf("kaplumbaga_timer") == 1 then
                        server_timer("devilcatacomb_2", 5,d.get_map_index())
                    end
                    npc.purge()
                end
            end
        end

        when devilcatacomb_2.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.getf("level") == 2 and d.getf("kaplumbaga_timer") == 1 or d.getf("ticket") == 1 and d.getf("level") == 1 then
                    d.purge()
                    d.clear_regen()
                    d.setf("first_regen",0)
                    d.setf("kaplumbaga_timer",0)
                    d.setf("level",3)
                    d.regen_file("data/dungeon/devilcatacomb/dc_3f_regen.txt")
                    d.mission_notice(d.get_map_index(),"Tüm metinleri alt edin ")
                    GetMissionInfo(d.getf("level"),d.getf("real_time")-get_global_time())
                    local position = {{1231,357},{1348,349},{1349,150},{1235,142}, {1140,245},{1148,348},{1150,154}}
                    for i = 1, 7 do
                        d.spawn_mob(8038,position[i][1], position[i][2])
                    end
                    d.setf("stones",0)
                    d.jump_all(1367+3072,247+12032)
                end
            end
        end

        when devilcatacomb_3.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.getf("level") == 3 then
                    d.purge()
                    d.clear_regen()
                    
                    d.setf ("level",4)
                    d.getf("stones",0)
                    d.jump_all(846+3072,898+12032)
                    d.mission_notice(d.get_map_index(),"Tüm Tartarus'ları alt edin. ")
                    GetMissionInfo(d.getf("level"),d.getf("real_time")-get_global_time())
                    d.regen_file("data/dungeon/devilcatacomb/dc_5f_regen.txt")
                    local devil_king_pos = {{673,829},{691,638},{848,568},{1026,642},{1008,862},{848, 742}}
                    for i = 1, 6 do
                        d.spawn_mob(2591, devil_king_pos[i][1], devil_king_pos[i][2])
                    end
                end
            end
        end

        when 2591.kill with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 begin
            if d.select(pc.get_map_index()) then
                if d.getf("level") == 4 then
                    local new = d.getf("stones")+1
                    d.setf("stones",new)
                    if new == 5 then
                        d.setf("stones",0)
                        server_timer("devilcatacomb_4",5,d.get_map_index())
                    end
                elseif d.getf("level") == 5 then
                    local new = d.getf("stones")+1
                    d.setf("stones",new)
                    if new == 5 then
                        d.setf("stones",0)
                        game.drop_item(50084, 1)
                    end
                end
            end
        end

        when 2597.kill with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 begin
            if d.select(pc.get_map_index()) then
                if d.getf("level") == 5 then
                    game.drop_item(50084, 1)
                    server_timer("devilcatacomb_5",1,d.get_map_index())
                end
            end
        end

        when devilcatacomb_4.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.getf("level") == 4 then
                    d.clear_regen()
                    d.purge()
                    d.setf("stones",0)
                    d.setf("level",5)
                    d.setf("q_level",1)
                    d.mission_notice(d.get_map_index(),"Kilitli mühürleri açın. ")
                    GetMissionInfo(d.getf("level"),d.getf("real_time")-get_global_time())
                    d.jump_all (1362+3072, 666+12032)
                    d.spawn_mob(20073, 1260, 674)
                    d.spawn_mob(20073, 1302, 661)
                    d.spawn_mob(20073, 1337, 691)
                    d.spawn_mob(20073, 1312, 727)
                    d.spawn_mob(20073, 1261, 706)
                    d.spawn_mob(8038, 1302, 681)
                    d.spawn_mob(8038, 1320, 699)
                    d.spawn_mob(8038, 1308, 712)
                    d.spawn_mob(8038, 1285, 713)
                    d.spawn_mob(8038, 1275, 687)
                end
            end
        end

        when 8038.kill with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 begin
            if d.select(pc.get_map_index()) then
                local level = d.getf("level")
                if level == 3 then
                    local new = d.getf("stones")+1
                    d.setf("stones",new)
                    if new == 7 then
                        d.setf("stones",0)
                        server_timer("devilcatacomb_3", 5,d.get_map_index())
                    end
                elseif level == 5 then
                    local q_level = d.getf("q_level")
                    if q_level == 1 then
                        local new = d.getf("stones")+1
                        d.setf("stones",new)
                        if new == 5 then
                            d.setf("stones",0)
                            game.drop_item(50084, 1)
                        end
                    elseif q_level == 4 then
                        local new = d.getf("stones")+1
                        d.setf("stones",new)
                        if new == 10 then
                            d.setf("stones",0)
                            game.drop_item(50084, 1)
                        end
                    end
                end
            end
        end

        when 20073.take with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 and item.get_vnum() == 50084 begin
            if d.select(pc.get_map_index()) then
                local q_level = d.getf("q_level")
                if q_level == 1 then
                    d.setf("stones",15)
                    d.setf("q_level",2)
                    d.spawn_group(2521, 1299, 709,0,1,1)
                    d.spawn_group(2521, 1305, 711,0,1,1)
                    d.spawn_group(2521, 1295, 720,0,1,1)
                elseif q_level == 2 then
                    d.setf("q_level",3)
                    d.getf("stones",0)
                    d.spawn_mob(2591, 1302, 681)
                    d.spawn_mob(2591, 1320, 699)
                    d.spawn_mob(2591, 1308, 712)
                    d.spawn_mob(2591, 1285, 713)
                    d.spawn_mob(2591, 1275, 687)
                elseif q_level == 3 then
                    d.setf("q_level",4)
                    d.spawn_mob(8038, 1302, 681)
                    d.spawn_mob(8038, 1320, 699)
                    d.spawn_mob(8038, 1308, 712)
                    d.spawn_mob(8038, 1285, 713)
                    d.spawn_mob(8038, 1275, 687)
                    d.spawn_mob(8038, 1302+10, 681-10)
                    d.spawn_mob(8038, 1320+10, 699-10)
                    d.spawn_mob(8038, 1308+10, 712-10)
                    d.spawn_mob(8038, 1285+10, 713-10)
                    d.spawn_mob(8038, 1275+10, 687-10)
                elseif q_level == 4 then
                    d.setf("q_level",5)
                    d.spawn_mob(2597,1303,704)
                elseif q_level == 5 then
                    if d.getf("ticket") == 1 then
                        d.jump_all(3146,13189)
                        d.mission_notice(d.get_map_index(),"Azrail alt edin! ")
                        --pc.setf("devilcatacomb_zone","cooldown",get_global_time()+60*60)
                    else
                        d.spawn_mob(30103,1303,704)
                        d.mission_notice(d.get_map_index(),"Kaplumbağadan küçülen kafa ile Azrail'e gidebilirsin. Azraili alt edin! ")
                    end
                    d.setf("level",6)
                end
                item.remove()
                npc.purge()
            end
        end

        when devilcatacomb_5.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.getf("level") == 5 then
                    --d.purge()
                    --d.clear_regen()
                    GetMissionInfo(6,d.getf("real_time")-get_global_time())
                    d.regen_file ("data/dungeon/devilcatacomb/dc_7f_regen.txt")
                    d.spawn_mob(2598, 74, 1103)
                    d.setf("level",6)
                end
            end
        end

        when kill with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 begin
            if d.select(pc.get_map_index()) then
                if d.getf("level") == 5 then
                    if d.getf("q_level") == 2 then
                        local new = d.getf("stones")-1
                        d.setf("stones",new)
                        if new == 0 then
                            d.setf("stones",0)
                            game.drop_item(50084, 1)
                        end
                    end
                end
            end
        end

        when 30103.chat."Patron odasına git " with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 and d.getf("level") == 6 begin
            say_title(mob_name(30103))
            say("")
            say("Küçülen kafa varmı? ")
            say_item_vnum(30319,1)
            say("")
            local x = select("Evet", "Vazgeç ")
            if x == 2 then
                return
            else
                if pc.count_item(30319) < 1 then
                    say("Küçülen Kafa bulunmamakta.  ")
                    say_item_vnum(30319,1)
                else
                    pc.remove_item(30319,1)
                    pc.jump(314600,1318900)
                    pc.setqf("ihavekafa",1)
                    --pc.setf("devilcatacomb_zone","cooldown",get_global_time()+60*60)
                end
            end
        end

        when 2598.kill with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 begin
            if d.select(pc.get_map_index()) then
                if d.getf("level") == 6 then
                    server_timer("devil_king_dead_timer",1,d.get_map_index())
                    d.spawn_mob(30130, pc.get_local_x()-5, pc.get_local_y()+5)
                end
            end
        end

        when devil_king_dead_timer.server_timer begin
            local index = get_server_timer_arg()
            if d.select(index) then
                if d.getf("DungeonBlock") == 1 then
                    GetMissionInfo(6,60)
                    d.global_warp_all_to_base(5918*100, 993*100,index,60)
                    d.mission_notice(index,"Görev başarılı. Dışarıya gönderiliyorsunuz. ")
                    d.setqf2("devilcatacomb_zone","ihavekafa",0)
                    d.setqf2("devilcatacomb_zone","cooldown",get_global_time()+60*60)
                    d.setf("DungeonBlock",0)
                    d.setf("IsOn",0)
                    d.setf("real_time",0)
                    d.setf("stones",0)
                    d.setf("ticket",0)
                    d.setf("q_level",0)
                    d.setf("kaplumbaga_timer",0)
                    clear_server_timer("devilcatacomb_full_timer",index)
                    clear_server_timer("devilcatacomb_1",index)
                    clear_server_timer("devilcatacomb_2",index)
                    clear_server_timer("devilcatacomb_3",index)
                    clear_server_timer("devilcatacomb_4",index)
                    clear_server_timer("devilcatacomb_5",index)
                    --clear_server_timer("devil_king_dead_timer",index)
                end
            end
        end

        when logout with pc.get_map_index() >= 2160000 and pc.get_map_index() <= 2169990 begin
            if d.select(pc.get_map_index()) then
                if d.getf("DungeonBlock") == 1 then
                    pc.setf("devilcatacomb_zone","map",d.get_map_index())
                    pc.setf("devilcatacomb_zone","time",get_global_time()+5*60)
                    pc.setf("devilcatacomb_zone","channel",pc.get_channel_id())
                else
                    pc.setf("devilcatacomb_zone","map",0)
                    pc.setf("devilcatacomb_zone","time",0)
                    pc.setf("devilcatacomb_zone","channel",0)
                end
            end
            --pc.warp(5914*100,992*100)
        end

        when devilcatacomb_man.chat."Zindana geri dön... " with pc.getf("devilcatacomb_zone","map") >= 1 begin
            local c = pc.getf("devilcatacomb_zone","map")
            local z = pc.getf("devilcatacomb_zone","channel")
            local dwLevel = d.getf_from_map_index("level",c)
            local ticket = d.getf_from_map_index("ticket",c)
            if d.select(c) then
                if get_global_time() > pc.getf("devilcatacomb_zone","time") then
                    say("Geri dönme hakkını kaybettin. ")
                    pc.setf("devilcatacomb_zone","map",0)
                    pc.setf("devilcatacomb_zone","time",0)
                    pc.setf("devilcatacomb_zone","channel",0)
                    return
                end
                if dwLevel == 2 then
                    pc.warp((3072 + 550)*100,(12032 + 45)*100, c)
                elseif dwLevel == 3 then
                    pc.warp((3072 + 1367)*100,(12032 + 247)*100, c)
                elseif dwLevel == 4 then
                    pc.warp((3072 + 846)*100,(12032 + 898)*100, c)
                elseif dwLevel == 5 then
                    pc.warp((3072 + 1362)*100,(12032 + 666)*100, c)
                elseif dwLevel == 6 then
                    if ticket == 1 then
                        pc.warp((3072 + 73)*100,(12032 + 1145)*100, c)
                    else
                        if pc.getf("devilcatacomb_zone","ihavekafa") == 1 then
                            pc.warp((3072 + 73)*100,(12032 + 1145)*100, c)
                        else
                            pc.warp((3072 + 1362)*100,(12032 + 666)*100, c)
                        end
                    end
                end
            else
                say("Zindanınız bu kanalda görünmüyor! ")
                say(string.format("Zindanı açtığınız kanal: %d ",z))
                return
            end
        end
    end
end
 
Üst