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 ''
该如何解决?它什么也不做,没有错误也没有。
答案 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