|
|
(2 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| Some useful functions...
| | <div length=150px> |
| <pre> | | {{TitledBox/start|grey|dark=true |
| | | |heading=<big>Statistics for the [http://{{SERVERNAME}} Roblox wiki].</big>|float:left; width:50%; margin-left: 0}} |
| --- shared:RealType( v )
| | {{EmphasisBox/start|grey}} |
| | | {{NUMBEROFPAGES}} pages, {{NUMBEROFARTICLES}} articles, and {{NUMBEROFFILES}} files have been edited {{NUMBEROFEDITS}} times. |
| function shared:RealType(v)
| | ---- |
| | | There are {{NUMBEROFUSERS}} registered users on the Roblox Wiki. Of that, {{NUMBEROFADMINS}} are administrators. |
| local libraries = {Axes, BrickColor, CFrame, Color3, Faces, Ray, Region3, UDim, UDim2, Vector2, Vector3, Instance, math, table, string, coroutine}
| | ---- |
| | | ???? |
| if type(v) == "userdata" then
| | ---- |
|
| | Profit. |
| for _,i in pairs(libraries) do
| | {{EmphasisBox/end}} |
| if v == i then
| | {{TitledBox/end}} |
| return string.lower(tostring(i))
| | </div> |
| end
| |
| end
| |
| | |
| if pcall(function() i = v:IsA("Instance") end) then
| |
| return "object"
| |
| elseif pcall(function() x = v.X end) then
| |
| if pcall(function() z = v.Z end) then
| |
| if Axes.new(v.X, v.Y, v.Z) == v then
| |
| return "axes"
| |
| elseif pcall(function() comp = v:components() end) then
| |
| return "coordinateframe"
| |
| else
| |
| return "vector3"
| |
| end
| |
| elseif Vector2.new(v.X, v.Y) == v then
| |
| return "vector2"
| |
| elseif pcall(function() xo = v.X.Offset end) then
| |
| return "universaldimension2"
| |
| end
| |
| elseif pcall(function() r = v.r end) then
| |
| if BrickColor.new(v.r, v.g, v.b) == v then
| |
| return "brickcolor"
| |
| elseif Color3.new(v.r, v.g, v.b) == v then
| |
| return "color3"
| |
| end
| |
| elseif pcall(function() top = v.Top) then
| |
| if Faces.new(v.Back, v.Bottom, v.Front, v.Left, v.Right, v.Top) == v then
| |
| return "faces"
| |
| end
| |
| elseif pcall(function() connect = v.connected end) then
| |
| return "rbxscriptconnection"
| |
| elseif pcall(function() conn = v:connect(function()end)end) then
| |
| return "rbxscriptsignal"
| |
| elseif pcall(function() origin = v.Origin end) then
| |
| return "ray"
| |
| elseif pcall(function() cf = v.CFrame end) then
| |
| return "region3"
| |
| elseif pcall(function() o = v.Offset end) then
| |
| return "universaldimension"
| |
| end
| |
| end
| |
| | |
| return type(v)
| |
| end
| |
| | |
| --- shared:ToupleToTable( ... ) | |
| | |
| function shared:ToupleToTable(...)
| |
| assert(loadstring("return {" .. ... .. "}"))()
| |
| end
| |
| | |
| function r(v) -- for me
| |
| return shared:RealType(v)
| |
| end
| |
| | |
| --- math.curt(v) | |
| | |
| function math.curt(v)
| |
| if not r(v) == "number" then
| |
| error("Number expected",1)
| |