Yardım Quest düzenleme sorunu

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

rizacakirr1

Üye
Üye
Mesaj
30
Beğeni
3
Puan
46
Ticaret Puanı
0
Merhaba arkadaşlar

Şeytan kulesi quest düzenliyorum ama sadece giriş katta benim questi okuyor ben 2. Kat yerine 9. Kata atsın diyorum ama bildiğini yapıyor yine 2. Kata gönderiyor acaba başka bi yerden falan mı çekiyor bilgisi olan var mı?

Birde ilk katta map index 68 mesela tam hatırlamıyorum ama 2. Katta 60002 gibi oluyor sorun nerde anlamadım yardımcı olabilir misiniz
 
Lua (Quest):
Genişlet Daralt Kopyala
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)

                -- DUNGEON_MANAGER_RANKING

                if pc.getf("deviltower_zone", "entered") != 1 then

                    pc.setf("deviltower_zone", "entered", 1)

                    pc.setf("deviltower_zone", "enter_time", get_global_time())

                end

                -- END_OF_DUNGEON_MANAGER_RANKING

            end

        end

  

        when logout begin

            if pc.count_item(30300) >= 1 then

                pc.remove_item(30300, pc.count_item(30300))

            end

            -- not used in the game

            -- pc.remove_item(30301, pc.count_item(30301))

            if pc.count_item(30302) >= 1 then

                pc.remove_item(30302, pc.count_item(30302))

            end

            -- DUNGEON_MANAGER_RANKING

            pc.setf("deviltower_zone", "entered", 0)

            pc.setf("deviltower_zone", "enter_time", 0)

            -- END_OF_DUNGEON_MANAGER_RANKING

            if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then

                ------------ Dungeon Turn Back System ----------------------

                pc.setf("deviltower_zone","dungeon_turn",1)

                ------------------------------------------------------------

            end

        end

          

        when deviltower_man.chat.gameforge.deviltower_zone._10_npcChat begin

            if pc.get_level() < 40 then

                say_title(gameforge.deviltower_zone._20_sayTitle)

                say(gameforge.deviltower_zone._30_say)

            else

                say_title(gameforge.deviltower_zone._20_sayTitle)

                say("")

                say("Eğer zindandan düşersen kaldığın yerden devam ")

                say("etmek için 5dk içerisinde oyuna tekrar giriş ")

                say("yapmalısın. ")

                say("Otomatik olarak kaldığın yerden devam edebilirsin. ")

                wait()

                say_title(gameforge.deviltower_zone._20_sayTitle)

                say("")

                say(gameforge.deviltower_zone._40_say)

                local s =  select(gameforge.locale.monkey_dungeon.enter, gameforge.locale.monkey_dungeon.no_enter)

                if s == 1 then

                    pc.warp(216500,727000)

                    pc.remove_turn_back_dungeon()

                end

            end

        end

        when kill with npc.get_race() == 8015 begin

            timer("devil_stone1_1", 6)

        end

        when devil_stone1_1.timer begin

            d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])

            d.regen_file("data/dungeon/deviltower_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/deviltower_dungeon/deviltower3_regen.txt")

        end

        when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin

            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower_dungeon/deviltower4_regen.txt")

            d.check_eliminated()

        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

            return positions

        end

    

        when kill with npc.get_race() == 8016 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin

            d.setf("level", 4)

            local positions = deviltower_zone.get_4floor_stone_pos()

    

            for i = 1, 6 do

                test_chat(positions[1], positions[2])

                d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[2]))

            end

    

            test_chat(positions[7][1], positions[7][2])

    

            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])

            test_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())

            

            notice_multiline(gameforge.deviltower_zone._50_dNotice,d.notice)

            

        end

    

        when devil_stone4_fail1.server_timer begin

            if d.select(get_server_timer_arg()) then

                notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)

                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

                notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)

                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

                notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)

                d.clear_regen()

                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)

                                notice_multiline(gameforge.deviltower_zone._90_dNotice,d.notice)

                            end

                        end

                    end

                else

                    server_timer("devil_stone4_end", 5, get_server_timer_arg())

                    --d.kill_all()

                    d.purge()

                    notice_multiline(gameforge.deviltower_zone._100_dNotice,d.notice)

                    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

                clear_server_timer('devil_stone4_update', get_server_timer_arg())

                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())

                

                -- clear regen from memory when exit

                d.clear_regen()

                

                d.setf("level", 5)

                d.setf("stone_count", 5)

                notice_multiline(gameforge.deviltower_zone._110_dNotice,d.notice)

                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/deviltower_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

                notice_multiline(gameforge.deviltower_zone._120_dNotice,d.notice)

                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

                notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)

                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

                notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)

                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

                notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)

                d.exit_all()

            end

        end

    

    

        when kill with npc.get_race() == 1062 and d.getf("level") == 5 begin

            local KILL_COUNT_FOR_DROP_KEY = 5

            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/deviltower_dungeon/deviltower6_regen.txt")

    

                notice_multiline(gameforge.deviltower_zone._130_dNotice,d.notice)

                d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])

                local server_arg = d.get_map_index()

                clear_server_timer('devil_stone5_fail1', server_arg)

                clear_server_timer('devil_stone5_fail2', server_arg)

                clear_server_timer('devil_stone5_fail3', server_arg)

                clear_server_timer('devil_stone5_fail', server_arg)

            else

                d.notice(string.format(gameforge.deviltower_zone._140_dNotice, d.getf("stone_count")))

            end

        end

    

        when kill with npc.get_race() == 1092 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin

            d.kill_all()

            notice_multiline(gameforge.deviltower_zone._150_dNotice,d.notice)

            d.check_eliminated()

            notice_multiline(gameforge.deviltower_zone._160_dNotice,d.notice)

            local reward_alchemist = {20074, 20075, 20076}

            d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);

            d.setqf2("deviltower_zone","can_refine", 1)

        end

    

    

        when 20074.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin

            say_title(mob_name(20074))

            say(gameforge.deviltower_zone._190_say)

            wait()

            if pc.level >=75 then

                say_title(mob_name(20074))

    

                say(gameforge.deviltower_zone._200_say)

                local s= select(gameforge.deviltower_zone._210_select, gameforge.locale.cancel, gameforge.deviltower_zone._220_select)

                if s==3 then

                    pc.warp(590500, 110900)

                    return

                end

                if s==2 then

                    return

                end

    

                timer("devil_jump_7", 6)

                npc.unlock()

                d.purge()

                return

            end

            say_title(mob_name(20074))

            say(gameforge.deviltower_zone._230_say)

            wait()

            pc.warp(590500, 110500)

            return

        end

    

        when 20075.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000  and npc.lock() begin

            say_title(mob_name(20075))

            say(gameforge.deviltower_zone._190_say)

            wait()

            if pc.level >=75 then

                say_title(mob_name(20075))

    

                say(gameforge.deviltower_zone._200_say)

                local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)

                if s==3 then

                    pc.warp(590500, 110900)

                    return

                end

                if s==2 then

                    return

                end

    

                timer("devil_jump_7", 6)

                npc.unlock()

                d.purge()

                return

            end

            say_title(mob_name(20075))

            say(gameforge.deviltower_zone._230_say)

            wait()

            pc.warp(590500, 110500)

            return

        end

        when 20076.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000  and npc.lock() begin

            say_title(mob_name(20076))

            say(gameforge.deviltower_zone._190_say)

            wait()

            if pc.level >=75 then

                say_title(mob_name(20076))

    

                say(gameforge.deviltower_zone._200_say)

                local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)

                if s==3 then

                    pc.warp(590500, 110900)

                    return

                end

                if s==2 then

                    return

                end

    

                timer("devil_jump_7", 6)

                npc.unlock()

                d.purge()

                return

            end

            say_title(mob_name(20076))

            say(gameforge.deviltower_zone._230_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)

    

    

            notice_multiline(gameforge.deviltower_zone._240_dNotice,d.notice)

            d.jump_all(2048+590, 6656+638)

        end

    

        when kill with npc.get_race() == 8018 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/deviltower_dungeon/deviltower7_regen.txt")

            end

        end

    

        when kill with npc.get_race() == 8019 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

            if d.getf( "level" ) != 7 then

                pc.remove_item( "30302", 1)

                return

            end

                

            say_title(gameforge.blacksmith._40_sayTitle)

            say(gameforge.deviltower_zone._250_say)

            pc.remove_item("30302", 1)

            timer("devil_jump_8", 6)

            d.clear_regen()

        end

    

        when devil_jump_8.timer begin

            d.setf("level", 8)

    

            notice_multiline(gameforge.deviltower_zone._260_dNotice,d.notice)

            d.jump_all(2048+590, 6656+403)

            d.set_regen_file("data/dungeon/deviltower_dungeon/deviltower8_regen.txt")

            -- d.spawn_mob(20366, 640, 460)

            local _count = pc.count_item(30302)

            pc.remove_item(30302,_count)

            

        end

    

        when kill with npc.get_race() == 1040 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin

            if d.getf("level") < 9 then

                local pct1 = number(1, 10)

                if pct1 == 1 then

                    local pct2 = number(1, 4)

                    if pct2 == 1 then

                        game.drop_item(30304, 1)

                    else

                        game.drop_item(30303, 1)

                    end

                else

                    return

                end

            end

        end

    

        when 20366.take with item.vnum == 30304 begin

            npc.purge()

            item.remove()

            timer("devil_jump_9", 6)

        end

    

        when devil_jump_9.timer begin

            d.setf("level", 9)

    

    

            notice_multiline(gameforge.deviltower_zone._270_dNotice,d.notice)

            d.jump_all(2048+590, 6656+155)

            d.regen_file("data/dungeon/deviltower_dungeon/deviltower9_regen.txt")

        end

    

        when kill with npc.get_race() == 1093 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin

            -- DUNGEON_MANAGER_RANKING

            if party.is_party() then

                local pids = {party.get_member_pids()}

                for i, pid in next, pids, nil do

                    q.begin_other_pc_block(pid)

                    d.update_rank(66, (get_global_time() - pc.getf("deviltower_zone", "enter_time")), pc.get_last_damage())

                    q.end_other_pc_block()

                end

            else

                d.update_rank(66, (get_global_time() - pc.getf("deviltower_zone", "enter_time")), pc.get_last_damage())

            end

            -- END_OF_DUNGEON_MANAGER_RANKING

            d.kill_all()

            d.setqf2("deviltower_zone","9_done", 1)

            notice_multiline(gameforge.deviltower_zone._280_dNotice,d.notice)

            notice_multiline(gameforge.deviltower_zone._290_dNotice,d.notice)

            server_timer("devil_end_jump", 30, d.get_map_index())

        end

 

        when devil_end_jump.server_timer begin

            if d.select(get_server_timer_arg()) then

                d.clear_regen()

                d.exit_all()

            end

        end

    end

