RU/Resource:Scoreboard

From Multi Theft Auto: Wiki

DirectX scoreboard (панель игроков) отображает ники, команды, пинги и другие данные подключенных к серверу игроков. У нее также имеется веб-интерфейс на javascript, что позволяет пользоваться ею из браузера. Создана как замена старой scoreboard, созданной jbeta.

Наиболее веское различие по сравнению со старым ресурсом - то, что новая панель просмотра игроков создана с полным использованием доустпных в MTA функций прорисовки DirectX. При добавлении в нее столбца, для него создается соответсвующее поле element data, так что при добавлении столбца "score", содержимое поля "score" из element data и будет показываться в самой панели для всех игроков и команд.

Панель игроков входит в стандартный пакет поставки сервера.

Экспортированные функции/события

Click to collapse [-]
Server

Функции

bool scoreboardAddColumn ( string name, [ element forElement = getRootElement(), int width = 70, string friendlyName = name, int priority = slot after "name" column ] )
  • name: Имя столбца (также является и именем поля в element data, из которого будет браться информация).
  • forElement: Игрок, для которого создается столбец.
  • width: Ширина столбца в пикселях.
  • friendlyName: Дружелюбное имя столбца (отображается непосредственно в самой панели).
  • priority: Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед.


bool scoreboardRemoveColumn ( string name, [ element forElement = getRootElement() ] )
  • name: Имя столбца.
  • forElement: Игрок, для которого убирается столбец.


bool scoreboardClearColumns ( [ element forElement = getRootElement() ] )
  • forElement: Игрок, чьи столбцы в scoreboard будут очищены.


bool scoreboardResetColumns ( [ element forElement = getRootElement() ] )
  • forElement: Игрок, чьи столбцы в scoreboard будут сброшены (останутся только ник и пинг).


bool scoreboardSetForced ( bool forced, [ element forElement = getRootElement() ] )
  • forced: Будет ли scoreboard принудительно открыта.
  • forElement: Игрок, чья scoreboard будет принудительно открыта.


bool scoreboardSetSortBy ( string name, [ bool descending = true, element forElement = getRootElement() ] )
  • name: Имя столбца. Может быть установлено на nil для отключения сортировки.
  • descending: Использовать порядок сортировки по убыванию.
  • forElement: Игрок, чья scoreboard будет отсортирована.


int scoreboardGetColumnPriority ( string name )
  • name: Имя столбца.

Возвращает приоритетный порядок столбца (1-500).


bool scoreboardSetColumnPriority ( string name, int priority, [ element forElement = getRootElement() ] )
  • name: Имя столбца.
  • priority: Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед.
  • forElement: Игрок, для которого создается столбец.


int scoreboardGetColumnCount ()
  • Аргументов нет.

Возвращает количество столбцов в scoreboard.


bool scoreboardForceTeamsVisible( bool enabled )
  • enabled: Будут ли имена команд всегда видны в scoreboard (настройки пользователя - проигнорированы)?


bool scoreboardForceTeamsHidden( bool enabled )
  • enabled: Будут ли имена команд всегда скрыты в scoreboard (настройки пользователя - проигнорированы)?


bool isPrioritySlotFree( int slot )
  • slot: Приоритетный порядок столбца, который будет проверен.

Проверяет, свободен ли приоритетный порядок столбца по данному номеру.


int getNextFreePrioritySlot( [ int startAt = 1 ] )
  • startAt: С какой позиции начинать искать свободные места.

Находит следующий свободный приоритетный порядок столбца.


Заметка: Функции из спика ниже, использующиеся также в ресурсе oldScoreboard, работают и в этом тоже.

bool addScoreboardColumn ( string columnName, element visibleToElement, int columnPosition, float columnSize )
bool removeScoreboardColumn ( string columnName )
bool setPlayerScoreboardForced ( player thePlayer, bool forced )
bool resetScoreboardColumns ()
Click to collapse [-]
Client

Функции

