GetPlayerSerial: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(10 intermediate revisions by 7 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Server client function}}
{{Server function}}
This function returns the [[serial]] for a specified [[player]].
This function returns the [[serial]] for a specified [[player]].
{{Note|The client side version of [[getPlayerSerial]] has been deprecated as it can return the wrong value for some players, and is potentially insecure. The following article assumes that the function is serverside only.}}


==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.
</section>
{{New feature|3.0110|1.1|
<section name="Client" class="client" show="true">
<syntaxhighlight lang="lua">
string getPlayerSerial ( )
</syntaxhighlight>
</section>
}}


==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.


==Example==
==Serverside examples==
<section name="Example 1" 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.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 37: Line 28:
addCommandHandler( "myserial", checkMySerial )
addCommandHandler( "myserial", checkMySerial )
</syntaxhighlight>
</syntaxhighlight>
</section>


<section name="Example 2" class="server" show="true">
This example adds a command to ban a player's serial.
This example add command to ban player serial.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function banSerial( source, command, noob, reason )
local function banSerialCommand ( source, command, playerName, reason )
   if ( noob ) then
   if playerName then
       local theNoob = getPlayerFromName( noob )
       local player, serial = getPlayerFromName ( playerName ), getPlayerSerial ( playerName )
      local theNoobSerial = getPlayerSerial( theNoob )
       if player then
       if ( theNoob ) then
         addBan ( serial, source, reason )
         addBan( theNoobSerial, source, reason )
       end
       end
   end
   end
end
end
addCommandHandler( "banserial", banSerial )
addCommandHandler ( "banplayerserial", banSerialCommand )
</syntaxhighlight>
</section>
 
<section name="Example 3" class="client" show="true">
This example add command to get client's serial.
<syntaxhighlight lang="lua">
function getMySerial( )
      local theSerial = getPlayerSerial()
      outputChatBox("Your serial is: "..tostring(theSerial))
    end
end
addCommandHandler( "myserial", getMySerial )
</syntaxhighlight>
</syntaxhighlight>
</section>


<section name="Example 3" class="server" show="true">
This example only allows clients with a certain serial to log in into an account.
This example is Firewall Account Player by serial on Login
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Firewall =  
local allowedAccountSerials =  
{
{
     [ 'AccountName' ] = 'SerialPlayer',
     -- List of allowed serials to log in into an account. Format:
     [ '3ash8' ] = '9C9F3B55D9D7BB7135FF274D3BF444E4',
    -- [ Account name ] = { Allowed serial array }
     [ 'test5' ] = '1D6F76CF8D7193792D13789849498452',
     [ "3ash8" ] = { "9C9F3B55D9D7BB7135FF274D3BF444E4" },
     [ "test5" ] = { "1D6F76CF8D7193792D13789849498452" },
}
}
   
   
addEventHandler ( 'onPlayerLogin', getRootElement ( ),
addEventHandler("onPlayerLogin", root,
     function ( _, theCurrentAccount )
     function(_, account)
    local Serial = Firewall[getAccountName(theCurrentAccount)]
        -- Get the player serial and the allowed serial list for that account
         if ( Serial ) then
        -- (If no serial is allowed for the account, do not allow the player to log in as a safety measure)
             if Serial ~= getPlayerSerial ( source ) then
        local playerSerial, allowedSerials = getPlayerSerial(source), allowedAccountSerials[getAccountName(account)] or {}
                 banPlayer ( source, false, false, true, getRootElement ( ), 'reason ban' )
         -- 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
         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
     end
)
)
</syntaxhighlight>
</syntaxhighlight>
</section>


<section name="Example 4" class="server" show="true">
==See Also==
This example if the player Tries to change the nickname was not the Serial is located will be banned .
{{Player functions}}
<syntaxhighlight lang="lua">
Serial = {
["You,re Serial"] = true,
}
addEventHandler("onPlayerChangeNick",root,
function (old,new)
local getSerial = getPlayerSerial (source)
if ( new ~= "You,re Nick Name" ) then return end
if ( new == "You,re Nick Name" and Serial[getSerial] ) then
        return outputChatBox ( "Been successfully verify the Serial (=", source, 255, 255, 0, true )
    else   
      outputChatBox ( "No verification of serial will be banned player now", root, 255, 255, 0, true )
      banPlayer ( source, false, false, true, source, "Reason" )
      cancelEvent()
    end
end
)
</syntaxhighlight>
</section>


==See Also==
[[ar:getPlayerSerial]]
{{Serial functions}}
[[en:GetPlayerSerial]]

Revision as of 22:00, 21 February 2021

This function returns the serial for a specified player.

[[{{{image}}}|link=|]] Note: The client side version of getPlayerSerial has been deprecated as it can return the wrong value for some players, and is potentially insecure. The following article assumes that the function is serverside only.

Syntax

string 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.

Serverside examples

This 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