RU/Resource:Voice: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(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''' не имеет GUI-интерфейса для заглушения голосов других игроков на клиентской стороне, но это будет реализовано позже.


= Концепция =
= Концепция =
Ресурс Voice предоставляет возможность распределять по '''каналам'''. Канал - способ контроля над тем, с кем вы можете разговаривать и кого можете слышать. Есть три основных типа каналов:
Ресурс Voice предоставляет возможность распределять игроков по '''каналам'''. Канал - способ контроля над теми, с кем вы можете разговаривать и кого можете слышать. Есть три основных типа каналов:
* '''Скриптовый канал:'''  Канал, установленный функцией [[Resource:Voice#getPlayerChannel|setPlayerChannel]], он имеет формат номера. Игроки канала ''1'' не моугт слышать игроков из канала ''2''.
* '''Скриптовый канал:'''  Канал, установленный функцией [[Resource:Voice#getPlayerChannel|setPlayerChannel]], он имеет формат номера. Игроки канала ''1'' не могут слышать голоса игроков из канала ''2''.


* '''Командный канал:''' У скриптов нет доступа к этому типа каналов, но он достаточно похож на скриптовый канал. Этот тип канала автоматически задается в зависимости от настройки [[Resource:Voice#Team_autoassignment|распределения по командам]] setting. Когда игроки находятся в команде, [[Resource:Voice#getPlayerChannel|getPlayerChannel]] будет возвращать элемент [[team|команды]]. Игроки одного командного канала не могут слышать игроков другого командного канала. В равной степени, игроки из командного канала не могут слышать игркоов из ''скриптового канала''.
* '''Командный канал:''' У скриптов нет доступа к этому типа каналов, но он во многом похож на скриптовый канал. Этот тип канала автоматически задается в зависимости от настройки [[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.
* '''Описание:''' Булевая переменная, которая позволяет вам включать или выключать автораспределение игроков по каналам их команд ресурсом 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'''.
Возвращает '''true''', если операция прошла успешно, иначе - '''false'''.




Line 63: Line 63:


=Серверные функции скриптинга=
=Серверные функции скриптинга=
Все указанные функции скриптинга - '''серверные''' и затрагивают всех игроков без исключения. Все функции должны вызываться с использованием функции [[call]].
Все указанные функции скриптинга - '''серверные''' и затрагивают всех игроков без исключения. Все функции должны вызываться с использованием функции [[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|команды]], если игрок находится в ее канала или [[getRootElement|root]] (корневой) элемент, если канал не указан.
Возвращает целове число - ID канала, в котором он находится, элемент [[team|команды]], если игрок находится в ее канале, или [[getRootElement|root]] (корневой) элемент, если канал не указан.




===setPlayerChannel===
===setPlayerChannel===
TЭта функция позволяет вам переместить указанного игрока в другой канал.
Эта функция позволяет вам перемещать указанного игрока в другой канал.
<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''', если операция успешна, иначе - '''false'''.
Возвращает '''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 ( )

Возвращает целое число - номер первого канала, который оказался полностью пустым.