RU/Resource:Scoreboard: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Blanked the page)
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]]

Revision as of 16:13, 31 March 2016