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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.
3 страниц V   1 2 »

amx_gag

Zoroark
сообщение 25.10.2013, 18:16
Сообщение #1
Стаж: 13 лет

Сообщений: 128
Благодарностей: 5
Полезность: 0

Всем привет!
Кто то знает где можно скачать плагин гаг, которым можно заблокировать чат и микро игроку (гаг будет стоять, даже если игрок перезайдет или смениться карта)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Zoroark
сообщение 25.10.2013, 19:07
Сообщение #2
Стаж: 13 лет

Сообщений: 128
Благодарностей: 5
Полезность: 0

Или кто может переделать на такой?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 25.10.2013, 19:27
Сообщение #3


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Возьми любой и настрой дпрото.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kR1m1naL
сообщение 25.10.2013, 19:32
Сообщение #4


Стаж: 13 лет

Сообщений: 280
Благодарностей: 42
Полезность: < 0

Код:
#include < amxmodx >
#include < amxmisc >
#include < engine >

#define DEFAULT_TIME 600.0 // In Seconds

enum ( <<= 1 ) {
GAG_CHAT = 1,
GAG_TEAMSAY,
GAG_VOICE
};

enum _:GagData {
GAG_AUTHID[ 35 ],
GAG_TIME,
GAG_START,
GAG_FLAGS
};

new g_szAuthid[ 33 ][ 35 ]; // STEAM_0:X:XXXXXXXX
new g_iThinker, g_iGagged;
new bool:g_bColoredMenus, Trie:g_tArrayPos, Array:g_aGagData, Array:g_aGagTimes, g_iTotalGagTimes;
new g_iMenuOption[ 33 ], g_iMenuPosition[ 33 ], g_iMenuPlayers[ 33 ][ 32 ], g_iMenuFlags[ 33 ];

public plugin_init( ) {
register_plugin( "AMXX Gag", "1.3", "xPaw & Exolent" );

register_clcmd( "say", "CmdSay" );
register_clcmd( "say_team", "CmdTeamSay" );

register_concmd( "amx_gag", "CmdGagPlayer", ADMIN_KICK, "<nick or #userid> <time> <a|b|c>" );
register_concmd( "amx_ungag", "CmdUnGagPlayer", ADMIN_KICK, "<nick or #userid>" );
register_concmd( "amx_gagmenu", "CmdGagMenu", ADMIN_KICK, "- displays gag menu" );
register_srvcmd( "amx_gag_times", "CmdSetBanTimes" );

register_menu( "Gag Menu", 1023, "ActionGagMenu" );
register_menu( "Gag Flags", 1023, "ActionGagFlags" );
register_message( get_user_msgid( "SayText" ), "MessageSayText" );

g_tArrayPos = TrieCreate( );
g_aGagData = ArrayCreate( GagData );
g_aGagTimes = ArrayCreate( );
g_bColoredMenus = bool:colored_menus( );

// this is used for ungag in the menu
ArrayPushCell( g_aGagTimes, 0 );

// Gag times for the gag menu (amx_gagmenu)
// Default values: 60 300 600 1800 3600 7200 86400

// Load up standart times
ArrayPushCell( g_aGagTimes, 60 );
ArrayPushCell( g_aGagTimes, 300 );
ArrayPushCell( g_aGagTimes, 600 );
ArrayPushCell( g_aGagTimes, 1800 );
ArrayPushCell( g_aGagTimes, 3600 );
ArrayPushCell( g_aGagTimes, 7200 );
ArrayPushCell( g_aGagTimes, 86400 );

g_iTotalGagTimes = ArraySize( g_aGagTimes );

// Set up entity-thinker
new const szClassname[ ] = "gag_thinker";

g_iThinker = create_entity( "info_target" );
entity_set_string( g_iThinker, EV_SZ_classname, szClassname );

register_think( szClassname, "FwdThink" );
}

public CmdSetBanTimes( ) {
new iArgs = read_argc( );

if( iArgs <= 1 ) {
server_print( "Usage: amx_gag_times <time1> [time2] [time3] ..." );

return PLUGIN_HANDLED;
}

ArrayClear( g_aGagTimes );

// this is used for ungag in the menu
ArrayPushCell( g_aGagTimes, 0 );

new szBuffer[ 32 ], iTime;
for( new i = 1; i < iArgs; i++ ) {
read_argv( i, szBuffer, 31 );

if( !is_str_num( szBuffer ) ) {
Color_Print(i, "^1[^4Инфо^1] Число должно быть целым^3!")

continue;
}

iTime = str_to_num( szBuffer );

if( iTime <= 0 ) {
Color_Print(i, "^1[^4Инфо^1] Число должно быть больше нуля^3!")

continue;
}

if( iTime > 86400 ) {
Color_Print(i, "^1[^4Инфо^1] Максимальное число - 86400!")

continue;
}

ArrayPushCell( g_aGagTimes, iTime );
}

g_iTotalGagTimes = ArraySize( g_aGagTimes );

return PLUGIN_HANDLED;
}

public plugin_end( ) {
TrieDestroy( g_tArrayPos );
ArrayDestroy( g_aGagData );
ArrayDestroy( g_aGagTimes );
}

public client_putinserver( id ) {
if( CheckGagFlag( id, GAG_VOICE ) )
set_speak( id, SPEAK_MUTED );

// default flags to "abc"
g_iMenuFlags[ id ] = GAG_CHAT | GAG_TEAMSAY | GAG_VOICE;
}

public client_authorized( id )
get_user_authid( id, g_szAuthid[ id ], 34 );

public client_disconnect( id ) {
if( TrieKeyExists( g_tArrayPos, g_szAuthid[ id ] ) ) {
new szName[ 32 ];
get_user_name( id, szName, 31 );

new iPlayers[ 32 ], iNum, iPlayer;
get_players( iPlayers, iNum, "ch" );

for( new i; i < iNum; i++ ) {
iPlayer = iPlayers[ i ];

if( get_user_flags( iPlayer ) & ADMIN_KICK )
Color_Print(i, "^1[^4Инфо^1] Заблокированый игрок ^"^4%s<%s>^" ^1отключился!", szName, g_szAuthid[ id ])
}
}

g_szAuthid[ id ][ 0 ] = '^0';
}

public client_infochanged( id ) {
if( !CheckGagFlag( id, ( GAG_CHAT | GAG_TEAMSAY ) ) )
return;

static const name[ ] = "name";

static szNewName[ 32 ], szOldName[ 32 ];
get_user_info( id, name, szNewName, 31 );
get_user_name( id, szOldName, 31 );

if( !equal( szNewName, szOldName ) ) {
Color_Print(id, "^1[^4Инфо^1] Заблокированые игроки не могут менять ник!")

set_user_info( id, name, szOldName );
}
}

public MessageSayText( ) {
static const Cstrike_Name_Change[ ] = "#Cstrike_Name_Change";

new szMessage[ sizeof( Cstrike_Name_Change ) + 1 ];
get_msg_arg_string( 2, szMessage, sizeof( szMessage ) - 1 );

if( equal( szMessage, Cstrike_Name_Change ) ) {
new szName[ 32 ], id;
for( new i = 3; i <= 4; i++ ) {
get_msg_arg_string( i, szName, 31 );

id = get_user_index( szName );

if( is_user_connected( id ) ) {
if( CheckGagFlag( id, ( GAG_CHAT | GAG_TEAMSAY ) ) )
return PLUGIN_HANDLED;

break;
}
}
}

return PLUGIN_CONTINUE;
}

public FwdThink( const iEntity ) {
if( !g_iGagged )
return;

new Float:fGametime;
fGametime = get_gametime( );

new data[ GagData ], id, szName[ 32 ];
for( new i = 0; i < g_iGagged; i++ ) {
ArrayGetArray( g_aGagData, i, data );

if( ( Float:data[ GAG_START ] + Float:data[ GAG_TIME ] - 0.5 ) <= fGametime ) {
id = find_player( "c", data[ GAG_AUTHID ] );

if( is_user_connected( id ) ) {
get_user_name( id, szName, 31 );

Color_Print(id, "^1[^4Инфо^1] Игрок ^"%s^" разблокирован.", szName)
}

DeleteGag( i );

i--;
}
}

if( !g_iGagged )
return;

new Float:flNextTime = 999999.9;
for( new i = 0; i < g_iGagged; i++ ) {
ArrayGetArray( g_aGagData, i, data );

flNextTime = floatmin( flNextTime, Float:data[ GAG_START ] + Float:data[ GAG_TIME ] );
}

entity_set_float( iEntity, EV_FL_nextthink, flNextTime );
}

