2

だから私はこのLuaスクリプトを持っています:

function dispTanks()
    mon.setCursorPos(offsetPos, 1)
    mon2.setCursorPos(offsetPos,1)

    for i=1, #machines do   -- RC Tanks
        --------------------------------------------
        if string.find(machines[i], "rcirontankvalvetile")
           or
           string.find(machines[i], "rcsteeltankvalvetile") then                        
            if peripheral.isPresent(machines[i]) then
                periph = peripheral.wrap(machines[i])

                fluidRaw, fluidName, fluidAmount, fluidCapacity, fluidID = marik.getTank(periph)                            

                if fluidName == nil then
                    -- does not display empty tanks
                elseif fluidName ~= nil then
                    mon2.setTextColor(tc)
                    x,y = mon2.getCursorPos()
                        mon2.setCursorPos(offsetPos, (y+1))
                        mon2.clearLine()
                    -- marik.cString(offsetPos,(y+1), tc, right, " ")
                    nameFL = split(marik.comma(fluidName), " ")
                    nameFL = nameFL[0]
                    mon2.write("Tank (" .. nameFL .. ") :  " .. marik.getBuckets(fluidAmount) .. " buckets") 
                end
             end
         end
     end
end

今、この行でエラーが発生します:

nameFL = split(marik.comma(fluidName), " ")

エラー: attempt to call nil

現在、私は Lua の初心者であり、これは私のスクリプトではなく、無料で使用できるスクリプトであり、これを修正する方法がわかりません。

編集

したがって、分割セクションを追加する前に、これはスクリプトが与えるべき結果でした:

ここに画像の説明を入力

問題は、名前 ( ardite.molten ) を Ardite に変更したかったのですが、友人が分割を使用する必要があると言ったので、次を追加しました。

function firstToUpper(str)
    return (str:gsub("^%l", string.upper))
end

nameFL = split(fluidName, " ")
nameFL = nameFL[0]

mon2.write("Tank (" .. marik.comma(fluidName) .. ") : " .. marik.comma(fluidAmount) .. " / " .. marik.comma(fluidCapacity) .. " mb (" .. marik.getBuckets(fluidAmount) .. " buckets)") を :に : に変更しました。mon2.write("Tank (" .. nameFL .. ") : " .. marik.getBuckets(fluidAmount) .. " buckets")

エラーが表示されます:http://puu.sh/a51QI/a848facf1b.png

4

2 に答える 2

4

split関数が存在しないか、またはcomma関数marik

編集:

あなたがやろうとしていることは、フルネームではなくドットの前にすべてを取得することだと思いますか?

その場合、これを行うことができます:

これらの行を置き換えます

nameFL = split(marik.comma(fluidName), " ")
nameFL = nameFL[0]

これとともに:

nameFL = marik.comma(fluidName):match("[^.]*")

これには分割は必要ありません。これが行うのはパターンマッチングであり、この場合、最初のドットまですべてに一致します

于 2014-07-10T11:47:04.180 に答える