For循环不起作用?罗布洛克斯工作室

Posted

技术标签:

【中文标题】For循环不起作用?罗布洛克斯工作室【英文标题】:For loop not woking? Roblox studio 【发布时间】:2021-02-02 22:58:45 【问题描述】:

代码:

local DataStoreService = game:GetService("DataStoreService")
local InvDataStore = DataStoreService:GetDataStore("InvDataStore")

game.Players.PlayerAdded:Connect(function(player)
    local Id = player.UserId
    
    local Inventory = Instance.new("Folder")
    Inventory.Name = "Inventory"
    Inventory.Parent = player
    
    local Inv = InvDataStore:GetAsync(Id)
    print(Inv)
    print(table.concat(Inv, " "))
end)

game.Players.PlayerRemoving:Connect(function(player)
    local Id = player.UserId
    local InvTable = 
    
    for i, v in pairs(game.Players:FindFirstChild(player.Name).Inventory:GetChildren()) do
        print("Repear")
        if v:IsA("NumberValue") then
            table.insert(InvTable, v)
            print(v)
        end

    end
    
    print(InvTable)
    print(table.concat(InvTable, " "))
    InvDataStore:SetAsync(Id, InvTable)
end)

输出:

13:25:35.288 - 未命名游戏自动恢复文件已创建 Realism Mod 目前正在运行 v2.09! (x2) 表:0x08cb53598b2d3aa1

表:0xd8ce847b521d4091 1 13:26:26.703 - 从 ::ffff:127.0.0.1|60556 断开连接

探索者:

似乎跳过了这个循环:

for i, v in pairs(game.Players:FindFirstChild(player.Name).Inventory:GetChildren()) do
        print("Repear")
        if v:IsA("NumberValue") then
            table.insert(InvTable, v)
            print(v)
        end

    end

因为它似乎不打印 repear (repeat) OR v (Value) 有人知道怎么回事吗?

注意:我不明白的是,它在保存之后和保存之前不打印值,并且忘记了 for 循环。我可以提供额外的东西。

【问题讨论】:

不相关,但是如果将game.Players:FindFirstChild(player.Name) 替换为player 会怎样? 什么都没改变 ilmao,我之前做过,但谢谢你的建议! 【参考方案1】:

它忽略了循环,因为当它到达game.Players:FindFirstChild(player.Name) 时,返回将为零,因为该玩家刚刚离开服务器。您可以尝试做的是直接从您拥有的播放器对象进行迭代,如果您已经拥有它,则无需查找对象播放器。 试试:

for i, v in pairs(player.Inventory:GetChildren()) do
    print("Repear")
    if v:IsA("NumberValue") then
        table.insert(InvTable, v)
        print(v)
    end
end

在游戏期间而不是在离开时存储数据也是一个好习惯,所有这些对象也会在玩家离开时被移除,最好在游戏期间处理表格,并且在玩家移除期间只需更新数据店铺。 另外一个好的做法是每 5 分钟更新一次播放器的数据存储

【讨论】:

以上是关于For循环不起作用?罗布洛克斯工作室的主要内容,如果未能解决你的问题,请参考以下文章

为啥 MPI_SEND 在我的 for 循环中不起作用?如果明确说明它工作正常

范围在 for 循环中不起作用

ggplot 如果它在 for 循环内则不起作用,尽管它在它之外工作 [重复]

for let 循环不起作用?

简单的for循环不起作用[关闭]

条件For循环在批处理文件中不起作用