public CmdSay( const id )
return CheckSay( id, 0 );

public CmdTeamSay( const id )
return CheckSay( id, 1 );

CheckSay( const id, const bTeam ) {
new iArrayPos;
if( TrieGetCell( g_tArrayPos, g_szAuthid[ id ], iArrayPos ) ) {
new data[ GagData ];
ArrayGetArray( g_aGagData, iArrayPos, data );

new const iFlags[ ] = { GAG_CHAT, GAG_TEAMSAY };

if( data[ GAG_FLAGS ] & iFlags[ bTeam ] ) {
new szInfo[ 32 ], iLen, iTime = floatround( ( Float:data[ GAG_START ] + Float:data[ GAG_TIME ] ) - get_gametime( ) ), iMinutes = iTime / 60, iSeconds = iTime % 60;

if( iMinutes > 0 )
iLen = formatex( szInfo, 31, "%i Минут", iMinutes, iMinutes == 1 ? "" : "s" );
if( iSeconds > 0 )
formatex( szInfo[ iLen ], 31 - iLen, "%s%i Секунд", iLen ? " and " : "", iSeconds, iSeconds == 1 ? "" : "s" );

client_print( id, print_chat, "Осталось %s !", szInfo );
client_print( id, print_center, "** Тебя заблокировали в %s чате! **", bTeam ? " team" : "" );

return PLUGIN_HANDLED;
}
}

return PLUGIN_CONTINUE;
}

public CmdGagPlayer( const id, const iLevel, const iCid ) {
if( !cmd_access( id, iLevel, iCid, 2 ) ) {
console_print( id, "Флаги: a - Чат | b - Командный чат | c - Голос" );

return PLUGIN_HANDLED;
}

new szArg[ 32 ];
read_argv( 1, szArg, 31 );

new iPlayer = cmd_target( id, szArg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS );

if( !iPlayer )
return PLUGIN_HANDLED;

new szName[ 20 ];
get_user_name( iPlayer, szName, 19 );

if( TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ) {
console_print( id, "Игрок ^"%s^" уже заблокирован!", szName );

return PLUGIN_HANDLED;
}

new szFlags[ 4 ], Float:flGagTime;
read_argv( 2, szArg, 31 );

if( !szArg[ 0 ] ) { // No time entered
flGagTime = DEFAULT_TIME;

formatex( szFlags, 3, "abc" );
} else {
if( is_str_num( szArg ) ) { // Seconds entered
flGagTime = floatstr( szArg );

if( flGagTime > 86400.0 )
flGagTime = 86400.0;
} else {
console_print( id, "Время должно быть в секундах!" );

return PLUGIN_HANDLED;
}

read_argv( 3, szArg, 31 );

if( !szArg[ 0 ] ) // No flag entered
formatex( szFlags, 3, "abc" );
else
formatex( szFlags, 3, szArg );
}

new iFlags = read_flags( szFlags );

new data[ GagData ];
data[ GAG_START ] = _:get_gametime( );
data[ GAG_TIME ] = _:flGagTime;
data[ GAG_FLAGS ] = iFlags;
copy( data[ GAG_AUTHID ], 34, g_szAuthid[ iPlayer ] );

TrieSetCell( g_tArrayPos, g_szAuthid[ iPlayer ], g_iGagged );
ArrayPushArray( g_aGagData, data );

new szFrom[ 64 ];

if( iFlags & GAG_CHAT )
formatex( szFrom, 63, "" );

if( iFlags & GAG_TEAMSAY ) {
if( !szFrom[ 0 ] )
formatex( szFrom, 63, "" );
else
format( szFrom, 63, "%s ", szFrom );
}

if( iFlags & GAG_VOICE ) {
set_speak( iPlayer, SPEAK_MUTED );

if( !szFrom[ 0 ] )
formatex( szFrom, 63, "" );
else
format( szFrom, 63, "%s ", szFrom );
}

g_iGagged++;

new Float:flGametime = get_gametime( ), Float:flNextThink;
flNextThink = entity_get_float( g_iThinker, EV_FL_nextthink );

if( !flNextThink || flNextThink > ( flGametime + flGagTime ) )
entity_set_float( g_iThinker, EV_FL_nextthink, flGametime + flGagTime );

new szInfo[ 32 ], szAdmin[ 20 ], iTime = floatround( flGagTime ), iMinutes = iTime / 60, iSeconds = iTime % 60;
get_user_name( id, szAdmin, 19 );

if( !iMinutes )
formatex( szInfo, 31, "%i секунд%s", iSeconds, iSeconds == 1 ? "" : "s" );
else
formatex( szInfo, 31, "%i минут%s", iMinutes, iMinutes == 1 ? "" : "s" );

show_activity( id, szAdmin, "Заблокировал %s говорить на %s ", szName, szInfo, szFrom );

console_print( id, "Вы заблокировали ^"%s^" (%s) !", szName, szFrom );

log_amx( "Gag: ^"%s<%s>^" заблокировал ^"%s<%s>^" на %i минут. ", szAdmin, g_szAuthid[ id ], szName, g_szAuthid[ iPlayer ], floatround( flGagTime / 60 ), szFrom );

return PLUGIN_HANDLED;
}

