什么是描述中的代码,它是Roblox Lua

我是Roblox Lua代码的初学者,我试图在开发者论坛上理解一些东西,但我正在为这些东西而奋斗。我的一个问题是,在最底部附近有什么意思 for i, player in pairs


- 在死亡时从工作区中删除玩家的角色
游戏.Players.PlayerAdded:Connect函数(function(player)
    while true do
        local char = player.CharacterAdded:wait()
        char.Humanoid.Died:Connect(function()
            char:Remove()
        end)
    end
end)

- 每10秒重新生成所有死亡的玩家
while true do
    local players = game.Players:GetChildren()

    - 通过检查它们是否没有字符来检查每个玩家是否死亡,如果死亡则加载该玩家的角色
    for i, player in pairs(players)do
        if(not game.Workspace:FindFirstChild(player.Name))then
            玩家:LoadCharacter()
        end
    end

    - 等待10秒,直到下一个重新生成检查
    wait(10)
end```
点赞
用户12520046
用户12520046

下面的代码是一种编程中称为“for循环”的方法。

可以在此处阅读有关Roblox Lua循环的更多信息:Roblox Lua循环

正如您在评论中所看到的那样,此代码的目的是确定玩家是否已死亡。如果他们已死亡,则加载角色。

例如,在Python中,“players”将是像列表或字典之类的可迭代对象。“i”,“player”将代表该列表中包含的对象。

例如:

def loop():
    example_list = [1, 2, 3, 4]

    for number in example_list:
    print(number)

loop()

将返回:

1
2
3
4

在此情况下,循环通过播放器列表,并检查每个播放器是否死亡。如果死亡,重新生成播放器。

2020-11-13 02:47:29
用户3342050
用户3342050

pairs(tab) 返回表中每个条目的键和值对。

for key, value in pairs(tab) do
    -- do stuff here
end

它将对表中的每个条目执行某些操作。


人们通常将其缩短为

for k, v in pairs(tab) do
    -- do stuff here
end

重要的是你知道它们是什么,不管你叫它们什么。有时人们会插入一个空格来表示他们不使用特定的键或值。重点是,“players”是一个表,所以他们正在循环遍历它的内容。


for i, player in pairs(players) do
    -- do stuff here
end

这与上面的代码完全相同,只不过他们更改了“key,value”变量名称,以便“i”现在是键,“player”是值。

2020-11-15 13:39:53