> > > > >

[1.3 vtc only] Voice Control by STATS

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
14
Рейтинг
1
#1
Ошибка
Voice Control by STATS  1.4         neugomon          voice_control.a  running
ошибок нет
C++
ОС
Linux
Билд
ReHLDS version: 3.4.0.639-dev
Билд 6153
C++
ReGamedll
5.7.0.295
C++
Список метамодулей
[1] VoiceTranscoder  RUN   -    vtc.so            v2017RC3  ini   ANY
[ 2] AMX Mod X RUN - amxmodx.so v1.8.3-R ini Start ANY
[ 3] LocalizeBug Fix RUN - localizebugfix.s v2.4 ini Start Never
[ 4] Reunion RUN - reunion.so v0.1.75 ini Start Never
[ 5] WHBlocker RUN - whblocker.so v1.5.692 ini ANY
[ 6] ReSemiclip RUN - resemiclip.so v2.3.9 ini ANY
[ 7] Rechecker RUN - rechecker.so v2.5 ini ANY
[ 8] ReAPI RUN - reapi_amxx_i386. v5.2.0.1 pl2 ANY Never
[ 9] FakeMeta RUN - fakemeta_amxx_i3 v1.8.3-R pl2 ANY
[10] Ham Sandwich RUN - hamsandwich_amxx v1.8.3-R pl2 ANY
[11] MySQL RUN - mysql_amxx_i386. v1.8.3-R pl2 ANY
[12] Fun RUN - fun_amxx_i386.so v1.8.3-R pl2 ANY
[13] CStrike RUN - cstrike_amxx_i38 v1.8.3-R pl2 ANY
[14] Engine RUN - engine_amxx_i386 v1.8.3-R pl2 ANY
[15] ReAimDetector RUN - reaimdetector_am v0.2.2 pl2 ANY Never
C++
Список плагинов
[  1] CSStatsX SQL            0.7.4       serfreeman1337    csstatsx_sql.am  running
[ 2] Advanced Experience Sy 0.5.4 Vega serfreeman1337/s advanced_experi running
[ 3] Advanced Gag 1.9.0 neygomon advanced_gag.am running
[ 4] Admin Loader 2.5.2 neygomon admin_loader_fo running
[ 5] FreshBans 1.3.6 kanagava fresh_bans.amxx running
[ 6] AES: StatsX 0.5 Vega serfreeman1337 aes_statsx.amxx running
[ 7] Stats Configuration 1.8.2 AMXX Dev Team statscfg.amxx running
[ 8] RestMenu RUS 1.8.1.3746 Leo_[BH] restmenu_rus.am running
[ 9] Advanced MapChooser 1.1.1 neygomon advanced_mapcho running
[ 10] Random Weapons WarmUP 2.5.untest neugomon warmup_reapi.am running
[ 11] Commands Menu 1.8.3 AMXX Dev Team cmdmenu.amxx running
[ 12] AMXMODMENU NEW 1.0 Nisko amxmodmenu_new. running
[ 13] Maps Menu 1.8.3 AMXX Dev Team mapsmenu.amxx running
[ 14] Info. Messages 1.8.3 AMXX Dev Team imessage.amxx running
[ 15] Menus Front-End 1.8.3 AMXX Dev Team menufront.amxx running
[ 16] Players Menu 1.8.3 AMXX Dev Team plmenu.amxx running
[ 17] Plugin Menu 1.8.3 AMXX Dev Team pluginmenu.amxx running
[ 18] Restrict Weapons 1.8.3 AMXX Dev Team restmenu.amxx running
[ 19] CS Stats Logging 1.8.3 AMXX Dev Team stats_logging.a running
[ 20] CS Misc. Stats 1.8.3 AMXX Dev Team miscstats.amxx running
[ 21] Admin Commands 1.8.3 AMXX Dev Team admincmd.amxx running
[ 22] Admin Votes 1.8.3 AMXX Dev Team adminvote.amxx running
[ 23] Admin Chat 1.8.3 AMXX Dev Team adminchat.amxx running
[ 24] Killa HP 1.6 jas0n killa_hp.amxx running
[ 25] Autoresponder/Advertis 0.5 MaximusBrood reklama_in_chat running
[ 26] FM ResetScore 0.1 neygomon fm_resetscore.a running
[ 27] Lite Kill Assist 1.17 neygomon lite_kill_assis running
[ 28] SF Bets 0.1.5 serfreeman1337 sf_bets.amxx running
[ 29] Ping Control 1.31 neygomon ping_control.am running
[ 30] Lite Admin ESP 1.0 neygomon lite_admin_esp. running
[ 31] Admin Free Look 2.0 Jim admin_free_look running
[ 32] Lite Vampire 1.1a neygomon lite_vampire.am running
[ 33] AntiFlash FINAL 5.0 Leo_[BH] antiflash_final running
[ 34] Demo Recorder RBS 14.08 SKAJIbnEJIb demorecorder_rb running
[ 35] Gold Weapon 1.0 vk.com weapons.amxx running
[ 36] Custom Models 1.3.2 neugomon custom_models.a running
[ 37] Lite Translit 2.74 neygomon lite_translit.a running
[ 38] Parachute 14.10 [email protected]/JTP10181 parachute_rbs.a running
[ 39] AFK Control 1.4.1 [Rnd neygomon afk_control.amx running
[ 40] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 41] Back Weapons RBS 14.10 hoboman313/cheap backweapons_rbs running
[ 42] Time for info 1.0 neugomon time_for_info.a running
[ 43] [ReAPI] Kills Counter 0.3 serfreeman1337 kills_counter.a running
[ 44] Voice Control by STATS 1.4 neugomon voice_control.a running
[ 45] AES: StatsX 0.5.4 Vega serfreeman1337/s aes_statsx_cstr running
[ 46] AES: CStrike Addon 0.5.4 Vega serfreeman1337/s aes_exp_cstrike running
[ 47] AES: Informer 0.5.4 Vega serfreeman1337/s aes_informer.am running
[ 48] AES: Admin Tools 0.5.4 Vega serfreeman1337/s aes_exp_editor. running
[ 49] AES: Bonus System 0.5.4 Vega serfreeman1337/s aes_bonus_syste running
[ 50] AES: Bonus CSTRIKE 0.5.4 Vega serfreeman1337/s aes_bonus_cstri running
[ 51] CSXSQL: Onlinetime Awa 0.2 serfreeman1337 csstatsx_playti running
Список модулей
[ 1] ReAPI                   5.2.0.136-  Asmodai & s1lent     running
[ 2] FakeMeta 1.8.3-Re AMX Mod X Dev Team running
[ 3] Ham Sandwich 1.8.3-Re AMX Mod X Dev Team running
[ 4] MySQL 1.8.3-Re AMX Mod X Dev Team running
[ 5] nVault 1.8.3-Re AMX Mod X Dev Team running
[ 6] dummy_csx 1.0 AGHL.RU Dev Team running
[ 7] Fun 1.8.3-Re AMX Mod X Dev Team running
[ 8] CStrike 1.8.3-Re AMX Mod X Dev Team running
[ 9] Engine 1.8.3-Re AMX Mod X Dev Team running
[10] ReAimDetector 0.2.2 ReHLDS Team running
C++
Исходник
#include <amxmodx>
#tryinclude <reapi>