public CmdUnGagPlayer( const id, const iLevel, const iCid ) {
if( !cmd_access( id, iLevel, iCid, 2 ) )
return PLUGIN_HANDLED;

new szArg[ 32 ];
read_argv( 1, szArg, 31 );

if( equali( szArg, "@all" ) ) {
if( !g_iGagged ) {
console_print( id, "Нету заблокированых игроков!" );

return PLUGIN_HANDLED;
}

while( g_iGagged ) DeleteGag( 0 ); // Excellent by Exolent

if( entity_get_float( g_iThinker, EV_FL_nextthink ) > 0.0 )
entity_set_float( g_iThinker, EV_FL_nextthink, 0.0 );

console_print( id, "Вы разблокировали всех игроков!" );

new szAdmin[ 32 ];
get_user_name( id, szAdmin, 31 );

show_activity( id, szAdmin, "Разблокировал всех игроков." );

log_amx( "UnGag: ^"%s<%s>^" разблокировал всех игроков.", szAdmin, g_szAuthid[ id ] );

return PLUGIN_HANDLED;
}

new iPlayer = cmd_target( id, szArg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS );

if( !iPlayer )
return PLUGIN_HANDLED;

new szName[ 32 ];
get_user_name( iPlayer, szName, 31 );

new iArrayPos;
if( !TrieGetCell( g_tArrayPos, g_szAuthid[ iPlayer ], iArrayPos ) ) {
console_print( id, "Игрок ^"%s^" не заблокирован!", szName );

return PLUGIN_HANDLED;
}

DeleteGag( iArrayPos );

new szAdmin[ 32 ];
get_user_name( id, szAdmin, 31 );

show_activity( id, szAdmin, "Разблокировал %s.", szName );

console_print( id, "Вы разблокировали ^"%s^" !", szName );

log_amx( "UnGag: ^"%s<%s>^" разблокировал ^"%s<%s>^"", szAdmin, g_szAuthid[ id ], szName, g_szAuthid[ iPlayer ] );

return PLUGIN_HANDLED;
}

public CmdGagMenu( const id, const iLevel, const iCid ) {
if( !cmd_access( id, iLevel, iCid, 1 ) )
return PLUGIN_HANDLED;

g_iMenuOption[ id ] = 0;
arrayset( g_iMenuPlayers[ id ], 0, 32 );

DisplayGagMenu( id, g_iMenuPosition[ id ] = 0 );

return PLUGIN_HANDLED;
}

#define PERPAGE 6

