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

Rekomendowane odpowiedzi

Opublikowano

jak w temacie Quest na Wieze Demonów Wywala Jak sie wejdzie na pieczątki 

http://wklej.to/dZppf

 

quest deviltower_zone begin

state start begin
    when login begin
     if pc.get_map_index() == 66 then
        -- ¨Ă«D¦b1ĽÓ®É, °eŞđĄ~­±.
        -- ĽhĽĆ ˝dłň
        -- 1ĽÓ 88 577 236 737
        -- 2ĽÓ 91 343 238 504
        -- 3ĽÓ 104 107 248 269
        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."Wieża Demonów" 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 kill with npc.get_race() == 8015 and pc.get_map_index() == 66 begin
     timer("devil_stone1_1", 6)
    end
    when devil_stone1_1.timer begin
        local mapto7= pc.count_item(30302) -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞşŻu¤`ĆF¶đ
        pc.remove_item(30302,mapto7)

        local boxto7= pc.count_item(30300) -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞş¤ŁŞľ¦WŞş˝c¤l
        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;
         positions = positions[j];
         positions[j] = t;
        end
     end
     --for i = 1, 7 do
    --    positions[1] = positions[1] * 100
    --    positions[2] = positions[2] * 100
     -- end
     return positions
    end
    when kill with npc.get_race() == 8016 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
     d.setf("level", 4)
     -- ¦A˛{¤j¶q©ÇŞ«¤Î»słyŻuĄŰŔY©M°˛ĄŰŔY
     --d.regen_file("data/dungeon/deviltower4_regen.txt")
     local positions = deviltower_zone.get_4floor_stone_pos()
     for i = 1, 6 do
        chat(positions[1], positions[2])
        d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[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("<Informacja> Brawo, Udało się Tobie");
     d.notice("<Informacja> zniszczyc kamien metin!");
     d.notice("<Informacja> Macie 15 minut na nastepnym pietrzezanim zostaniecie wylogowani.");
     d.notice("<Informacja> Spieszcie się!");
    end

    when devil_stone4_fail1.server_timer begin
     if d.select(get_server_timer_arg()) then
        d.notice("<Informacja> Pozostało 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("<Informacja> Pozostało 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("<Informacja> Nie udało się, zostaniecie wylogowani!")
        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("<Informacja> 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("<Informacja> Udało się! Zabij wszystkie potwory na nastepnym");
         d.notice("<Informacja> 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("<Informacja> Brawo, jesteś na 5 piętrze!")
        d.notice("<Informacja> Aby przejść na 6 pietro musisz zabić ")
        d.notice("<Informacja> wszystkie potwory tutaj, zdobyć Kamień ")
        d.notice("<Informacja> Otwarcia i otworzyć pieczęcie 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())

        -- 5ĽÓÄ~Äň¦A˛{
        d.set_regen_file("data/dungeon/deviltower5_regen.txt")

        -- 5ĽÓ«Ę¦LĄŰ¦A˛{
        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("<Informacja> Pozostało 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("<Informacja> Pozostało 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("<Informacja> Pozostało 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("<Informacja> Nie udało się, zostaniecie wylogowani!")
        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 kill with npc.get_race() == 1062 and 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
        -- ±Ľ¤UÂę°Í
        pc.give_item2(50084, 1)
        d.notice("<Informacja> "..pc.get_name().." podniósł Kamień Otwarcia.")
        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("<Informacja> Brawo udało się! Jesteś na 6 piętrze!")
        d.notice("<Informacja> 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("<Informacja> Pozostałe pieczęcie: "..d.getf("stone_count"))
     end
    end

    when devil_stone6.kill begin
     -- ¶Ç°e¨ě·Ň¸t©Ň¦bŞş¦aąĎ
     -- §_«hˇA¶}ł]¤@­Ó·s·Ň¸t
     --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

    --------------------------------------
    -- ĄŃ¶i¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
    --------------------------------------

    when 20074.chat."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
        say_title(""..mob_name(20074).."")
        say("Zostaniesz przeniesiony")
        say("na 7 pietro Wieży Demonów!")
        say("Lecz uważaj...")
        say("Tam nie będzie tak łatwo 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."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
        say_title(""..mob_name(20075).."")
        say("Zostaniesz przeniesiony")
        say("na 7 pietro Wieży Demonów!")
        say("Lecz uważaj...")
        say("Tam nie będzie tak łatwo 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."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
        say_title(""..mob_name(20076).."")
        say("Zostaniesz przeniesiony")
        say("na 7 pietro Wieży Demonów!")
        say("Lecz uważaj...")
        say("Tam nie będzie tak łatwo 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 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 kill with npc.get_race() == 8018 and 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 kill with npc.get_race() == 8019 and 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
            -- ±Ľ¤UŻu¦aąĎ
            game.drop_item(30302, 1)
            d.clear_regen()
        else
            -- ±Ľ¤U°˛¦aąĎ
            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
        -- ¶Ç°e¨ě8ĽÓ
        say("Przeniesiesz się na 8 pietro!")
        pc.remove_item("30302", 1)
     timer("devil_jump_8", 6)
        d.clear_regen()
    end
                        
    --------------------------------------------
    -- ĄŃ¶i¤J8ĽÓ¦Ü¨ěąF9ĽÓ¤§«e
    --------------------------------------------
    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)-- ®ř·ŔŻu¤`ĆF¶đ
        pc.remove_item(30302,_count)
        
    end

    when kill with npc.get_race() == 1040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 8 begin
        local pct1 = number(1, 5)
        if pct1 == 1 then
            local pct2 = number(1, 10)
            if pct2 == 1 then
                -- ±Ľ¤UŻuÂę°Í
                game.drop_item(30304, 1)
            else
                -- ±Ľ¤U°˛Âę°Í
                game.drop_item(30303, 1)
            end
        else
            return
        end
    end

    when 20366.take with item.vnum == 30304 begin
        -- 9ĽÓ«Ę¦L¸Ń°Ł
        d.notice("<Informacja> Zostaniecie przeniesieni na 9 pietro!")
        npc.purge()
        item.remove()
        timer("devil_jump_9", 6)
    end

    ---------------------------------------------
    -- ĄŃ¶i¤J9ĽÓ¦Üµ˛§ô
    ---------------------------------------------
    when devil_jump_9.timer begin
        d.setf("level", 9)
        d.jump_all(2048+590, 6656+155)
        d.spawn_mob(1093, 608, 220)
        d.regen_file("data/dungeon/deviltower9_regen.txt")
    end

    when kill with npc.get_race() == 1093 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
        d.notice("<Informacja> Zaraz Pojawi Sie Nieb.smierc.")
    end

    when kill with npc.get_race() == 1095 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d.kill_all()
        d.notice("<Informacja> Za 60 sekund zostaniecie wyrzuceni z Wieży!")
        timer("devil_end_jumpx", 60)
    end
    
    when devil_end_jumpx.timer begin
        d.exit_all()
    end
end
end

 

 

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...