Common functions: Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>Legend26
Tabbed code for readability
>Anaminus
Redirected page to Function Dump
 
(41 intermediate revisions by 8 users not shown)
Line 1: Line 1:
__TOC__
#redirect [[Function Dump]]
 
==Built-In Functions==
There are many pre-made functions in the Object Browser, but this page will be going through the most-used ones.  Most of these functions either use a pre-existing brick or delay something from happening.  A final note before you start, all built-in functions start with a ":" and end with a "()".
 
===The "delay()" Function===
The delay function waits a certain amount of seconds and then executes a function on a new thread.
 
{{Example|
<pre>
print("Hi!")
delay(3, function()
print("Bye!")
end)
</pre>
}}
 
===The  "wait()" Function===
 
The wait function will delay, or wait, by seconds.  Unlike other functions, this one can both be with or without a ":".
 
{{Example|
<pre>
print("Hi!")
wait(3)
print("Bye!")
</pre>
}}
 
In the output, this prints the word "Hi!", waits three seconds, then prints the word "Bye!".
 
See [[Scripting#Globals|this page]] for more details on these functions.
 
===The ":Clone()" Function===
What this function does it what it says, clones. When the object is cloned, it will have no parent, so the clone won't exist until you name its new parent. Here's how you do it.
 
{{Example|
<pre>game.Workspace.Brick:Clone().Parent = game.Workspace</pre>
}}
If you are creating a script that makes Part that has a decal on it, the easier thing to do is to clone the brick, define it's parent, and then it's postion (Warning: The default posion is '''0,0,0'''. If you do not define a cloned part's postion, it will be there!).
 
===The ":FindFirstChild()" Function===
What this function does is find the first object it finds with the name noted in the parantheses. This is very useful in finding if something is there or not.
 
{{Example|
<pre>
bin = script.Parent
 
function onTouched(part)
local h = part.Parent:FindFirstChild("Humanoid")
if h~=nil then
print("Hi There!")
end
end
 
bin.Touched:connect(onTouched)
</pre>
}}
 
If I were to do this without the ":FindFirstChild()", I would come out with a Syntax Error because the object isn't there. But with ":FindFirstChild()", you can ask if the object is nil or not, noted in the script.  The rest of the script you should already know.  If you are trying to find something by name, it is advised to use quotation marks.
 
===The ":GetChildren()" Function===
This function gets a read-only table of the object's children.  It is not really needed unless iterating through all the objects inside of an object.
 
{{Example|
<pre>
bricks = 0
local c = game.Workspace:GetChildren()
for i=1, #c do
if c[i].className == "Part" then
bricks = bricks + 1
end
end
print(bricks)
</pre>
}}
 
===The ":Remove()" Function===
All the Remove function does is change its parent status to [[nil]]. A possible alternative is "object.Parent = nil" instead.  But using this method is typically 'better', due to the object orientated programming rule that if you can use a method to change a variable, use it instead.
Example:
 
{{Example|
<pre>game.Workspace.Brick:Remove()</pre>
}}
 
===The ":MakeJoints()" Function===
MakeJoints forms a bond (a joint) between bricks if they have the required surfaces types:
{|border="1" cellspacing="5"  style=" -webkit-border-radius: 4px; -moz-border-radius: 4px; height: 100%; background-color: #FFFFFF; border-top: dashed 2px #ff0000; border-left: dashed 2px #ff0000; border-bottom: dashed 2px #aa0000; border-right: dashed 2px #aa0000; margin: 6px; margin-right: 10px; margin-left: 10px; clear: none; padding: 2px;"
|-
|SurfaceType || '''Weld''' || '''Universal''' || '''Studs''' || '''Inlet''' || '''Glue''' || '''Smooth'''
|-
| '''Weld'''      || Weld || Weld      || Weld || Weld  || Weld || Weld
|-
| '''Universal'''  || Weld || Snap      || Snap || Snap || Glue || No Joint 
|-
| '''Studs'''      || Weld || Snap      || No Joint || Snap || Glue || No Joint 
|-
| '''Inlet'''      || Weld || Snap      || Snap || No Joint || Glue || No Joint 
|-
| '''Glue'''      || Weld || Glue      || Glue || Glue || Glue || Glue
|-
| '''Smooth'''    || Weld || No Joint  || No Joint || No Joint || Glue || No Joint
|}
 
{{Example|
Brick Form:
<pre>
brick = game.Workspace.Brick
brick:MakeJoints()
</pre>
 
Model Form:
<pre>
model = game.Workspace.Model
model:MakeJoints()
</pre>
}}
 
===The ":BreakJoints()" Function===
This function breaks all joints already made. Running this on a building all grouped into a model might cause it to crumble, although bricks stacked on each other will be unaffected until another force acts on them.
 
{{Example|
<pre>
--Brick Form
brick = game.Workspace.Brick
brick:BreakJoints()
 
--Model Form
model = game.Workspace.Model
model:BreakJoints()
</pre>
The model form is the same as doing so:
<pre>
model = game.Workspace.Model
for _, v in pairs(model:GetChildren()) do
if (v:IsA("BasePart")) then
v:BreakJoints()
end
end
</pre>
}}
 
Although the model form is much simpler.
 
===The ":GetMass()" Function===
So, ever wondered how heavy a brick is in ROBLOX? The GetMass() function is just for that! It is the same as multiplying all the components of the size of the brick together. NOTE: Editing mass is not possible, as it is a returned value from a function.
 
{{Example|
<pre>
brick = game.Workspace.Brick
print(brick:GetMass())
</pre>
This is the same as...
<pre>
brick = game.Workspace.Brick
print(brick.Size.X * brick.Size.Y * brick.Size.Z)
</pre>
}}
 
If density existed in ROBLOX, GetMass() would multiply the size components and the density. For the time being, all parts in ROBLOX have a density of 1.
 
===The ":MoveTo()" Function===
 
The MoveTo() function has two different uses. The first is usable on a [[Model]] or any type of [[Part]] (see [[BasePart]].)
 
{{Example|
<pre>
--Used on a model...
model = game.Workspace.Model
model:MoveTo(Vector3.new(0, 0, 10))
 
--Used on a Part...
brick = game.Workspace.Brick
brick:MoveTo(Vector3.new(0, 0, 10))
</pre>
}}
 
The second use of MoveTo() is to force a Humanoid to walk to a location to the best of its ability. The Humanoid will continue to walk in that direction until it reaches the destination.
 
This version of MoveTo() requires three arguments, the first is given by the : operator, and is the Humanoid. The second is the target location, and finally, the third is the [[BasePart]] the Humanoid is walking on to get to the destination.
 
{{Example|
<pre>
Character = game.Workspace.SomePlayer.Humanoid
Base = game.Workspace.Base --Assuming your baseplate is named "Base"
Character:MoveTo(Vector3.new(15, 0, 10), Base) --Tell Character to talk to (15, 0, 10) on Base.
</pre>
}}
 
===The ":GetPlayerFromCharacter()" Function===
Ever needed to find out what player(not character) touched your brick in you button script? The ":GetPlayerFromCharacter()" Function makes it easier than actually searching the players with the previous ":FindFirstChild()" and ":GetChildren()" functions. What it does is automatically search an area for a the player that represents the character. If an Instance's "Controller" is "Player", you can use this function.
 
{{Example|
<pre>
DB=false
function onTouched(hit)
if DB==true then return end --if debounce is active then end the function
DB=true
if hit.Parent:FindFirstChild("Humanoid")~= nil then --If touched by a player then
if game.Players:GetPlayerFromCharacter(hit.Parent)~= nil then --If there is a player that goes with the character then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
player.LocalStats.Cash=player.LocalStats.Cash + 5 --add 5 more cash
end
end
wait(1)
DB=false
end
 
script.Parent.Touched:connect(onTouched)
</pre>
}}
 
That script will change give 5 cash to the local stat of cash if you touch it.
 
===The "lookVector" Function===
There actually is a CFrame function to find which way you are looking.  What this function does is find exactly which way your front is facing.  The "lookVector" function can be used for several different situations, e.g., tools, planes, robots, cars, etc.
 
{{Example|
<pre>
while true do
wait()
--[[ print(game.Workspace.Player.Torso.Velocity) If you want to print the velocity of your player as you go
along, use this.  Change "Player" to your username. --]]
 
--[[ print(game.Workspace.Player.Torso.CFrame.lookVector) If you want to see the lookvector of your player
printed out as you go along, use this.  Change "Player" to your username. --]]
 
game.Workspace.Player.Torso.Velocity = game.Workspace.Player.Torso.CFrame.lookVector * 60 --[[Change "Player"
to your username --]]
 
end
</pre>
}}
 
First is 'while true do' loop.  Then is the 'wait()' function.  The script finds 'game.Workspace.Player,' (or game.Workspace.(yourusername), then it finds my Torso and sets its velocity to the way my Torso is looking by sixty.  This means this character will go at the speed of 60 units per second by the way it is facing.
 
== See Also ==
 
[[Function Dump]]
 
[[Category:Reference Pages]]
[[Category:Pending Removal]]

Latest revision as of 17:42, 6 April 2012

Redirect to: