为什么我的列表清空/丢失了内容?[ROBLOX]

  • 本文关键字:ROBLOX 列表 清空 lua roblox
  • 更新时间 :
  • 英文 :

local sounds = {
877986525;
2734549871;
}
local PrimaryQueue   = {} -- Player Chosen Songs. 
local SoundObj = workspace.MusicSystem
function PlaySoundAndWait(SoundId)
SoundObj.SoundId = "rbxassetid://"..SoundId
print("Loading Sound...")
repeat wait() until SoundObj.IsLoaded
print("Loaded")
SoundObj:Play()
repeat wait() until not SoundObj.Playing -- Wait till over.
end
local PlaySecondary = sounds
while wait(0.1) do
if #PrimaryQueue ~= 0 then
print("Play primary disregard current")
-- Play primary, disregard current.
PlaySoundAndWait(PrimaryQueue[1])
table.remove(PrimaryQueue,1) -- Remove from queue (played)
else
-- Refill Secondary Queue if empty.
if #PlaySecondary == 0 then
print("REFILL")
PlaySecondary = sounds
print(#sounds)
continue
end
print(PlaySecondary[1])
PlaySoundAndWait(PlaySecondary[1])
table.remove(PlaySecondary,1)
end
end

当我提到";REFILL";我指的是刷新列表的第26行。这个脚本无限期地检查PrimaryQueue中是否有任何内容,如果有,则删除它。如果没有,则检查SecondaryQueue是否为空,如果为空,则用";声音";。如果不是,它会播放第一个声音,然后将其删除。因此,所有这些都应该创建一个音乐系统,但由于某种原因,在重新填充时,声音列表显示为空。即使它不应该并且只被分配了一次值。

谢谢。

您正在执行table.remove(PlaySecondary, 1),它等于table.remove(sounds, 1),因为由于PlaySecondary = sounds,它们都指向同一个表,所以它返回为空,因为您自己之前删除了它的所有元素!

我假设您想要创建表的副本

PlaySecondary = {unpack(sounds)}

最新更新