end
 
Son düzenleme:
metin kesilince lucifere atsın istiyorsan şunu bir dene

Lua (Quest):
Genişlet Daralt Kopyala
--bu kısım metin kesilince çalışacak kısım
when kill with npc.get_race() == 8015 begin
            notice_in_map("Dayanıklılık metni yok edildi, 2.kata ışınlanıyorsunuz.")
            timer("devil_stone1_1", 5)
        end
       
--bununla değiştir
        when kill with npc.get_race() == 8015 begin
            notice_in_map("Dayanıklılık metni yok edildi, 2.kata ışınlanıyorsunuz.")
            timer("devil_jump_9", 5)
        end
 
metin kesilince lucifere atsın istiyorsan şunu bir dene

Lua (Quest):
Genişlet Daralt Kopyala
--bu kısım metin kesilince çalışacak kısım
when kill with npc.get_race() == 8015 begin
            notice_in_map("Dayanıklılık metni yok edildi, 2.kata ışınlanıyorsunuz.")
            timer("devil_stone1_1", 5)
        end
      
--bununla değiştir
        when kill with npc.get_race() == 8015 begin
            notice_in_map("Dayanıklılık metni yok edildi, 2.kata ışınlanıyorsunuz.")
            timer("devil_jump_9", 5)
        end
denedim onu da kodların mesajları çalışıyor ama ışınlama tetiklemiyor olduğu gibi kalıyor metni kesince
 
size tek katlı bos questımı lazım hocam
 
Buyrun Eger Size Tek Katlı Bos Kesmeli Şeytan Kulesı questı Lazımsa Kulladıgım questtır
 

Dosya Eklentileri

  • bzk_kule.rar
    bzk_kule.rar
    1,3 KB · Gösterim: 2
arkadaşın quest dosyaları doğru warp kodları da doğru orjinal questten 9.kat warp kodlarına kadar denedik 5-6 quest denedik ama kiminde kata atıp azraili atmadı kiminde farklı farklı bir konuma ışınladı çok garip normalde quest mantığı doğru ama çalışmadı
 
Geri
Üst