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

Team Door Script Fix help needed for Roblox Studio Project ?

Can anyone help me this script ? Half script is right but access to team is incorrect :

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")

local TweenService = game:GetService("TweenService")
local door = script.Parent.Door
local trigger = script.Parent.Trigger
local SoundOpen = script.Parent.SoundOpen
local SoundClose = script.Parent.SoundClose

local goalClose = {CFrame = CFrame.new(-32.389, 3.595, -2.126) * CFrame.Angles(0, math.rad(180), 0)}
local goalOpen = {CFrame = CFrame.new(-34.693, 3.595, -0.063) * CFrame.Angles(0, math.rad(90), 0)}

local tweenInfo = TweenInfo.new(1)

local tweenOpen = TweenService:Create(door, tweenInfo, goalOpen)
local tweenClose = TweenService:Create(door, tweenInfo, goalClose)

local function isValidPlayer(player)
	return player and player.Parent and player.Team == Teams["Police"]
end

local function openDoor(player)
	if isValidPlayer(player) then
		SoundOpen:Play()
		tweenOpen:Play()
		wait(2)
		tweenClose:Play()
		SoundClose:Play()
	end
end

trigger.Touched:Connect(function(hit)
	local character = hit.Parent
	local player = Players:GetPlayerFromCharacter(character)
	openDoor(player)
end)

1 comment

0

What is the reason for returning player and player.Parent?

1 answer

✓ Accepted answer

You can check if the player's TeamColor is the same as the TeamColor of the Police Team.

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local policeTeam = Teams:WaitForChild("Police")

local TweenService = game:GetService("TweenService")
local door = script.Parent.Door
local trigger = script.Parent.Trigger
local SoundOpen = script.Parent.SoundOpen
local SoundClose = script.Parent.SoundClose

local goalClose = {["CFrame"] = (CFrame.new(-32.389, 3.595, -2.126) * CFrame.Angles(0, math.rad(180), 0))}
local goalOpen = {["CFrame"] = (CFrame.new(-34.693, 3.595, -0.063) * CFrame.Angles(0, math.rad(90), 0))}

local tweenInfo = TweenInfo.new(1)

local tweenOpen = TweenService:Create(door, tweenInfo, goalOpen)
local tweenClose = TweenService:Create(door, tweenInfo, goalClose)

local function isValidPlayer(player)
	return (player and player.Parent and player.TeamColor == policeTeam.TeamColor and player.Team.Name == policeTeam.Name)
end

local function openDoor(player)
	if isValidPlayer(player) then
		SoundOpen:Play()
		tweenOpen:Play()
		task.wait(2)
		tweenClose:Play()
		SoundClose:Play()
	end
end

trigger.Touched:Connect(function(hit)
	local character = hit.Parent
	local player = Players:GetPlayerFromCharacter(character)
	openDoor(player)
end)

1 comment

0

Thank you.

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