RU/Resource:Scoreboard: Difference between revisions
mNo edit summary |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{RU/Resource page}} | {{RU/Resource page}} | ||
__NOTOC__ | __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"> | <syntaxhighlight lang="lua"> | ||
bool | bool scoreboardAddColumn ( string name, [ element forElement = getRootElement(), int width = 70, string friendlyName = name, int priority = slot after "name" column ] ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
*'''name:''' Имя столбца (также является и именем поля в element data, из которого будет браться информация). | |||
*'''forElement:''' Игрок, для которого создается столбец. | |||
*'''width:''' Ширина столбца в пикселях. | |||
*'''friendlyName:''' Дружелюбное имя столбца (отображается непосредственно в самой панели). | |||
*'''priority:''' Приоритетный порядок столбца (1-500). Если данный номер по порядку занят, то располагающийся по нему столбец будет сдвинут вперед. | |||
<br> | |||
<syntaxhighlight lang="lua"> | |||
<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]] | |||
Latest revision as of 03:05, 1 April 2016
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 )