lua - 我的代码什么也没做
问题描述
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 ''
我该如何解决?它什么也没做,没有错误。
解决方案
您的问题似乎在您的string.sub()
使用中。(我假设这是 Roblox,我不太了解)。该string.sub(a, b, c)
方法采用 string 的子字符串a
,从 index 开始b
并到 index 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
编辑:正如建议的那样,以下代码允许您在 ANYwhere 的另一个字符串中找到一个字符串,而不仅仅是开始:
if (string.find(msg, "oofergang")) then
--Whatever you want to do here, in your case kick the player
end
推荐阅读
- python - 如何使用 pandas.read_json 读取 json 文件中可能为空的这一列 jsonl 数据
- css - Pagespeed 警告 - 在图像元素上使用明确的宽度和高度
- android - React Native Vdocipher 实现错误
- c++ - make: *** 没有规则来制作目标 `my_project.o',这是 `objects' 所需要的。停止
- android - 如何限制用户使用我的颤振 android 应用程序的有限服务期限?罗
- jobs - 多个盒子中的一项 Autosys 作业
- android - 通过相机单击图片后,OnActivityresult 中的 ResultCode 零和意图数据始终为空
- python - 在 Django 模型中添加多对多
- npm - Yarn 您的网络连接似乎有问题。重试
- laravel - 在每个 API 请求中传递 JWT 令牌