public ActionGagMenu( const id, const iKey ) {
switch( iKey ) {
case 6: DisplayGagFlags( id );
case 7: {
++g_iMenuOption[ id ];
g_iMenuOption[ id ] %= g_iTotalGagTimes;

DisplayGagMenu( id, g_iMenuPosition[ id ] );
}
case 8: DisplayGagMenu( id, ++g_iMenuPosition[ id ] );
case 9: DisplayGagMenu( id, --g_iMenuPosition[ id ] );
default: {
new iPlayer = g_iMenuPlayers[ id ][ g_iMenuPosition[ id ] * PERPAGE + iKey ];

if( !g_iMenuOption[ id ] )
client_cmd( id, "amx_ungag #%i", get_user_userid( iPlayer ) );
else {
new szFlags[ 4 ];
get_flags( g_iMenuFlags[ id ], szFlags, 3 );

client_cmd( id, "amx_gag #%i %i %s", get_user_userid( iPlayer ), ArrayGetCell( g_aGagTimes, g_iMenuOption[ id ] ), szFlags );
}

DisplayGagMenu( id, g_iMenuPosition[ id ] );
}
}
}

// I just copied this from AMXX Ban menu, so don't blame me :D
DisplayGagMenu( const id, iPosition ) {
if( iPosition < 0 ) {
arrayset( g_iMenuPlayers[ id ], 0, 32 );

return;
}

new iPlayers[ 32 ], iNum, iCount, szMenu[ 512 ], iPlayer, iFlags, szName[ 32 ];
get_players( iPlayers, iNum, "ch" ); // Ignore bots and hltv

new iStart = iPosition * PERPAGE;

if( iStart >= iNum )
iStart = iPosition = g_iMenuPosition[ id ] = 0;

new iEnd = iStart + PERPAGE, iKeys = MENU_KEY_0 | MENU_KEY_8;
new iLen = formatex( szMenu, 511, g_bColoredMenus ? "\rМеню блокировок\R%i/%i^n^n" : "Меню блокировок %i/%i^n^n", iPosition + 1, ( ( iNum + PERPAGE - 1 ) / PERPAGE ) );

new bool:bUngag = bool:!g_iMenuOption[ id ];

if( iEnd > iNum ) iEnd = iNum;

for( new i = iStart; i < iEnd; ++i ) {
iPlayer = iPlayers[ i ];
iFlags = get_user_flags( iPlayer );
get_user_name( iPlayer, szName, 31 );

if( iPlayer == id || ( iFlags & ADMIN_IMMUNITY ) || bUngag != TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ) {
++iCount;

if( g_bColoredMenus )
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\d%i. %s^n", iCount, szName );
else
iLen += formatex( szMenu[ iLen ], 511 - iLen, "#. %s^n", szName );
} else {
iKeys |= ( 1 << iCount );
++iCount;

iLen += formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "\r%i.\w %s\y%s\r%s^n" : "%i. %s%s%s^n", iCount, szName, TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ? " Заблокирован" : "", ( ~iFlags & ADMIN_USER ? " *" : "" ) );
}
}

g_iMenuPlayers[ id ] = iPlayers;

new szFlags[ 4 ];
get_flags( g_iMenuFlags[ id ], szFlags, 3 );

iLen += formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? ( bUngag ? "^n\d7. Флаги: %s" : "^n\r7.\y Флаги:\w %s" ) : ( bUngag ? "^n#. Флаги: %s" : "^n7. Флаги: %s" ), szFlags );

if( !bUngag )
{
iKeys |= MENU_KEY_7;

new iSeconds = ArrayGetCell( g_aGagTimes, g_iMenuOption[ id ] );
new iTime = iSeconds / 60;

iLen += formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r8.\y Время:\w %i %s^n" : "^n8. Заблокировать на %i %s^n", ( iSeconds > 60 ? iTime : iSeconds ), ( iSeconds > 60 ? "минут" : "секунд" ) );
}
else
iLen += copy( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r8.\w Разблокировать^n" : "^n8. Разблокировать^n" );

if( iEnd != iNum ) {
formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r9.\w Больше...^n\r0.\w %s" : "^n9. Больше...^n0. %s", iPosition ? "Назад" : "Выход" );
iKeys |= MENU_KEY_9;
} else
formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r0.\w %s" : "^n0. %s", iPosition ? "Back" : "Exit" );

show_menu( id, iKeys, szMenu, -1, "Gag Menu" );
}

public ActionGagFlags( const id, const iKey ) {
switch( iKey ) {
case 9: DisplayGagMenu( id, g_iMenuPosition[ id ] );
default: {
g_iMenuFlags[ id ] ^= ( 1 << iKey );

DisplayGagFlags( id );
}
}
}

DisplayGagFlags( const id ) {
new szMenu[ 512 ];
new iLen = copy( szMenu, 511, g_bColoredMenus ? "\rФлаги^n^n" : "Gag Flags^n^n" );

if( g_bColoredMenus ) {
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r1.\w Чат: %s^n", ( g_iMenuFlags[ id ] & GAG_CHAT ) ? "\yДа" : "\rНет" );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r2.\w Командный. Чат: %s^n", ( g_iMenuFlags[ id ] & GAG_TEAMSAY ) ? "\yДА" : "\rНет" );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r3.\w Голос: %s^n", ( g_iMenuFlags[ id ] & GAG_VOICE ) ? "\yДа" : "\rНет" );
} else {
iLen += formatex( szMenu[ iLen ], 511 - iLen, "1. Чат: %s^n", ( g_iMenuFlags[ id ] & GAG_CHAT ) ? "ДА" : "Нет" );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "2. Командный чат: %s^n", ( g_iMenuFlags[ id ] & GAG_TEAMSAY ) ? "Да" : "Нет" );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "3. Голос: %s^n", ( g_iMenuFlags[ id ] & GAG_VOICE ) ? "Да" : "Нет" );
}

copy( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r0. \wВернуться в меню" : "^n0. Back to Gag Menu" );


show_menu( id, ( MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_0 ), szMenu, -1, "Gag Flags" );
}

CheckGagFlag( const id, const iFlag ) {
new iArrayPos;

if( TrieGetCell( g_tArrayPos, g_szAuthid[ id ], iArrayPos ) ) {
new data[ GagData ];
ArrayGetArray( g_aGagData, iArrayPos, data );

return ( data[ GAG_FLAGS ] & iFlag );
}

return 0;
}

DeleteGag( const iArrayPos ) {
new data[ GagData ];
ArrayGetArray( g_aGagData, iArrayPos, data );

if( data[ GAG_FLAGS ] & GAG_VOICE ) {
new iPlayer = find_player( "c", data[ GAG_AUTHID ] );
if( is_user_connected( iPlayer ) )
set_speak( iPlayer, SPEAK_NORMAL );
}

TrieDeleteKey( g_tArrayPos, data[ GAG_AUTHID ] );
ArrayDeleteItem( g_aGagData, iArrayPos );
g_iGagged--;

for( new i = iArrayPos; i < g_iGagged; i++ ) {
ArrayGetArray( g_aGagData, i, data );
TrieSetCell( g_tArrayPos, data[ GAG_AUTHID ], i );
}
}

stock Color_Print(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 25.10.2013, 20:03
Сообщение #5
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

В этой версии вроде как мут слетает после смены карты...)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sambo
сообщение 25.10.2013, 21:09
Сообщение #6


Стаж: 14 лет

Сообщений: 847
Благодарностей: 200
Полезность: 477

Скрытый текст
_http://forums.alliedmods.net/showthread.php?t=101937

Поройся там уже 1.5 где то есть . В этом есть несколько багов . Нельзя на оченьдолгое время мут давать ( чат залипает вроде -точно не помню) , без стима айди не банит а точнее некоректно банит.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Zoroark
сообщение 25.10.2013, 21:25
Сообщение #7
Стаж: 13 лет

Сообщений: 128
Благодарностей: 5
Полезность: 0

Народ, кто сделает хорошо настроеный, скину денег)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sambo
сообщение 25.10.2013, 21:33
Сообщение #8


Стаж: 14 лет

Сообщений: 847
Благодарностей: 200
Полезность: 477

ставь 149 или новый дефолтные , баги не критичны .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Zoroark
сообщение 25.10.2013, 21:37
Сообщение #9
Стаж: 13 лет

Сообщений: 128
Благодарностей: 5
Полезность: 0

А тот что скинули ссылку v 1.5.0 норм?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Zoroark
сообщение 25.10.2013, 21:50
Сообщение #10
Стаж: 13 лет

