Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Quest Bonusy Dla Pety


Rekomendowane odpowiedzi

Opublikowano

quest na ww jest dostępny już na forum,

 

Tutaj masz odbugowane DT możesz je przerobić na WW :

quest deviltower_zone begin
    state start begin
        when login begin
            if pc.get_map_index() == 66 then
                if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc.warp((5376+532)*100, (512+596+4)*100, 65)
                end
                pc.set_warp_location(65, 5376+532, 512+596+4)
            elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                pc.set_warp_location(65, 5376+532, 512+596+4)
            end
        end
        when deviltower_man.chat.locale.deviltower_man_chat begin
            if pc.get_level() < 40 then
                say(locale.deviltower_man_say_you_cant)
            else
                say(locale.deviltower_man_say)
                local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
                if s == 1 then
                    -- warp into!
                    pc.warp(216500,727000)
                end
            end
        end
        when devil_stone1.kill begin
            timer("devil_stone1_1", 6)
        end
        when devil_stone1_1.timer begin
                local mapto7= pc.count_item(30302)
                pc.remove_item(30302,mapto7)

                local boxto7= pc.count_item(30300)
                pc.remove_item(30300,boxto7)

            d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
            d.regen_file("data/dungeon/deviltower2_regen.txt")
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
        end
        --when devil_stone2.kill begin
        --d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
        --end
        when devil_stone3.kill begin
            --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
            --d.set_exit_all_at_eliminate(6)
            --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
            --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
            d.check_eliminated()
            --d.exit_all()
        end
        function get_4floor_stone_pos()
            local positions = {
                {368, 629},
                {419, 630},
                {428, 653},
                {422, 679},
                {395, 689},
                {369, 679},
                {361, 658},
            }
            for i = 1, 6 do
                local j = number(i, 7)
                if i != j then
                    local t = positions[i];
                    positions[i] = positions[j];
                    positions[j] = t;
                end
            end
            --for i = 1, 7 do
        --      positions[i][1] = positions[i][1] * 100
        --      positions[i][2] = positions[i][2] * 100
         --   end
            return positions
        end
        when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.setf("level", 4)
            --d.regen_file("data/dungeon/deviltower4_regen.txt")
            local positions = deviltower_zone.get_4floor_stone_pos()
            for i = 1, 6 do
                chat(positions[i][1], positions[i][2])
                d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
            end
            chat(positions[7][1], positions[7][2])
            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
            chat(vid)
            d.set_unique("real", vid)
            server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
            server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

            d.notice("Brawo, udalo sie Tobie");
            d.notice("zniszczyc kamien metin!");
            d.notice("Macie 15 minut na nastepnym pietrze[ENTER] zanim zostaniecie wylogowani.");
            d.notice("Spieszcie sie!");
        end

        when devil_stone4_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Pozostalo 10 minut!")
                server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Pozostalo 5 minut!")
                server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Nie udalo sie, zostaniecie wylogowany!")
                d.exit_all()
                clear_server_timer('devil_stone4_update', get_server_timer_arg())
            end
        end

        when devil_stone4_update.server_timer begin
            if d.select(get_server_timer_arg()) then
                if not d.is_unique_dead("real") then
                    for i = 1, 6 do
                        if d.getf("fakedead" .. i) == 0 then
                            if d.unique_get_hp_perc("fake" .. i) < 50 then
                                d.purge_unique("fake" .. i)
                                d.setf("fakedead" .. i, 1)
                                d.notice("To nie ten kamien!");
                            end
                        end
                    end
                else
                    --d.clear_regen()
                    --d.regen_file("data/dungeon/deviltower5_regen.txt")
                    server_timer("devil_stone4_end", 5, get_server_timer_arg())
                    d.notice("Udalo sie! Zabij wszystkie potwory na nastepnym");
                    d.notice("pietrze, aby zdobyc kamien otwarcia!")
                    clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
                    clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
                    clear_server_timer('devil_stone4_fail', get_server_timer_arg())
                end
            else
                server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
            end
        end

        when devil_stone4_stop_timer.server_timer begin
            clear_server_timer('devil_stone4_update', get_server_timer_arg())
        end

        when devil_stone4_end.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.setf("level", 5)
                d.setf("stone_count", 5)
                d.notice("Brawo, jestes na 5 pietrze!")
                d.notice("Aby przejsc na 6 pietro musisz zabic")
                d.notice("wszystkie potwory tutaj, zdobyc kamien")
                d.notice("otwarcia i otworzyc pieczecie przed czasem!")
                d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
                server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
                clear_server_timer('devil_stone4_update', get_server_timer_arg())


                d.set_regen_file("data/dungeon/deviltower5_regen.txt")

                d.spawn_mob(20073, 421, 452)
                d.spawn_mob(20073, 380, 460)
                d.spawn_mob(20073, 428, 414)
                d.spawn_mob(20073, 398, 392)
                d.spawn_mob(20073, 359, 426)
            end
        end
        when devil_stone5_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Pozostalo 15 minut!")
                server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Pozostalo 10 minut!")
                server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail3.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Pozostalo 5 minut!")
                server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Nie udalo sie, zostaniesz wylogowany!")
                d.exit_all()
            end
        end

        --when devil_stone4.kill begin
            --d.setf("level", 5)
            --d.setf("stone_count", 4)
            --d.clear_regen()
            --d.regen_file("data/dungeon/deviltower5_regen.txt")
            --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
        --end

        when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
            local KILL_COUNT_FOR_DROP_KEY = 50
            --if is_test_server() then
                --KILL_COUNT_FOR_DROP_KEY = 1
            --end
            local n =d.getf("count") + 1
            d.setf("count", n) 
            if n == KILL_COUNT_FOR_DROP_KEY then
                game.drop_item(50084, 1)
                d.setf("count", 0)
            end
        end
        when devil_stone5.take with item.vnum == 50084 begin
            npc.purge()
            item.remove()
            d.setf("stone_count", d.getf("stone_count") - 1)
            if d.getf("stone_count") <= 0 then
                d.setf("level", 6)
                d.clear_regen()
                d.regen_file("data/dungeon/deviltower6_regen.txt")

                d.notice("Brawo udalo sie! jestes na 6 pietrze!")
                d.notice("Zabij wszystkie potwory!")
                d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
                clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
                clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
                clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
                clear_server_timer('devil_stone5_fail', get_server_timer_arg())
            else
                d.notice("Zostalo"..d.getf("stone_count").."pieczeci")
            end
        end

        when devil_stone6.kill begin
            --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
            d.kill_all()
           -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
            d.check_eliminated()
            local reward_alchemist = {20074, 20075, 20076}
            d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
            d.setqf("can_refine", 1)
        end


        when 20074.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                say(""..mob_name(20074).."")
                say("Zostaniesz przeniesiony")
                say("na 7 pietro Wiezy Demonow!")
                say("Lecz uwazaj...")
                say("Tam nie bedzie tak latwo jak wczesniej!")
                wait()
                if pc.level >=75 then
                        say("Kazdy z graczy zostanie przeniesiony!")
                        timer("devil_jump_7", 6)
                        return
                end
                say("Mozesz przejsc dalej!")
                say("")
                say("")
                wait()
                pc.warp(590500, 110500)
                return
    end
        when 20075.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                say(""..mob_name(20075).."")
                say("Zostaniesz przeniesiony")
                say("na 7 pietro Wiezy Demonow!")
                say("Lecz uwazaj...")
                say("Tam nie bedzie tak latwo jak wczesniej!")
                wait()
                if pc.level >=75 then
                        say("Kazdy z graczy zostanie przeniesiony!")
                        timer("devil_jump_7", 6)
                        return
                end
                say("Mozesz przejsc dalej!")
                say("")
                say("")
                wait()
                pc.warp(590500, 110500)
                return
    end
        when 20076.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                say(""..mob_name(20076).."")
                say("Zostaniesz przeniesiony")
                say("na 7 pietro Wiezy Demonow!")
                say("Lecz uwazaj...")
                say("Tam nie bedzie tak latwo jak wczesniej!")
                wait()
                if pc.level >=75 then
                        ssay("Kazdy z graczy zostanie przeniesiony!")
                        timer("devil_jump_7", 6)
                        return
                end
                say("Mozesz przejsc dalej!")
                say("")
                say("")
                wait()
                pc.warp(590500, 110500)
                return
    end

   when devil_jump_7.timer begin
                d.clear_regen()

                d.spawn_mob(8018, 639, 658)
                d.spawn_mob(8018, 611, 637)
                d.spawn_mob(8018, 596, 674)
                d.spawn_mob(8018, 629, 670)

                d.setf("level", 7)

                d.jump_all(2048+590, 6656+638)
        end
        
        when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                local cont = d.getf("7_stone_kill") + 1
                d.setf("7_stone_kill", cont)

                if cont >= 4 then
                        d.setf("7_stone_kill", 0)
                        d.set_regen_file("data/dungeon/deviltower7_regen.txt")
                end     
        end

        when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                game.drop_item(30300, 1)
        end

        when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                pc.remove_item("30300", 1)

                local pct = number(1,10)

                if pct == 1 then
                        game.drop_item(30302, 1)
                        d.clear_regen()
                else
                        game.drop_item(30301, 1)
                        
                end
        end

        when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                say("Przeniesiesz sie na 8 pietro!")
                pc.remove_item("30302", 1)
            timer("devil_jump_8", 6)
                d.clear_regen()
        end
                                                
        when devil_jump_8.timer begin
                d.setf("level", 8)
                d.jump_all(2048+590, 6656+403)
                d.set_regen_file("data/dungeon/deviltower8_regen.txt")
                d.spawn_mob(20366, 640, 460)
                local _count= pc.count_item(30302)
                pc.remove_item(30302,_count)
                
        end

        when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                local pct1 = number(1, 5)
                if pct1 == 1 then
                        local pct2 = number(1, 10)
                        if pct2 == 1 then
                                game.drop_item(30304, 1)
                        else
                                game.drop_item(30303, 1)
                        end
                else
                        return
                end
        end

        when 20366.take with item.vnum == 30304 begin
                d.notice("Zostaniecie przeniesieni na 9 pietro!")
                npc.purge()
                item.remove()
                timer("devil_jump_9", 6)
        end

        when devil_jump_9.timer begin
                d.setf("level", 9)
                d.jump_all(2048+590, 6656+155)
                d.regen_file("data/dungeon/deviltower9_regen.txt")
        end

        when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                d.kill_all()
                notice_all(pc.get_name().." zabil Umarlego Rozpruwacza!")
                timer("devil_end_jump", 60)
        end

        when devil_end_jump.timer begin
            d.exit_all()
        end
end
end

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...