我的代码什么都不做

时间:2018-07-02 04:18:17

标签: lua roblox

game:GetService("Players").PlayerAdded:connect(function()
    for _, Player in pairs(game:GetService("Players"):GetPlayers()) do
      Player.Chatted:connect(function(msg)
            if string.sub(msg,1,5) == "oofergang" then 
                    Player:Kick("no no no cringe baby")
        end
    end)
  end
end)
return ''

该如何解决?它什么也不做,没有错误也没有。

1 个答案:

答案 0 :(得分:2)

您的问题似乎与您的string.sub()用法有关。 (我假设这是Roblox,对此我不太了解)。 string.sub(a, b, c)方法采用字符串a的子字符串,从索引b开始到索引c

您的问题是,您试图从字符1-5获取子字符串。字符串中的字符1是第一个字符,字符5是第5个字符。您的if块正在检查播放器消息的前5个字符。问题是您要与之比较的字符串"oofergang"的长度超过5个字符。

如果播放器正确输入了oofergang,您正在使用的string.sub()将输出oofer,这是消息的前5个字符。本质上,这是程序在运行时将看到的内容:

if "oofer" == "oofergang" then

oofer永远不会等于oofergang

如果要检查播放器是否以oofergang开头消息,则应改用以下if块:

if (string.sub(msg, 1, 9) == "oofergang") then
    --Whatever you want to do here, in your case kick the player
end

编辑:如建议的那样,以下代码使您可以在任何地方的其他字符串中查找一个字符串,而不仅仅是开始:

if (string.find(msg, "oofergang")) then
    --Whatever you want to do here, in your case kick the player
end
相关问题