1

これがこの種の質問を投稿する場所かどうかはわかりませんが、誰かがテーブルトップ シミュレーター ゲームに精通している必要があると思いますが、試してみることにしました. スクリプト ボックスを使用してカードの説明がその場所にあることを確認するスクリプトを作成しようとしています。新しいカードが 4 つのスクリプト ボックスのいずれかに描画されると、その説明が「高速」に等しい場合、カードは取得されます。最初のボックスに移動し、それ以前のすべてのカードが 1 つのボックスに移動します。ただし、4 番目のカードが高速になるたびに、3 番目のカードを 4 番目のボックスに移動する代わりに、4 番目のカードを 2 回読み取り、最初のボックスに移動してから 4 番目のボックスに戻します。4 枚目のカードが 2 枚ある理由がわかりません。

fc = 配置されているカードの量 + 追加されるカードの量

d = nil
fz = 0

function onLoad()
    DeckZone = {getObjectFromGUID('2d5588'), getObjectFromGUID('bf2a55'), getObjectFromGUID('5bdb70'), getObjectFromGUID('d01463')}  -- guid of script boxes with decks in them
    CombatZone = {getObjectFromGUID('2d2792'), getObjectFromGUID('74aafc'), getObjectFromGUID('68ebc9'), getObjectFromGUID('30818f')} -- the guids of the boxes
    Combat = {CombatZone[1].getPosition(),CombatZone[2].getPosition(),CombatZone[3].getPosition(),CombatZone[4].getPosition()} -- the Positions of the boxes

-- Buttons correlating to the decks being pulled from --
        DeckZone[3].createButton({
            click_function="click_drawCombat", function_owner=self, alignment=3,
            position={0, -0.45, 0}, height=450, width=450, font_size=1000, color = {1,1,1,1}, tooltip = "Click to Draw Combat Card."
        })
        DeckZone[4].createButton({
            click_function="click_drawCombat", function_owner=self, alignment=3,
            position={0, -0.45, 0}, height=450, width=450, font_size=1000, color = {1,1,1,1}, tooltip = "Click to Draw Combat Card."
        })
end

function click_drawCombat(obj)
    local deck = obj.getGUID()
    if deck == "5bdb70" then
        d = 3
    elseif deck == "d01463" then
        d = 4
    end
    findDeck()
    if #objects > 0 then
        if type == 'footsoldier' then
            if fz < 4 then
                fz = fz + 1
                table.insert(FSDeckZoneSaved, obj)
                local faceup = {}
                faceup.position = Combat[fz]
                faceup.flip = true
                local pos = Combat[fz]
                for _, obj in ipairs(objects) do
                    globalDeck.takeObject(faceup)
                    Wait.time(function() fastCard(fz) end, 0.3, 1)
                end
            end
        end
    end
end

function findDeck()
    globalDeck = nil
    objects = DeckZone[d].getObjects()
    for i, deck in ipairs(objects) do
        globalDeck = getObjectFromGUID(deck.getGUID())
    end
end

function findCombat()
    globalDeck = nil
    objects = CombatZone[cz].getObjects()
    for i, deck in ipairs(objects) do
        globalDeck = getObjectFromGUID(deck.getGUID())
    end
end

--part that not's working below--

function fastCard(fc)
    cz = fc
    fC = fc
    findCombat()
    fast = globalDeck.getDescription()
    fastCardTest(fc)
end

function fastCardTest(fc)
    if fast ~= 'Fast' or fc == 1 or fc == 5 then
        Wait.time(combatDeckButtons, 1.5, 1)
    end
    if fast == 'Fast' and fc > 1 and fc ~= 5 then
        for t=1,cz do
            if cz == fc then
                findCombat()
                guid = globalDeck.getGUID()
                pos = Combat[1]
                globalDeck.setPositionSmooth(pos, false, false)
            end
            if cz ~= fc then
                findCombat()
                pos = Combat[cz+1]
                globalDeck.setPositionSmooth(pos, false, false)
            end
            cz = cz - 1
        end
        Wait.time(combatDeckButtons, 1.5, 1)
    end
end
4

0 に答える 0