Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

вопрос по set_speak && +voicerecord

Статус пользователя dialyabev
сообщение 15.11.2015, 10:47
Сообщение #1


Стаж: 11 лет

Сообщений: 243
Благодарностей: 120
Полезность: 596

Код:
/* VSVipVoice v1.0 

Description:
Say vip status in microfone.
Access flag by default:
VIP_FLAG_S & VIP_FLAG_M.
Type:
Constant.
*/

#include <amxmodx>
#include <engine>
#include <VIPSystem>

public plugin_init()
{
register_plugin("VSVipVoice", "1.0", "di.alyabev")
register_clcmd("+voicerecord", "client_voice")
register_clcmd("-voicerecord", "client_voice")
}

public client_putinserver(id)
{
if(VSGetVipFlag(id, VIP_FLAG_S))
{
set_speak(id, SPEAK_ALL)
}
else
set_speak(id, SPEAK_MUTED);
}

public client_voice(id)
{
if(!VSGetVipFlag(id, VIP_FLAG_S))
{
client_print(id,print_chat,"Недостаточно прав, для использования голосового чата!")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}


Утро доброе, на повестке дня вопрос, почему игроку с флагом не дается голос через натив set_speak ? и почему не срабатывает отлов +voicerecord ? что не так ?


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legend21
сообщение 15.11.2015, 11:54
Сообщение #2
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

Лови через fakemeta

Достаточный пример:

Нам нужен модуль Код:
<fakemeta>

Форвард Код:
register_forward(FM_Voice_SetClientListening, "fwd_FM_Voice_SetClientListening")


Ловим:

Код:
public fwd_Voice_SetClientListening (receiver, sender, listen)
{
if (receiver != sender) {
if (get_bit(isGaged[receiver], sender)) {
engfunc(EngFunc_SetClientListening, receiver, sender, 0);
return FMRES_SUPERCEDE;
}
}

return FMRES_IGNORED;
}


Отредактировал: Legend21, - 15.11.2015, 12:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dialyabev
сообщение 15.11.2015, 12:40
Сообщение #3


Стаж: 11 лет

Сообщений: 243
Благодарностей: 120
Полезность: 596

Лол, этот форвард вызывается раз в 0.5 сек, зачем мне такая нагрузка?

Отредактировал: Bloo, - 15.11.2015, 15:06
Причина: Выдано устное предупреждение!


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя navigator19
сообщение 15.12.2015, 10:02
Сообщение #4
Стаж: 16 лет

Сообщений: 177
Благодарностей: 22
Полезность: 12

dialyabev,
Как успехи с отловом +voicerecord, тоже интересует данный код?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.12.2015, 10:09
Сообщение #5


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Цитата(dialyabev @ 15.11.2015, 13:36) *
Лол, этот форвард вызывается раз в 0.5 сек, зачем мне такая нагрузка?
у вас вообще не вызывается - нет вызова, нет нагрузки, оптимальный код


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 5 раз
   + Цитировать сообщение
Safety1st
сообщение 15.12.2015, 11:38
Сообщение #6
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(dialyabev)
почему не срабатывает отлов +voicerecord ?

Он и не должен срабатывать: это чисто клиентская команда.


Цитата(dialyabev)
почему игроку с флагом не дается голос через натив set_speak ?

Вообще странно. А поэкспериментируйте на различных версиях AMXX.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.12.2015, 11:49
Сообщение #7


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

и надо чтобы точно на putinserver админка была, а то вдруг нету еще в тот момент.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 15.12.2015, 12:22
Сообщение #8
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(mazdan @ 15.12.2015, 12:45) *
и надо чтобы точно на putinserver админка была, а то вдруг нету еще в тот момент.

Во, это наиболее вероятная причина good.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя navigator19
сообщение 15.12.2015, 12:51
Сообщение #9
Стаж: 16 лет

Сообщений: 177
Благодарностей: 22
Полезность: 12

Ну так предложит кто нибудь рабочий вариант плагина, с выводом сообщения при нажатии кнопки микрофона?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 15.12.2015, 13:06
Сообщение #10
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

dialyabev,

Пропустил.

Нагрузка? Как же достали со своей нагрузкой. Нет кода, нет "нагрузки" мне кажется оптимальный вариант.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 15.12.2015, 13:16
Сообщение #11
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Если 'забыть' про хотелку 'выводить месседж когда игрок нажимает кнопку', то использование нативы set_speak – куда более разумный вариант.

Кстати, SetClientListening вызывается раз в 0.3 секунды YxY раз для Y игроков smile.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: