GetPlayerCount: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
 
(12 intermediate revisions by 10 users not shown)
Line 3: Line 3:
This function returns the number of players currently connected to the server.
This function returns the number of players currently connected to the server.
{{Note|#getElementsByType("player") works the same as this function but also works client side unlike this function.}}
{{Note|#getElementsByType("player") works the same as this function but also works client side unlike this function.}}
==Syntax==
==Syntax==
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
int getPlayerCount ( )
int getPlayerCount ( )
</syntaxhighlight>
</syntaxhighlight>
 
{{OOP||[[Player]].getCount||}}
===Returns===
===Returns===
Returns the number of players connected to the server as an [[int]].
Returns the number of players connected to the server as an [[int]].
Line 18: Line 17:
outputChatBox ( "There are now " .. getPlayerCount() .. " players on this server!" )
outputChatBox ( "There are now " .. getPlayerCount() .. " players on this server!" )
end
end
addEventHandler ( "onPlayerJoin", getRootElement(), playerCount )
addEventHandler ( "onPlayerJoin", root, playerCount )
addEventHandler ( "onPlayerQuit", getRootElement(), playerCount )
addEventHandler ( "onPlayerQuit", root, playerCount )
</syntaxhighlight>
</syntaxhighlight>


==Example 2==
==Shared implementation of getPlayerCount==
<section name="Client" class="client" show="true">
''getElementsByType("player")'' returns a regular-indexed table with every player connected to the server, so by counting how many entries has the table (by using the ''#'' operator) we can archieve the same result as this function, but also clientside. However, it's more efficient to use the built-in function serverside. The next function replaces this function accordingly serverside and clientside to work on both.
This example command show your FPS.
<section name="Shared (client and server)" class="both" show="true">
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local root = getRootElement()
local originalGetPlayerCount = getPlayerCount -- Store the original getPlayerCount function to a variable
local player = getLocalPlayer()
 
local counter = 0
function getPlayerCount()
local starttick
    -- If originalGetPlayerCount is defined, that means that this function is executed serverside.
local currenttick
    -- The next line returns the result of the original function if it's defined. If not, it counts the number of player elements (to also work clientside).
addCommandHandler ( "myfps",
    return originalGetPlayerCount and originalGetPlayerCount() or #getElementsByType("player")
function()
end
if not starttick then
starttick = getTickCount()
end
counter = counter + 1
currenttick = getTickCount()
if currenttick - starttick >= 1000 then
setElementData(player,"FPS",counter)
counter = 0
starttick = false
end
end
)
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>


==See Also==
==See Also==
{{Player functions}}
{{Player functions|server}}
 
[[ru:getPlayerCount]]

Latest revision as of 22:41, 6 September 2024

This function returns the number of players currently connected to the server.

[[{{{image}}}|link=|]] Note: #getElementsByType("player") works the same as this function but also works client side unlike this function.

Syntax

int getPlayerCount ( )

OOP Syntax Help! I don't understand this!

Method: Player.getCount(...)


Returns

Returns the number of players connected to the server as an int.

Example

This example displays a chat message with the number of players connected to the server when a player joins or quits.

function playerCount ( )
	outputChatBox ( "There are now " .. getPlayerCount() .. " players on this server!" )
end
addEventHandler ( "onPlayerJoin", root, playerCount )
addEventHandler ( "onPlayerQuit", root, playerCount )

Shared implementation of getPlayerCount

getElementsByType("player") returns a regular-indexed table with every player connected to the server, so by counting how many entries has the table (by using the # operator) we can archieve the same result as this function, but also clientside. However, it's more efficient to use the built-in function serverside. The next function replaces this function accordingly serverside and clientside to work on both.

Click to collapse [-]
Shared (client and server)
local originalGetPlayerCount = getPlayerCount -- Store the original getPlayerCount function to a variable

function getPlayerCount()
    -- If originalGetPlayerCount is defined, that means that this function is executed serverside.
    -- The next line returns the result of the original function if it's defined. If not, it counts the number of player elements (to also work clientside).
    return originalGetPlayerCount and originalGetPlayerCount() or #getElementsByType("player")
end

See Also