我的代码啥也没干

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("不行,不行,崩溃baby")
        end
    end)
  end
end)
return ''

我该怎么办?啥也不干,没有错误之类的东西。

点赞
用户10018042
用户10018042

你的问题似乎出在 string.sub() 的使用上(我假设这是 Roblox,但我对这个不是很了解)。 string.sub(a, b, c) 方法从字符串 a 中的索引 b 开始,到索引 c 结束,取出子字符串。

你的问题是,你正在尝试从第 1 个到第 5 个字符获取子字符串。字符 1 是字符串中的第一个字符,字符 5 是字符串中的第五个字符。你的 if 块正在检查玩家信息的前 5 个字符。问题在于,你将其与比 5 个字符更长的字符串 "oofergang" 进行比较。

如果玩家正确地输入了 oofergang,你正在使用的 string.sub() 将会输出 oofer,这是消息的前 5 个字符。本质上,当程序运行时,它将看到:

if "oofer" == "oofergang" then

oofer 永远不会等于 oofergang

如果你想检查玩家是否以 oofergang 开始他们的消息,那么你应该使用以下的 if 块:

if (string.sub(msg, 1, 9) == "oofergang") then
    --在这里你希望做什么,例如踢出玩家
end

编辑:正如建议的那样,以下代码允许你在字符串中任意地查找另一个字符串:

if (string.find(msg, "oofergang")) then
    --在这里你希望做什么,例如踢出玩家
end
2018-07-02 16:29:11