Сообщений: 128
Благодарностей: 5
Полезность: 0

Скрытый текст
_http://forums.alliedmods.net/showthread.php?t=101937


Я поставил гаг, но всеравно игрок и говорит и пишет. Много багов.

Кто то есть кто может переделать плагин?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sambo
сообщение 25.10.2013, 22:03
Сообщение #11


Стаж: 14 лет

Сообщений: 847
Благодарностей: 200
Полезность: 477

amx_who что показывает у игрока ? Если стим айди лан то его может не забанить . При бане флаги бана укажите правельно (a,b,c) . Стоит 149 , все норм . Ставь 150 , Я не тестил ее. Отпишитесь как работает =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Zoroark
сообщение 25.10.2013, 22:20
Сообщение #12
Стаж: 13 лет

Сообщений: 128
Благодарностей: 5
Полезность: 0

Поставил я 150 и багов много. Банил через меню и так добавлял стимайди, игрок всеравно пишет и говорит в микро. После реконнекта гаг спадает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kasIIep
сообщение 26.10.2013, 2:44
Сообщение #13
Стаж: 17 лет

Сообщений: 333
Благодарностей: 88
Полезность: 209

Меценат Меценат

Цитата(Zoroark @ 26.10.2013, 6:50) *
Скрытый текст
_http://forums.alliedmods.net/showthread.php?t=101937


Я поставил гаг, но всеравно игрок и говорит и пишет. Много багов.

Кто то есть кто может переделать плагин?

стоит этот проблем небыло, настрой dproto
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя primm
сообщение 26.10.2013, 4:38
Сообщение #14


Стаж: 16 лет
Город: Москва

Сообщений: 517
Благодарностей: 140
Полезность: 520

Zoroark,Поставь плагин "amx_gag" в самый верх в "plugins.ini".
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 26.10.2013, 7:52
Сообщение #15
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Страшно багонутое изделие.
Пробовал все версии которые идут с мускулем.
Гаги не удаляются из базы.. то есть 50/50.. некоторые удаляются а некоторые продолжают висеть до посинения пока сам не удалишь..
Удивительно что такой необходимый плагин еще никто не взялся доработать или написать простой аналог без багов
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 26.10.2013, 8:15
Сообщение #16


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(xSav @ 26.10.2013, 12:52) *
Страшно багонутое изделие.
Пробовал все версии которые идут с мускулем.
Гаги не удаляются из базы.. то есть 50/50.. некоторые удаляются а некоторые продолжают висеть до посинения пока сам не удалишь..
Удивительно что такой необходимый плагин еще никто не взялся доработать или написать простой аналог без багов

Есть такой, но, платная версия.


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя loler222
сообщение 26.10.2013, 8:30
Сообщение #17
Стаж: 12 лет

Сообщений: 161
Благодарностей: 33
Полезность: 160

Тоже бы не отказался от гага без бага
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 26.10.2013, 8:45
Сообщение #18
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Цитата(winzh1 @ 26.10.2013, 10:15) *
Есть такой, но, платная версия.


Сто лет не надо творение без исходника..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 26.10.2013, 8:47
Сообщение #19
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

Установлен 1.4.9 уже долгое время, где вы там баги увидели.. (гагнутые игроки хранятся в файле)

- ставите в самый верх
- если у вас на сервере есть игроки с 47 протокола, то в исходнике нужно сменить на гаг по ип

Цитата(xSav @ 26.10.2013, 8:52) *
Гаги не удаляются из базы.. то есть 50/50.. некоторые удаляются а некоторые продолжают висеть до посинения пока сам не удалишь..

в 1.5.0 это пофиксили


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 26.10.2013, 8:49
Сообщение #20
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

iLLuSioN,
Может конечно Вам и пофиксили а мне взяв версию с гитхаба последнюю не удалось найти фиксов :) Вам дать скриншоты с базы с неудаленными гагами ?
Чтоб не думали что поставил не ту версию пожалста
Код
10:48:18  [ 15] Admin Spectator ESP mi  1.6_eng     KoST, Asmodai     admin_spec_esp_  running  
               [ 16] AMXX Gag                1.5.0       xPaw & Exolent
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V   1 2 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: