RU/Resource:Voice: Difference between revisions
(Created page with "{{RU/Resource page}} Внедрение поддержки голосовой связи в версии 1.1 идет вместе с базовым, но гибким скрип...") |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{RU/Resource page}} | {{RU/Resource page}} | ||
Внедрение поддержки голосовой связи в версии 1.1 | Внедрение поддержки голосовой связи в версии 1.1 произошло вместе с базовым, но гибким скриптовым интерфейсом для него. | ||
Цель ресурса '''Voice''' - предоставить типичный интерфейс, основанный на базовом внутреннем скриптинге MTA, для доступа к простому функционалу, который пользователь ожидает от голосового чата, включая возможность создавать разные каналы (в т.ч. для команд) и | Цель ресурса '''Voice''' - предоставить типичный интерфейс, основанный на базовом внутреннем скриптинге MTA, для доступа к простому функционалу, который пользователь ожидает от голосового чата, включая возможность создавать разные каналы (в т.ч. для команд) и заглушать голоса других игроков. | ||
На данный момент ресурс '''Voice''' не имеет GUI-интерфейса для заглушения голосов других игроков на клиентской стороне, но это будет реализовано позже. | |||
= Концепция = | = Концепция = | ||
Ресурс Voice предоставляет возможность распределять по '''каналам'''. Канал - способ контроля над | Ресурс Voice предоставляет возможность распределять игроков по '''каналам'''. Канал - способ контроля над теми, с кем вы можете разговаривать и кого можете слышать. Есть три основных типа каналов: | ||
* '''Скриптовый канал:''' Канал, установленный функцией [[Resource:Voice#getPlayerChannel|setPlayerChannel]], он имеет формат номера. Игроки канала ''1'' не | * '''Скриптовый канал:''' Канал, установленный функцией [[Resource:Voice#getPlayerChannel|setPlayerChannel]], он имеет формат номера. Игроки канала ''1'' не могут слышать голоса игроков из канала ''2''. | ||
* '''Командный канал:''' У скриптов нет доступа к этому типа каналов, но он | * '''Командный канал:''' У скриптов нет доступа к этому типа каналов, но он во многом похож на скриптовый канал. Этот тип канала автоматически задается в зависимости от настройки [[Resource:Voice#Team_autoassignment|распределения по командам]]. Если игрок находится в команде, [[Resource:Voice#getPlayerChannel|getPlayerChannel]] будет возвращать элемент [[team|команды]]. Игроки из одного командного канала не могут слышать голоса игроков из других командных каналов. К тому же, игроки из командного канала не могут слышать и голоса игроков из ''скриптовых каналов''. | ||
* '''"Root" (корневой) канал:''' Игроки помещаются в этот канал по умолчанию. Этот канал связан с концепцией элемента [[getRootElement|root]], и [[Resource:Voice#getPlayerChannel|getPlayerChannel]] вернет root (корневой) элемент. Когда игрок в root | * '''"Root" (корневой) канал:''' Игроки помещаются в этот канал по умолчанию. Этот канал связан с концепцией элемента [[getRootElement|root]], и [[Resource:Voice#getPlayerChannel|getPlayerChannel]] вернет root (корневой) элемент. Когда игрок в канале root, его слышат '''все''' игроки сервера. Как бы то ни было, он не сможет слышать голоса игроков ни из ''командного канала'', ни из ''скриптового канала''. | ||
Line 18: | Line 18: | ||
= Настройки = | = Настройки = | ||
Все настройки могут изменены через MTA'шыне функции set(), изменение meta.xml ресурса или изменение settings.xml. | Все настройки могут быть изменены через MTA'шыне функции set(), изменение meta.xml ресурса или изменение settings.xml. | ||
===Иконки чата=== | ===Иконки чата=== | ||
* '''Имя настройки:''' ''show_chat_icon'' | * '''Имя настройки:''' ''show_chat_icon'' | ||
* '''Описание:''' Булевая переменная, которая позволяет вам включать или выключать иконку голосового чата, | * '''Описание:''' Булевая переменная, которая позволяет вам включать или выключать иконку голосового чата, появляющуюся над игроком, когда он говорит. | ||
* '''XML-образец:''' <syntaxhighlight lang="xml"><setting name="show_chat_icon" value="[false]"/></syntaxhighlight> | * '''XML-образец:''' <syntaxhighlight lang="xml"><setting name="show_chat_icon" value="[false]"/></syntaxhighlight> | ||
===Автораспределение по командам=== | ===Автораспределение по командам=== | ||
* '''Имя настройки:''' ''autoassign_to_teams'' | * '''Имя настройки:''' ''autoassign_to_teams'' | ||
* '''Описание:''' Булевая переменная, которая позволяет вам включать или выключать автораспределение игроков по | * '''Описание:''' Булевая переменная, которая позволяет вам включать или выключать автораспределение игроков по каналам их команд ресурсом voice. | ||
* '''XML-образец:''' <syntaxhighlight lang="xml"><setting name="autoassign_to_teams" value="[false]"/></syntaxhighlight> | * '''XML-образец:''' <syntaxhighlight lang="xml"><setting name="autoassign_to_teams" value="[false]"/></syntaxhighlight> | ||
Line 35: | Line 35: | ||
= | =Клиентские функции скриптинга= | ||
Все указанные функции скриптинга - '''клиентские''' и затрагивают только '''local player''' (локального игрока). Все функции должны вызываться с использованием функции [[call]]. | Все указанные функции скриптинга - '''клиентские''' и затрагивают только '''local player''' (локального игрока). Все функции должны вызываться с использованием функции [[call]]. | ||
===isPlayerMuted=== | ===isPlayerMuted=== | ||
Эта функция позволяет определять, заглушен ли удаленный игрок у локального игрока. Другими словами, могу ли я слышать этого самого удаленного игрока? | Эта функция позволяет определять, заглушен ли удаленный игрок у локального игрока. Другими словами, "могу ли я слышать этого самого удаленного игрока"? | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool exports.voice:isPlayerMuted ( player playerToCheck ) | bool exports.voice:isPlayerMuted ( player playerToCheck ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* '''playerToCheck:''' Игрок, слышимость которого вы хотите проверить | * '''playerToCheck:''' Игрок, слышимость которого вы хотите проверить | ||
Возвращает булевую переменную - '''true'' если заглушен, иначе '''false'''. | Возвращает булевую переменную - '''true'', если заглушен, иначе - '''false'''. | ||
Line 53: | Line 53: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* '''playerToMute:''' Игрок, которого вы хотите заглушить или разглушить | * '''playerToMute:''' Игрок, которого вы хотите заглушить или разглушить | ||
* '''muted :''' Булевая переменная, отвечающая за то, будет ли игрок заглушен или разглушен, где '''true''' для заглушения, '''false''' - наоборот. | * '''muted :''' Булевая переменная, отвечающая за то, будет ли игрок заглушен или разглушен, где '''true''' - для заглушения, '''false''' - наоборот. | ||
Возвращает '''true''', если операция прошла успешно, иначе - '''false'''. | |||
Line 63: | Line 63: | ||
=Серверные функции скриптинга= | =Серверные функции скриптинга= | ||
Все указанные функции скриптинга - '''серверные''' и затрагивают всех игроков без исключения. | Все указанные функции скриптинга - '''серверные''' и затрагивают всех игроков без исключения. Все функции должны вызываться с использованием функции [[call]]. | ||
===isPlayerMuted=== | ===isPlayerMuted=== | ||
Line 71: | Line 71: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* '''playerToCheck:''' Игрок, заглушенность которого вы хотите проверить | * '''playerToCheck:''' Игрок, заглушенность которого вы хотите проверить | ||
Возвращает '''true'' если он заглушен, иначе - '''false''' | Возвращает '''true'', если он заглушен, иначе - '''false''' | ||
Line 91: | Line 91: | ||
table exports.voice:getPlayerMutedByList( player playerToCheck ) | table exports.voice:getPlayerMutedByList( player playerToCheck ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* '''playerToCheck:''' Игрок, на заглушенность которого вы хотите проверить игроков сервера | * '''playerToCheck:''' Игрок, на заглушенность которого вы хотите проверить других игроков сервера | ||
Возвращает таблицу | Возвращает таблицу игроков, заглушивших указанного игрока. | ||
===getPlayerChannel=== | ===getPlayerChannel=== | ||
Эта функция позволяет вам запросить, в каком канале голосового чата находится игрок. | Эта функция позволяет вам запросить, в каком канале голосового чата находится указанный игрок. | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
int/element exports.voice:getPlayerChannel ( player playerToCheck ) | int/element exports.voice:getPlayerChannel ( player playerToCheck ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* '''playerToCheck:''' Игрок, канал нахождения которого вы хотите запросить | * '''playerToCheck:''' Игрок, канал нахождения которого вы хотите запросить | ||
Возвращает целове число - ID канала, в котором он находится, элемент [[team|команды]], если игрок находится в ее | Возвращает целове число - ID канала, в котором он находится, элемент [[team|команды]], если игрок находится в ее канале, или [[getRootElement|root]] (корневой) элемент, если канал не указан. | ||
===setPlayerChannel=== | ===setPlayerChannel=== | ||
Эта функция позволяет вам перемещать указанного игрока в другой канал. | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool exports.voice:setPlayerChannel ( player playerToCheck, [ int channelID ] ) | bool exports.voice:setPlayerChannel ( player playerToCheck, [ int channelID ] ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* '''playerToCheck:''' Игрок, которого вы хотите переместить | * '''playerToCheck:''' Игрок, которого вы хотите переместить | ||
* '''channelID :''' ''Опционально:'' ID канала, в который вы хотите переместить игрока. Неуказание данного аргумента позволит ресурсу Voice | * '''channelID :''' ''Опционально:'' ID канала, в который вы хотите переместить игрока. Неуказание данного аргумента позволит ресурсу Voice автоматически распорядиться игроком (напр. авто-распределить в канал команды). | ||
Возвращает '''true''', если операция | Возвращает '''true''', если операция прошла успешно, иначе - '''false'''. | ||
===getPlayersInChannel=== | ===getPlayersInChannel=== | ||
Эта функция позволяет вам запросить лист игроков, находищихся в | Эта функция позволяет вам запросить лист игроков, находищихся в указанном канале. | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
table exports.voice:getPlayersInChannel ( int channelID ) | table exports.voice:getPlayersInChannel ( int channelID ) |
Revision as of 17:40, 18 May 2012
Внедрение поддержки голосовой связи в версии 1.1 произошло вместе с базовым, но гибким скриптовым интерфейсом для него.
Цель ресурса Voice - предоставить типичный интерфейс, основанный на базовом внутреннем скриптинге MTA, для доступа к простому функционалу, который пользователь ожидает от голосового чата, включая возможность создавать разные каналы (в т.ч. для команд) и заглушать голоса других игроков.
На данный момент ресурс Voice не имеет GUI-интерфейса для заглушения голосов других игроков на клиентской стороне, но это будет реализовано позже.
Концепция
Ресурс Voice предоставляет возможность распределять игроков по каналам. Канал - способ контроля над теми, с кем вы можете разговаривать и кого можете слышать. Есть три основных типа каналов:
- Скриптовый канал: Канал, установленный функцией setPlayerChannel, он имеет формат номера. Игроки канала 1 не могут слышать голоса игроков из канала 2.
- Командный канал: У скриптов нет доступа к этому типа каналов, но он во многом похож на скриптовый канал. Этот тип канала автоматически задается в зависимости от настройки распределения по командам. Если игрок находится в команде, getPlayerChannel будет возвращать элемент команды. Игроки из одного командного канала не могут слышать голоса игроков из других командных каналов. К тому же, игроки из командного канала не могут слышать и голоса игроков из скриптовых каналов.
- "Root" (корневой) канал: Игроки помещаются в этот канал по умолчанию. Этот канал связан с концепцией элемента root, и getPlayerChannel вернет root (корневой) элемент. Когда игрок в канале root, его слышат все игроки сервера. Как бы то ни было, он не сможет слышать голоса игроков ни из командного канала, ни из скриптового канала.
Настройки
Все настройки могут быть изменены через MTA'шыне функции set(), изменение meta.xml ресурса или изменение settings.xml.
Иконки чата
- Имя настройки: show_chat_icon
- Описание: Булевая переменная, которая позволяет вам включать или выключать иконку голосового чата, появляющуюся над игроком, когда он говорит.
- XML-образец:
<setting name="show_chat_icon" value="[false]"/>
Автораспределение по командам
- Имя настройки: autoassign_to_teams
- Описание: Булевая переменная, которая позволяет вам включать или выключать автораспределение игроков по каналам их команд ресурсом voice.
- XML-образец:
<setting name="autoassign_to_teams" value="[false]"/>
Клиентские функции скриптинга
Все указанные функции скриптинга - клиентские и затрагивают только local player (локального игрока). Все функции должны вызываться с использованием функции call.
isPlayerMuted
Эта функция позволяет определять, заглушен ли удаленный игрок у локального игрока. Другими словами, "могу ли я слышать этого самого удаленного игрока"?
bool exports.voice:isPlayerMuted ( player playerToCheck )
- playerToCheck: Игрок, слышимость которого вы хотите проверить
Возвращает булевую переменную - true, если заглушен, иначе - false'.
setPlayerMuted
Эта функция позволяет вам заглушить удаленного игрока у локального игрока. Проще говоря, я могу заглушить у себя этого игрока, когда захочу.
bool exports.voice:setPlayerMuted ( player playerToMute, bool muted )
- playerToMute: Игрок, которого вы хотите заглушить или разглушить
- muted : Булевая переменная, отвечающая за то, будет ли игрок заглушен или разглушен, где true - для заглушения, false - наоборот.
Возвращает true, если операция прошла успешно, иначе - false.
Серверные функции скриптинга
Все указанные функции скриптинга - серверные и затрагивают всех игроков без исключения. Все функции должны вызываться с использованием функции call.
isPlayerMuted
Функция позволяет вам проверять игрока на заглушенность для всего сервера.
bool exports.voice:isPlayerMuted ( player playerToCheck )
- playerToCheck: Игрок, заглушенность которого вы хотите проверить
Возвращает true, если он заглушен, иначе - false'
setPlayerMuted
Эта функция позволяет заглушить игрока для всех на сервере.
bool exports.voice:setPlayerMuted ( player playerToMute, bool muted )
- playerToMute: Игрок, которого вы хотите заглушить или разглушить
- muted : Булевая переменная, отвечающая за то, будет ли игрок заглушен или разглушен. true для заглушения, false для разглушения.
Возвращает true, если операция прошла успешно, иначе - false.
getPlayerMutedByList
Эта функция позволяет вам заправшивать список всех игроков, кто заглушил указанного игрока.
table exports.voice:getPlayerMutedByList( player playerToCheck )
- playerToCheck: Игрок, на заглушенность которого вы хотите проверить других игроков сервера
Возвращает таблицу игроков, заглушивших указанного игрока.
getPlayerChannel
Эта функция позволяет вам запросить, в каком канале голосового чата находится указанный игрок.
int/element exports.voice:getPlayerChannel ( player playerToCheck )
- playerToCheck: Игрок, канал нахождения которого вы хотите запросить
Возвращает целове число - ID канала, в котором он находится, элемент команды, если игрок находится в ее канале, или root (корневой) элемент, если канал не указан.
setPlayerChannel
Эта функция позволяет вам перемещать указанного игрока в другой канал.
bool exports.voice:setPlayerChannel ( player playerToCheck, [ int channelID ] )
- playerToCheck: Игрок, которого вы хотите переместить
- channelID : Опционально: ID канала, в который вы хотите переместить игрока. Неуказание данного аргумента позволит ресурсу Voice автоматически распорядиться игроком (напр. авто-распределить в канал команды).
Возвращает true, если операция прошла успешно, иначе - false.
getPlayersInChannel
Эта функция позволяет вам запросить лист игроков, находищихся в указанном канале.
table exports.voice:getPlayersInChannel ( int channelID )
- channelID : ID канала, лист игроков, находищихся в котором, вы хотите запросить.
Возвращает таблицу игроков, находящихся в указанном канале.
getNextEmptyChannel
Эта функция позволяет вам получить ID следующего полностью пустого канала, позволяя с легкостью создавать новые
int getNextEmptyChannel ( )
Возвращает целое число - номер первого канала, который оказался полностью пустым.