48 lines
1.1 KiB
Lua
48 lines
1.1 KiB
Lua
local Players = game:GetService("Players")
|
|
|
|
local char = script.Parent
|
|
local torso = char:WaitForChild("HumanoidRootPart")
|
|
|
|
local humanoid = char:WaitForChild("Humanoid")
|
|
local hatPickup = script:WaitForChild("HatPickup")
|
|
|
|
local dropHat = script:WaitForChild("DropHat")
|
|
|
|
local function onDropHat(player)
|
|
local myPlayer = Players:GetPlayerFromCharacter(char)
|
|
assert(player == myPlayer, "Cannot drop hats unless it is your character.")
|
|
|
|
local dropPos = torso.CFrame * CFrame.new(0, 5.4, -8)
|
|
|
|
for _,hat in pairs(humanoid:GetAccessories()) do
|
|
local handle = hat:FindFirstChild("Handle")
|
|
|
|
if handle then
|
|
local newHandle = handle:Clone()
|
|
|
|
for _,joint in pairs(newHandle:GetJoints()) do
|
|
joint:Destroy()
|
|
end
|
|
|
|
for _,child in pairs(newHandle:GetChildren()) do
|
|
if child:IsA("JointInstance") then
|
|
child:Destroy()
|
|
end
|
|
end
|
|
|
|
newHandle.CFrame = dropPos
|
|
newHandle.CanCollide = true
|
|
newHandle.Parent = workspace
|
|
|
|
handle:Destroy()
|
|
hat.Parent = newHandle
|
|
|
|
local pickup = hatPickup:Clone()
|
|
pickup.Parent = newHandle
|
|
pickup.Disabled = false
|
|
end
|
|
end
|
|
end
|
|
|
|
dropHat.OnServerEvent:Connect(onDropHat)
|