RU/Resource:Scoreboard: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Blanked the page)
m (Reverted edits by Bonzo (talk) to last revision by Vincent)
 
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]]

Latest revision as of 03:05, 1 April 2016

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 ()
  • Аргументов нет.

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

Возвращает абсолютную позицию верхнего угла 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 )