GetPlayerSerial: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| No edit summary | Fernando187 (talk | contribs)  m (Fix examples header) | ||
| (34 intermediate revisions by 21 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=== | ===Required Arguments=== | ||
| *'''thePlayer:''' A [[player]] object referencing the specified player. | *'''thePlayer:''' A [[player]] object referencing the specified player. | ||
| Line 13: | Line 16: | ||
| ==Returns== | ==Returns== | ||
| Returns the serial as a ''string'' if it was found, ''false'' otherwise. | 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=== | |||
| None | |||
| == | ==Returns== | ||
| Returns the serial as a ''string'' if it was found, ''false'' otherwise. | |||
| </section> | |||
| ==Examples== | |||
| <section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
| This example creates a command with which player can check their own serial. | This example creates a command with which player can check their own serial. | ||
| Line 30: | Line 43: | ||
|      end |      end | ||
| end | end | ||
| addCommandHandler( "serial",  | 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> | </syntaxhighlight> | ||
| </section> | </section> | ||
| ==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