AdminGag (Молчанка), Заткнуть игрока |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
AdminGag (Молчанка), Заткнуть игрока |
Fred Perry |
7.3.2015, 16:17
Сообщение
|
|
ThePhoenix, так у меня стоит версия https://c-s.net.ua/forum/topic58692.html?vi...st&p=631472
Оно микро не блокирует Гнилой фашистской нечисти
Загоним пулю в лоб, Отродью человечества Сколотим крепкий гроб! |
|
|
anatol |
7.3.2015, 16:40
Сообщение
|
|
от скапателя тока блочит, а остальные не фига!!!
|
|
|
ThePhoenix |
10.3.2015, 1:20
Сообщение
|
|
Не знаю как у вас,все замечательно блокирует.только смс игрока видно всем кроме его самого))
|
|
|
Oneshot |
10.3.2015, 1:27
Сообщение
|
|
|
Flash96 |
10.3.2015, 1:32
Сообщение
|
А если обычный с нета скачать то работать не будет ???
|
|
|
|
Andrey777best |
25.7.2015, 13:25
Сообщение
|
|
Небольшая модификация по просьбе ExTPuMaJI:
Для компиляции под 1.8.2 и ниже потребуется инклюд colorchat.inc c фиксом от Lev. Есть умельцы что бы сделать сохранение в файл или базу?
Отредактировал: Andrey777best, - 25.7.2015, 13:26
|
|
|
D9D9 |
25.7.2015, 13:37
Сообщение
|
Работает с VoiceTranscoder?
|
|
|
|
Andrey777best |
25.7.2015, 13:38
Сообщение
|
|
|
Поблагодарили 1 раз
|
|
D9D9 |
25.7.2015, 14:12
Сообщение
|
Если можно добавьте, пожалуйста функцию для обычного игрока например: say /rotoff
Что бы выводился список кого заткнуть наподобие /voteban админов бывает нет так вот обычный игрок сможет проголосовать за rotoff... |
|
|
|
sonyaibo |
22.1.2016, 19:42
Сообщение
|
|
я так понимаю, заткнутого игрока админы слышат, а игроки нет. как сделать, чтобы админы тоже не слышали. подскажите плз. Плагин с 1 поста.
|
|
|
Virtes73 |
8.2.2016, 9:48
Сообщение
|
|
В чем может быть проблема, иногда гаг ставится сам на админов(вип)(при заходе на сервер, но не всегда), и снять не как, после смены карты снимается
|
|
|
podbot |
8.2.2016, 14:48
Сообщение
|
|
|
Virtes73 |
8.2.2016, 15:31
Сообщение
|
|
meta list Currently loaded plugins: description stat pend file vers src load unlod [ 1]dproto_EF RUN - dproto_i386.so v0.9.391 ini Start Never [ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.2 ini Start ANY [ 3] Cust. Flood Fix RUN - cf_fix_mm_i386.s v1.1 ini Start Never [ 4] ProcessCmds RUN - processcmds_mm_i v1.0.8 ini Start Never [ 5] LocalizeBug Fix RUN - localizebugfix_m v2.4 ini Start Never [ 6] Semiclip RUN - semiclip_mm_i386 v2.2 ini ANY ANY [ 7] WHBlocker RUN - whblocker_mm_i38 v1.5.620 ini Chlvl ANY [ 8] VoiceTranscoder RUN - VoiceTranscoder. v2.0Beta ini ANY ANY [ 9] Fun RUN - fun_amxx_i386.so v1.8.1.3 pl2 ANY ANY [10] CStrike RUN - cstrike_amxx_i38 v1.8.2-d pl2 ANY ANY [11] CSX RUN - csx_amxx_i386.so v1.8.1.3 pl2 ANY ANY [12] Orpheu RUN - orpheu_amxx_i386 v2.3 pl2 ANY ANY [13] FakeMeta RUN - fakemeta_amxx_i3 v1.8.1.3 pl2 ANY ANY [14] Ham Sandwich RUN - hamsandwich_amxx v1.8.1.3 pl2 ANY ANY [15] MySQL RUN - mysql_amxx_i386. v1.8.1.3 pl2 ANY ANY [16] Engine RUN - engine_amxx_i386 v1.8.1.3 pl2 ANY ANY 16 plugins, 16 running kod #include <amxmodx> #include <amxmisc> #include <fakemeta> #include <colorchat> #define PLUGIN "Admin Gag" #define VERSION "1.0" #define AUTHOR "AndrewZ" #define GAG_IMMUNITY ADMIN_IMMUNITY #define GAG_ACCESS ADMIN_CVAR #define MAX_PLAYERS 32 #define TID 88897 const MAX_SAVED = 64 new g_user_menu_page[ MAX_PLAYERS + 1 ], g_user_menu_players[ MAX_PLAYERS + 1 ][ MAX_PLAYERS ], g_user_time[ MAX_PLAYERS + 1 ] new g_user_gagged[ MAX_PLAYERS + 1 ] new g_times[] = { 5, 10, 20, 30 } new db_steamid[MAX_SAVED][32] new db_gag[MAX_SAVED] new db_slot_i new g_SorryWait[33] public plugin_init() { register_plugin( PLUGIN, VERSION, AUTHOR ) register_forward( FM_Voice_SetClientListening, "fwd_voice_setclientlistening" ) register_clcmd( "amx_gagmenu", "show_gag_main_menu" ) register_clcmd( "say", "hook_say" ) register_clcmd( "say_team", "hook_say" ) register_menu( "gag_players_menu", 1023, "handler_gag_players_menu" ) register_menu( "gag_time_menu", -1, "handler_gag_time_menu" ) } public client_putinserver( id ) { g_SorryWait[id] = 0 load_gag(id) } public client_disconnect( id ) save_gag(id) _remove_user_gag( id ) { g_user_time[ id ] = g_times[ 0 ] g_user_gagged[ id ] = 0 if( task_exists( TID + id ) ) remove_task( TID + id ) } public fwd_voice_setclientlistening( receiver, sender, listen ) { if( receiver != sender ) { if( g_user_gagged[ sender ] ) { engfunc( EngFunc_SetClientListening, receiver, sender, 0 ) return FMRES_SUPERCEDE } } return FMRES_IGNORED } public hook_say( id ) { if( g_user_gagged[ id ] ) { new said[ 8 ] read_args( said, 7 ) if( contain( said, "/sorry" ) != -1 && (!g_SorryWait[id] || get_systime() - g_SorryWait[id] > 30)) { for( new i = 1; i <= MAX_PLAYERS; i ++ ) { if( is_user_connected( i ) && get_user_flags( i ) & GAG_ACCESS ) { new name[ 32 ]; get_user_name( id, name, 31 ) client_print_color( i, BLUE, "^3[GAG]^1 ^4%s^1 извиняется и просит снять с него молчанку.", name ) } } g_SorryWait[id] = get_systime() client_print_color( id, BLUE, "^3[GAG]^1 Вы попросили прощение у администраторов." ) return PLUGIN_HANDLED } { client_print_color( id, RED, "^3[GAG]^1 Вам запрещено писать в чат, можете попросить прощение командой /sorry." ) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public show_gag_main_menu( id, page ) { if( !( get_user_flags( id ) & GAG_ACCESS ) ) return PLUGIN_HANDLED if( page < 0 ) return PLUGIN_HANDLED new players[ 32 ], num get_players( players, num, "ch" ) new i = min( page * 7, num ) new start = i - ( i % 7 ) new end = min( start + 7, num ) page = start / 7 g_user_menu_page[ id ] = page g_user_menu_players[ id ] = players new menu[ 512 ] new len = formatex( menu, 511, "\yЗаткнуть игрока\R%d/%d^n^n", page + 1, ( ( num - 1 ) / 7 ) + 1 ) new keys = MENU_KEY_0 + MENU_KEY_8 new item for( i = start; i < end; i ++ ) { new name[ 32 ] new g_id = players[ i ] get_user_name( g_id, name, 31 ) if( id == g_id ) len += formatex( menu[ len ], 511 - len, "\d%d. \y%s^n", ++ item, name ) else { if( get_user_flags( g_id ) & GAG_IMMUNITY ) len += formatex( menu[ len ], 511 - len, "\d%d. %s \r*^n", ++ item, name ) else { keys |= ( 1 << item ) if( g_user_gagged[ g_id ] ) len += formatex( menu[ len ], 511 - len, "\w%d. \w%s \r[ЗАТКНУТ]^n", ++ item, name ) else len += formatex( menu[ len ], 511 - len, "\w%d. \w%s^n", ++ item, name ) } } } len += formatex( menu[ len ], 511 - len, "^n\w8. Время: \y%d минут^n", g_user_time[ id ] ) if( end < num ) { keys |= MENU_KEY_9 formatex( menu[ len ], 511 - len, "^n\w9. Далее^n0. %s", page ? "Назад" : "Выход" ) } else formatex( menu[ len ], 511 - len, "^n\w0. %s", page ? "Назад" : "Выход" ) show_menu( id, keys, menu, -1, "gag_players_menu" ) return PLUGIN_HANDLED } public handler_gag_players_menu( id, key ) { switch( key ) { case 0..6: { new g_id = g_user_menu_players[ id ][ g_user_menu_page[ id ] * 7 + key ] if( is_user_connected( g_id ) ) { if( !( get_user_flags( g_id ) & GAG_IMMUNITY ) ) { new name[ 32 ]; get_user_name( id, name, 31 ) new g_name[ 32 ]; get_user_name( g_id, g_name, 31 ) if( !g_user_gagged[ g_id ] ) { new time = g_user_time[ id ] g_user_gagged[ g_id ] = 1 client_print_color( 0, RED, "^3[GAG]^1 ^4%s^1 заткнул ^4%s^1 на ^3%d^1 минут. Попросить прощение: /sorry.", name, g_name, time ) set_task( float( time ) * 60.0, "task_ungag", g_id + TID ) } else { _remove_user_gag( g_id ) client_print_color( 0, BLUE, "^3[GAG]^1 ^4%s^1 снял молчанку с ^4%s^1.", name, g_name ) } } else client_print_color( id, BLUE, "^3[GAG] ^1Этот игрок имеет иммунитет." ) } else client_print_color( id, BLUE, "^3[GAG] ^1Этот игрок отключился от сервера." ) show_gag_main_menu( id, 0 ) } case 7: show_gag_time_menu( id ) case 8: show_gag_main_menu( id, ++ g_user_menu_page[ id ] ) case 9: show_gag_main_menu( id, -- g_user_menu_page[ id ] ) } } public task_ungag( task_id ) { new id = task_id - TID _remove_user_gag( id ) new name[ 32 ]; get_user_name( id, name, 31 ) client_print_color( 0, BLUE, "^3[GAG] ^1C игрока ^4%s^1 снята молчанка.", name ) } public show_gag_time_menu( id ) { new menu[ 256 ], len, keys = MENU_KEY_0 len = formatex( menu, charsmax( menu ), "\yВыбор времени молчанки^n\w" ) new item for( new i; i < sizeof g_times; i ++ ) { keys |= ( 1 << item ) len += formatex( menu[ len ], charsmax( menu ) - len, "^n%d. %d минут", ++ item, g_times[ i ] ) } len += formatex( menu[ len ], charsmax( menu ) - len, "^n^n0. Выход" ) show_menu( id, keys, menu, _, "gag_time_menu" ) } public handler_gag_time_menu( id, key ) { switch( key ) { case 0..4: { g_user_time[ id ] = g_times[ key ] show_gag_main_menu( id, 0 ) } } } save_gag(id) { new g_steamid[32] get_user_authid(id, g_steamid, charsmax(g_steamid)) if (db_steamid[id][0] && !equal(g_steamid, db_steamid[id])) { if (db_slot_i >= sizeof db_steamid) db_slot_i = get_maxplayers()+1 copy(db_steamid[db_slot_i], charsmax(db_steamid[]), db_steamid[id]) db_gag[db_slot_i] = db_gag[id] db_slot_i++ } copy(db_steamid[id], charsmax(db_steamid[]), g_steamid) db_gag[id] = g_user_gagged[id] } load_gag(id) { new g_steamid[32] get_user_authid(id, g_steamid, charsmax(g_steamid)) static i for (i = 0; i < sizeof db_steamid; i++) { if (equal(g_steamid, db_steamid[i])) { g_user_gagged[id] = db_gag[i] return; } } }
Отредактировал: Virtes73, - 8.2.2016, 15:32
|
|
|
podbot |
8.2.2016, 15:55
Сообщение
|
vtc старый поставь)
|
|
|
|
islam20 |
3.4.2017, 4:20
Сообщение
|
Спасибо за плагин работает супер
|
|
|
|