RU/Resource:Scoreboard
DirectX scoreboard (панель игроков) отображает ники, команды, пинги и другие данные подключенных к серверу игроков. У нее также имеется веб-интерфейс на javascript, что позволяет пользоваться ею из браузера. Создана как замена старой scoreboard, созданной jbeta.
Наиболее веское различие по сравнению со старым ресурсом - то, что новая панель просмотра игроков создана с полным использованием доустпных в MTA функций прорисовки DirectX. При добавлении в нее столбца, для него создается соответсвующее поле element data, так что при добавлении столбца "score", содержимое поля "score" из element data и будет показываться в самой панели для всех игроков и команд.
Панель игроков входит в стандартный пакет поставки сервера.
Экспортированные функции/события
Функции
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 ()
Функции
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 )