GetPlayerSerial: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
No edit summary  | 
				Fernando187 (talk | contribs)  m (Fix examples header)  | 
				||
| (39 intermediate revisions by 24 users not shown) | |||
| Line 1: | Line 1: | ||
__NOTOC__  | __NOTOC__  | ||
{{  | {{Shared function}}  | ||
This function returns the serial for a specified [[player]].  | This function returns the [[serial]] for a specified [[player]].  | ||
{{Note|It's possible for a player to fake the value returned from getPlayerSerial when used on the clientside. For this reason you should only trust the value returned by this function when used serverside. }}  | |||
{{Important Note|You should '''use this function''' in conjunction '''with account system''' (e.g: '''login & password''') - especially for critical things, because '''serials could be invalid''' (as in, '''non-unique''' or '''faked'''). See: [https://wiki.multitheftauto.com/wiki/Script_security Script security].}}  | |||
==Syntax==  | ==Syntax==  | ||
<section name="Server" class="server" show="true">  | |||
<syntaxhighlight lang="lua">  | <syntaxhighlight lang="lua">  | ||
string getPlayerSerial ( player thePlayer )  | string getPlayerSerial ( player thePlayer )  | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
{{OOP||[[player]]:getSerial|serial|}}  | |||
===Required Arguments===  | |||
*'''thePlayer:''' A [[player]] object referencing the specified player.  | |||
==Returns==  | |||
Returns the serial as a ''string'' if it was found, ''false'' otherwise.  | |||
</section>  | |||
==Syntax==  | |||
<section name="Client" class="client" show="true">  | |||
<syntaxhighlight lang="lua">  | |||
string getPlayerSerial ( )  | |||
</syntaxhighlight>  | |||
{{OOP||[[localPlayer]]:getSerial||}}  | |||
===Required Arguments===  | ===Required Arguments===  | ||
None  | |||
==Returns==  | |||
Returns the serial as a ''string'' if it was found, ''false'' otherwise.  | |||
</section>  | |||
==Examples==  | |||
<section name="Server" class="server" show="true">  | |||
This example creates a command with which player can check their own serial.  | |||
<syntaxhighlight lang="lua">  | |||
function checkMySerial( thePlayer, command )  | |||
    local theSerial = getPlayerSerial( thePlayer )  | |||
    if theSerial then  | |||
        outputChatBox( "Your serial is: " .. theSerial, thePlayer )  | |||
    else  | |||
        outputChatBox( "Sorry, you have no serial. =(", thePlayer )  | |||
    end  | |||
end  | |||
addCommandHandler( "myserial", checkMySerial )  | |||
</syntaxhighlight>  | |||
==  | This example adds a command to ban a player's serial.  | ||
<syntaxhighlight lang="lua">  | |||
local function banSerialCommand ( source, command, playerName, reason )  | |||
   if playerName then  | |||
      local player, serial = getPlayerFromName ( playerName ), getPlayerSerial ( playerName )  | |||
      if player then  | |||
         addBan ( serial, source, reason )  | |||
      end  | |||
   end  | |||
end  | |||
addCommandHandler ( "banplayerserial", banSerialCommand )  | |||
</syntaxhighlight>  | |||
This example only allows clients with a certain serial to log in into an account.  | |||
<syntaxhighlight lang="lua">  | |||
local allowedAccountSerials =   | |||
{  | |||
    -- List of allowed serials to log in into an account. Format:  | |||
    -- [ Account name ] = { Allowed serial array }  | |||
    [ "3ash8" ] = { "9C9F3B55D9D7BB7135FF274D3BF444E4" },  | |||
    [ "test5" ] = { "1D6F76CF8D7193792D13789849498452" },  | |||
}  | |||
addEventHandler("onPlayerLogin", root,  | |||
    function(_, account)  | |||
        -- Get the player serial and the allowed serial list for that account  | |||
        -- (If no serial is allowed for the account, do not allow the player to log in as a safety measure)  | |||
        local playerSerial, allowedSerials = getPlayerSerial(source), allowedAccountSerials[getAccountName(account)] or {}  | |||
        -- Check whether the client has an allowed serial or not  | |||
        for i = 1, #allowedSerials do  | |||
            if allowedSerials[i] == playerSerial then  | |||
                -- The serial is allowed. Proceed with the normal log in proccess  | |||
                return  | |||
            end  | |||
        end  | |||
        -- If we reach this point the serial is not allowed. Do not let the player log in  | |||
        cancelEvent(true, "Client serial not allowed to log in into the account")  | |||
    end  | |||
)  | |||
</syntaxhighlight>  | |||
</section>  | |||
==See Also==  | ==See Also==  | ||
{{  | {{Player functions}}  | ||
[[ar:getPlayerSerial]]  | |||
[[en:GetPlayerSerial]]  | |||
Latest revision as of 13:33, 8 June 2025
This function returns the serial for a specified player.
| Important Note: You should use this function in conjunction with account system (e.g: login & password) - especially for critical things, because serials could be invalid (as in, non-unique or faked). See: Script security. | 
Syntax
Click to collapse [-]
Serverstring getPlayerSerial ( player thePlayer )
OOP Syntax Help! I don't understand this!
- Method: player:getSerial(...)
 - Variable: .serial
 
Required Arguments
- thePlayer: A player object referencing the specified player.
 
Returns
Returns the serial as a string if it was found, false otherwise.
Syntax
Click to collapse [-]
Clientstring getPlayerSerial ( )
OOP Syntax Help! I don't understand this!
- Method: localPlayer:getSerial(...)
 
Required Arguments
None
Returns
Returns the serial as a string if it was found, false otherwise.
Examples
Click to collapse [-]
ServerThis example creates a command with which player can check their own serial.
function checkMySerial( thePlayer, command )
    local theSerial = getPlayerSerial( thePlayer )
    if theSerial then
        outputChatBox( "Your serial is: " .. theSerial, thePlayer )
    else
        outputChatBox( "Sorry, you have no serial. =(", thePlayer )
    end
end
addCommandHandler( "myserial", checkMySerial )
This example adds a command to ban a player's serial.
local function banSerialCommand ( source, command, playerName, reason )
   if playerName then
      local player, serial = getPlayerFromName ( playerName ), getPlayerSerial ( playerName )
      if player then
         addBan ( serial, source, reason )
      end
   end
end
addCommandHandler ( "banplayerserial", banSerialCommand )
This example only allows clients with a certain serial to log in into an account.
local allowedAccountSerials = 
{
    -- List of allowed serials to log in into an account. Format:
    -- [ Account name ] = { Allowed serial array }
    [ "3ash8" ] = { "9C9F3B55D9D7BB7135FF274D3BF444E4" },
    [ "test5" ] = { "1D6F76CF8D7193792D13789849498452" },
}
 
addEventHandler("onPlayerLogin", root,
    function(_, account)
        -- Get the player serial and the allowed serial list for that account
        -- (If no serial is allowed for the account, do not allow the player to log in as a safety measure)
        local playerSerial, allowedSerials = getPlayerSerial(source), allowedAccountSerials[getAccountName(account)] or {}
        -- Check whether the client has an allowed serial or not
        for i = 1, #allowedSerials do
            if allowedSerials[i] == playerSerial then
                -- The serial is allowed. Proceed with the normal log in proccess
                return
            end
        end
        -- If we reach this point the serial is not allowed. Do not let the player log in
        cancelEvent(true, "Client serial not allowed to log in into the account")
    end
)
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