Yardım Bir Quest Buldum Fakat Putty ./qc'de Abort Veriyor.

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

Afraz

MT Üye
Mesaj
392
Beğeni
104
Puan
474
Screenshot_2.png


Verilen hata yukarda bu hataya rağmen oyuna işledi reload q attım npc'de gözüküyor. Fakat Oda Kur denildiğinde Merhabalar NICK yazıyor ve kalıyor devamı yok
sorun nedir acaba?






Quest:
quest scp_kule begin
state start begin
---------------------------------------------------------------------------------------------------------FUNCTIONS START
function isSystemOpen() return (game.get_event_flag("scp_kule_sys")!=0) end
function testMode() return true end
function is_this_dungeon()
    if not pc.in_dungeon() then return false end
    local set = scp_kule.getSetting()
    return (d.get_orig_map_index()==set.map_index)
end
function isOutside()
    local set = scp_kule.getSetting()
    return (pc.get_map_index()==set.out_map_index)
end
function isValidCahnnel(ch) return true end
function pc_can_create()--return index, pass, remain(second)
    local id = pc.get_player_id()
    local set = scp_kule.getSetting()
    local inds = {d.get_opened_dungeons_indexes(set.map_index)}
    local set = scp_kule.getSetting()
    local ind
    for i=1, table.getn(inds) do
        ind = inds[i]
        if d.find(ind) then
            if d.getf_from_map_index("creator", ind) == id then
                return ind, d.getf_from_map_index("sifre", ind), math.floor((set.open_time+d.getf_from_map_index("lgt", ind)-get_global_time()))
            end
        end
    end
    return 0, 0, 0
end
function check_pc(ctype) -- remove items!
    local set = scp_kule.getSetting()
    local needs = set.needs
    if ctype == 1 then
        if pc.get_level() < needs[2] then return 2 end
        if needs[3] < pc.get_level() then return 3 end
        if pc.get_gold() < needs[1] then return 4 end
        if needs[3] != 0 then
            if pc.count_item(needs[4]) < needs[5] then return 5 end
        end
        if pc.is_busy() or pc.is_hack() then return 6 end
        return 1
    elseif ctype == 2 then
        if pc.is_busy() or pc.is_hack() then return false end
        if needs[34] != 0 then
            pc.remove_item(needs[4], needs[5])
        end
        pc.change_gold(-needs[1])
        return true
    end
end
function getSetting()
    return {
        ["map_index"] = 66,
        ["base_coor_local"] = {619, 142},
        ["out_map_index"] = 65,
        ["out_coor_local"] = {530, 601},
        ["open_time"] = 60*60*1,
        ["remain_time"] = 60*60*1,
        ["needs"] = {0, 75, 120, 30737, 1},
        --Level 1
        ["boss_lib"] = {1093, 610, 189}
    }
end
function sendRemainWhisper()
    local set = scp_kule.getSetting()
    local rem = (set.remain_time+pc.getqf("scp_kule_time"))-get_global_time()
    if rem > 0 then timer("Whisper_DeadBully", rem) end -- V4
end
---------------------------------------------------------------------------------------------------------FUNCTIONS END

---------------------------------------------------------------------------------------------------------LOGIN-LOGOUT START
when login begin
    local pindex = pc.get_map_index()
    clear_letter()
    local set = scp_kule.getSetting()
    if pindex == set.map_index then
        if pc.get_local_x() < 160 and pc.get_local_y() > 910 then
            warp_to_village()
        else
            scp_kule.sendRemainWhisper()
        end
    elseif scp_kule.is_this_dungeon() then
        local isCreator = (d.getf("creator") == pc.get_player_id())
        local isRegistered = (d.getf("register_"..pc.get_player_id()) != 0)
        if not (isCreator or isRegistered) then
            sys_err("Not registered but in dungeon!")
            warp_to_village()
        else
            if not isCreator then d.setf("notSelf", 1) end -- V3
            pc.set_warp_location(set.out_map_index, set.out_coor_local[1], set.out_coor_local[2])
            send_letter("Oda Bilgileri")
            big_notice("Oda Numarasi: "..(d.get_map_index()-(set.map_index*10000)))
            big_notice("Oda Sifresi: "..d.getf("sifre"))
            big_notice("Kalan Süre: "..LIB_duration((set.open_time+d.getf("lgt")-get_global_time())))
            big_notice("Bilgilere tekrar ulasmak için görevlerinizi kontrol edin.")
        end
    else
        scp_kule.sendRemainWhisper()
    end
end
when button or info with scp_kule.is_this_dungeon() begin
    setskin(0)
    local set = scp_kule.getSetting()
    big_notice("Oda Numarasi: "..d.get_map_index()-(set.map_index*10000))
    big_notice("Oda Sifresi: "..d.getf("sifre"))
    big_notice("Kalan Süre: "..LIB_duration((set.open_time+d.getf("lgt")-get_global_time())))
    send_letter("Oda Bilgileri")
    
