Yardım Quest Syserr

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

melihalbayrak

Geliştirici
Geliştirici
Yardımsever Üye
Usta Üye
Mesaj
1.241
Çözümler
81
Beğeni
675
Puan
1.109
Ticaret Puanı
0
Kod:
Genişlet Daralt Kopyala
SYSERR: Jun 27 18:28:10 :: RunState: LUA_ERROR: [string "levelup"]:43: bad argument #3 to `format' (number expected, got no value)
SYSERR: Jun 27 18:28:10 :: WriteRunningStateToSyserr: LUA_ERROR: quest levelup.start click

Lua (Quest):
Genişlet Daralt Kopyala
quest levelup begin
    state run begin
        when letter begin
            local current = pc.getqf("current")
            local completed_level = pc.getqf("complete");

            if current == 0 and
                pc.get_level() > completed_level and
                pc.get_level() >  1 and
                pc.get_level() < 90 then

                local lev = pc.get_level()
                pc.setqf("buttonstate", 2)
                makequestbutton(string.format(gameforge.levelup._10_makequestbutton, lev))
                pc.setqf("current", lev)
                pc.setqf("select", 1)
                pc.setqf("remain", special.levelup_quest[lev][2])
                setskin(NOWINDOW)
            end

            setstate(start)
        end
    end

    state start begin
        when info begin
            local lev = pc.getqf("current")
            if lev == 0 then return end

            setskin(SCROLL)
            setbgimage('level_bg.tga')
            say("")
            say("")
            say("")
            local s = pc.getqf("select")
            if s == 0 then s = 1 end
            addimage(20,12,special.levelup_img[special.levelup_quest[lev][s*2-1]])
            setcolor(0,0,0)

            say(string.format(gameforge.levelup._20_say,mob_name(special.levelup_quest[lev][s*2-1])))
            say(string.format(gameforge.levelup._26_say,special.levelup_quest[lev][s*2]))

            raw_script(string.format(gameforge.levelup._27_say,special.levelup_quest[lev][5]))

            say("")

            if lev <= table.getn(special.levelup_reward1) then
                raw_script(item_name(special.levelup_reward1[lev][pc.job+1]))
            elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
                raw_script(locale.levelup.random_item)
            end   
            if lev>=21 then
                local reward_gold = special.levelup_reward_gold21
                if lev >= 31 and lev <= 40 then
                    reward_gold = special.levelup_reward_gold31
                elseif lev >= 41 and lev <= 50 then
                    reward_gold = special.levelup_reward_gold41
                elseif lev >= 51 and lev <= 83 then
                    reward_gold = special.levelup_reward_gold51
                elseif lev >= 84 and lev <= 90 then
                    reward_gold = special.levelup_reward_gold51
                end
                local max_gold_i = table.getn(reward_gold)
                raw_script(reward_gold[1][1].."-"..reward_gold[max_gold_i][1].." "..locale.gold)
            end

            raw_script(newline)

            levelup.show_mob_pos(lev)

            select(gameforge.locale.confirm)

            clearmapsignal()
            setskin(NOWINDOW)
        end

        when login begin
            local lev = pc.getqf("current")

            if lev != 0 then
                if pc.getqf("remain") <= 0 then
                    setskin(NOWINDOW)
                    pc.setqf("buttonstate", 3)
                    makequestbutton(string.format(gameforge.levelup._30_makequestbutton, lev))
                else
                    setskin(NOWINDOW)
                    pc.setqf("buttonstate", 1)
                    makequestbutton(string.format(gameforge.levelup._40_makequestbutton, lev))
                end
            end
        end

        when button begin
            local lev = pc.getqf("current")

            if lev == 0 then return end

            if pc.getqf("buttonstate") == 3 then

                if pc.getqf("complete") != lev then
                    pc.setqf("complete", lev)

                local s = pc.getqf("select")
                if s == 0 then s = 1 end

                say_title(string.format(gameforge.levelup._50_sayTitle, lev))
                say(gameforge.levelup._60_say)
                    say("")

                if lev <= 20 then
                    if lev <= table.getn(special.levelup_reward1) then
                        pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give,
                        special.levelup_reward1[lev][pc.job+1])
                    else
                        local v = number(1,100)

                        if v <= special.levelup_reward3[1][1] then
                            pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[1][2],special.levelup_reward3[1][3])
                        elseif v <= special.levelup_reward3[2][1] then
                            pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[2][2],special.levelup_reward3[2][3])
                        elseif v <= special.levelup_reward3[3][1] then
                            pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[3][2],special.levelup_reward3[3][3])
                        elseif v <= special.levelup_reward3[4][1] then
                            pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[4][2],special.levelup_reward3[4][3])
                        else
                            pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[5][2],special.levelup_reward3[5][3])
                        end
                    end

                    pc.give_exp_perc(gameforge.levelup._64_give..lev..gameforge.levelup._66_give, lev, special.levelup_quest[lev][5])

                    if lev == 12 or lev == 14 or lev == 16 or lev == 18 or lev == 20 then
                        pc.give_item2(50083)
                        say_reward(string.format(gameforge.levelup._70_sayReward, item_name(50083) ))
                        wait()
                    end

                else

                    local ll = lev - 20
                    if lev < 26 then

                        local n = table.getn(special.levelup_reward_item_21[ll])
                        local t = special.levelup_reward_item_21[ll][number(1, n)]
                        say_reward(gameforge.levelup._80_sayReward)
                        if type(t) == 'table' then
                            pc.give_item2(t[1], t[2])
                            say_reward(string.format(gameforge.levelup._90_sayReward, item_name(t[1])..     " "..t[2]))
                        else
                            pc.give_item2(t)
                            say_reward(string.format(gameforge.levelup._100_sayReward, item_name(t)))
                        end

                    end
                    local reward_gold = special.levelup_reward_gold21
                    local reward_exp = special.levelup_reward_exp21

                    if lev >= 31 and lev <= 40 then
                        reward_gold = special.levelup_reward_gold31
                        reward_exp = special.levelup_reward_exp31
                    elseif lev >= 41 and lev <= 50 then
                        reward_gold = special.levelup_reward_gold41
                        reward_exp = special.levelup_reward_exp41
                    elseif lev >= 51 and lev <= 83 then
                        reward_gold = special.levelup_reward_gold51
                        reward_exp = special.levelup_reward_exp51
                    elseif lev >= 84 and lev <= 90 then
                        reward_gold = special.levelup_reward_gold51
                        reward_exp = special.levelup_reward_exp84
                    end


                    n = number(0, 99)
                    local i = 0
                    for i = 1, table.getn(reward_gold) do
                        if n < reward_gold[i][2] then
                            pc.change_money(reward_gold[i][1])
                            say_reward(string.format(gameforge.levelup._110_sayReward, reward_gold[i][1]))
                            break
                        else
                            n = n - reward_gold[i][2]
                        end
                    end


                    n = number(0, 99)
                    i = 0
                    for i = 1, table.getn(reward_exp) do
                        if n < reward_exp[i][2] then
                            pc.give_exp_perc(gameforge.levelup._64_give..lev..gameforge.levelup._66_give, lev, reward_exp[i][1])
                            say_reward(string.format(gameforge.levelup._120_sayReward, reward_exp[i][1]))
                            break
                        else
                            n = n - reward_exp[i][2]
                        end
                    end

                        say("")

                        wait()
                    end
                end

                local old_lev = lev

                lev = lev + 1


                if lev > 1 and lev < 90 and pc.level >= lev then
                    pc.setqf("buttonstate", 2)
                    makequestbutton(string.format(gameforge.levelup._130_makequestbutton, lev))
                    pc.setqf("current", lev)
                    pc.setqf("select", 1)
                    pc.setqf("remain",special.levelup_quest[lev][2])
                    setskin(NOWINDOW)
                    return
                else
                    pc.setqf("current", 0)
                    q.done()
                end

            elseif pc.getqf("buttonstate") == 2 then

                local lev = pc.getqf("current")
                if lev == 0 then
                    q.done()
                end

                say_title(gameforge.levelup._140_sayTitle)

                say(gameforge.levelup._150_say)
                local sel = select(
                mob_name(special.levelup_quest[lev][1]).." "..special.levelup_quest[lev][2]..gameforge.levelup._155_say,
                mob_name(special.levelup_quest[lev][3]).." "..special.levelup_quest[lev][4]..gameforge.levelup._155_say
                )
                
                
                setskin(SCROLL)
                setbgimage('level_bg.tga')
                say("")
                say("")
                say("")
                pc.setqf("select", sel)
                addimage(20, 12, special.levelup_img[special.levelup_quest[lev][sel*2-1]])
                setcolor(0,0,0)

                say(string.format(gameforge.levelup._20_say, mob_name(special.levelup_quest[lev][sel*2-1])))
                say(string.format(gameforge.levelup._26_say,special.levelup_quest[lev][sel*2]))

                say(string.format(gameforge.levelup._27_say,special.levelup_quest[lev][5]))

                if lev <= table.getn(special.levelup_reward1) then
                    raw_script(", "..item_name(special.levelup_reward1[lev][pc.job+1]))
                elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
                    raw_script(", "..locale.levelup.random_item)
                end
                if lev>=21 then
                    raw_script(", "..locale.gold)
                end
                raw_script(newline)

                levelup.show_mob_pos(lev)

                local s =  select(gameforge.levelup._160_select)

                if s == 1 then
                    setskin(NOWINDOW)
                    pc.setqf("remain",special.levelup_quest[lev][sel*2])
                    syschat(string.format(gameforge.levelup._170_chat,    mob_name(special.levelup_quest[lev][sel*2-1])," ".. special.levelup_quest[lev][sel*2]))
                    q.set_title(string.format(gameforge.levelup._180_qSetTitle, mob_name(special.levelup_quest[lev][sel*2-1])))
                    q.set_counter(gameforge.levelup._250_say, pc.getqf("remain"))
                    q.start()
                end

                setskin(NOWINDOW)
                clearmapsignal()

            elseif pc.getqf("buttonstate") == 1 then

                local s = pc.getqf("select")
                if s == 0 then s = 1 end

                local lev = pc.getqf("current")

                if lev != 0 then
                say_title(gameforge.levelup._140_sayTitle)
                say(string.format(gameforge.levelup._190_say, pc.getqf("remain")..gameforge.levelup._195_say..mob_name(special.levelup_quest[lev][s*2-1])))
                local ss =    select(gameforge.levelup._200_select, gameforge.locale.levelup.prev_quest_go)               
                
                    
                    if ss == 1 then
                        setskin(SCROLL)
                        setbgimage('level_bg.tga')
                        say("")
                        say("")
                        say("")
                        addimage(20,12,special.levelup_img[special.levelup_quest[lev][s*2-1]])
                        setcolor(0,0,0)

                        say(string.format(gameforge.levelup._20_say,mob_name(special.levelup_quest[lev][s*2-1])))
                        say(string.format(gameforge.levelup._26_say,special.levelup_quest[lev][s*2]))

                        raw_script(string.format(gameforge.levelup._27_say,special.levelup_quest[lev][5]))

                        say("")

                        if lev <= table.getn(special.levelup_reward1) then
                            raw_script(","..item_name(special.levelup_reward1[lev][pc.job+1]))
                        elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
                            raw_script(","..locale.levelup.random_item)
                        end   

                        if lev>=21 then
                            raw_script(","..locale.gold)
                        end

                        raw_script(newline)

                        select(gameforge.locale.confirm)
                        setskin(NOWINDOW)
                        clearmapsignal()

                    end

                    setskin(NOWINDOW)
                    q.set_title(string.format(gameforge.levelup._180_qSetTitle, mob_name(special.levelup_quest[lev][s*2-1])))
                    q.set_counter(gameforge.levelup._250_say,pc.getqf("remain"))
                    q.start()
                end
            end

            pc.setqf("buttonstate", -1)
        end

        when levelup begin
            local lev = pc.getqf("current");

            if lev == 0 then
                lev = pc.level


                if lev < 2 or lev > 90 then return end

                pc.setqf("buttonstate", 2)
                makequestbutton(string.format(gameforge.levelup._10_makequestbutton, lev))
                pc.setqf("current", lev)
                pc.setqf("select", 1)
                pc.setqf("remain", special.levelup_quest[lev][2])
                setskin(NOWINDOW)
            end
        end

        when kill begin
            local sel = pc.getqf("select")

            if sel == 0 then
                sel = 1
            end

            local lev = pc.getqf("current")

            if lev != 0 and npc.race == (special.levelup_quest[lev][sel*2-1]) and pc.getqf("buttonstate") == -1 then
                local remain = pc.getqf("remain") - 1

                if remain <= 0 then
                    pc.setqf("remain", 0)
                    q.set_counter_value(0)
                    setskin(NOWINDOW)
                    makequestbutton(string.format(gameforge.levelup._50_sayTitle, lev))
                    pc.setqf("buttonstate", 3)
                else
                    pc.setqf("remain", remain)
                    q.set_counter_value(remain)
                end
            end
        end

        function show_mob_pos(lev)
            map_index = pc.get_map_index()

            if map_index <= 0 then
                test_chat(string.format(gameforge.levelup._210_chat, map_index))
                return
            end

            if map_index > table.getn(special.lvq_map) then
                test_chat(string.format(gameforge.levelup._220_chat, map_index..") > max("..table.getn(special.lvq_map)))
                return
            end

            lev_quest_list = special.lvq_map[map_index]
            if not lev_quest_list then
                test_chat(string.format(gameforge.levelup._230_chat, map_index))
                return
            end

            mob_pos_list = lev_quest_list[lev]
            if not mob_pos_list then
                test_chat(string.format(gameforge.levelup._230_chat, map_index..")][lev("..lev))
                return
            end

            table.foreachi(
            mob_pos_list,
            function (n, mob_pos)
                test_chat(string.format(gameforge.levelup._240_chat, mob_pos[1],mob_pos[2]))
                addmapsignal(mob_pos[1]*100, mob_pos[2]*100)
            end
            )
            setmapcenterposition(200, 0)
        end
    end
end
 
Lua (Quest):
Genişlet Daralt Kopyala
raw_script(string.format(gameforge.levelup._27_say,special.levelup_quest[lev][5]))
Bu kısımda format'a verilen 2. parametre ya null ya da beklenen türde bir değer değil. Sanırım bir sayı olması bekleniyor.
 
Lua (Quest):
Genişlet Daralt Kopyala
raw_script(string.format(gameforge.levelup._27_say,special.levelup_quest[lev][5]))
Bu kısımda format'a verilen 2. parametre ya null ya da beklenen türde bir değer değil. Sanırım bir sayı olması bekleniyor.
Ne yapmak gerekiyor questlerden zerre anlamıyorum :)
 
special.levelup_quest[lev][5] Bu kısımda ne döndüğünü biliyor musun? Bu questi değiştirdin mi yoksa normalde bu hatayı veriyor mu?
 
Üst