Русское сообщество по скриптингу

Отлов события включения микрофона

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Отлов события включения микрофона

Сообщение Arseny » 29 ноя 2010, 10:14

Можно ли отловить событие включения микрофона в игре?
Аватара пользователя
Arseny
 
Сообщения: 34
Зарегистрирован: 18 сен 2010, 13:13
Откуда: Украина
Благодарил (а): 22 раз.
Поблагодарили: 3 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Отлов события включения микрофона

Сообщение ZoomBotKill » 29 ноя 2010, 10:54

я тут немного не в тему, но скажу. как на сервер офнуть микрофон вообще. чтобы не кто не общялся
Аватара пользователя
ZoomBotKill
 
Сообщения: 47
Зарегистрирован: 20 ноя 2010, 21:59
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Отлов события включения микрофона

Сообщение BaguM » 29 ноя 2010, 11:26

Во-во, я тоже, к примеру, хочу сделать группы общения по определенным признакам. Как мне добиться того, чтобы половина игроков слышали, что определенный человек вещает, а другая половина - нет?
Мир уже умер(c)
Аватара пользователя
BaguM
 
Сообщения: 170
Зарегистрирован: 15 июл 2010, 17:30
Благодарил (а): 76 раз.
Поблагодарили: 13 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Отлов события включения микрофона

Сообщение Lucifer » 29 ноя 2010, 11:40

ZoomBotKill писал(а):я тут немного не в тему, но скажу. как на сервер офнуть микрофон вообще. чтобы не кто не общялся

[pawn]sv_voiceenable 0[/pawn]
Аватара пользователя
Lucifer
 
Сообщения: 384
Зарегистрирован: 17 авг 2010, 09:51
Благодарил (а): 121 раз.
Поблагодарили: 41 раз.

Re: Отлов события включения микрофона

Сообщение ZoomBotKill » 29 ноя 2010, 11:51

Lucifer писал(а):
ZoomBotKill писал(а):я тут немного не в тему, но скажу. как на сервер офнуть микрофон вообще. чтобы не кто не общялся

[pawn]sv_voiceenable 0[/pawn]

бестолку... я делал так. и не чего. продолжали разговаривать. я на паблике хотел убрать.
Аватара пользователя
ZoomBotKill
 
Сообщения: 47
Зарегистрирован: 20 ноя 2010, 21:59
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Отлов события включения микрофона

Сообщение defa » 29 ноя 2010, 14:32

ZoomBotKill писал(а):я тут немного не в тему, но скажу. как на сервер офнуть микрофон вообще. чтобы не кто не общялся


Попробуй,на работоспособность не проверял:
[pawn]#include <amxmodx>
#include <fakemeta>

new g_iMaxPlayers;
new bool:g_iPlayer[33] = false;

public plugin_init()
{
    register_plugin("x", "x", "x");
    register_forward(FM_Voice_SetClientListening, "fwd_SetVoicePlayers");
    
    g_iMaxPlayers 
= get_maxplayers();
}

public fwd_SetVoicePlayers(receiver, sender, bool:listen)
{
    if(!(<= receiver <= g_iMaxPlayers)
    || !g_iPlayer[receiver]
    || !(<= sender <= g_iMaxPlayers)
    || !g_iPlayer[sender]) return FMRES_IGNORED;
    
    engfunc
(EngFunc_SetClientListening, receiver, sender, 0);
    return FMRES_SUPERCEDE;
}

public client_putinserver(id)
{
    g_iPlayer[id] = true;
}

public client_disconnect(id)
{
    g_iPlayer[id] = false;
}
 [/pawn]
Аватара пользователя
defa
 
Сообщения: 870
Зарегистрирован: 26 авг 2010, 18:22
Забанен
Благодарил (а): 34 раз.
Поблагодарили: 399 раз.

Re: Отлов события включения микрофона

Сообщение ZoomBotKill » 29 ноя 2010, 17:45

defa писал(а):
ZoomBotKill писал(а):я тут немного не в тему, но скажу. как на сервер офнуть микрофон вообще. чтобы не кто не общялся


