Making an onClicked script

From Legacy Roblox Wiki
Revision as of 16:57, 24 May 2008 by >Dr01d3k4
Jump to navigationJump to search

Intro

This is a FAQ that will teach you how to make a simple onClicked script. What is onClicked? I'll explain...

What is onClicked?

Not long ago, Roblox released a new feature known as a Click Detector. If you put it inside a brick it will detect when it is clicked. This FAQ will explain how to put it to use.

Getting Started

First things first, you have to put the ClickDetector inside the brick. Click on the brick, then click on 'Insert" on the toolbar and then click on "Object". Then look for "Click Detector" in the window that pops up. Voila, you now have your Click Detector. Now, put in a script.

The Script

Finally, the scripting! Here is the first part:

 function onClicked()

This tells the game to set off the function when the brick is clicked on. Next we have to put in the function (this is only an example, so feel free to change this part if you want)

 	local x = (math.random(0,10) * 0.1)
 	local y = (math.random(0,10) * 0.1)
 	local z = (math.random(0,10) * 0.1)
 	script.Parent.Color = Color3.new (x, y, z)

This tells the game to change the block's color to a random color.

Finally, you need to 'connect' the script.

 script.Parent.ClickDetector.MouseClick:connect(onClicked)

And now you're done! The finished script should look like this:

 function onClicked()
 	local x = (math.random(0,10) * 0.1)
 	local y = (math.random(0,10) * 0.1)
 	local z = (math.random(0,10) * 0.1)
 	script.Parent.Color = Color3.new (x, y, z)
 end
 
 script.Parent.ClickDetector.MouseClick:connect(onClicked)


Other Stuff

Nothing here yet... I may add some more stuff here in the future, like how to make button operated elevators, etc.

EDIT by dr01d3k4

Finding Clicker

Even though ClickDetector doesn't have any function arguements so you can't tell who clicked it, it is possible. This is how:

Method 1

This will make it so only one person can click it:

1.Make a part. Name it what you like 2.Put in 2 Scripts. Name one "CheckScript" and the other "MakeScript" 3.Insert a StringValue. Name it "Owner". Change the value to who you want to click on it. 4.Put a ClickDetector into the part, set the MaxActivationDistance to 0 5.In the "CheckScript", paste this:

dist = 10 --change this to how far away you can be

while true do
wait(1)
local p = game.Players:GetChildren()
for i = 1, #p do
if (p[i].Name == script.Parent.Owner.Value) then
if (game.Workspace:findFirstChild(p[i].Name) ~= nil) then
if (p[i].Character.Torso.Position - script.Parent.Position).magnitude < dist then
script.Parent.ClickDetector.MaxActivationDistance = dist
= "..script.Parent.ClickDetector.MaxActivationDistance.."")
else
script.Parent.ClickDetector.MaxActivationDistance = 0
end
end
end
end