|
|
| Line 1: |
Line 1: |
| {{RU/Resource page}}
| |
| __NOTOC__
| |
| DirectX scoreboard (панель игроков) отображает ники, команды, пинги и другие данные подключенных к серверу игроков. У нее также имеется веб-интерфейс на javascript, что позволяет пользоваться ею из браузера. Создана как замена старой [[Resource:oldScoreboard|scoreboard]], созданной [[User:jbeta|jbeta]].
| |
|
| |
|
| Наиболее веское различие по сравнению со старым ресурсом - то, что новая панель просмотра игроков создана с полным использованием доустпных в MTA функций прорисовки DirectX.
| |
| При добавлении в нее столбца, для него создается соответсвующее поле element data, так что при добавлении столбца "score", содержимое поля "score" из element data и будет показываться в самой панели для всех игроков и команд.
| |
|
| |
| Панель игроков входит в стандартный пакет поставки сервера.
| |
|
| |
| ==Экспортированные функции/события==
| |
| <section name="Server" class="server" show="true">
| |
| ===Функции===
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardAddColumn ( string name, [ element forElement = getRootElement(), int width = 70, string friendlyName = name, int priority = slot after "name" column ] )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца (также является и именем поля в element data, из которого будет браться информация).
| |
| *'''forElement:''' Игрок, для которого создается столбец.
| |
| *'''width:''' Ширина столбца в пикселях.
| |
| *'''friendlyName:''' Дружелюбное имя столбца (отображается непосредственно в самой панели).
| |
| *'''priority:''' Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardRemoveColumn ( string name, [ element forElement = getRootElement() ] )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца.
| |
| *'''forElement:''' Игрок, для которого убирается столбец.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardClearColumns ( [ element forElement = getRootElement() ] )
| |
| </syntaxhighlight>
| |
| *'''forElement:''' Игрок, чьи столбцы в scoreboard будут очищены.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardResetColumns ( [ element forElement = getRootElement() ] )
| |
| </syntaxhighlight>
| |
| *'''forElement:''' Игрок, чьи столбцы в scoreboard будут сброшены (останутся только ник и пинг).
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardSetForced ( bool forced, [ element forElement = getRootElement() ] )
| |
| </syntaxhighlight>
| |
| *'''forced:''' Будет ли scoreboard принудительно открыта.
| |
| *'''forElement:''' Игрок, чья scoreboard будет принудительно открыта.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardSetSortBy ( string name, [ bool descending = true, element forElement = getRootElement() ] )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца. Может быть установлено на ''nil'' для отключения сортировки.
| |
| *'''descending:''' Использовать порядок сортировки по убыванию.
| |
| *'''forElement:''' Игрок, чья scoreboard будет отсортирована.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| int scoreboardGetColumnPriority ( string name )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца.
| |
| '''Возвращает приоритетный порядок столбца (1-500).'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardSetColumnPriority ( string name, int priority, [ element forElement = getRootElement() ] )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца.
| |
| *'''priority:''' Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед.
| |
| *'''forElement:''' Игрок, для которого создается столбец.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| int scoreboardGetColumnCount ()
| |
| </syntaxhighlight>
| |
| *''Аргументов нет.''
| |
| '''Возвращает количество столбцов в scoreboard.'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardForceTeamsVisible( bool enabled )
| |
| </syntaxhighlight>
| |
| *'''enabled:''' Будут ли имена команд всегда видны в scoreboard (настройки пользователя - проигнорированы)?
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardForceTeamsHidden( bool enabled )
| |
| </syntaxhighlight>
| |
| *'''enabled:''' Будут ли имена команд всегда скрыты в scoreboard (настройки пользователя - проигнорированы)?
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool isPrioritySlotFree( int slot )
| |
| </syntaxhighlight>
| |
| *'''slot:''' Приоритетный порядок столбца, который будет проверен.
| |
| '''Проверяет, свободен ли приоритетный порядок столбца по данному номеру.'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| int getNextFreePrioritySlot( [ int startAt = 1 ] )
| |
| </syntaxhighlight>
| |
| *'''startAt:''' С какой позиции начинать искать свободные места.
| |
| '''Находит следующий свободный приоритетный порядок столбца.'''
| |
| <br>
| |
|
| |
|
| |
| '''Заметка:''' Функции из спика ниже, использующиеся также в ресурсе [[Resource:OldScoreboard|oldScoreboard]], работают и в этом тоже.
| |
| <syntaxhighlight lang="lua">
| |
| bool addScoreboardColumn ( string columnName, element visibleToElement, int columnPosition, float columnSize )
| |
| bool removeScoreboardColumn ( string columnName )
| |
| bool setPlayerScoreboardForced ( player thePlayer, bool forced )
| |
| bool resetScoreboardColumns ()
| |
| </syntaxhighlight>
| |
| </section>
| |
| <section name="Client" class="client" show="true">
| |
| ===Функции===
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardAddColumn ( string name, [ int width = 70, string friendlyName = name, int priority = slot after "name" column, function textFunction = nil ] )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца (также является и именем поля в element data, из которого будет браться информация).
| |
| *'''width:''' Ширина столбца в пикселях.
| |
| *'''friendlyName:''' Дружелюбное имя столбца (отображается непосредственно в самой панели).
| |
| *'''priority:''' Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед.
| |
| *'''textFunction:''' Текст функции, которая будет использоваться для обработки содержания столбца перед его показом. Например, эта функция будет заменять "_" в никах игроков пробелом, если она применена к столбцу "name".
| |
| <syntaxhighlight lang="lua">
| |
| function fixName( playerName )
| |
| return playerName:gsub( "_", " " )
| |
| end
| |
| </syntaxhighlight>
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardRemoveColumn ( string name )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardClearColumns ()
| |
| </syntaxhighlight>
| |
| *''Аргументов нет.''
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardResetColumns ()
| |
| </syntaxhighlight>
| |
| *''Аргументов нет.''
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardSetForced ( bool forced )
| |
| </syntaxhighlight>
| |
| *'''forced:''' Будет ли scoreboard принудительно открыта.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardSetColumnTextFunction ( string name, function textFunction )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца.
| |
| *'''textFunction:''' Текст функции, которая будет использоваться для обработки содержания столбца перед его показом. Например, эта функция будет заменять "_" в никах игроков пробелом, если она применена к столбцу "name".
| |
| <syntaxhighlight lang="lua">
| |
| function fixName( playerName )
| |
| return playerName:gsub( "_", " " )
| |
| end
| |
| </syntaxhighlight>
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardSetSortBy ( string name, [ bool descending = true ] )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца. Может быть установлено на ''nil'' для отключения сортировки.
| |
| *'''descending:''' Использовать порядок сортировки по убыванию.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| int scoreboardGetColumnPriority ( string name )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца.
| |
| '''Возвращает приоритетный порядок столбца (1-500).'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool scoreboardSetColumnPriority ( string name, int priority )
| |
| </syntaxhighlight>
| |
| *'''name:''' Имя столбца.
| |
| *'''priority:''' Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед.
| |
| *'''forElement:''' Игрок, для которого создается столбец.
| |
| <br>
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| int scoreboardGetColumnCount ()
| |
| </syntaxhighlight>
| |
| *''Аргументов нет.''
| |
| '''Возвращает количество столбцов в scoreboard.'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| bool isPrioritySlotFree( int slot )
| |
| </syntaxhighlight>
| |
| *'''slot:''' Приоритетный порядок столбца, который будет проверен.
| |
| '''Проверяет, свободен ли приоритетный порядок столбца по данному номеру.'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| int getNextFreePrioritySlot( [ int startAt = 1 ] )
| |
| </syntaxhighlight>
| |
| *'''startAt:''' С какой позиции начинать искать свободные места.
| |
| '''Находит следующий свободный приоритетный порядок столбца.'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| int, int scoreboardGetTopCornerPosition ()
| |
| </syntaxhighlight>
| |
| '''Возвращает абсолютную позицию верхнего угла scoreboard, если она на экране, в противном случае - ''false''.'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| int, int scoreboardGetSize ()
| |
| </syntaxhighlight>
| |
| '''Возвращает абсолютный размер (ширина, высота) the scoreboard, если она на экране, в противном случае - ''false''.'''
| |
| <br>
| |
|
| |
|
| |
| <syntaxhighlight lang="lua">
| |
| table scoreboardGetSelectedRows ()
| |
| </syntaxhighlight>
| |
| ''Возвращает таблицу со всеми выделенными полями (элемент, который может оказаться либо игроком, либо командой). Может также вернуть пустую таблицу, если таковых нет.''
| |
| <br>
| |
|
| |
|
| |
|
| |
| '''Заметка:''' Функции из спика ниже, использующиеся также в ресурсе [[oldScoreboard]], работают и в этом тоже.
| |
| <syntaxhighlight lang="lua">
| |
| bool setScoreboardForced ( bool forced )
| |
| </syntaxhighlight>
| |
|
| |
| ===События===
| |
| ====onClientPlayerScoreboardClick====
| |
| <syntaxhighlight lang="lua">
| |
| bool selected, int cursorX, int cursorY
| |
| </syntaxhighlight>
| |
| *'''selected:''' Было ли слудующее поле выделено (''true'') или нет (''false'').
| |
| *'''cursorX:''' Абсолютная позиция курсора по оси X.
| |
| *'''cursorY:''' Абсолютная позиция курсора по оси Y.
| |
| '''Срабатывает, когда игрок кликает по полю с командой/игроком левой кнопкой мыши.'''<br>
| |
| '''''Source'' события - элемент, по которому кликнули, может оказаться либо [[player|игроком]], либо [[team|командой]].'''
| |
| </section>
| |
|
| |
| Вы можете вызывать их и из других ресурсов, используя call()
| |
| <syntaxhighlight lang="lua">
| |
| call ( getResourceFromName ( "dxscoreboard" ), "scoreboardAddColumn", "Wanted level" )
| |
|
| |
| -- Заметьте, что синтаксис ниже - тоже правильный
| |
| exports.dxscoreboard:scoreboardAddColumn( "Wanted level" )
| |
| </syntaxhighlight>
| |
|
| |
| Вы можете задавать данные в scoreboard через функцию setElementData:
| |
| <syntaxhighlight lang="lua">
| |
| -- 3 вставляется в столбец wanted level игрока, если столбец,
| |
| -- названный "Wanted level" был добавлен в scoreboard
| |
| setElementData ( player, "Wanted level", 3 )
| |
| </syntaxhighlight>
| |
|
| |
| [[en:Resource:Scoreboard]]
| |