AddDebugHook: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 31: | Line 31: | ||
function onPreEvent( sourceResource, eventName, eventSource, eventClient, luaFilename, luaLineNumber, ... ) | function onPreEvent( sourceResource, eventName, eventSource, eventClient, luaFilename, luaLineNumber, ... ) | ||
local args = { ... } | local args = { ... } | ||
local | local srctype = eventSource and getElementType(eventSource) | ||
local resname = sourceResource and getResourceName(sourceResource) | |||
local plrname = eventClient and getPlayerName(eventClient) | |||
outputDebugString( "preEvent" | outputDebugString( "preEvent" | ||
.. " " .. tostring(resname) | .. " " .. tostring(resname) | ||
.. " " .. tostring(eventName) | .. " " .. tostring(eventName) | ||
.. " source:" .. tostring( | .. " source:" .. tostring(srctype) | ||
.. " player:" .. tostring( | .. " player:" .. tostring(plrname) | ||
.. " file:" .. tostring(luaFilename) | .. " file:" .. tostring(luaFilename) | ||
.. ":" .. tostring(luaLineNumber) | .. ":" .. tostring(luaLineNumber) |
Revision as of 05:59, 24 November 2013
This function allows tracing of MTA functions and events. It should only be used when debugging scripts as it may degrade script performance.
Syntax
bool addDebugHook( string hookType, function callbackFunction )
Required Arguments
- hookType: The type of hook to add. This can be:
- preEvent
- postEvent
- preFunction
- postFunction
- callbackFunction : The function to call
Returns
Returns true if the hook was successfully added, or false otherwise.
Callback parameters
pre/postEvent( resource sourceResource, string eventName, element eventSource, element eventClient, string luaFilename, int luaLineNumber, eventArguments ) pre/postFunction( resource sourceResource, string functionName, bool isAllowedByACL, string luaFilename, int luaLineNumber, functionArguments )
Example
This example will dump info about all triggered events:
function onPreEvent( sourceResource, eventName, eventSource, eventClient, luaFilename, luaLineNumber, ... ) local args = { ... } local srctype = eventSource and getElementType(eventSource) local resname = sourceResource and getResourceName(sourceResource) local plrname = eventClient and getPlayerName(eventClient) outputDebugString( "preEvent" .. " " .. tostring(resname) .. " " .. tostring(eventName) .. " source:" .. tostring(srctype) .. " player:" .. tostring(plrname) .. " file:" .. tostring(luaFilename) .. ":" .. tostring(luaLineNumber) .. " #args:" .. tostring(#args) .. " args[1]:" .. tostring(args[1]) ) end addDebugHook( "preEvent", onPreEvent )
Requirements
This template will be deleted.
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