Участник
Пользователь
- Сообщения
- 166
- Реакции
- 34
- Помог
- 3 раз(а)
- Ошибка
-
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(85) : warning 213: tag mismatch
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(89) : warning 213: tag mismatch
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(95) : warning 213: tag mismatch
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(189) : warning 213: tag mismatch
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(195) : warning 213: tag mismatch
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(199) : warning 213: tag mismatch
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(202) : warning 213: tag mismatch
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(220) : warning 213: tag mismatch
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(27) : warning 203: symbol is never used: "ColorChat"
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(64) : warning 203: symbol is never used: "ColorSelection"
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(59) : warning 203: symbol is never used: "FindPlayer"
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(66) : warning 203: symbol is never used: "ShowColorMessage"
// C:\Users\test\cstrike\addons\amxmodx\scripting\amx_admingag.sma(70) : warning 203: symbol is never used: "Team_Info"
// Header size: 856 bytes
// Code size: 6756 bytes
// Data size: 9560 bytes
// Stack/heap size: 16384 bytes
// Total requirements: 33556 bytes
//
// 14 Warnings.
// Done.
//
// Compilation Time: 0,77 sec
- Компилятор
- WEB-компилятор
- Amx Mod X
- 1.10.0
- Исходный код
-
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <colorchat>
#define PLUGIN "Admin Gag"
#define VERSION "1.0"
#define AUTHOR "fomeN"
#define GAG_IMMUNITY ADMIN_IMMUNITY
#define GAG_ACCESS ADMIN_KICK
#define MAX_PLAYERS 32
#define TID 88897
new g_user_menu_page[ MAX_PLAYERS + 1 ],
g_user_menu_players[ MAX_PLAYERS + 1 ][ MAX_PLAYERS ],
g_user_time[ MAX_PLAYERS + 1 ]
new bool:g_user_gagged[ MAX_PLAYERS + 1 ]
new g_times[] = { 5, 10, 15, 30, 45, 60 }
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_connect( id )
_remove_user_gag( id )
public client_disconnect( id )
_remove_user_gag( id )
_remove_user_gag( id )
{
g_user_time[ id ] = g_times[ 0 ]
g_user_gagged[ id ] = false
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 )
{
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 )
}
}
client_print_color( id, BLUE, "^3[Gag]^1 Вы попросили прощение у администраторов." )
return PLUGIN_HANDLED
}
{
client_print_color( id, RED, "^3[Gag]^1 Вам запрещено писать в чат, можете попросить прощение командой ^3/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 ] = true
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 )
}
}
}
Доброе всем утро. Ребят подскажите пожалуйста как исправить данные ошибки? И критичны ли они? Может стоит найти альтернативную замену?
Плагин работает
Плагин работает
В этой теме было размещено решение! Перейти к решению.