Anime hayranı, owsap ın biricik aşkı Syreldar Exedyar Quest.

hexe

Üye
Üye
Mesaj
141
Beğeni
162
Puan
366
Ticaret Puanı
0
Kısaca durum şöyle: , bir müşteriden Akzadur için iş alıyor. Daha sonra Elveron aynı işi talep edince, muhtemelen daha yüksek ücret teklif edildiği için ilk müşteriyi tamamen ikinci plana atıyor. İlk müşteriyi 3 ay boyunca oyalıyor, (bu süreçte müşteriden sürekli many talep ediyor tabi ) devamında ise müşteri elveron geliştiricisinden syreldar ın exedyarı elveron için yaptığını öğreniyor. Sonuç olarak da ilk müşteriyi engelleyerek işi tamamlamadan ortadan kayboluyor.

O yüzden kodlar ne kadar iyidir değildir bilmiyorum, belki işine yarayan olur. Ek olarak dosya ekinde zindanın nasıl olduğuna dair detaylı bir official anlatım bulunuyor. Güle güle kullanin


1.webp
2.webp


4.webp
5-webp.27339



3.webp



dungeon_akzadur.quest:
Genişlet Daralt Kopyala
quest dungeon_akzadur begin

    state start begin
        when 20421.chat.mob_name(6500) begin
            if pc.get_map_index() != 355 then
                return
            end
        
            if if_not_available("dungeon_akzadur") then
                return say(locale_quest(20078))
            end
        
            local MIN_LEVEL = 115
            local MAX_LEVEL = 120
            local DUNGEON_TICKET = 70448
        
            say_title(mob_name(20421))
            say(locale_quest(20088))
        
            local dungeon_type = select(locale_quest(874), locale_quest(14284), locale_quest(875)) -- do, test, close
        
            if dungeon_type == 1 then -- normal
                if party.is_party() then -- if in party, he enter in party
                    if dungeon_join_party("dungeon_akzadur", MIN_LEVEL, MAX_LEVEL, DUNGEON_TICKET) == true then
                        enter_dungeon(363, 2694, 3469, true, false, DUNGEON_TICKET)
                    end
                else -- solo dungeon
                    if dungeon_join_solo("dungeon_akzadur", MIN_LEVEL, MAX_LEVEL, DUNGEON_TICKET) then
                        enter_dungeon(363, 2694, 3469, false, false, DUNGEON_TICKET)
                    end
                end
            elseif dungeon_type == 2 then -- test           
                say_title(mob_name(npc.get_vnum()))
                say_reward(locale_quest(14285))
            
                local select = select(locale_quest(14284), locale_quest(39))
            
                if select == 1 then
                    if dungeon_join_test(MIN_LEVEL, MAX_LEVEL) then
                        enter_dungeon(363, 2931, 3452, false, true, 0)
                    end
                end
            end
        end
        -- already in dungeon, start of the dungeon
        
        function quest_event_when_login()
            local index = pc.get_map_index()
            d.set_warp_location(355, 1776, 11962)
            if check_if_test() then
                d.setf("akzadur", 1)
                d.setf("first_regen", 0)

                d.setf("boss", 1)
                server_timer("timer", 60*10, index)
                d.setf("real_time", get_global_time()+60*10)

                server_timer("boss", 1, index)
                d.setf("floor", 5)
                cmdchat_in_map(index, string.format("RefreshDungeonTimer %d %d",d.getf("floor"), d.getf("real_time")-get_global_time()))
                return
            end

            if d.getf("timer_check") == 1 and d.getf("floor") > 0 then
                cmdchat_in_map(index, string.format("RefreshDungeonTimer %d %d",d.getf("floor"),d.getf("real_time")-get_global_time()))
                return
            end
            if d.getf("first_regen") == 1 then
                d.setf("akzadur", 1)
                server_timer("first_room_wave", 1, index)
                server_timer("timer", 60*35, index)
                d.setf("real_time", get_global_time()+60*35)
                cmdchat_in_map(index, string.format("RefreshDungeonTimer %d %d",d.getf("floor"),d.getf("real_time")-get_global_time()))
                d.setf("real_time_fastest", get_global_time())
                d.setf("timer_check", 1)
            end
            set_cooltime(60*120, "dungeon_akzadur")
        end

        when login with pc_in_dungeon(363) begin
            timer("akzadur_login_check", 1)
        end

        when akzadur_login_check.timer with pc_in_dungeon(363) begin
            dungeon_akzadur.quest_event_when_login()
        end

        when first_room_wave.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.getf("first_regen") == 1 and d.getf("akzadur") == 1 then
                    d.setf("first_regen", 0)

                    d.setf("first_room_wave", 1)
                    d.notice(20089)

                    d.regen_file("data/dungeon/akzadur/wave1.txt")

                    d.setf("floor", 1)
                    cmdchat_in_map(d.get_map_index(), string.format("RefreshDungeonFloor %d",d.getf("floor")))
                end
            end
        end

        when first_room_eggs.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.getf("first_room_wave") == 1 and d.getf("akzadur") == 1 then
                    d.setf("first_room_wave", 0)

                    d.setf("first_room_eggs", 1)

                    d.notice(20090)

                    d.regen_file("data/dungeon/akzadur/wave1.txt")
                    d.regen_file("data/dungeon/akzadur/eggs.txt")

                    d.setf("floor", 2)
                    cmdchat_in_map(d.get_map_index(), string.format("RefreshDungeonFloor %d",d.getf("floor")))
                end
            end
        end

        when second_room_wave.server_timer begin
            if d.select(get_server_timer_arg()) then
                if d.getf("first_room_eggs") == 1 and d.getf("akzadur") == 1 then
                    d.setf("first_room_eggs", 0)
                    d.setf("second_room_wave", 1)

                    d.jump_all(2931,3452)

                    d.regen_file("data/dungeon/akzadur/wave2.txt")

                    d.notice(20091)

                    d.setf("floor", 3)

                    cmdchat_in_map(d.get_map_index(), string.format("RefreshDungeonFloor %d",d.getf("floor")))
                end
            end
        end

        when 20500.kill begin
            if pc_in_dungeon(363) == false then
                return
            end
            if d.select(pc.get_map_index()) then
                if d.getf("first_room_eggs") == 1 then
                    local STONES = 4
                    nstones = d.getf("count_stones") + 1
                    d.setf("count_stones", nstones)
                    if nstones >= STONES then
                        d.notice(20092)
                        server_timer("second_room_wave", 5, d.get_map_index())
                        d.kill_all()
                    end
                end
            end
        end

        when 3005.kill or 3004.kill or 3002.kill begin
            if pc_in_dungeon(363) == false then
                return
            end
            if d.select(pc.get_map_index()) then
                if d.getf("first_room_wave") == 1 then
                    local KILL_COUNT = 100
                    n = d.getf("count_monsters") + 1
                    d.setf("count_monsters", n)
                    if n == KILL_COUNT then
                        d.notice(20093)
                        server_timer("first_room_eggs", 5, d.get_map_index())
                        d.kill_all()
                    end
                end
                if d.getf("second_room_wave") == 1 then
                    KILL_COUNT2 = 130
                    n2 = d.getf("count_monsters_2") + 1
                    d.setf("count_monsters_2", n2)
                    if n2 == KILL_COUNT2 then
                        d.notice(20094)
                        server_timer("second_room_pre_boss", 5, d.get_map_index())
                        d.kill_all()
                    end
                end
            end
        end

        when second_room_pre_boss.server_timer begin
            if d.select(get_server_timer_arg()) and map_in_dungeon(363) then
                if d.getf("second_room_wave") == 1 and d.getf("akzadur") == 1 then
                    d.setf("second_room_wave", 0)
                    d.setf("second_room_pre_boss", 1)

                    d.notice(20095)
                    d.regen_file("data/dungeon/akzadur/pre_boss.txt")
                    d.regen_file("data/dungeon/akzadur/wave2.txt")

                    d.setf("floor", 4)
                    cmdchat_in_map(d.get_map_index(), string.format("RefreshDungeonFloor %d",d.getf("floor")))   
                end
            end
        end

        when 4439.kill with pc_in_dungeon(363) begin
            if d.select(pc.get_map_index()) then
                d.setf("second_room_pre_boss", 0)
                d.setf("boss", 1)

                d.kill_all()
                d.notice(20096)
                server_timer("boss", 3, d.get_map_index())
            end
        end

        when boss.server_timer begin
            if d.select(get_server_timer_arg()) and map_in_dungeon(363) then
                if d.getf("boss") == 1 and d.getf("akzadur") == 1 then
                    d.regen_file("data/dungeon/akzadur/boss.txt")
                    d.notice(20097)

                    d.setf("floor", 5)
                    cmdchat_in_map(d.get_map_index(), string.format("RefreshDungeonFloor %d",d.getf("floor")))   
                end
            end
        end

        when 6500.kill with pc_in_dungeon(363) begin
            if d.select(pc.get_map_index()) then
                if d.getf("boss") == 1 then
                    give_event_reward(70448, check_if_test())

                    d.notice(20098)
                    d.kill_all()

                    d.setf("boss", 0)
                    d.setf("floor", 5)

                    killed_boss(6500, check_if_test(), d.getf("real_time_fastest"), pc.get_map_index())
                end
            end
        end

        -- timers
        when timer.server_timer begin
            if d.select(get_server_timer_arg()) and map_in_dungeon(363) then
                execute_timer(true, 177600, 1196200, get_server_timer_arg(), 1)
            end
        end

        when timer_end.server_timer begin
            if d.select(get_server_timer_arg()) and map_in_dungeon(363) then
                execute_timer(false, 177600, 1196200, get_server_timer_arg(), 1)
            end
        end
    end
end
 

Dosya Eklentileri

Geri
Üst