İstek Zindan quest

  • Konuyu açan Konuyu açan texas1343
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 213
Konu sahibinin aradığı materyalleri bulmasına yardımcı olmak için konuya yorum yazabilirsiniz.

texas1343

Yardımsever Üye
Yardımsever Üye
MT Üye
Mesaj
684
Çözümler
32
Beğeni
902
Puan
899
Ticaret Puanı
0
azrail,lusifer,kule,ejder,barones gibi zindanların questleri lazım
 
Azrail.quest:
Genişlet Daralt Kopyala
quest mission1 begin
    state start begin
        when letter with pc.get_level() >= 75 begin
            send_letter("Azrail")
    end
        when button or info begin
            say("Azrail'i Öldür ve Hediyeni Al.!")
            pc.setf("kill",0)
            q.counter("Azrail",0)
    end
        when 1093.kill begin
            local azrail_kill = pc.getqf("kill") + 1
            if azrail_kill <= 1 then
                pc.setf("kill", count)
                q.set_counter("Azrail", 1 - count)
        end
            if count == 1 then
                say("Tamamlandı.!")
                say("Hediyen: ")
                local a = 30503
                say_item_vnum(a)
                pc.give_item2(a)
                clear_letter()
        end
        
        end
    end
end
nemere.lua:
Genişlet Daralt Kopyala
quest nemere_kulesi begin
state start begin
    when 9010.chat."Tasi indir" with nemere_kulesi.is_nemeres_dungeon() == true begin
        d.purge()
        d.spawn_mob_dir(20397, 173,262,1)
        setskin(NOWINDOW)
    end
    when 9010.chat."TESTSERVER: SnowDungeon 9.seviye'ye git" with nemere_kulesi.is_nemeres_dungeon() == true  begin
        local set = nemere_kulesi.get_settings()
  ---      d.notice("Der Richtige Schlussel wurde gefunden, in wenigen Sekunden geht es in den nächsten Stock.")
        server_timer("Jp_9",6,d.get_map_index())
        d.clear_regen()
        d.kill_all()
        d.regen_file("data/dungeon/ice_dungeon/zone_9.txt")
        setskin(NOWINDOW)
    end
    when 9010.chat."TESTSERVER: SnowDungeon 10.seviye'ye git" with nemere_kulesi.is_nemeres_dungeon() == true  begin
        local set = nemere_kulesi.get_settings()
        server_timer("Jp_Boss",3,d.get_map_index())
        d.clear_regen()
        d.kill_all()
        d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt")
        local v = set.BossVnumGroup
        d.spawn_group(v, 928, 335, 5 ,1, 1) --    (Input from SRC: argument: vnum,x,y,radius,aggressive,count)
        setskin(NOWINDOW)
    end
    when 9010.chat."TESTSERVER: SnowDungeon boss at" with nemere_kulesi.is_nemeres_dungeon() == true  begin
        local set = nemere_kulesi.get_settings()
        local v = set.BossVnumGroup
        d.spawn_group(v, 928, 335, 5 ,1, 1) --    (INFO from SRC: argument: vnum,x,y,radius,aggressive,count)
    end
    when 9010.chat."TESTSERVER: SnowDungeon'u bitir" with nemere_kulesi.is_nemeres_dungeon() == true  begin
        server_timer("Jp_OutAll",5,d.get_map_index())
        say("done")
    end
    -- when 30331.use begin --key_level_2
        -- LIB_writelog("{"..pc.get_local_x()..","..pc.get_local_y().."}",3,"snowcordis.txt")
        -- d.spawn_mob(20399, pc.get_local_x(), pc.get_local_y())
        -- chat("write Nordstern Kordinaten")
    -- end
    when 9010.chat."TESTSERVER: SnowDungeon test 5.kat" with nemere_kulesi.is_nemeres_dungeon() == true  begin
        nemere_kulesi._Create_Stones_level5()
        setskin(NOWINDOW)
    end
    when 9010.chat."TESTSERVER: SnowDungeon 5.kat" with nemere_kulesi.is_nemeres_dungeon() == true  begin
        nemere_kulesi._DropKeyOnLevel5()
        setskin(NOWINDOW)
    end
    when 9010.chat."TESTSERVER: SnowDungeon pozisyonlarım" with nemere_kulesi.is_nemeres_dungeon() == true begin
        local set = nemere_kulesi.get_settings()
        local warp_to_level = set.Position_level_1
        local level = 2
        say("Eski: x: "..warp_to_level[1].." y:"..warp_to_level[2].."")
        local warp_to_level = set. _G[ "Position_level_"..level ]
        say("Yeni: x: "..warp_to_level[1].." y:"..warp_to_level[2].."")
        --DONT WORKS!
    end
    function get_settings()
        local snow_dungeon_settings = {}
        snow_dungeon_settings.map_index = 352                        --Mapindex
        snow_dungeon_settings.base_cord = {5120, 1536 }             --Base Kordinaten
        snow_dungeon_settings.outside_entry_pos = {61,4321,1667}     --Mapindex, Exit Position (Eisland)
        snow_dungeon_settings.need_level = 90                        --Ab wann ist der Dungeon betretbar.
        snow_dungeon_settings.need_level_group = 90                 --Benotigte Level fur Gruppenmitglieder
        snow_dungeon_settings.WaitBeforOutAllOnExit = 60            --Wartezeit bevor alle alle herausteleportiert werden bei einem erfolgreichen Run. (Empfohlen 60)
        snow_dungeon_settings.NextJumpTime = 5                        --Wann man zur nächsten ebene Gejumpt wird (timer) (Empfohlen 5)
        snow_dungeon_settings.DurationLoopTimer = 45                --Welchen intervall die Level und Missionen gepruft werden sollen. (Empfohlen 45)
        snow_dungeon_settings.wait_duration = 60*60*4                --Ab wann der Dungeon wieder betretbar ist (PartyLeader)
        snow_dungeon_settings.maxlife_time_on_dungeon = 60*60*1    --Maximale Zeit fur den Dungeon.
        snow_dungeon_settings.DurationMaxOnReJoinGroup = 60*5        --Maximale Zeit innerhalb wann man wieder in die Gruppe joinen kann.
        snow_dungeon_settings.key_level_2 = 30331                    --KeyVnum fur die 2.Ebene    --Frostschlussel
        snow_dungeon_settings.NpcVnum_level_5 = 20398                --MobVnum von 5.Ebene    --Wurfel des Arktos
        snow_dungeon_settings.StoneCount_level_5 = 6                --Wie viele Wurfel des Arktos sollen erscheinen?
        snow_dungeon_settings.Key_on_level_5 = 30332                --KeyVnum von 5.Ebene    --Nordstern
        snow_dungeon_settings.StoneCords_level_5 = {
        {432,508},{437,493},{448,492},{448,476},{467,475},{466,464},
        {462,450},{458,428},{446,439},{431,431},{415,416},{402,427},
        {397,438},{375,434},{374,456},{390,468},{385,492},{402,505},
        {404,489},{386,482}
        }    --Positionen von Wurfel des Arktos
        snow_dungeon_settings.MobVnum_level_6 = 8058                --MobVnum von 6.Ebene    --Metin der Kälte
        snow_dungeon_settings.MobVnum_level_7 = 6151                --MobVnum von 7.Ebene    --Szel
        snow_dungeon_settings.SzelCords_level_7 = {
        {752,499},{758,479},{772,452},{763,444},{750,451},{728,441},
        {726,455},{718,482},{715,491},{731,473},{748,429}
        } --Positionen von Szel
        snow_dungeon_settings.Key_on_level_8 = 30333                --KeyVnum von 8.Ebene    --Eisblumenschlussel
        snow_dungeon_settings.NpcVnum_level_9 = 20399                --MobVnum von 9.Ebene    --Säule des Norddrachen
        snow_dungeon_settings.BossVnumGroup = 6062                    --GroupMobVnum vom Boss --(Group.txt)
        snow_dungeon_settings.BossVnum = 6191                        --MobVnum von 10.Ebene    --Nemere(6191)
        
        snow_dungeon_settings.Position_level_1 = { 171,271 }         --Position ebene 1    --Startposition        --Tote alle Monster auf dieser Ebene.
        snow_dungeon_settings.Position_level_2 = { 761,270 }         --Position ebene 2                        --Finde den richtigen Frostschlussel, nur ein Schamane kann ihn benutzen.
        snow_dungeon_settings.Position_level_3 = { 187,491 }         --Position ebene 3                        --Tote alle Monster auf dieser Ebene.
        snow_dungeon_settings.Position_level_4 = { 421,259 }         --Position ebene 4                        --Tote alle Monster auf dieser Ebene.
        snow_dungeon_settings.Position_level_5 = { 419,530 }         --Position ebene 5                        --offnet die Siegel an den Wurfel des Arktos in der richtigen Reihenfolge. (Zieht Nordstern auf die Wurfel)
        snow_dungeon_settings.Position_level_6 = { 571,706 }         --Position ebene 6                        --Tote alle Monster auf dieser Ebene. Danach Zersore den Metin der Kälte (Nur ein Schamane kann ihn Schaden)
        snow_dungeon_settings.Position_level_7 = { 746,534 }         --Position ebene 7                        --Tote alle Monster auf dieser Ebene und Szel
        snow_dungeon_settings.Position_level_8 = { 303,710 }         --Position ebene 8                        --Der Eisblumenschlussel muss gedroppt werden, jedoch kann dieser nur von Schamanen und Ninja benutzt werden.
        snow_dungeon_settings.Position_level_9 = { 848,693  }         --Position ebene 9                        --Zerstort die Säule des Norddrachen. Nur Ninjas und Schamanen konnen ihm Schaden zufugen.
        snow_dungeon_settings.Position_level_10 = { 927,391 }         --Position ebene 10 (BossZone)            --Besiege Nemere, den Konig uber Frost und Eis.   
        snow_dungeon_settings.Enable_TestServerMode = false            --Ob TestServer mode aktiviert ist. Wenn ja werden die Aufgaben schneller beendet.
        snow_dungeon_settings.IsNewga_me_re_vi_sion = true                --Need ga_me_re_vi_sion 40301
        return snow_dungeon_settings
    end
    function is_TestServerMode()
        local set = nemere_kulesi.get_settings()
        return set.Enable_TestServerMode
    end
    function is_nemeres_dungeon()
        local set = nemere_kulesi.get_settings()
        local map = pc.get_map_index()
        if map >= (set.map_index * 10000) and map < (set.map_index * 10000 + 9000) then
            return true
        else
            return false
        end
    end
    when 20395.chat."Gruba tekrar katıl" with (party.is_party() and d.find(party.getf("ice_dungeon_map_index"))) begin
        local set = nemere_kulesi.get_settings()
        local n = party.getf("ice_dungeon_map_index")
        local cord = set.base_cord
        local level = d.getf_from_map_index("level", n)
        --say("Aktuelles Dungeon Level deiner Gruppe: "..level.."")
        if level == 0 then
            say_npc_name()
            say("Grubunuz zaten Buzdaği'ni fethetti.")
            return
        end
        if pc.getqf("out_party_time") < get_global_time() then
            say_npc()
            say("")
            say("Du hast länger als  "..math.ceil(set.DurationMaxOnReJoinGroup  /60) .." Minute(n) vor dem")
            say("Eisberg verweilt und kannst jetzt nicht")
            say("mehr eintreten.")
            return
        end
        if n == 0 then
            setskin(NOWINDOW)
            return
        else
            say_npc()
            say("")
            say("Tekrar grubuna katılmak istiyor musun?")
            if select("Evet","Hayır") == 1 then
                local warp_to_level = set.Position_level_1
                local level = d.getf_from_map_index("level", n)
                if level >= 1 and level <= 10 then
                    if level == 1 then         warp_to_level = set.Position_level_1
                    elseif level == 2 then    warp_to_level = set.Position_level_2
                    elseif level == 3 then    warp_to_level = set.Position_level_3
                    elseif level == 4 then    warp_to_level = set.Position_level_4
                    elseif level == 5 then    warp_to_level = set.Position_level_5
                    elseif level == 6 then    warp_to_level = set.Position_level_6
                    elseif level == 7 then    warp_to_level = set.Position_level_7
                    elseif level == 8 then    warp_to_level = set.Position_level_8
                    elseif level == 9 then    warp_to_level = set.Position_level_9
                    elseif level == 10 then    warp_to_level = set.Position_level_10
                    end
                    pc.warp((cord[1] + warp_to_level[1])*100,(cord[2] + warp_to_level[2])*100,n)
                else
                    return
                end
            end
        end
    end
    
    when 20395.chat."Nemere'nin Gözetleme Kulesi" begin
        local set = nemere_kulesi.get_settings()
        local need_level = 35
        say_npc()
        say("")
        say("Grubunuz ile gerçekten Nemere'nin")
        say("Gözetleme Kulesi'ne girmek istiyor musunuz?")
        if select("Evet, girmek istiyoruz.","Hayır, orası çok soğuk.") == 2 then
            return
        end
        if (pc.is_gm() and pc.getf("nemere_kulesi","duration") >= get_global_time()) then
            say("Game Master; süreyi sıfırlamak mı istiyorsun?")
            if select("Evet","Hayır") == 1 then
                pc.setf("nemere_kulesi","duration",0)
                return
            end
        end
        if (is_test_server() and nemere_kulesi.is_TestServerMode() == true ) then
            say("Test server modu etkinleştirildi.")
            say(" Şimdi ışınlanacksınız.")
            timer("make_dungeon",3)
            return
        end
        if not party.is_leader() and not pc.is_gm() then
            say_npc()
            say("Cesaretini takdir ediyorum ama")
            say("yalnızca grup lideri giriş talebi yapabilir.")
            return
        end
        if pc.get_level() < need_level then
            say("Zindan'a girmek için en az "..need_level..".")
            say("seviyede olmalisin.")
            return
        end
        if pc.getf("nemere_kulesi","duration") >= get_global_time() then
            say_npc()
            say("Nemeres Gözetleme Kulesi'ne yeniden giriş ")
            say("için bekleme süresi henüz dolmamış.")
            say("Kalan süre: "..LIB_duration(pc.getf("nemere_kulesi","duration") - get_global_time()).."")
            return
        end
        if nemere_kulesi._CheckMembersLevel() == false then   
            return
        else
            timer("make_dungeon",2)
        end
    end
    when 20397.chat."Savaşı başlat" begin --Eisiger Lowe
        say_npc()
        say("")
        say("Savaş'ı başlatmak istiyor musun?")
        if select("Evet","Hayır, korkuyorum. ") == 1 then
            local set = nemere_kulesi.get_settings()
            local loop_durr = set.DurationLoopTimer
            local wait_durations = set.wait_duration
            local t = get_global_time()
            d.setf("LastTimeGetOutPut",0)   
            server_loop_timer("CheckLevelAndCountKillOnMobs",loop_durr,d.get_map_index())
            d.regen_file("data/dungeon/ice_dungeon/zone_1.txt")
            d.setf("Start_Time",t + set.maxlife_time_on_dungeon)
            server_timer("Jp_OutAllFailNotice",(t + set.maxlife_time_on_dungeon) -  t,d.get_map_index())
            --pc.setqf("duration",t + wait_durations)
            d.setqf2("nemere_kulesi","duration",t + wait_durations)
            d.setf("level",1)
            d.notice("Bir sonraki kata çıkmak için Tüm yaratıkları öldürmelisiniz.")
            npc.purge()
            nemere_kulesi._GetLastTime()
        end
        setskin(NOWINDOW)
    end
    when make_dungeon.timer begin
        local set = nemere_kulesi.get_settings()
        local cord = set.base_cord
        local start_pos = set.Position_level_1
        local t = get_global_time()
        d.new_jump_all(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
        --d.jump_all(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
        nemere_kulesi._ClearAlls()
        d.setf("party_leader_pid",party.get_leader_pid())
        party.setf("ice_dungeon_map_index",d.get_map_index())
        d.spawn_mob_dir(20397, 173,262,1) --Eisiger Lowe
    end
    function _ClearAlls()
        local d_index = d.get_map_index()
        clear_server_timer("CheckLevelAndCountKillOnMobs",d_index)
        clear_server_timer("Jp_1",d_index)
        clear_server_timer("Jp_2",d_index)
        clear_server_timer("Jp_3",d_index)
        clear_server_timer("Jp_4",d_index)
        clear_server_timer("Jp_5",d_index)
        clear_server_timer("Jp_6",d_index)
        clear_server_timer("Jp_7",d_index)
        clear_server_timer("Jp_8",d_index)
        clear_server_timer("Jp_9",d_index)
        clear_server_timer("Jp_10",d_index)
        clear_server_timer("Jp_OutAll",d_index)
        clear_server_timer("Jp_OutAllFail",d_index)
        clear_server_timer("Jp_OutAllFailNotice",d_index)
        d.setf("level",0)   
        d.setf("party_leader_pid",0)
        d.setf("Start_Time",0)
        d.setf("LastTimeGetOutPut",0)
        d.setf("Stone_5_count",0)
        d.setf("Stone_5_item_fail",0)
        d.clear_regen()
        d.kill_all()
    end
    
    function _CheckMembersLevel()
        local set = nemere_kulesi.get_settings()
        local user_fail_level = {}
        local pids = {party.get_member_pids()}
        local need_level = set.need_level_group
        local have_ninja = false
        local have_shaman = false
        for i = 1, table.getn(pids), 1 do
            q.begin_other_pc_block(pids[i])
            if pc.get_level() < need_level then
                table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name())
            end
            local job = pc.get_job()
            if job == 1 -- Ninja weiblich
            or job == 5 --Ninja männlich
            then
                have_ninja = true
            end
            if job == 3 -- Schamane weiblich
            or job == 7 --Schamane männlich
            then
                have_shaman = true
            end
            q.end_other_pc_block()
        end
        if (is_test_server() and nemere_kulesi.is_TestServerMode() == true ) then
            --dchat("TEST modu aktif.")
            return true
        end
        if have_ninja == false and not pc.is_gm() then
            say("Grubunuzda Ninja olmadan yukarı çıkamazsınız.")
            return false
        end
        if have_shaman == false and not pc.is_gm() then
            say("Grubunuzda Şaman olmadan yukarı çıkamazsınız.")
            return false
        end
        if table.getn(user_fail_level) >= 1 then
            say_npc()
            say("")
            say("Grubun bağzı üyeleri")
            say("henüz "..need_level..". seviyeye ulaşmamış:")
            for x = 1, table.getn(user_fail_level), 1 do
                say(color(1,1,0), "    "..user_fail_level[x])
            end
            return false
        end
        if table.getn(user_fail_level) == 0 then
            return true
        end
    end
    when logout begin
        if nemere_kulesi.is_nemeres_dungeon() == true then
        local set = nemere_kulesi.get_settings()
        pc.setqf("out_party_time",get_global_time() + set.DurationMaxOnReJoinGroup)
        --nemere_kulesi.unregister_name()
        end
    end
    
    when login begin
        if nemere_kulesi.is_nemeres_dungeon() == true then
            local set = nemere_kulesi.get_settings()
            local backk = set.outside_entry_pos
            pc.set_warp_location(backk[1], backk[2],backk[3])
            if d.getf("party_leader_pid") != party.get_leader_pid() then
                chat("nemeres_wait_dungeon #RAUS:# Sizin grubunuz içeride değil.")
                chat("nemeres_wait_dungeon #RAUS:#debug -> "..d.getf("party_leader_pid").." != "..party.get_leader_pid().."")
                d.exit()
                return
            end
            if pc.get_level() < set.need_level_group then
                chat("nemeres_wait_dungeon #RAUS:# Benim seviyem düşük.")
                d.exit()
                return
            end
            --chat("Hos geldiniz. Burada "..math.ceil((d.getf("Start_Time")  - get_global_time()) /60) .." dakikalik sureniz var.")
            --notice("Sonraki kata cikmak icin Tum yaratiklari oldurun.")
            --nemere_kulesi._GetLastTime()
        end
    end
    
    function _GetLastTime()
        local c = get_global_time()
        local t = d.getf("Start_Time") - c
        local o = d.getf("LastTimeGetOutPut")
        --d.notice("CurrentTime: "..c.." Last: "..o.."")
        if c >= o then
            if t >= 60 then
                d.notice("Yaklaşık "..math.ceil(t / 60).." dakikanız kaldı...")
            else
                d.notice("Yaklaşık "..t .." saniyeniz kaldı...")
            end
            if t >= (60*10) then
                d.setf("LastTimeGetOutPut",c + 60*5)
            elseif t >= (60*5) then
                d.setf("LastTimeGetOutPut",c + 60*2)
            else
                d.setf("LastTimeGetOutPut",c + 10)
            end
            --d.setf("LastTimeGetOutPut",c + 60*number(3,5)) -- Random
        end
    end
    
    when Jp_OutAllFailNotice.server_timer begin
        if d.select(get_server_timer_arg()) then
            d.notice("Zaman doldu.")
            server_timer("Jp_OutAll",1,d.get_map_index())
        end
    end
    
    when CheckLevelAndCountKillOnMobs.server_timer begin
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            local level = d.getf("level")
            local mob_count = d.count_monster()
            local next_jump_time = set.NextJumpTime
            --d.notice("level: "..level.." mob_count: "..mob_count.."")
            if level == 1 and mob_count <= 0 then
                d.notice("Tüm yaratıkları mağlup ettin. Bir kaç dakika içerisinde bir sonraki kata ışınlanacaksın.")
                server_timer("Jp_2",next_jump_time,d.get_map_index())
                d.clear_regen()
                d.kill_all()
                d.set_regen_file("data/dungeon/ice_dungeon/zone_2.txt")
            elseif level == 3 and mob_count <= 0 then
                d.notice("Tüm yaratıkları mağlup ettin. Bir kaç dakika içerisinde bir sonraki kata ışınlanacaksın.")
                server_timer("Jp_4",next_jump_time,d.get_map_index())
                d.clear_regen()
                d.kill_all()
                d.regen_file("data/dungeon/ice_dungeon/zone_4.txt")
            elseif level == 4 and mob_count <= 0 then
                d.notice("Tüm yaratıkları mağlup ettin. Bir kaç dakika içerisinde bir sonraki kata ışınlanacaksın.")
                server_timer("Jp_5",next_jump_time,d.get_map_index())
                d.clear_regen()
                d.kill_all()
                d.set_regen_file("data/dungeon/ice_dungeon/zone_5.txt")
            elseif level == 6 and mob_count <= 0 then
                local MobStonelvl6 = set.MobVnum_level_6
                d.notice("Tüm canavarları yok ettiniz. "..mob_name(MobStonelvl6).."'i öldürün.")
                d.clear_regen()
                d.kill_all()
                d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
                d.spawn_mob(MobStonelvl6,570,649)
            elseif level == 7 and mob_count <= 0 then
                d.notice("Tüm yaratıkları mağlup ettin. Bir kaç dakika içerisinde bir sonraki kata ışınlanacaksın.")
                server_timer("Jp_8",next_jump_time,d.get_map_index())
                d.clear_regen()
                d.kill_all()
                d.set_regen_file("data/dungeon/ice_dungeon/zone_8.txt")               
            end
            nemere_kulesi._GetLastTime()
        end
    end

    when Jp_2.server_timer begin --Jump Level 2
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            local v = set.key_level_2
            d.setf("level",2)
            local cord = set.base_cord
            local pos = set.Position_level_2
            d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
            d.notice("Yukarı çıkmak için "..item_name(v).."'i bulun.")
        end
    end
    when 30331.use with nemere_kulesi.is_nemeres_dungeon() == true begin --key_level_2
        local set = nemere_kulesi.get_settings()
        local next_jump_time = set.NextJumpTime
        local job = pc.get_job()
        local level = d.getf("level")
        if level == 2 then
            if (is_test_server() and nemere_kulesi.is_TestServerMode() == true ) then
                --dchat("SET VARIABLE JOB 3")
                job = 3
            end
            if job == 3 -- Schamane weiblich
            or job == 7 --Schamane männlich
             or job == 0 --Schamane männlich
            then
                if number(1,3) == 1 then --or d.count_monster() < 10 then
                    d.notice("Doğru anahtarı buldunuz! Bir kaç saniye sonra ışınlanacaksınız.")
                    server_timer("Jp_3",next_jump_time,d.get_map_index())
                    d.clear_regen()
                    d.kill_all()
                    d.regen_file("data/dungeon/ice_dungeon/zone_3.txt")
                    item.remove()
                else
                    d.notice("Bu yanlış anahtar.")
                    item.remove()
                end
            else
                d.notice("Bunu sadece Şamanlar kullanabilir.")
                return
            end
        end
    end
    
    when Jp_3.server_timer begin --Jump Level 3
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            d.setf("level",3)
            local cord_MQ = set.base_cord
            local pos = set.Position_level_3
            d.jump_all((cord_MQ[1] + pos[1]), (cord_MQ[2] + pos[2]))
            d.notice("Sonraki seviyeye ulaşmak için bütün yaratıkları öldürün!")
        end
    end
    
    when Jp_4.server_timer begin --Jump Level 4
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            d.setf("level",4)
            local cord = set.base_cord
            local pos = set.Position_level_4
            d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
            d.notice("Sonraki seviyeye ulaşmak için bütün yaratıkları öldürün!")
        end
    end
    
    when Jp_5.server_timer begin --Jump Level 5
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            local v = set.NpcVnum_level_5
            d.setf("level",5)
            local cord = set.base_cord
            local pos = set.Position_level_5
            d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
            d.notice("Anahtar düşürerek "..mob_name(v).." isimli buz küpünden mühürü açın. ")
            if set.IsNewga_me_re_vi_sion == true then
                d.notice("Anahtarı canavarlardan düşürebilirsiniz.")
            else
                d.notice("Anahtarlar otomatikman envanterinize gelecek.")
            end
            nemere_kulesi._Create_Stones_level5()
        end
    end
    
    function _DropKeyOnLevel5()
        if number(1,1000) >= 666 then --Abbruch der weiteren funtion -> Damit es spannend bleibt bei den wurfeln... :P
            return
        end
        local set = nemere_kulesi.get_settings()
        local count = set.StoneCount_level_5
        local vnum = set.Key_on_level_5
        local get_random_unique = d.get_unique_vid("stone5_"..number(1,count).."")
        local fail_count = d.getf("Stone_5_item_fail") +1
        local search = d.getf("Stone_5_count")
        local search2 = d.get_unique_vid("stone5_"..search.."")
        if search2 != get_random_unique then
            d.setf("Stone_5_item_fail",fail_count)
        end
        --
        if set.IsNewga_me_re_vi_sion == true then
            --New function
            game.drop_item(vnum,1)
        else
            pc.give_item2_select(vnum,1)
        end
        --dchat("Creaty Key fail_count: "..fail_count.."")
        if (is_test_server() and nemere_kulesi.is_TestServerMode() == true ) then --Wenn TestServer Modus
            item.set_socket(1,search2)
            d.setf("Stone_5_item_fail",0)
        elseif fail_count > 6 then --Wenn mehr wie x mal nicht richtig erstellt wird, dann kommt der richtige Key
            item.set_socket(1,search2)
            d.setf("Stone_5_item_fail",0)
        else   
            item.set_socket(1,get_random_unique)
        end
    end
    
    function _Create_Stones_level5()
        local set = nemere_kulesi.get_settings()
        local stone_level5_count_MQ = set.StoneCount_level_5
        local c = set.StoneCords_level_5 --{ {432,508},{437,493},{448,492},{448,476},{467,475},{466,464}}
        local v = set.NpcVnum_level_5
        for i = 1, stone_level5_count_MQ, 1 do
            local n = number(1,table.getn(c))
            --d.spawn_mob(20398, c[n][1], c[n][2])
            d.set_unique("stone5_"..i.."", d.spawn_mob(v, c[n][1], c[n][2]))
            --d.set_unique("stone5_"..i.."", mob.spawn(20398, c[n][1], c[n][2],1,1,1)) --GEHT
            --d.set_unique("stone5_"..i.."", d.spawn_mob_ac_dir(20398, c[n][1], c[n][2],i)) --GEHT
            table.remove(c,n)
            if i == 1 then
                d.setf("Stone_5_count",1)
                d.setf("Stone_5_item_fail",0)
            end
        end
    end
    
    when 20398.take begin --NpcVnum_level_5
        if nemere_kulesi.is_nemeres_dungeon() == true then
            local set = nemere_kulesi.get_settings()
            local stone_level5_count = 6
            local next_jump_time = 5
            local vnum = item.get_vnum()
            local key_level_5 = 30332
            local search = d.getf("Stone_5_count")
            if vnum == key_level_5 then
                        local new = search +1
                        if new > stone_level5_count then
                            d.notice("Son taşı açtınız, biraz sonra çıkacaksınız.")
                            npc.purge()
                            item.remove()
                            server_timer("Jp_6",next_jump_time,d.get_map_index())
                            d.clear_regen()
                            d.kill_all()
                            d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
                       else
                            d.notice(""..search..". Taşı açtınız, biraz daha ilerlemeniz gerekmekte. ".. stone_level5_count - search .." Adet taşınız kaldı.")
                            npc.purge()
                            item.remove()
                        end
                        d.setf("Stone_5_count",new)
        end    --if is dungeon end
    end    --when end
    end
    end
    
    state start begin
    when Jp_6.server_timer begin --Jump Level 6
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            local v = set.MobVnum_level_6
            d.setf("level",6)
            local cord = set.base_cord
            local pos = set.Position_level_6
            d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
            
            d.notice("Tüm canavarları öldürdünüz. Şimdi bütün canavarları yok edin ve "..mob_name(v).."'i mağlup edin.")
         ---   d.notice("Nur Schamanen konnen ihm Schaden hinzufugen.")
            --d.spawn_mob(v,570,649)
            
        end
    end
    
    when Jp_7.server_timer begin --Jump Level 7
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            local v = set.MobVnum_level_7
            d.setf("level",7)
            local cord = set.base_cord
            local pos = set.Position_level_7
            d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
            d.notice("Metin taşarını başarıyla yok ettiniz. Şimdi "..mob_name(v).."'i ve tüm canavarları mağlup edin!")
        end
    end
    
    when Jp_8.server_timer begin --Jump Level 8
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            local v = set.Key_on_level_8
            d.setf("level",8)
            local cord = set.base_cord
            local pos = set.Position_level_8
            d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
            d.notice("Yaratıkları keserek "..item_name(v).." düşürün.")
            d.notice("Bu nesnenin dilinden sadece Şaman ve Ninjalar anlayabiliyor...")
        end
    end
    
    when 30333.use with nemere_kulesi.is_nemeres_dungeon() == true begin --Key_on_level_8
        local set = nemere_kulesi.get_settings()
        local next_jump_time = set.NextJumpTime
        local level = d.getf("level")
        local job = pc.get_job()
        if level == 8 then
            if (is_test_server() and nemere_kulesi.is_TestServerMode() == true ) then
                --dchat("SET VARIABLE JOB 3")
                job = 3
            end
            if job == 1 -- Ninja weiblich
            or job == 5 --Ninja männlich
            or job == 3 -- Schamane weiblich
            or job == 7 --Schamane männlich
            or job == 0 --Schamane männlich
            then
                if number(1,3) == 1 then
                    d.notice("Doğru anahtarı buldunuz.Bir kaç saniye içinde ışınlanacaksınız.")
                    server_timer("Jp_9",next_jump_time,d.get_map_index())
                    d.clear_regen()
                    d.kill_all()
                    d.regen_file("data/dungeon/ice_dungeon/zone_9.txt")
                    item.remove()
                else
                    d.notice("Bu anahtar yanlış.")
                    item.remove()
                end
            else
                d.notice("Bunu sadece Şaman ve Ninja karakterleri kullanabilir.")
                return
            end
        end
    end

    when Jp_9.server_timer begin --Jump Level 9
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            local v = set.NpcVnum_level_9
            d.setf("level",9)
            local cord = set.base_cord
            local pos = set.Position_level_9
            d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
            d.notice(""..mob_name(v).."'yi mağlup edin!")
            d.notice("Fakat ona sadece Şaman'ın tecrübesi ve Ninja'nın kuvveti karşı koyabilir.")
            d.spawn_mob(v,849,655)
        end
    end
    
    when Jp_Boss.server_timer begin --Jump Level BossZone
        if d.select(get_server_timer_arg()) then
            local set = nemere_kulesi.get_settings()
            local v = set.BossVnum
            d.setf("level",10)
            local cord = set.base_cord
            local pos = set.Position_level_10
            d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
            d.notice(""..mob_name(v).."'yi dondurun ve mağlup edin!")
        end
    end
    
    when kill begin
        if nemere_kulesi.is_nemeres_dungeon() == true then
            local set = nemere_kulesi.get_settings()
            local next_jump_time = set.NextJumpTime
            local level = d.getf("level")
            local stone_level_6 = set.MobVnum_level_6
            local stone_level_9 = set.NpcVnum_level_9
            local boss_vnum = set.BossVnum
            local wait_time = set.WaitBeforOutAllOnExit
            local mobvnum = npc.get_race()
            --dchat("nemeres_wait_dungeon MobVnum = "..mobvnum.."")
            if level == 2 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then
                local v = set.key_level_2
                game.drop_item(v,1)
            elseif level == 5 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,15) then
                nemere_kulesi._DropKeyOnLevel5()
            elseif level == 6 and mobvnum == stone_level_6 then
                d.notice(""..mob_name(stone_level_6).." mağlup edildi ve bir sonraki seviyeye geçiyorsunuz.")
                server_timer("Jp_7",next_jump_time,d.get_map_index())
                d.clear_regen()
                d.kill_all()
                d.regen_file("data/dungeon/ice_dungeon/zone_7.txt") --Szel
                local v_MQv = set.MobVnum_level_7
                local c = set.SzelCords_level_7
                local n = number(1,table.getn(c))
                d.spawn_mob(v_MQv, c[n][1], c[n][2])
            elseif level == 8 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then
                local v = set.Key_on_level_8
                game.drop_item(v,1)   
            elseif level == 9 and mobvnum == stone_level_9 then
                d.notice(""..mob_name(stone_level_9).." mağlup edildi ve bir sonraki seviyeye geçiyorsunuz.")
                server_timer("Jp_Boss",next_jump_time,d.get_map_index())
                d.clear_regen()
                d.kill_all()
                d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt")
                local v = set.BossVnumGroup
                d.spawn_group(v, 928, 335, 5 ,1, 1) --    (Input from SRC: argument: vnum,x,y,radius,aggressive,count)
            elseif level == 10 and mobvnum == boss_vnum then
                d.clear_regen()
                d.kill_all()
                d.notice("Tebrikler cesur savaşçılar! "..mob_name(boss_vnum).."'yu mağlup ettiniz!.. Grup olarak "..wait_time.." saniye sonra ışınlanacaksınız.")
                notice_all(""..pc.get_name().." ve grup arkadaşları Nemere'yi mağlup etti!")
                server_timer("Jp_OutAll",wait_time,d.get_map_index())
            end
        end
    end
    when Jp_OutAll.server_timer begin --Jump Out Bye bye ;D
        if d.select(get_server_timer_arg()) then
            nemere_kulesi._ExitAll()
        end
    end
    function _ExitAll()
        d.exit_all()
    end
    end
