Поиск Нужен плагин для контроля голосового чата.

Статус
В этой теме нельзя размещать новые ответы.

VALHALLA

Пользователь
Регистрация
17 Сен 2017
Сообщения
55
Симпатии
2
Всем привет. Ну как обычно, мб кто видел - скиньте плз. Кто сможет написать с нуля, давайте сделаем.
Что нужно:
Нужно, чтобы общий голосовой чат у игрока отключался после смерти, по истечению 5 сек. (чтобы успеть инфу дать). И чтобы те игроки, которые умерли, смогли общаться только в голосовом чате с мёртвыми. Т.е. живые слышать будут только живых, мёртвые могут и живых и мёртвых слышать.. Но вот эти 5 секунд прям ппц как нужно))
Видел плагин, нашпигованный /mute, gag-ом и т.д. Мне всё это не надо, всё это уже есть. Нужна вот только такая фишка.
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
VALHALLA, такой без мута и гага.. Не видел..
Сам пользуюсь от радиуса...
Там все ето есть...
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
VALHALLA, все отлично.. Правда не пользуюсь той функцией что ти описал.. Но гаг, автогаг, мут , роботают на ура
 

SatyJay

Пользователь
Регистрация
15 Сен 2017
Сообщения
1
Симпатии
1
просто брал в свое время от скальпеля.. норм работает? Никаких нареканий? )
/*
* Обновление 28.02.2015
* v1.4 - Добавлен иммунитет для админов
* v1.5 - Исправлен выход индекса за пределы массива
* v1.6 - Сделано это:
* можешь для меня лично сделать так:
* живые СТ слышат живых СТ, Т
* живые Т слышат живых Т, СТ
* мертвые СТ слышат всех
* мертвые Т слышат всех
* инфа 5 сек
* админы слышат всех и могут говорить всем
* флаг для админа ADMIN_BAN
*
* Если ваша версия AMXX ниже 1.8.3, используйте colorchat.inc из архива
*/

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#if AMXX_VERSION_NUM < 183
#include <colorchat>

#define client_print_color ColorChat
#define print_team_red RED
#endif

#define PLUGIN "Voice Manager"
#define VERSION "1.6"
#define AUTHOR "Stimul"

#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) (%1 |= (1 << (%2 & 31)))
#define reset_bit(%1,%2) (%1 &= ~(1 << (%2 & 31)))

#define m_iTeam 114
#define fm_cs_get_user_team_index(%1) get_pdata_int(%1, m_iTeam)

#define MAX_CLIENTS 32

#define ACCESS_LEVEL ADMIN_BAN // Все флаги смотрите в amxconst.inc

new g_bIsConnected;
new g_bIsAlive;
new g_bIsAdmin;
new g_bInfo;

new g_iTeam[MAX_CLIENTS+1];

new g_pImmunity;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

/*
Иммунитет для админов
* 1 - включен
* 0 - выключен
*/

g_pImmunity = register_cvar("vm_immunity", "1");

RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", true);
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", true);

register_forward(FM_Voice_SetClientListening, "fw_Voice_SetClientListening");
}

public fw_PlayerSpawn_Post(id)
{
if(is_user_alive(id))
{
set_bit(g_bIsAlive, id);

g_iTeam[id] = fm_cs_get_user_team_index(id);
}
}

public fw_PlayerKilled_Post(id)
{
if(g_bIsAdmin, id) return;

reset_bit(g_bIsAlive, id);
set_bit(g_bInfo, id);
set_task(5.0, "OffTimeInfo", id);
}

public OffTimeInfo(id)
{
if(get_bit(g_bIsConnected, id))
{
client_print_color(id, print_team_red, "^1[^4Info^1] Время инфы ^3[5сек]. ^1Tеперь тебя слышат только мёртвые игроки!");
reset_bit(g_bInfo, id);
}
}

public client_putinserver(id)
{
set_bit(g_bIsConnected, id);
get_user_flags(id) & ACCESS_LEVEL ? set_bit(g_bIsAdmin, id) : reset_bit(g_bIsAdmin, id);
reset_bit(g_bInfo, id);
}

public client_disconnect(id)
{
reset_bit(g_bIsConnected, id);
reset_bit(g_bIsAlive, id);
}

public fw_Voice_SetClientListening(receiver, sender, listen)
{
if(get_bit(g_bIsConnected, receiver) && get_bit(g_bIsConnected, sender) && receiver != sender && get_pcvar_num(g_pImmunity) && (!get_bit(g_bIsAdmin, receiver) || !get_bit(g_bIsAdmin, sender)))
{
if(get_bit(g_bInfo, sender))
return FMRES_IGNORED;

if(get_bit(g_bIsAlive, receiver) && g_iTeam[receiver] == 2 && ((get_bit(g_bIsAlive, sender) && g_iTeam[sender] == 2) || (get_bit(g_bIsAlive, sender) && g_iTeam[sender] == 1)))
return FMRES_IGNORED;

else if(get_bit(g_bIsAlive, receiver) && g_iTeam[receiver] == 1 && ((get_bit(g_bIsAlive, sender) && g_iTeam[sender] == 1) || (get_bit(g_bIsAlive, sender) && g_iTeam[sender] == 2)))
return FMRES_IGNORED;

else if((!get_bit(g_bIsAlive, receiver) && g_iTeam[receiver] == 1) || (!get_bit(g_bIsAlive, receiver) && g_iTeam[receiver] == 2))
return FMRES_IGNORED;

else
{
engfunc(EngFunc_SetClientListening, receiver, sender, false);
return FMRES_SUPERCEDE;
}
}

return FMRES_IGNORED;
}
 

Вложения

VALHALLA

Пользователь
Регистрация
17 Сен 2017
Сообщения
55
Симпатии
2
Спасибо большое!
 

VALHALLA

Пользователь
Регистрация
17 Сен 2017
Сообщения
55
Симпатии
2
Жаль только не работает
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
VALHALLA, радиуса пробовал?
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
VALHALLA, ну заставлять не буду...
но скажу что робочий!
 

VALHALLA

Пользователь
Регистрация
17 Сен 2017
Сообщения
55
Симпатии
2
Vesuvius, можешь линк дать? Дам вроде Orpheu юзается, его просто не очень хочется ставить..
 

SFGMobile

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
225
Симпатии
81
Пол
Мужской

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.598
Симпатии
570
Пол
Мужской
VALHALLA, тема решена? можно закривать?
 

VALHALLA

Пользователь
Регистрация
17 Сен 2017
Сообщения
55
Симпатии
2
Не решена. Закрывайте.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу