我如何让团队中的玩家检测玩家的某些部分?

时间:2019-12-12 09:33:09

标签: lua roblox

我正在使用 WorldToScreenPoint GetPartsObscuringTarget。我要解决的问题是,玩家必须检测到另一支队伍中的一部分玩家。例如,一个团队中只有一名玩家试图通过检测其类人动物部分来寻找其他玩家。该脚本仅检测工作空间内的部分。

我已经尝试过使用 Player.CharacterAdded:Wait()和嵌套循环来检查玩家是否在同一支球队中。这没有用。在过去的两个星期中,我一直在尝试解决此问题。

local Player = game.Players.LocalPlayer
local Character = workspace:FindFirstChild(Player.Name)

game:GetService("RunService").Heartbeat:Connect(function()
    for _, object in pairs(Character:GetDescendants()) do
        if object:IsA("Part") or object:IsA("MeshPart") then
            if not object:IsDescendantOf(game.Players.LocalPlayer.Character) then
                local object2,visible = workspace.CurrentCamera:WorldToScreenPoint(object.Position)
                if visible == true then
                    local pos1 = workspace.CurrentCamera.CFrame.Position
                    local pos2 = object.Position
                    local castPoints = {pos1,pos2}
                    local ignoreList = {game.Players.LocalPlayer.Character, object}
                    local obstructs = workspace.CurrentCamera:GetPartsObscuringTarget(castPoints,ignoreList)
                    if obstructs[1] then
                        return
                    elseif not obstructs[1] then
                        print(object.Name.." has been detected!")
                    end
                elseif visible ~= true then
                        print("You are now incognito.")
                    return
                end
            end
        end
    end
end)

0 个答案:

没有答案