Попробуй,на работоспособность не проверял:
[pawn]#include <amxmodx>
#include <fakemeta>

new g_iMaxPlayers;
new bool:g_iPlayer[33] = false;

public plugin_init()
{
    register_plugin("x", "x", "x");
    register_forward(FM_Voice_SetClientListening, "fwd_SetVoicePlayers");
    
    g_iMaxPlayers 
= get_maxplayers();
}

public fwd_SetVoicePlayers(receiver, sender, bool:listen)
{
    if(!(<= receiver <= g_iMaxPlayers)
    || !g_iPlayer[receiver]
    || !(<= sender <= g_iMaxPlayers)
    || !g_iPlayer[sender]) return FMRES_IGNORED;
    
    engfunc
(EngFunc_SetClientListening, receiver, sender, 0);
    return FMRES_SUPERCEDE;
}

public client_putinserver(id)
{
    g_iPlayer[id] = true;
}

public client_disconnect(id)
{
    g_iPlayer[id] = false;
}
 [/pawn]


спасибо. помоги в моей теме ок?:) я не рабит дпрото. или серв сам такой?
Аватара пользователя
ZoomBotKill
 
Сообщения: 47
Зарегистрирован: 20 ноя 2010, 21:59
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Отлов события включения микрофона

Сообщение Makzz » 01 дек 2010, 20:23

defa писал(а):Попробуй,на работоспособность не проверял:
[pawn]#include <amxmodx>
#include <fakemeta>

new g_iMaxPlayers;
new bool:g_iPlayer[33] = false;

public plugin_init()
{
    register_plugin("x", "x", "x");
    register_forward(FM_Voice_SetClientListening, "fwd_SetVoicePlayers");
    
    g_iMaxPlayers 
= get_maxplayers();
}

public fwd_SetVoicePlayers(receiver, sender, bool:listen)
{
    if(!(<= receiver <= g_iMaxPlayers)
    || !g_iPlayer[receiver]
    || !(<= sender <= g_iMaxPlayers)
    || !g_iPlayer[sender]) return FMRES_IGNORED;
    
    engfunc
(EngFunc_SetClientListening, receiver, sender, 0);
    return FMRES_SUPERCEDE;
}

public client_putinserver(id)
{
    g_iPlayer[id] = true;
}

public client_disconnect(id)
{
    g_iPlayer[id] = false;
}
 [/pawn]

На сколько мне известно, передача звука от микрофона передаётся только игрокам, так что проверять ентити игрок ли - нет смысла
Поэтому достаточно (скорей всего):
[pawn]public fwd_SetVoicePlayers(receiver, sender, bool:listen)
{
    if ( !listen ) // Если игрок ничего не передаёт
        return FMRES_IGNORED;
    
    engfunc
(EngFunc_SetClientListening, receiver, sender, false);// Вместо нуля нужен бульный фалсе? 
    return FMRES_SUPERCEDE;
}
 [/pawn]
Аватара пользователя
Makzz
 
Сообщения: 82
Зарегистрирован: 28 авг 2010, 09:50
Благодарил (а): 2 раз.
Поблагодарили: 24 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Отлов события включения микрофона

Сообщение defa » 01 дек 2010, 21:06

Makzz писал(а):
defa писал(а):// Вместо нуля нужен бульный фалсе? 


Без разницы:
Код: Выделить всё
false = 0
true = 1
Аватара пользователя
defa
 
Сообщения: 870
Зарегистрирован: 26 авг 2010, 18:22
Забанен
Благодарил (а): 34 раз.
Поблагодарили: 399 раз.

Re: Отлов события включения микрофона

Сообщение Makzz » 04 дек 2010, 11:46

defa писал(а):
Makzz писал(а):
defa писал(а):// Вместо нуля нужен бульный фалсе? 


Без разницы:
Код: Выделить всё
false = 0
true = 1

Я не спрашивал :) просто не уверен что работало бы, фалсе или 0 ибо не тестил
Аватара пользователя
Makzz
 
Сообщения: 82
Зарегистрирован: 28 авг 2010, 09:50
Благодарил (а): 2 раз.
Поблагодарили: 24 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 11