bool scoreboardAddColumn ( string name, [ int width = 70, string friendlyName = name, int priority = slot after "name" column, function textFunction = nil ] )
  • name: Имя столбца (также является и именем поля в element data, из которого будет браться информация).
  • width: Ширина столбца в пикселях.
  • friendlyName: Дружелюбное имя столбца (отображается непосредственно в самой панели).
  • priority: Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед.
  • textFunction: Текст функции, которая будет использоваться для обработки содержания столбца перед его показом. Например, эта функция будет заменять "_" в никах игроков пробелом, если она применена к столбцу "name".
function fixName( playerName )
    return playerName:gsub( "_", " " )
end


bool scoreboardRemoveColumn ( string name )
  • name: Имя столбца.


bool scoreboardClearColumns ()
  • Аргументов нет.


bool scoreboardResetColumns ()
  • Аргументов нет.


bool scoreboardSetForced ( bool forced )
  • forced: Будет ли scoreboard принудительно открыта.


bool scoreboardSetColumnTextFunction ( string name, function textFunction )
  • name: Имя столбца.
  • textFunction: Текст функции, которая будет использоваться для обработки содержания столбца перед его показом. Например, эта функция будет заменять "_" в никах игроков пробелом, если она применена к столбцу "name".
function fixName( playerName )
    return playerName:gsub( "_", " " )
end


bool scoreboardSetSortBy ( string name, [ bool descending = true ] )
  • name: Имя столбца. Может быть установлено на nil для отключения сортировки.
  • descending: Использовать порядок сортировки по убыванию.


int scoreboardGetColumnPriority ( string name )
  • name: Имя столбца.

Возвращает приоритетный порядок столбца (1-500).


bool scoreboardSetColumnPriority ( string name, int priority )
  • name: Имя столбца.
  • priority: Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед.
  • forElement: Игрок, для которого создается столбец.


int scoreboardGetColumnCount ()
  • Аргументов нет.

Возвращает количество столбцов в scoreboard.


bool isPrioritySlotFree( int slot )
  • slot: Приоритетный порядок столбца, который будет проверен.

Проверяет, свободен ли приоритетный порядок столбца по данному номеру.


int getNextFreePrioritySlot( [ int startAt = 1 ] )
  • startAt: С какой позиции начинать искать свободные места.

Находит следующий свободный приоритетный порядок столбца.


int, int scoreboardGetTopCornerPosition ()

Возвращает абсолютную позицию верхнего угла scoreboard, если она на экране, в противном случае - false.


int, int scoreboardGetSize ()

Возвращает абсолютный размер (ширина, высота) the scoreboard, если она на экране, в противном случае - false.


table scoreboardGetSelectedRows ()

Возвращает таблицу со всеми выделенными полями (элемент, который может оказаться либо игроком, либо командой). Может также вернуть пустую таблицу, если таковых нет.


Заметка: Функции из спика ниже, использующиеся также в ресурсе oldScoreboard, работают и в этом тоже.

bool setScoreboardForced ( bool forced )

События

onClientPlayerScoreboardClick

bool selected, int cursorX, int cursorY
  • selected: Было ли слудующее поле выделено (true) или нет (false).
  • cursorX: Абсолютная позиция курсора по оси X.
  • cursorY: Абсолютная позиция курсора по оси Y.

Срабатывает, когда игрок кликает по полю с командой/игроком левой кнопкой мыши.
Source события - элемент, по которому кликнули, может оказаться либо игроком, либо командой.

Вы можете вызывать их и из других ресурсов, используя call()

call ( getResourceFromName ( "dxscoreboard" ), "scoreboardAddColumn", "Wanted level" )

-- Заметьте, что синтаксис ниже - тоже правильный
exports.dxscoreboard:scoreboardAddColumn( "Wanted level" )

Вы можете задавать данные в scoreboard через функцию setElementData:

-- 3 вставляется в столбец wanted level игрока, если столбец,
-- названный "Wanted level" был добавлен в scoreboard
setElementData ( player, "Wanted level", 3 )