GetUserdataType: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
m (decaps) |
||
Line 10: | Line 10: | ||
===Required Arguments=== | ===Required Arguments=== | ||
*'''value''': A userdata value to get the type of. Userdata types can be: | *'''value''': A userdata value to get the type of. Userdata types can be: | ||
**''' | **'''Shared''' | ||
***''resource-data'': a [[Resource|resource pointer]]. | ***''resource-data'': a [[Resource|resource pointer]]. | ||
***''xml-node'': a [[Xmlnode|XML node]]. | ***''xml-node'': a [[Xmlnode|XML node]]. | ||
Line 19: | Line 19: | ||
***''matrix'': a matrix, used in the [[Matrix]] class. | ***''matrix'': a matrix, used in the [[Matrix]] class. | ||
***''userdata'': a fallback userdata type return value, when no other type could be found for the object. | ***''userdata'': a fallback userdata type return value, when no other type could be found for the object. | ||
**''' | **'''Server only''' | ||
***''account'': a [[Account|player account]]. | ***''account'': a [[Account|player account]]. | ||
***''db-query'': a [[dbQuery|database query handle]]. | ***''db-query'': a [[dbQuery|database query handle]]. |
Revision as of 02:41, 5 August 2016
This function gets the type of a userdata value, which is not always a element in the element tree.
Syntax
string getUserdataType ( userdata value )
Required Arguments
- value: A userdata value to get the type of. Userdata types can be:
- Shared
- resource-data: a resource pointer.
- xml-node: a XML node.
- lua-timer: a timer.
- vector2: a 2D vector, used in the Vector2 class.
- vector3: a 3D vector, used in the Vector3 class.
- vector4: a 4D vector, used in the Vector4 class.
- matrix: a matrix, used in the Matrix class.
- userdata: a fallback userdata type return value, when no other type could be found for the object.
- Server only
- account: a player account.
- db-query: a database query handle.
- acl: an ACL entry.
- acl-group: an ACL group.
- ban: a player ban.
- text-item: a text display item.
- text-display: a text display item.
- Shared
Returns
Returns a string containing the specified userdata's type, or false plus an error message if the given value is not userdata.
Example
This example shows a function that can be used to work around the impossibility to transfer vectors as arguments when using triggerClientEvent and triggerServerEvent, by converting them into a table which can be used safely.
function safeArgsForTransfer(...) local args = { ... } for index, arg in ipairs(args) do if type(arg) == "userdata" and getUserdataType(arg):match("vector") then -- Transform every kind of vector userdata to a table which can be transfered safely args[index] = { arg:getX(), arg:getY(), arg.getZ and arg:getZ() or nil, arg.getW and arg:getW() or nil, -- Extra field to distinguish from normal tables ["isVectorWorkaround"] = true } end end return unpack(args) end
See Also
- addDebugHook
- base64Decode
- base64Encode
- debugSleep
- decodeString
- encodeString
- fromJSON
- generateKeyPair
- getColorFromString
- getDevelopmentMode
- getDistanceBetweenPoints2D
- getDistanceBetweenPoints3D
- getEasingValue
- getNetworkStats
- getNetworkUsageData
- getPerformanceStats
- getRealTime
- getTickCount
- getTimerDetails
- getTimers
- getFPSLimit
- getUserdataType
- getVersion
- gettok
- isTransferBoxVisible
- setTransferBoxVisible
- hash
- inspect
- interpolateBetween
- iprint
- isOOPEnabled
- isTimer
- killTimer
- md5
- passwordHash
- passwordVerify
- pregFind
- pregMatch
- pregReplace
- removeDebugHook
- resetTimer
- setDevelopmentMode
- setFPSLimit
- setTimer
- ref
- deref
- sha256
- split
- teaDecode
- teaEncode
- toJSON
- tocolor
- getProcessMemoryStats
- utfChar
- utfCode
- utfLen
- utfSeek
- utfSub
- bitAnd
- bitNot
- bitOr
- bitXor
- bitTest
- bitLRotate
- bitRRotate
- bitLShift
- bitRShift
- bitArShift
- bitExtract
- bitReplace