end
 
razador.lua:
Genişlet Daralt Kopyala
quest razador_kulesi begin
    state start begin   
        when 20394.click with pc.get_level() >= 90 begin
      ---    pc.give_item2(149, 1)
           set_state(run)
        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"] = {7766, 6719},-- ??? ?? ???? ?
        ["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"] = {5980,7075}, --??????? ??? ?
        
        }
    end
    function is_flamed(idx) -- ???? ??? ??
        return idx >= 351 * 10000 and idx < (351 + 1) *10000
    end
    function make_dungeon() -- ?? ???
        local setting = razador_kulesi.setting()
        d.new_jump_all(351, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
        d.regen_file("data/dungeon/razador_kulesi/npc.txt")
        d.setf("level",0)
        for i=1,6 do
            d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, 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(20388, 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 // ??? ??????? ?? ??
        d.setf("counter_11", 180)
        d.setf("counter_13", 180)
    end
    function go_boss() -- ??? ??
        local setting = razador_kulesi.setting()
        if pc.get_level() < 90 then --????
            say("Sizin seviyeniz devam etmek için yeterli değil.[ENTER]104.Seviyeye ulaştığınız zaman tekrar gelin.")
            return
        else
            --if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- ????? ??
                say("Kaderini Karşilamak[ENTER]ileri gitmek istiyormusun ?")
                local warp = select("Evet","Belki Daha Sonra")
                if warp == 1 then
                    d.setf("level",17)
                    d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
                    d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_fild_boss.txt")
                    d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
                end
            --else
            --    say("Pode apenas avançar quando tiver[ENTER]concluído a missão de nível 103.")
            --    return
            --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 ("flame_dungeon_ticket_remove", inx)
    end
    
        when login begin
            local idx = pc.get_map_index()
            local setting = razador_kulesi.setting()
            if idx == 351 then
                --pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
            elseif razador_kulesi.is_flamed(idx) then -- ?? ??, ??? ?? ??
            ------------------------------------------------------------------------------------------------------------------------------------------------------
            --??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
            --???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
            ------------------------------------------------------------------------------------------------------------------------------------------------------
                --pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
                local ticketGroup = {71095, 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("razador_kulesi","exit_time") < 30 * 60 then -- ??????? ????
                        notice(" İçeriye giriş yapabilmek için henüz süreniz dolmamış.[ENTER]Lütfen sürenizin dolmasını bekleyiniz.",d.notice)
                        say(" İçeriye giriş yapabilmek için henüz süreniz dolmamış.[ENTER]Lütfen sürenizin dolmasını bekleyiniz.")
                        timer("flame_dungeon_warp_timer", 5)
                    elseif not canPass then
                        notice("Bir grup ile Kızıl Ejder Kalesi'ne girebilirsiniz.[ENTER]Ve buna ek olarak, giriş için izin olmalıdır.",d.notice)
                        say("Geçiş Biletin Varsa [ENTER]Senide Işınlayabiliriz.")
                        timer("flame_dungeon_warp_timer", 5)
                    elseif pc.get_level() < 90 then
                        notice("Grubun tüm üyelerinin 90.seviyede[ENTER]olması gereklidir.Aksi takdirde[ENTER]devam edemezsiniz.",d.notice)
                        say("Devam edebilmek için tüm grup üyelerinin,[ENTER]90.Seviye'ye ulaşmış olması gerekli.")
                        timer("flame_dungeon_warp_timer", 5)
                    end
                elseif pc.getf("razador_kulesi","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("razador_kulesi","ticket_delete",1)
                end
            else
                pc.setf("razador_kulesi","ticket_delete",0)
            end
        end
        when flame_dungeon_warp_timer.timer begin
            local setting = razador_kulesi.setting()
            pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
        end
        when logout begin
            local idx = pc.get_map_index()
            if razador_kulesi.is_flamed(idx) then
                if d.getf("dungeon_enter") == 1 then -- ???? ?? ?? ? ????
                    pc.setf("razador_kulesi","exit_time",get_global_time()) -- ???? ???? ??? ??? ??, ?? ???? ??? or ?? ???? ???
                end
                
 
            end
        end
        when 20394.chat."Kırmızı Ejderha Kulesi" begin
        
            local setting = razador_kulesi.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("razador_kulesi","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(20394))
                        say(" Kırmızı Ejderha Kulesi'nin dışarısında[ENTER]5 dakikadan uzun süredir duruyorsunuz.[ENTER]Şimdi içeriye giremezsiniz.")
                    end
                else
                    local pids = {party.get_member_pids()}
                    local noTicketMembers = {}
                    local notEnoughLevelMembers = {}
                    local ticketCheck = true
                    local levelCheck = true
                    local ticketGroup = {71095, 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 < 90 then
                            table.insert(notEnoughLevelMembers, pc.get_name())
                            levelCheck = false
                        end
                        q.end_other_pc_block()
                    end
 
                    if not ticketCheck then
                        say_title(mob_name(20394))
                        say("Uyarı! Kırmızı Ejderha Kulesi'ne girebilmek için,[ENTER]bütün grup üyelerinin[ENTER]geçiş biletine sahip olması gereklidir.[ENTER]Geçiş kartı olmayan üyeler:")
                        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(mob_name(20394))
                        say("Uyarı! Kırmızı Ejderha Kulesi'ne girebilmek için,[ENTER]bütün grup üyelerinin[ENTER]90.Seviye'ye ulaşmış olması gereklidir.[ENTER]Gerekli seviyede olmayan üyeler:")
                        for i, name in next, notEnoughLevelMembers, nil do
                            say(color(1,1,0), "    "..name)
                        end
                        return
                    end
 
                    if party.is_leader() then
                        say("Kırmızı Ejderha Kulesi'ne girmek için emin misin?")
                        local warp = select("Evet.","Belki daha sonra...")
                        if warp == 1 then
                            if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then
                                razador_kulesi.make_dungeon()
                            else
                                say("Kırmızı Ejderha Kulesi'ne giriş yapabilmek için[ENTER]henüz süreniz dolmamış.")
                            end
                        end
                        
                        party.setf("flame_dungeon_boss_kill_count", 0)
                        
                    else
                        say("Sadece grup liderleri giriş izninde bulunabilir.")
                    end
                end
            else
                say("Cesaretini takdir ediyorum.[ENTER]Fakat, Kırmızı Ejderha Kulesi'ne tek başına giremezsin.[ENTER]Güçlü bir grup kur ve daha sonra tekrar gel.")
            end
        end
        when 20385.chat."Test : Bilgi" with pc.is_gm() begin -- ????
            say("canavarlar_11 : "..d.getf("counter_11"))
            say("canavarlar_13 : "..d.getf("counter_13"))
            say("server saati : "..get_server_timer_arg())
            say("toplam canavar sayısı : "..d.count_monster())
            say("level : "..d.getf("level"))
            say("Dmap index : "..d.get_map_index())
            say("Pmap index : "..pc.get_map_index())
            say("erişim süresi : "..pc.getf("razador_kulesi","exit_time"))
            say("gerçek zaman : "..get_global_time())
            if razador_kulesi.is_flamed(d.get_map_index()) then
                say("in dungeon") -- is_flamed ?? ??
            end
            if d.is_unique_dead("stone1") then
                say("taş 1 öldü ")
            else
                say("taş 1 yaşıyor")
            end
        end
        when flame_dungeon_45m_left_timer.timer begin
            notice(string.format("Kalan zaman: %d dakika(lar)", 45),d.notice)
            notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
            timer("flame_dungeon_30m_left_timer", 15*60)
        end
        when flame_dungeon_30m_left_timer.timer begin
            notice(string.format("Kalan zaman: %d dakika(lar)", 30),d.notice)
            notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
            timer("flame_dungeon_15m_left_timer", 15*60)
        end
        when flame_dungeon_15m_left_timer.timer begin
            notice(string.format("Kalan zaman: %d dakika(lar)", 15),d.notice)
             notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
            timer("flame_dungeon_5m_left_timer", 10*60)
        end
        when flame_dungeon_5m_left_timer.timer begin
            notice(string.format("Kalan zaman: %d dakika(lar)", 5),d.notice)
            notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
            timer("flame_dungeon_1m_left_timer", 4*60)
        end
        when flame_dungeon_1m_left_timer.timer begin
            notice(string.format("Kalan zaman: %d dakika(lar)", 1),d.notice)
            notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
            timer("flame_dungeon_0m_left_timer", 60)
        end
        when flame_dungeon_0m_left_timer.timer begin
            local setting = razador_kulesi.setting()
            notice("Size ayırılan süre doldu.10 Saniye[ENTER]içinde kale'nin kapıları sizin için açılacak.",d.notice)
            notice("10 Saniye içinde herkes ışınlanacak.",d.notice)
            timer("exit_dungeon",10)   
        end
 
 
        when 20385.chat." Am-heh Uyanış " with npc.lock() begin -- '0x'? x?? ?? ??? ?? ? ?? ?? , '1x'? x?? ?? ??? ???
            local setting = razador_kulesi.setting()
            if d.getf("started") == 0 then
                say("Am-heh Uyandı!")
                say("Kızıl Ejderha Kale'si bir saat boyunca[ENTER]başkalarına kapatıldı.")
                wait()
                d.setf("started",1)
                timer("flame_dungeon_45m_left_timer",15*60)
                notice("Kalan zaman: 60 Dakika(lar) ",d.notice)
                notice("Süre dolduğunda bütün grup üyeleri dışarıya atılır.",d.notice)
                
                local pids = {party.get_member_pids()}
                local ticketGroup = {71095, 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, 62)
                    end
                    q.end_other_pc_block()
                end
                d.setqf2("razador_kulesi","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("Misyon: şeytanların ringe çıkın[ENTER]ve Hepsini oldurun")
                    notice("Bilgilendirme: Savaşçılar ve Ejderha kral arasındaki ayaklanma birazdan başlayacak.",d.notice)
                    d.kill_unique("door1")
                    d.kill_unique("idoor1")
                    d.setf("level",11)
                    local counter_11 = 180
                    d.regen_file ("data/dungeon/razador_kulesi/".."fd_a.txt")
                elseif d.getf("level") == 11 then
                    say("Bütün şeytanlar yenilmedi.")
                    say_title("Kalan: ", counter_11)
                elseif d.getf("level") == 2 then
                        say("Görev: stel ISFET gizli[ENTER]mekanizma yerine[ENTER]dişli altın bulun.")
                        notice("Görev: stel ISFET gizli mekanizma[ENTER] yerine dişli altın bulun.",d.notice)
                        d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ??? ??
                        d.kill_unique("door2")
                        d.kill_unique("idoor2")
                        d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_b.txt")
                        d.setf("level",12)
                elseif d.getf("level") == 12 then
                    say("Görev başarıldı zaman[ENTER]ISFET stel mekanizma sadece[ENTER]Tur altın dişli tekerleği ile tetiklenebilir.")
                elseif d.getf("level") == 3 then
                    say("Misyon: şeytanların ringe çıkın[ENTER]ve Hepsini oldurun")
                    notice("Misyon: şeytanların ringe çıkın[ENTER]ve Hepsini oldurun",d.notice)
                    d.kill_unique("door3")
                    d.kill_unique("idoor3")
                    d.setf("level",13)
                    local counter_13 = 180
                    d.regen_file ("data/dungeon/razador_kulesi/".."fd_c.txt")
                elseif d.getf("level") == 13 then
                    say("Tum iblisler orada yenildiler.")
                    say_title("Diğer: ", counter_13)
                elseif d.getf("level") == 4 then -- 474 178
                    say("Görev : Ignatoru Yenin Cehennem Bekcisi")
                    notice("Görev : Ignatoru Yenin Cehennem Bekcisi",d.notice)
                    d.setf("level",14)
                    d.kill_unique("door4")
                    d.kill_unique("idoor4")
                    d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_d.txt")
                    d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- ????? ??
                elseif d.getf("level") == 14 then
                    say("Ignator Cehennem[ENTER]Bekcisi Hayla[ENTER]Yenilmemistir.")
                elseif d.getf("level") == 5 then -- 510 355
                    say("Misyon: Maat taşları bulun[ENTER] ve 7 stelleri ISFET doğru sırayla koyun.")
                    say("Eğer yanlış olarak Maat taş [ENTER]yerine stel kullanırsanız, taş kıracak.")
                    notice("Misyon: Maat taşları bulun[ENTER] ve 7 stelleri ISFET doğru sırayla koyun.",d.notice)
                    notice("Eğer yanlış olarak Maat taş [ENTER]yerine stel kullanırsanız, taş kıracak.",d.notice)
                    d.kill_unique("door5")
                    d.kill_unique("idoor5")
                    d.setf("level",15)
                    d.set_regen_file ("data/dungeon/razador_kulesi/".."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(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
                                    break
                                end
                            end
                        end
                    end
                elseif d.getf("level") == 15 then
                    say("Hey Oyuncu! Görevini yerine[ENTER] gizemli sırı cözmek icin [ENTER]Yeni görev için Am-heh ile görüşün.")
                elseif d.getf("level") == 6 then -- 507 490
                    say("Görev: Cehhenemim Kavurucu sıcagında [ENTER] Araf Metin yok edilecek.")
                    notice("Görev: Cehhenemim Kavurucu sıcagında [ENTER] Araf Metin yok edilecek.",d.notice)
                    d.setf("level",16)
                    d.kill_unique("door6")
                    d.kill_unique("idoor6")
                    d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_f.txt")
                    d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??
                elseif d.getf("level") == 16 then
                    say(" ")
                    say("Araf Metnini Yok Edin")
                elseif d.getf("level") == 7 then
                    razador_kulesi.go_boss()
                else
                    say(" ")
                end
            npc.unlock()       
        end
    
        when kill with razador_kulesi.is_flamed(pc.get_map_index()) and d.getf("level") == 11 begin -- 2?? ??? ?? ??
            if d.getf("counter_11") == 0 then -- 1?? ??? ???
                notice("Bütün şeytanları yendiniz,",d.notice)
                notice("Yeni görev için Am-heh ile görüşün...",d.notice)
                razador_kulesi.level_clear()
            else
                d.setf("counter_11",d.getf("counter_11")-1)
            end
        end
 
        when kill with razador_kulesi.is_flamed(pc.get_map_index()) and d.getf("level") == 13 begin -- 2?? ??? ?? ??
            if d.getf("counter_13") == 0 then -- 1?? ??? ???
                notice("Bütün şeytanları yendiniz,",d.notice)
                notice("Yeni görev için Am-heh ile görüşün...",d.notice)
                razador_kulesi.level_clear()
            else
                d.setf("counter_13",d.getf("counter_13")-1)
            end
        end
 
        when kill with razador_kulesi.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 (30329, 1)
            end
        end
        when 20386.take with razador_kulesi.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2?? ?? ????
            local i = number(1, 5) -- 5?? 1 ??? ?? ??
            if i == 1 then
                npc.purge()
                item.remove()
                notice("Bütün şeytanları yendiniz,",d.notice)
                notice("Yeni görev için Am-heh ile görüşün...",d.notice)
                razador_kulesi.level_clear()
            else
                item.remove()
                say("Bu parça yanlıştır.[ENTER]Özgün arama yıkıldı.")
            end
        end
 
        when 6051.kill with razador_kulesi.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
                notice("Bütün şeytanları yendiniz,",d.notice)
                notice("Yeni görev için Am-heh ile görüşün...",d.notice)
            razador_kulesi.level_clear()
        end
 
        when kill with razador_kulesi.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 (30330, 1)
            end
        end
        when 20386.take with razador_kulesi.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5?? ???? ????
            local setting = razador_kulesi.setting()
            if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
                npc.purge()
                item.remove()
                say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
                d.setf("stonekill",2) -- 2? ?? ???
                if d.count_monster() < 100 then
                    d.regen_file ("data/dungeon/razador_kulesi/".."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("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
                    d.setf("stonekill",3)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Yanlış Düzen Maat Taşı Yok edildi.")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
                if d.getf("stonekill") == 3 then
                    npc.purge()
                    item.remove()
                    say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
                    d.setf("stonekill",4)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Yanlış Düzen Maat Taşı Yok edildi.")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
                if d.getf("stonekill") == 4 then
                    npc.purge()
                    item.remove()
                    say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
                    d.setf("stonekill",5)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Yanlış Düzen Maat Taşı Yok edildi.")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
                if d.getf("stonekill") == 5 then
                    npc.purge()
                    item.remove()
                    say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
                    d.setf("stonekill",6)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Yanlış Düzen Maat Taşı Yok edildi.")
                end
            elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
                if d.getf("stonekill") == 6 then
                    npc.purge()
                    item.remove()
                    say("Bu akıllıca bir seçim oldu. Şimdi son [ENTER] stel yok ve Maat ISFET üzerinde zafer.")
                    d.setf("stonekill",7)
                    if d.count_monster() < 100 then
                        d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
                    end
                else
                    item.remove()
                    say("Yanlış Düzen Maat Taşı Yok edildi.")
                end
            else
                if d.getf("stonekill") == 7 then
                    npc.purge()
                    item.remove()
                    notice("Stel ISFET yıkıldı.",d.notice)
                    notice("Yeni bir hedef açmak için Am-heh ile konuşun.",d.notice)
                    razador_kulesi.level_clear()
                else
                    item.remove()
                    say("Yanlış Düzen Maat Taşı Yok edildi.")
                end
            end
        end
 
        when 8057.kill with razador_kulesi.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ??? ???? ?
            notice("Araf Metin yıkıldı.",d.notice)
            notice("Yeni bir hedef açmak için Am-heh ile konuşun.",d.notice)
            razador_kulesi.level_clear()
        end
 
        when 6091.kill with razador_kulesi.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ?? ????
            notice("Radazor Yıkıldı.",d.notice)
            notice("Bir Dakika İçinde Tüm savaşcılar[ENTER]Köylerine ışınlanacaktır.",d.notice)
            timer("exit_dungeon", 60)
            razador_kulesi.level_clear()
            
            if party.is_party() then
                party.setf("flame_dungeon_boss_kill_count", 1)
            end
            
        end
        
        when exit_dungeon.timer begin
            local setting = razador_kulesi.setting()
            razador_kulesi.clear_timer(d.get_map_index())
            d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2])
            d.exit_all()
            d.setf("party_leader_pid", 0)
        end
        
    end
end
orumcek2.lua:
Genişlet Daralt Kopyala
quest barones_kill begin
    state start begin
        when kill with npc.get_race() ==2092 begin
    game.drop_item_with_ownership("71159",1)
    game.drop_item_with_ownership("71160",1)   
    notice_all(""..pc.get_name().." grubu, Çöl Ortasında Güçlü Örümcek Baronesi Öldürmüştür.")
    notice_all("2 Saat Sonra Tekrar Döneceğim.! < ÖRÜMCEK BARONES >")
        end
    end
end
 
dahasıda varda hepsi iç içte dostum ayırt edim paylaşıma dahil ederım
 
Geri
Üst