Не уверен, что это место, где можно публиковать подобные вопросы, я думаю, что кто-то должен быть знаком с игрой TableTop Simulator, чтобы помочь, но я решил попробовать. Я пытаюсь создать сценарий, который использует боксы сценариев для проверки того, что описание карты находится в этом месте, и как только новая карта извлекается в один из 4 блоков скриптов, если это описание равно «Быстрый», карта получает переместился в первую коробку, и все предыдущие карты переместились на 1 коробку. Однако каждый раз, когда 4-я карта быстра, она перемещается, читает 4-ю карту дважды и перемещает ее в первый ящик, а затем обратно в 4-й ящик вместо перемещения 3-й карты в 4-й ящик. Я не могу понять, почему он получает 4-ю карту дважды.
f c = количество карт на месте + добавляемая карта
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