RU/getPlayerCount

From Multi Theft Auto: Wiki
Revision as of 03:06, 1 April 2016 by Ccw (talk | contribs) (Reverted edits by Bonzo (talk) to last revision by Dmitry7zip)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Эта функция возвращает количество игроков, подключенных к серверу.

[[{{{image}}}|link=|]] Примечание: #getElementsByType("player") работает так же, как эта функция, но работает и на стороне клиента, в отличие от этой функции.

Синтаксис

int getPlayerCount ( )

Синтаксис ООП Помогите! Я не понимаю, что это!

Метод: Player.getCount(...)

Возвращает

Возвращает количество игроков, подключенных к серверу в качестве int.

Пример

В этом примере выводится сообщение в чате с количеством игроков, подключенных к серверу, когда игрок входит или выходит.

function playerCount ( )
	outputChatBox ( "В данный момент " .. getPlayerCount() .. " игроков на сервере!" )
end
addEventHandler ( "onPlayerJoin", getRootElement(), playerCount )
addEventHandler ( "onPlayerQuit", getRootElement(), playerCount )

Общая реализация getPlayerCount

getElementsByType("player") возвращает таблицу со списком игроков, подключенных к серверу, поэтому подсчитывая количество записей в таблице (с помощью оператора #) мы получим такой же результат, как и при использовании этой функции, но данный метод работает также в клиентской части. Однако, более эффективно использовать встроенные функции сервера.

Click to collapse [-]
Общая реализация (клиент и сервер)
local originalGetPlayerCount = getPlayerCount -- Сохраняем оригинальную функцию getPlayerCount в переменную

function getPlayerCount()
    -- Если переменная originalGetPlayerCount определена, это значит, что функция выполняется на стороне сервера
    -- Следующая строка возвращает результат оригинальной функции, если она определена. Если нет, то подсчитывается количество элементов таблицы ''player'' (для работы на клиентской части)
    return originalGetPlayerCount and originalGetPlayerCount() or #getElementsByType("player")
end

Смотрите также