GetPlayerACInfo: Difference between revisions
Jump to navigation
Jump to search
(Added example) |
|||
| Line 68: | Line 68: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
-- List of serials which are allowed to use virtual machines | -- List of serials which are allowed to use virtual machines | ||
allowVM = { "0123456789012345601234567890123456" = true, | allowVM = { ["0123456789012345601234567890123456"] = true, | ||
"A123637892167367281632896790123456" = true, | ["A123637892167367281632896790123456"] = true, | ||
"E123456789012347839207878392123456" = true } | ["E123456789012347839207878392123456"] = true } | ||
function checkPlayersACInfo() | function checkPlayersACInfo() | ||
Revision as of 14:52, 22 November 2015
This function returns anti-cheat info for a player. It can be used to script a white/blacklist of custom d3d9.dll files, or a white/blacklist of players with certain anti-cheat codes. The relevant anti-cheat code has to be disabled (or not enabled) in the server mtaserver.conf to be of use here.
Syntax
table getPlayerACInfo( element thePlayer )
OOP Syntax Help! I don't understand this!
- Method: player:getACInfo(...)
- Variable: .ACInfo
Required Arguments
- thePlayer: The player whose anti-cheat info you want to check.
Returns
Returns a table with the following entries:
- DetectedAC: A string containing a comma separated list of anti-cheat codes the player has triggered.
- d3d9Size: A number representing the file size of any custom d3d9.dll the player may have installed.
- d3d9MD5: A string containing the MD5 of any custom d3d9.dll the player may have installed.
Example
This example checks getPlayerACInfo for changes every 3 seconds
lastDetectedACList = {}
addEventHandler( "onResourceStart", resourceRoot,
function()
for _,plr in ipairs( getElementsByType("player") ) do
lastDetectedACList[plr] = ""
end
end
)
addEventHandler( "onPlayerJoin", root,
function()
lastDetectedACList[source] = ""
end
)
addEventHandler( "onPlayerQuit", root,
function()
lastDetectedACList[source] = nil
end
)
function checkPlayersACInfo()
for plr,lastAC in pairs( lastDetectedACList ) do
local info = getPlayerACInfo(plr)
if info.DetectedAC ~= lastAC then
lastDetectedACList[plr] = info.DetectedAC
outputServerLog( "AC-INFO: "
.. " Player:" .. tostring(getPlayerName(plr))
.. " DetectedAC:" .. tostring(info.DetectedAC)
.. " d3d9MD5:" .. tostring(info.d3d9MD5)
.. " d3d9Size:" .. tostring(info.d3d9Size)
)
end
end
end
setTimer( checkPlayersACInfo, 3000, 0 )
Example
This example allows player serial exceptions for SD #28 (virtual machines)
-- List of serials which are allowed to use virtual machines
allowVM = { ["0123456789012345601234567890123456"] = true,
["A123637892167367281632896790123456"] = true,
["E123456789012347839207878392123456"] = true }
function checkPlayersACInfo()
for _,plr in ipairs( getElementsByType("player") ) do
local ACInfo = getPlayerACInfo(plr)
if string.find( ACInfo.DetectedAC, "28" ) then
local serial = getPlayerSerial(plr)
if not allowVM[serial] then
kickPlayer( plr, "This server does not allow virtual machines." )
end
end
end
end
setTimer( checkPlayersACInfo, 3000, 0 )
Requirements
This template will be deleted.
See Also
- getPlayerTeam
- getPlayerBlurLevel
- setPlayerBlurLevel
- getPlayerSerial
- forcePlayerMap
- getPlayerScriptDebugLevel
- getPlayerFromName
- getPlayerMoney
- getPlayerName
- getPlayerNametagColor
- getPlayerNametagText
- getPlayerPing
- getPlayerWantedLevel
- givePlayerMoney
- isPlayerMapForced
- isPlayerNametagShowing
- setPlayerHudComponentVisible
- setPlayerMoney
- setPlayerNametagColor
- setPlayerNametagShowing
- setPlayerNametagText
- takePlayerMoney
- countPlayersInTeam
- getPlayersInTeam
- isVoiceEnabled
- setControlState
- getControlState