RU/Resource:Scoreboard

From Multi Theft Auto: Wiki
Revision as of 13:38, 18 May 2012 by Vincent (talk | contribs)
Jump to navigation Jump to search

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 ()
  • No arguments.

Возвращает количество столбцов в 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 ()

Returns the absolute position of the scoreboards top corner if it's drawn, false otherwise.


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 )