end
---------------------------------------------------------------------------------------------------------LOGIN-LOGOUT END
---------------------------------------------------------------------------------------------------------NPC START
when 20348.chat."Bilgilendirme" with scp_kule.isValidCahnnel(pc.get_channel_id()) and scp_kule.isOutside() begin
    if not scp_kule.isSystemOpen() then
        setskin(0)
        syschat("Sistem, yönetici tarafından kapatılmıştır.")
        return
    end
    local set = scp_kule.getSetting()
    local needs = set.needs
    say_title("Oda kurmak için gerekenler:")
    say("")
    say("Öncelikle en az "..needs[2]..", en fazla "..needs[3].." level olmalısınız.")
    if needs[1]>0 then
        say("En az "..genel_veri(needs[1]).." yanga sahip olmalısınız.")
    end
    if needs[4]!=0 then
        say_item_vnum(needs[4])
        say("'"..item_name(needs[4]).."' nesnesinden en az "..needs[5].." adete sahip olmalısınız.")
    end
    say("")
    say("Oda kurarken/kurmadan 10 saniye önce ticaret yapmamış olmanız gerekiyor.")
    say("")
    wait()
    say("")
    say("")
    say_yellow("Oda Sistemi Güncellemesi:")
    say("")
    say_yellow("Eğer gitmek istediğiniz odaya daha önceden girmişseniz:")
    say_yellow("     > sizden oda şifresi istenmez.")
    say_yellow("     > sizden gerekli nesne/yang istenmez.")
    say("")
    say_yellow("Eğer odaya kurucusu dışında birisi girmemişse, boss kesilme duyurusu farklı olacak.") -- V3
    say("")
    
    wait()
end
when 20348.chat."Oda Kur" with scp_kule.isValidCahnnel(pc.get_channel_id()) and scp_kule.isOutside() begin
    if not scp_kule.isSystemOpen() then
        setskin(0)
        syschat("Sistem, yönetici tarafından kapatılmıştır.")
        return
    end
    say_title("Merhabalar "..pc.get_name())
    say("")
    local set = scp_kule.getSetting()
    local n, p, x = scp_kule.pc_can_create()
    if n != 0 then
        say("Zaten bir oda kurmussun, tekrar oda kurmak için açık olan odanin kapanmasını beklemelisin.")
        say("Oda Bilgilerin:")
        say("Oda No: "..n-((set.map_index)*10000))
        say("Oda Sifresi: "..p)
        say("Odanın Kapanmasına Kalan Süre: "..LIB_duration(x))
        wait()
        return
    end
    -- Remain Time Disabled -- --
    local remainTime = pc.getqf("scp_kule_time")+set.remain_time-get_global_time()
    if remainTime>0 then
        say("Bir oda açtıktan sonra toplam "..LIB_duration(set.remain_time).."beklemelisin.")
        say("")
        say("Tekrar oda açman için kalan bekleme süren: "..LIB_duration(remainTime))
        say("")
        wait()
        return
    end
    say("Oda kurmak için öncelikle bir sifre belirlemen gerekiyor.")
    say("")
    say_reward("Sadece rakamlardan olusan 7 haneli bir sifre belirleyiniz.")
    say_reward("Iptal etmek için geçersiz bir sifre girebilirsiniz.")
    say("")
    say_reward("Gerekenleri sagliyorsaniz direkt odaya isinlanacaksiniz!")
    local sifre = tonumber(input())
    setskin(0)
    if sifre==nil or sifre<1000000 or sifre>9999999 then syschat("<Giris Kontrolü> Geçersiz sifre girdiniz.") return end
    local control = scp_kule.check_pc(1)
    if control == 1 then
        if not scp_kule.check_pc(2) then return end
        local x = get_map_base_x(set.map_index)+set.base_coor_local[1]*100
        local y = get_map_base_y(set.map_index)+set.base_coor_local[2]*100
        d.new_jump(set.map_index, x, y, true)
        -- Remain Time -- --
        pc.setqf("scp_kule_time", get_global_time())

        d.setf("sifre", sifre)
        d.setf("level", 1)
        d.setf("lgt", get_global_time())
        d.exit_all2(set.open_time)
        d.setf("creator", pc.get_player_id())

        local blib = set.boss_lib
        d.spawn_mob(blib[1], blib[2], blib[3])
        notice_multiline("<Lusifer> Boss'u alt edin ve ödülünüzü alın!", d.big_notice)

        notice_all(pc.get_name().." Şeytan Kulesi'nde oda açtı!")
        return
    elseif control == 2 then
        syschat("<Giris Kontrolü> Oda kurmak için leveliniz yeterli degil.")
        return
    elseif control == 3 then
        syschat("<Giris Kontrolü> Oda kurmak için leveliniz çok fazla.")
        return
    elseif control == 4 then
        syschat("<Giris Kontrolü> Oda kurmak için yeterli yanginiz bulunmuyor.")
        return
    elseif control == 5 then
        syschat("<Giris Kontrolü> Oda kurmak için gerekli nesneye/nesne sayısına sahip değilsiniz.")
        return
    elseif control == 6 then
        syschat("<Giris Kontrolü> Ticaret pencerelerini kapatmalisiniz.")
        return
    end
end
when Whisper_DeadBully.timer begin -- V4
    send_whisper(pc.get_player_id(), "[Zindan Bilgilendirme]", "Şeytan Kulesi'ndeki bekleme süreniz dolmuştur, tekrar oda açabilirsiniz.")
end
when 20348.chat."Odaya Katıl" with scp_kule.isValidCahnnel(pc.get_channel_id()) and scp_kule.isOutside() begin
    if not scp_kule.isSystemOpen() then
        setskin(0)
        syschat("Sistem, yönetici tarafından kapatılmıştır.")
        return
    end
    if (pc.getqf("lst_pass")+15>get_time() and not pc.is_gm()) then setskin(0) syschat("<Giris Kontrolü> İki şifre denemesi arasinda 15 saniye beklemeniz gerekiyor.") return end
    say_title("Merhabalar "..pc.get_name())
    say("")
    say("Açik olan bir odaya girmek için öncelikle oda numarasini girmelisin.")
    say("")
    say("")
    local oda_no = tonumber(input())
    if oda_no==nil or oda_no<0 or oda_no>9999 then setskin(0) syschat("<Giris Kontrolü> Geçersiz oda numarasi girdiniz.") return end
    local set = scp_kule.getSetting()
    oda_no = oda_no+(set.map_index*10000)
    if d.find(oda_no) and (d.getf_from_map_index("register_"..pc.get_player_id(), oda_no) == 1 or d.getf_from_map_index("creator", oda_no)==pc.get_player_id()) and d.getf_from_map_index("level", oda_no)!=0 then
        setskin(0)
        d.pc_warp(oda_no)
        return
    end
    say_title("Merhabalar "..pc.get_name())
    say("")
    say(oda_no-(set.map_index*10000).." numarali oda için oda sifresini giriniz.")
    say("")
    say("")
    local sifre = tonumber(input())
    setskin(0)
    if sifre==nil or sifre<1000000 or sifre>9999999 then syschat("<Giris Kontrolü> Geçersiz sifre girdiniz.") return end
    if d.getf_from_map_index("sifre", oda_no) == sifre then
        local control = scp_kule.check_pc(1)
        if control == 1 then
            local dl = d.getf_from_map_index("level", oda_no)
            if dl == 0 or get_global_time()>(d.getf_from_map_index("lgt", oda_no)+set.open_time-10) then syschat("<Giris Kontrolü> Bu odaya artık girilemez.") return end
            if not scp_kule.check_pc(2) then return end
            pc.delqf("lst_pass")
            d.setf_from_to_index("register_"..pc.get_player_id(), 1, oda_no)
            d.pc_warp(oda_no)
            return
        elseif control == 2 then
            syschat("<Giris Kontrolü> Giris için yeterli leveliniz bulunmuyor.")
            return
        elseif control == 3 then
            syschat("<Giris Kontrolü> Giris için leveliniz çok fazla.")
            return
        elseif control == 4 then
            syschat("<Giris Kontrolü> Giris için yeterli yanginiz bulunmuyor.")
            return
        elseif control == 5 then
            syschat("<Giris Kontrolü> Odaya katılmak için gerekli nesneye sahip değilsiniz.")
            return
        elseif control == 6 then
            syschat("<Giris Kontrolü> Ticaret pencerelerini kapatmalisiniz.")
            return
        else
            syschat("<Giris Kontrolü> Bir sorun oluştu!.")
            return
        end
    else
        pc.setqf("lst_pass", get_time())
        syschat("<Giris Kontrolü> Oda numarasini ve ya sifresini yanlis girdiniz.")
    end
end
when 20348.chat."GM:: Oda Kapat" with pc.is_gm() and scp_kule.isValidCahnnel(pc.get_channel_id()) and scp_kule.isOutside() begin
    say_title("GM:: Oda Kapat")
    say("")
    say("Kapatılacak oda numarasını gir:")
    say("")
    local odaNo = tonumber(input()) or -1
    if odaNo<0 then return end
    local set = scp_kule.getSetting()
    odaNo = odaNo+(set.map_index*10000)
    d.exit_all2(1, odaNo)
end
-- Remain Time -- --
when 20348.chat."GM:: Bekleme Süresi Sıfırla" with pc.is_gm() and scp_kule.isValidCahnnel(pc.get_channel_id()) and scp_kule.isOutside() begin
    setskin(0)
    pc.delqf("scp_kule_time")
    cleartimer("Whisper_DeadBully") -- V4
end
---------------------------------------------------------------------------------------------------------NPC END
when 1093.kill with scp_kule.is_this_dungeon() and d.getf("level") == 1 begin
    d.setf("level", 0)
    if d.getf("notSelf") == 1 then notice_all(pc.get_name().." ve odasındakiler, Lusifer'i öldürdü!")
    else notice_all(pc.get_name()..", Lusifer'i tek başına öldürdü!")
    end -- V3
    d.big_notice("20 saniye sonra oda kapatılacak!")
    d.exit_all2(20)
end

end
end
 

Üst