GetPlayerACInfo: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(Remove obsolete Requirements section)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Server function}}
{{Server function}}
{{Needs_Example}}
__NOTOC__
__NOTOC__
{{New feature/item|3.0140|1.3.3|5523|
{{Deprecated|onPlayerACInfo}}
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#disableac|mtaserver.conf]] to be of use here.
 
{{Note|The info returned by this function can change over time, so it should be called every few seconds rather than just when the player joins.}}
This function returns anti-cheat info for a player. The info returned by this function can change over time, so use the server event [[onPlayerACInfo]] instead.
}}
==Syntax==
==Syntax==
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
table getPlayerACInfo( element thePlayer )
table getPlayerACInfo( element thePlayer )
</syntaxhighlight>
</syntaxhighlight>
 
{{OOP||[[player]]:getACInfo|ACInfo|}}
===Required Arguments===
===Required Arguments===
*'''thePlayer:''' The [[player]] whose anti-cheat info you want to check.
*'''thePlayer:''' The [[player]] whose anti-cheat info you want to check.
Line 17: Line 15:
Returns a table with the following entries:
Returns a table with the following entries:
* '''DetectedAC:''' A string containing a comma separated list of [[Anti-cheat_guide|anti-cheat]] codes the player has triggered.
* '''DetectedAC:''' A string containing a comma separated list of [[Anti-cheat_guide|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.
*'''d3d9MD5:''' A string containing the MD5 of any custom d3d9.dll the player may have installed.
*'''d3d9Size:''' A number representing the file size of any custom d3d9.dll the player may have installed.
*'''d3d9SHA256:''' A string containing the SHA256 of any custom d3d9.dll the player may have installed.
 
<!--
==Example==
This example checks getPlayerACInfo for changes every 3 seconds
<syntaxhighlight lang="lua">
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 )
</syntaxhighlight>


==Requirements==
==Example==  
{{Requirements|1.3.3|n/a|}}
This example allows player serial exceptions for SD #14 (virtual machines)
<syntaxhighlight lang="lua">
-- List of serials which are allowed to use virtual machines
allowVM = { ["0123456789012345601234567890123456"] = true,
            ["A123637892167367281632896790123456"] = true,
            ["E123456789012347839207878392123456"] = true }


==Example==
function checkPlayersACInfo()
    for _,plr in ipairs( getElementsByType("player") ) do
        local ACInfo = getPlayerACInfo(plr)
        if string.find( ACInfo.DetectedAC, "14" ) 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 )
</syntaxhighlight>
-->


==See Also==
==See Also==
{{Player_functions}}
{{Player functions|server}}

Latest revision as of 17:12, 7 November 2024


Emblem-important.png This function is deprecated. This means that its use is discouraged and that it might not exist in future versions.

Please use onPlayerACInfo instead.


This function returns anti-cheat info for a player. The info returned by this function can change over time, so use the server event onPlayerACInfo instead.

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.
  • d3d9SHA256: A string containing the SHA256 of any custom d3d9.dll the player may have installed.


See Also