Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local RunService = game:GetService("RunService")
- local Camera = workspace.CurrentCamera
- local DrawingAPI = {}
- local function GetHead(Model)
- for _, Part in pairs(Model:GetChildren()) do
- if Part.Name == "Head" then
- return Part
- end
- end
- end
- local Heads = {}
- local function UpdateHeads()
- for _, Model in pairs(workspace:GetChildren()) do
- if Model:IsA("Model") and Model ~= game.Players.LocalPlayer.Character then
- local Head = GetHead(Model)
- if Head then
- Heads[Model] = Head
- DrawingAPI[Model] = Drawing.new("Text")
- DrawingAPI[Model].Visible = false
- DrawingAPI[Model].Size = 20
- DrawingAPI[Model].Color = Color3.new(1, 1, 1)
- DrawingAPI[Model].Center = true
- DrawingAPI[Model].Outline = true
- end
- end
- end
- end
- UpdateHeads()
- workspace.ChildAdded:Connect(function(Model)
- if Model:IsA("Model") and Model ~= game.Players.LocalPlayer.Character then
- local Head = GetHead(Model)
- if Head then
- Heads[Model] = Head
- DrawingAPI[Model] = Drawing.new("Text")
- DrawingAPI[Model].Visible = false
- DrawingAPI[Model].Size = 20
- DrawingAPI[Model].Color = Color3.new(1, 1, 1)
- DrawingAPI[Model].Center = true
- DrawingAPI[Model].Outline = true
- end
- end
- end)
- workspace.ChildRemoved:Connect(function(Model)
- if Heads[Model] then
- Heads[Model] = nil
- DrawingAPI[Model]:Remove()
- DrawingAPI[Model] = nil
- end
- end)
- RunService.RenderStepped:Connect(function()
- for Model, Head in pairs(Heads) do
- local ScreenPosition, OnScreen = Camera:WorldToScreenPoint(Head.Position)
- if OnScreen then
- DrawingAPI[Model].Visible = true
- DrawingAPI[Model].Position = Vector2.new(ScreenPosition.X, ScreenPosition.Y)
- DrawingAPI[Model].Text = " (" .. math.floor((Head.Position - Camera.CFrame.p).Magnitude) .. ")"
- else
- DrawingAPI[Model].Visible = false
- end
- end
- end)
Add Comment
Please, Sign In to add comment