/* =================== */
#define VOICE_CONTROL_BY_STATS 2
// 0 - CSX
// 1 - CSSTATS MYSQL by SKAJIbnEJIb
// 2 - CSSTATSX SQL by serfreeman1337
// 3 - AES 0.5 Vega by serfreeman1337

// #define SUPPORT_NO_ROUND_SERVER
// Поддержка серверов с бесконечным раундом (GunGame, CSDM, etc...)

#define ACCESS_IMMUNITY ADMIN_PASSWORD 1
// Иммунитет для админов

#define BLOCK_TEXT_CHAT 1
// Блокировать текстовый чат и голосовой
// Если закомментировано - блокировуется только голос

#define BLOCK_CHATS_INFO 1
// Выводит в текстовый чат сообщение о том, что чат/чаты для игрока заблокированы

const MIN_FRAGS = 20;
// Минимальное количество фрагов для доступа к микро
// Для VOICE_CONTROL_BY_STATS 3 настройка принимает значение ранга юзера(начиная с 1)
/* =================== */

#if VOICE_CONTROL_BY_STATS == 0
#include <csstats>
#endif
#if VOICE_CONTROL_BY_STATS == 1
#include <csstats_mysql>
#endif
#if VOICE_CONTROL_BY_STATS == 2
#include <csstatsx_sql>
#endif
#if VOICE_CONTROL_BY_STATS == 3
#include <aes_main>
#endif
#if !defined _reapi_included
#include <VtcApi>
#if defined SUPPORT_NO_ROUND_SERVER
#include <hamsandwich>
#endif
#endif
#if defined BLOCK_TEXT_CHAT
new bool:g_bBlockTextChat[33];
#endif
#if defined BLOCK_CHATS_INFO
new g_iFragStats[33];
#if VOICE_CONTROL_BY_STATS == 3
new g_szAesLevelName[64];
#endif
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
#endif
public plugin_init()
{
register_plugin("Voice Control by STATS", "1.4", "neugomon");
#if defined _reapi_included
if(!has_vtc())
set_fail_state("Needed meta plugin VTC [https://neugomon.ru/threads/257/]");
else
{
#if defined SUPPORT_NO_ROUND_SERVER
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn_Post", true);
#else
RegisterHookChain(RG_RoundEnd, "RoundEnd_Post", true);
#endif
}
#else
#if defined SUPPORT_NO_ROUND_SERVER
RegisterHam(Ham_Spawn, "player", "CBasePlayer_Spawn_Post", true);
#else
register_logevent("RoundEnd_Post", 2, "1=Round_End");
#endif
#endif
#if defined BLOCK_TEXT_CHAT
register_clcmd("say", "clcmd_Say");
register_clcmd("say_team", "clcmd_Say");
#endif
}
#if defined BLOCK_CHATS_INFO && VOICE_CONTROL_BY_STATS == 3
public plugin_cfg()
aes_get_level_name(MIN_FRAGS, g_szAesLevelName, charsmax(g_szAesLevelName), LANG_SERVER);
#endif
public client_putinserver(id)
{
if(!get_voice_access(id))
{
VTC_MuteClient(id);
#if defined BLOCK_TEXT_CHAT
g_bBlockTextChat[id] = true;
#endif
}
}
#if defined SUPPORT_NO_ROUND_SERVER
public CBasePlayer_Spawn_Post(const id)
{
if(is_user_connected(id)
{
if(get_voice_access(id))
VTC_UnmuteClient(id);
#if defined BLOCK_CHATS_INFO
else
{
#if defined BLOCK_TEXT_CHAT
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Доступ к текстовому и голосовому чатам ^4закрыт^1!");
#else
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Доступ голосовому чатe ^4закрыт^1!");
#endif
#if VOICE_CONTROL_BY_STATS == 3
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Необходимо получить уровень ^3%s", g_szAesLevelName);
#else
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Необходимо набрать ^3%i^4/^3%i ^1фрагов", g_iFragStats[id], MIN_FRAGS);
#endif
}
#endif
}
}
#else
public RoundEnd_Post()
{
new players[32], pnum;
get_players(players, pnum, "ch");

for(new i, id; i < pnum; ++i)
{
id = players[i];

if(get_voice_access(id))
{
VTC_UnmuteClient(id);
#if defined BLOCK_TEXT_CHAT
g_bBlockTextChat[id] = false;
#endif
}
else
{
VTC_MuteClient(id);
#if defined BLOCK_TEXT_CHAT
g_bBlockTextChat[id] = true;
#endif
#if defined BLOCK_CHATS_INFO
#if defined BLOCK_TEXT_CHAT
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Доступ к текстовому и голосовому чатам ^4закрыт^1!");
#else
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Доступ голосовому чатe ^4закрыт^1!");
#endif
#if VOICE_CONTROL_BY_STATS == 3
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Необходимо получить уровень ^3%s", g_szAesLevelName);
#else
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Необходимо набрать ^3%i^4/^3%i ^1фрагов", g_iFragStats[id], MIN_FRAGS);
#endif
#endif
}
}
}
#endif
#if defined BLOCK_TEXT_CHAT
public clcmd_Say(id)
{
#if defined BLOCK_CHATS_INFO
if(g_bBlockTextChat[id])
{
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Доступ к текстовому и голосовому чатам ^4закрыт^1!");
#if VOICE_CONTROL_BY_STATS == 3
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Необходимо получить уровень ^3%s", g_szAesLevelName);
#else
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Необходимо набрать ^3%i^4/^3%i ^1фрагов", g_iFragStats[id], MIN_FRAGS);
#endif
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
#else
return g_bBlockTextChat[id] ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
#endif
}
#endif
bool:get_voice_access(id)
{
#if VOICE_CONTROL_BY_STATS
new flags = get_user_flags(id);
if(flags > 0 && !(flags & ADMIN_PASSWORD))
return true;
#endif
#if VOICE_CONTROL_BY_STATS == 0
new st[8], bh[HIT_RIGHTLEG + 1];
if(!get_user_stats(id, st, bh))
return false;
#endif
#if VOICE_CONTROL_BY_STATS == 1
new st[22];
if(csstats_get_user_stats(id, st) <= 0)
return false;
#endif
#if VOICE_CONTROL_BY_STATS == 2
new st[8], bh[HIT_RIGHTLEG + 1];
if(!get_user_stats_sql(id, st, bh))
return false;
#endif
#if VOICE_CONTROL_BY_STATS == 3
new st[1], data[4];
if(!aes_get_player_stats(id, data))
return false;
else st[0] = data[1];
#endif
#if defined BLOCK_CHATS_INFO
g_iFragStats[id] = st[0];
#endif
return (st[0] < MIN_FRAGS) ? false : true;
}
C++
Друзья, прошу извинить за оформления первого поста, поторопился, затупил!
Прошу помочь наладить работу плагина, 2 дня пытался найти решение, результата нет. Запрет микрофона работает, запрет чата не работает и плюсом еще не выводится оповещение, что микрофон заблокирован надо набрать столько та. Иммунитет для випов так же видимо прописал не правильно, не работает.
Заранее спасибо!
 
В этой теме было размещено решение! Перейти к решению.
 
Сообщения
121
Рейтинг
25
#2
Запрет микрофона работает, запрет чата не работает
Ну все понятно.
Пропишите в plugins.ini "voice_control.amxx" выше всех менеджеров чата, а именно lite translit и т.д
А вообще, lite translit советую поместить в самый низ списка plugins.ini
13 Мар 2018
плюсом еще не выводится оповещение
Кто вам сказал, что данный плагин выполняют эту функцию?
Ваше решение "Ultimate Chats Control by neygomon"
 
  3
Сообщения
14
Рейтинг
1
#3
KOLOKOLb4UK, попробую прописать выше всех, спасибо за подсказку, по поводу оповещения, то сам неугомон это написал на странице плагина и плюсом в коде присутствует текст оповещения
Код:
client_print_color(id, print_team_default, "^1[^3Voice Control^1] Доступ голосовому чатe ^4закрыт^1!");
 
 
Сообщения
121
Рейтинг
25
#4
по поводу оповещения, то сам неугомон это написал на странице плагина и плюсом в коде присутствует текст оповещения
Оповещение о запрете чата появляется в конце раунда.
 
 
Сообщения
14
Рейтинг
1
#5
KOLOKOLb4UK, все теперь понял, а по поводу иммунитета, я правильно вставил проверку на него? в начале раунда как я понял оповещение сделать не получится, особенность плагина
 
 
Сообщения
256
Рейтинг
201
#8
а по поводу иммунитета, я правильно вставил проверку на него? в начале раунда как я понял оповещение сделать не получится, особенность плагина
#define ACCESS_IMMUNITY ADMIN_PASSWORD 1 поменять на #define ACCESS_IMMUNITY ADMIN_PASSWORD, этим мы задаем что ACCESS_IMMUNITY это флаг "k". Но это ни где не используется, чтобы был иммунитет нужно где-то использовать а не просто задавать значение дефайну, в коде конечно используется ADMIN_PASSWORD но не сам дефайн, какой толк тогда от лишнего дефайна?

184-188 строчки в коде:
Код:
#if  VOICE_CONTROL_BY_STATS
    new flags = get_user_flags(id);
    if(flags > 0 && !(flags & ADMIN_PASSWORD))
        return true;
#endif
поменять на:
Код:
#if VOICE_CONTROL_BY_STATS
    if(get_user_flags(id) & ACCESS_IMMUNITY)
        return true;
#endif
 
Последнее редактирование:
  2
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Ответы
7
Просмотры
793
> > > > >