You can write your topic however you want, but you need to answer these questions:
- What do you want to achieve? Keep it simple and clear!
Once an individual dies within the elevator, the player is removed from the table or when they press the left button.
- What is the issue? Include screenshots / videos if possible!
Detects the player dying but does not remove them from the table.
https://gyazo.com/2a8b34df4b63837f72e1c54fbab066fb
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local TeleportService = game:GetService("TeleportService")
local elevators = workspace.Elevators
local playersInElevator = {}
local countdownRunning = false
--local function MoveElevator()
--end
RunService.Heartbeat:Connect(function()
for _, elevator in elevators:GetChildren() do
local foundPlayers = {}
local gui = elevator.ElevatorCountdown.SurfaceGui
local function TeleportPlayers()
local placeId = (i have it inserted but)
TeleportService:TeleportAsync(placeId, playersInElevator)
end
local function RunCountdown()
countdownRunning = true
for i=10, 1, -1 do
gui.Countdown.Text = "" .. i
task.wait(1)
--print(#playersInElevator)
if #playersInElevator < 1 then
print("no people")
countdownRunning = false
gui.Countdown.TextTransparency = 1
return
end
end
countdownRunning = false
print("teleporting")
TeleportPlayers()
end
for _, v in workspace:GetPartsInPart(elevator) do
local char = v:FindFirstAncestorOfClass("Model")
if char and Players:GetPlayerFromCharacter(char) and not table.find(foundPlayers, Players:GetPlayerFromCharacter(char)) and char.Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then
table.insert(foundPlayers, Players:GetPlayerFromCharacter(char))
end
end
if #foundPlayers > 0 then
for _, player in pairs(foundPlayers) do
local tp = false
if not playersInElevator[elevator] then
playersInElevator[elevator] = {player}
elevator.Players.Value = #playersInElevator[elevator]
table.insert(playersInElevator, player)
tp = true
else
if not table.find(playersInElevator[elevator], player) and #playersInElevator[elevator] < tonumber(elevator.Name) then
table.insert(playersInElevator, player) --s
table.insert(playersInElevator[elevator], player)
elevator.Players.Value = #playersInElevator[elevator]
tp = true
end
end
if tp then
print("can tp")
player.Character.HumanoidRootPart.CFrame = elevator.SpawnLocation.WorldCFrame
ReplicatedStorage.ElevatorCamera:FireClient(player, true, elevator)
if not countdownRunning then
RunCountdown()
end
end
end
end
end
end)
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
character.Humanoid.Died:Once(function()
for _, elevator in pairs(elevators:GetChildren()) do
if playersInElevator[elevator] then
if table.find(playersInElevator[elevator], player) then
print("died")
print(playersInElevator)
print(elevator)
elevator.Players.Value = #playersInElevator[elevator]
table.remove(playersInElevator[elevator], table.find(playersInElevator[elevator], player))
ReplicatedStorage.ElevatorCamera:FireClient(player, false, elevator)
break
end
end
end
end)
end)
end)
ReplicatedStorage.ElevatorCamera.OnServerEvent:Connect(function(player, enabled, elevator)
if not enabled then
for _, elevator in pairs(elevators:GetChildren()) do
if playersInElevator[elevator] then
if table.find(playersInElevator[elevator], player) then
table.remove(playersInElevator[elevator], table.find(playersInElevator[elevator], player))
elevator.Players.Value = #playersInElevator[elevator]
ReplicatedStorage.ElevatorCamera:FireClient(player, false, elevator)
player.Character.HumanoidRootPart.CFrame = elevator.LeaveLocation.WorldCFrame
break
end
end
end
end
end)```