Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Script doesn't detect the right player?

So what I'm trying to do is to make a function that only happens when the enemy player is touching the stunned player.

Unfortunately my method of detecting it doesn't work for some reason: (char is the stunned player's character and player is the enemy player)

local touchingChar = false
for _, bodyPart in pairs(char:GetChildren()) do
	if bodyPart:IsA("BasePart") then
		for _, part in pairs(bodyPart:GetTouchingParts()) do
			local hum = part.Parent:FindFirstChild("Humanoid")
			if hum and Players:GetPlayerFromCharacter(part.Parent) == player then
				touchingChar = true
				break
			end
		end
	end
end
if not touchingChar then return end

Please help!

EDIT: This function only fires when the enemy player presses a key, so I need to know if he's touching the stunned player at that very moment.

2 comments

0

again, .Touched function?

0

I don't really understand your question. Can I get a little more information and what you actually need?

1 answer

local touchingChar do
local EventConnections={}
function touchingChar(char0,char1)
local success,touchingParts=false,{}
    for _,v0 in ipairs(char0:GetChildren())do
        if v0:IsA"BasePart" then
        for _,v1 in ipairs(char1:GetChildren())do
            if v1:IsA"BasePart"and (v0.Position-v1.Position).magnitude<1.5 then success=true;touchingParts[#touchingParts+1]=v1 end
        end
        end
        end
        return success,#touchingParts>0 and touchingParts or nil
	    end
end


--[[ 
local success,touchingParts=touchingChar(char0,char1)
if success then
for _,v in ipairs(touchingParts)do print(v.Name)end
end 
]]

This discussion is preserved as it was. New answers, comments, and votes are closed.