You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Roblox Lua聊天管理员脚本!kill击杀玩家功能求助

Roblox 聊天!kill管理员指令实现方案

现有代码问题

  • 硬编码固定击杀目标为Woozy,未解析指令携带的玩家名参数
  • 匹配规则无边界限制,聊天内容任意位置出现!kill就会触发,容易误判
  • 无管理员权限校验,所有玩家都能触发击杀逻辑
  • 缺少目标存在、角色加载状态校验,运行时极易抛出报错
  • 使用了已废弃的小写connect事件绑定写法,兼容性差

完整实现代码

将以下脚本作为服务端脚本放入ServerScriptService目录即可运行,不要放到客户端容器里,否则会受权限限制无法生效:

local Players = game:GetService("Players")

-- 管理员白名单,替换为有权限使用指令的玩家UserId
local ADMIN_ALLOWLIST = {
    [000000000] = true -- 示例值,改成你自己的账号UserId
}

Players.PlayerAdded:Connect(function(joinPlayer)
    joinPlayer.Chatted:Connect(function(chatContent)
        -- 非管理员直接拦截
        if not ADMIN_ALLOWLIST[joinPlayer.UserId] then return end

        -- 从消息开头匹配!kill指令,提取后面跟随的目标玩家名,忽略多余空格
        local targetInput = chatContent:match("^!kill%s+(.+)$")
        if not targetInput then return end
        targetInput = string.lower(targetInput)

        -- 查找目标玩家:先精确匹配用户名/显示名,再做模糊匹配
        local targetPlayer = nil
        for _, iterPlayer in Players:GetPlayers() do
            local lowerName = string.lower(iterPlayer.Name)
            local lowerDisName = string.lower(iterPlayer.DisplayName)
            if lowerName == targetInput or lowerDisName == targetInput then
                targetPlayer = iterPlayer
                break
            end
        end
        if not targetPlayer then
            for _, iterPlayer in Players:GetPlayers() do
                local lowerName = string.lower(iterPlayer.Name)
                local lowerDisName = string.lower(iterPlayer.DisplayName)
                if string.find(lowerName, targetInput) or string.find(lowerDisName, targetInput) then
                    targetPlayer = iterPlayer
                    break
                end
            end
        end

        -- 未找到目标直接终止逻辑
        if not targetPlayer then return end

        -- 等待目标角色加载完成,获取Humanoid实例执行击杀
        local targetChar = targetPlayer.Character or targetPlayer.CharacterAdded:Wait()
        local targetHumanoid = targetChar:FindFirstChildOfClass("Humanoid")
        if not targetHumanoid then return end
        targetHumanoid.Health = 0
    end)
end)

可选优化点

  • 可以加指令触发反馈,比如找不到目标时给管理员发送聊天提示
  • 可以扩展支持多目标、全体击杀等参数逻辑
  • 可以加指令冷却,避免短时间重复触发报错

内容的提问来源于stack exchange,提问作者Woozy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 16:06:30