Okay so I have been creating a script over the past hour or so and I'm trying to figure out how to do this. I'm basically winging it as I go along. I've looked at some admin tablet scripts and saw how they used CFrame but I really want to use BodyPosition for nice smooth movements. Okay so here's what's wrong. For some reason the ClickDetector isn't working, and when I click on that hat it should create a hat inside my character and place it on my head, and also the fact that I am not sure how to make more than one hat appear and/or how to use the table to add or remove the hats. I am also unsure how to make them rotate around my body... I know I am asking quite a lot but it's probably quite easy for you more advanced scripters to answer for me and possibly explain. Here's my script so far:
Player = game.Players.LocalPlayer
Char = Player.Character
if not Char or not Char.Parent then
Char = Player.CharacterAdded:wait()
end
Mouse = Player:GetMouse()
Hats = {}
function CreateTab(Name,TextureID,MeshID,AttachPos)
local Tab = Instance.new("Part",Char)
Tab.BottomSurface = "Smooth"
Tab.TopSurface = "Smooth"
Tab.Size = Vector3.new(2,2,2)
local BodyPos = Instance.new("BodyPosition",Tab)
local Update = coroutine.wrap(function()
while wait() do
BodyPos.position = Char.Torso.Position + Vector3.new(0,0,5)
end
end)
Update()
local PointLight = Instance.new("PointLight", Tab)
PointLight.Color = BrickColor.new("Bright blue").Color
PointLight.Range = 10
local Mesh = Instance.new("SpecialMesh",Tab)
Mesh.MeshType = "FileMesh"
Mesh.MeshId = "http://www.roblox.com/asset/?id="..MeshID
Mesh.TextureId = "http://www.roblox.com/asset/?id="..TextureID
local ClickDetector = Instance.new("ClickDetector",Tab)
ClickDetector.MaxActivationDistance = math.huge
ClickDetector.MouseHoverEnter:connect(function(plr)
if plr.Name == Player.Name then
Tab.Transparency = 0.5
end
end)
ClickDetector.MouseHoverLeave:connect(function(plr)
if plr.Name == Player.Name then
Tab.Transparency = 0
end
end)
ClickDetector.MouseClick:connect(function(plr)
if plr.Name == Player.Name then
local h = Instance.new("Hat")
local p = Instance.new("Part")
h.Name = Name
p.Parent = h
p.Position = Char.Head.Position
p.Name = "Handle"
p.formFactor = 0
p.Size = Vector3.new(1, 0.4, 1)
p.BottomSurface = 0
p.TopSurface = 0
p.Locked = true
script.Parent.Mesh:clone().Parent = p
h.Parent = Char
h.AttachmentForward = Vector3.new (-0, -0, -1)
h.AttachmentPos = Vector3.new(AttachPos)
h.AttachmentRight = Vector3.new (1, 0, 0)
h.AttachmentUp = Vector3.new (0, 1, 0)
end
end)
end
Player.Chatted:connect(function(msg)
if msg:lower() == "load" then
CreateTab("TwistedTurquoise",211828518,16627529, 0, 0, 0)
end
end)
I have not played ROBLOX in a few months and am just getting back in to scripting so please forgive if I am making pretty basic mistakes.
And yes it is in a LocalScript
