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

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

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

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

Микрофон & VIPSystem

, Доступ к микрофону только для VIP
Статус пользователя specific
сообщение 30.10.2015, 10:39
Сообщение #1
Стаж: 14 лет

Сообщений: 97
Благодарностей: 4
Полезность: 35

Добрый час товарищи!
Прошу подсказать как можно настроить доступ к микрофону только игрокам с определенным флагом от VIPSystem (by ZETA).
Пробовал разные готовые варианты, где доступ к микрофону разрешен только админам, изменяя его под VIP System. Самое лучшее что получилось - это либо микрофон не работает ни у кого, либо у всех :)
Пример кода

#include < amxmodx >
#include < fakemeta >
#include <VIPSystem>

#define SetPlayerBits(%1,%2) ( %1 |= 1 << ( %2 & 31 ) )
#define ClearPlayerBits(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) )
#define GetPlayerBits(%1,%2) ( %1 & 1 << ( %2 & 31 ) )
#define ACCESS_FLAG VIP_FLAG_S

new g_pEnabled, g_bAdmin;

public plugin_init( ) {
register_plugin( "Voice Admin Only", "1.1", "xPaw" );

g_pEnabled = register_cvar( "sv_voiceadminonly", "1" );

register_forward( FM_Voice_SetClientListening, "FwdSetClientListening" );
}

public client_authorized( id )
if (VSGetVipFlag(id, ACCESS_FLAG))
SetPlayerBits( g_bAdmin, id );

public client_disconnect( id )
ClearPlayerBits( g_bAdmin, id );

public FwdSetClientListening( iReceiver, iSender, bool:bListen ) {
if( GetPlayerBits( g_bAdmin, iSender ) && get_pcvar_num( g_pEnabled ) > 0 ) {
engfunc( EngFunc_SetClientListening, iReceiver, iSender, false );
forward_return( FMV_CELL, false );

return FMRES_SUPERCEDE;
}

return FMRES_IGNORED;
}


Пробовал и другие варианты, но никаких успехов не достиг.
Подскажите пожалуйста где я ошибся.

В идеале хочу реализовать следующую систему в одном флаконе:
1. Микрофон доступен только игрокам VIP с флагами A&B&C
2. /mute для конкретного игрока или всех игроков
3. Тем игрокам, у которых микрофон не доступен в силу отсутствия нужного флага выводится соответствующее сообщение при попытке заговорить.

На сервер установлен HLDS VoiceTranscoder
Всем откликнувшимся за ранее спасибо! :)

Отредактировал: specific, - 30.10.2015, 10:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Freeman74
сообщение 30.10.2015, 17:37
Сообщение #2
Стаж: 11 лет

Сообщений: 20
Благодарностей: 2
Полезность: 77

Вот тебе наглядный пример:
Код:
#include <amxmodx>
#include <fakemeta>

#define ADMIN_FLAG ADMIN_BAN // В место ADMIN_BAN ставить свой флаг

public plugin_init()
{
register_forward(FM_Voice_SetClientListening, "FakeMeta_Voice_SetListening", false);
}

public FakeMeta_Voice_SetListening(iReceiver, iSender, bool:bListen)
{
if(get_user_flags(iSender) & ADMIN_FLAG)
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true);
return FMRES_SUPERCEDE;
}
engfunc(EngFunc_SetClientListening, iReceiver, iSender, false);
return FMRES_SUPERCEDE;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя specific
сообщение 31.10.2015, 8:59
Сообщение #3
Стаж: 14 лет

Сообщений: 97
Благодарностей: 4
Полезность: 35

Цитата(Freeman74 @ 30.10.2015, 18:32) *
Вот тебе наглядный пример:

Вы видимо тему то так и не прочитали)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
meloman
сообщение 31.10.2015, 9:02
Сообщение #4
Стаж: 10 лет

Сообщений: 746
Благодарностей: 373
Полезность: 628

Цитата(specific @ 31.10.2015, 11:55) *
Вы видимо тему то так и не прочитали)

это вы видимо не так прочитали, вам выдали код где вы можете заменить свой флаг и все, что не понятного?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя specific
сообщение 31.10.2015, 9:18
Сообщение #5
Стаж: 14 лет

Сообщений: 97
Благодарностей: 4
Полезность: 35

Цитата(MeJIoMaH @ 31.10.2015, 9:58) *
это вы видимо не так прочитали, вам выдали код где вы можете заменить свой флаг и все, что не понятного?

1. Речь идет не о флаге админа
2. Подобные коды я пробовал оптимизировать под VIPSystem и результата это не принесло.
В качестве примера я привел подобный код - один из нескольких опробованных мною (уже измененный мною под VIPSystem) - он не работает. Я попросил подсказать где я сделал ошибку. Т.к. дело не в том что код изначально не рабочий был, а в том, что я где то ошибся.

Отредактировал: specific, - 31.10.2015, 9:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
meloman
сообщение 31.10.2015, 9:31
Сообщение #6
Стаж: 10 лет

Сообщений: 746
Благодарностей: 373
Полезность: 628

specific,
извините тогда =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: