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

Cehalet yenilmesi gereken en büyük düşmandır.
Yardımsever Üye
MT Üye
Mesaj
678
Çözümler
30
Beğeni
181
Puan
604
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
 
Tanımlı olmayan fonksiyonların listesini vermiş. Bu yüzden hata veriyor
 
Geri
Üst