- | Afiseaza codul
/* amx_autogag_time 3 // minutele pentru gag cand ia autogag amx_gag_minute_limit 300 // limita maxima pentru gag minute amx_gag_minute_in_seconds 60 // minute in secunde amx_gag_tagname 1 // pune taguri la gag amx_admingag 0 // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti amx_maxwords 200 // lista maxima de cuvinte in gag_words.ini amx_gagtag * // tag-ul din chat amx_gag < nume > < timp in minute > - dai gag unui jucator pentru x minute amx_ungag < nume > ii scoti gag-ul unui jucator /gag < nume > < timp in minute > - dai gag unui jucator pentru x minute /ungag < nume > ii scoti gag-ul unui jucator Cand un jucator cu gag iese de pe server va fi salvat intr-un fisier Atunci cand se va conecta pe server va avea gag exact cate minute mai avea cand a iesit de pe server Autor: Cristi. C */ #include < amxmodx > #include < amxmisc > #include < fakemeta > #include < engine > #include < nvault > #include < CC_ColorChat > #pragma semicolon 1 #define PLUGIN "Special Admin Gag" #define VERSION "1.0" #define COMMAND_ACCESS ADMIN_KICK // accesu adminilor pentru comanda #define MAX_PLAYERS 32 + 1 enum { INFO_NAME, INFO_IP, INFO_AUTHID }; new const bars[ ] = "/"; new command[ ] [ ] = { "/gag", "/ungag" }; new Caccess[ ] = { COMMAND_ACCESS, COMMAND_ACCESS }; new const gGagTag[ ] = "Gag#"; new const gGagFileName[ ] = "gag_words.ini"; new const gLogFileName[ ] = "GagLog.log"; new const gGagThinkerClassname[ ] = "GagThinker_"; new const gGagVaultName[ ] = "GaggedPlayers"; new const gGaggedSound[ ] = "misc/gag_dat.wav"; new const gUnGaggedSound[ ] = "misc/gag_scos.wav"; new const gHalfLifeGaggedSounds[ ][ ] = { "barney/youtalkmuch.wav", "scientist/stopasking.wav", "scientist/shutup.wav", "scientist/shutup2.wav", "hgrunt/silence!.wav" }; new PlayerGagged[ MAX_PLAYERS ]; new PlayerGagTime[ MAX_PLAYERS ]; new JoinTime[ MAX_PLAYERS ]; new szName[ 33 ]; new g_Words[ 562 ] [ 32 ], g_Count; new szOldName[ MAX_PLAYERS ] [ 40 ]; new gCvarSwearGagTime; new gCvarGagMinuteLimit; new gCvarGagMinuteInSeconds; new gCvarAdminGag; new gCvarTagName; new gCvarWords; new gCvarTag; new gMaxPlayers; new gVault; public plugin_init( ) { register_plugin( PLUGIN, PLUGIN, "Cristi .C" ); register_concmd( "amx_gag", "CommandGag" ); register_concmd( "amx_ungag", "CommandUngag" ); register_clcmd( "say", "CheckGag" ); register_clcmd( "say_team", "CheckGag" ); register_clcmd( "say", "command_chat" ); GagThinker( ); register_think( gGagThinkerClassname, "Forward_GagThinker" ); gCvarSwearGagTime = register_cvar( "amx_autogag_time", "3" ); // minutele pentru gag cand ia autogag gCvarGagMinuteLimit = register_cvar( "amx_gag_minute_limit", "300" ); // limita maxima pentru gag minute gCvarGagMinuteInSeconds = register_cvar( "amx_gag_minute_in_seconds", "60" ); // minute in secunde gCvarTagName = register_cvar( "amx_gag_tagname", "1" ); // pune taguri la gag gCvarAdminGag = register_cvar( "amx_admingag", "0" ); // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti gCvarWords = register_cvar( "amx_maxwords", "200" ); // lista maxima de cuvinte in gag_words.ini gCvarTag = register_cvar( "amx_gagtag", "*" ); // tag-ul din chat gMaxPlayers = get_maxplayers( ); } public plugin_precache( ) { new i; for( i = 0; i < sizeof gHalfLifeGaggedSounds; i++ ) { precache_sound( gHalfLifeGaggedSounds[ i ] ); } precache_sound( gGaggedSound ); precache_sound( gUnGaggedSound ); } public plugin_cfg( ) { static szConfigDir[ 64 ], iFile[ 64 ]; get_localinfo ( "amxx_configsdir", szConfigDir, 63 ); formatex ( iFile , charsmax( iFile ) , "%s/%s" , szConfigDir, gGagFileName ); if( !file_exists( iFile ) ) { write_file( iFile, "# Pune aici cuvintele jignitoare sau reclamele", -1 ); log_to_file( gLogFileName, "Fisierul <%s> nu exista! Creez unul nou acum...", iFile ); } new szBuffer[ 128 ]; new szFile = fopen( iFile, "rt" ); while( !feof( szFile ) ) { fgets( szFile, szBuffer, charsmax( szBuffer ) ); if( szBuffer[ 0 ] == '#' ) { continue; } parse( szBuffer, g_Words[ g_Count ], sizeof g_Words[ ] - 1 ); g_Count++; if( g_Count >= get_pcvar_num ( gCvarWords ) ) { break; } } fclose( szFile ); } public client_putinserver( id ) { if ( is_user_connected( id ) ) { JoinTime[ id ] = get_systime( ); } } public client_disconnect( id ) { if ( PlayerGagged[ id ] == 1 ) { ColorChat( 0, RED, "^4%s^1 Jucatorul cu gag^4 %s^1(^3%s^1|^3%s^1), s-a deconectat!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); log_to_file( gLogFileName, "[EXIT]Jucatorul cu gag <%s><%s><%s>, s-a deconectat!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); } JoinTime[ id ] = 0 ; SaveGag( id ); } public client_connect( id ) { LoadGag( id ); } public command_chat( index ) { static szArg[ 192 ], command2[ 192 ]; read_args( szArg, charsmax ( szArg ) ); if( ! szArg [ 0 ] ) return PLUGIN_CONTINUE; remove_quotes( szArg[0] ); for( new x; x < sizeof command; x++ ) { if ( equal ( szArg, command [ x ], strlen ( command [ x ] ) ) ) { if ( get_user_flags ( index ) & Caccess [ x ] ) { replace( szArg, charsmax ( szArg ), bars, "" ); formatex( command2, charsmax(command2), "amx_%s", szArg ); client_cmd( index, command2 ); } break; } } return PLUGIN_CONTINUE; } public CheckGag( id ) { new szSaid[ 300 ]; read_args( szSaid, charsmax( szSaid ) ); remove_quotes( szSaid ); if( !UTIL_IsValidMessage( szSaid ) ) { return PLUGIN_HANDLED; } if ( PlayerGagged[ id ] == 1 ) { PlayerGagged[ id ] = 1; ColorChat( id, RED, "^4%s^1 Ai primit Gag pentru limbaj vulgar, asteapta^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] ); client_cmd( id, "speak ^"%s^"", gHalfLifeGaggedSounds[ random_num( 0, charsmax( gHalfLifeGaggedSounds ) ) ] ); return PLUGIN_HANDLED; } else { new i; for( i = 0; i < get_pcvar_num ( gCvarWords ); i++ ) { if( containi( szSaid, g_Words[ i ] ) != -1 ) { if( get_pcvar_num( gCvarAdminGag ) == 0 ) { if ( is_user_admin ( id ) ) { return 1; } } get_user_name( id, szName, sizeof ( szName ) -1 ); if ( get_pcvar_num( gCvarTagName ) == 1 ) { client_cmd( id, "name ^"%s %s^"", gGagTag, szName ); } szOldName[ id ] = szName; PlayerGagged[ id ] = 1; PlayerGagTime[ id ] = get_pcvar_num ( gCvarSwearGagTime ); set_speak( id, SPEAK_MUTED ); ColorChat( 0, RED, "^3%s^4 %s^1 (^3%s^1)^1 a primit AutoGag pentru limbaj sau reclama!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ) ); ColorChat( id, RED, "^4%s^1 Ai primit AutoGag pentru injuratura sau reclama! Timpul expira in:^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] ); ColorChat( id, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) ); log_to_file( gLogFileName, "[AUTOGAG]<%s><%s><%s> a luat AutoGag pentru ca a injurat sau a facut reclama!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); client_cmd( id, "speak ^"%s^"", gGaggedSound ); return PLUGIN_HANDLED; } } } return PLUGIN_CONTINUE; } public CommandGag( id ) { if( !(get_user_flags( id ) & COMMAND_ACCESS ) ) { client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) ); return 1; } new szArg[ 32 ], szMinutes[ 32 ]; read_argv( 1, szArg, charsmax ( szArg ) ); if( equal( szArg, "" ) ) { client_cmd( id, "echo amx_gag < nume > < minute > < motiv >!" ); return 1; } new iPlayer = cmd_target( id, szArg, CMDTARGET_ALLOW_SELF ); if( !iPlayer ) { client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) ); return 1; } if ( get_pcvar_num( gCvarAdminGag ) == 0 ) { if ( is_user_admin( iPlayer ) ) { client_cmd( id, "echo %s Nu poti da gag la Admini!", get_tag( ) ); return 1; } } read_argv( 2, szMinutes, charsmax ( szMinutes ) ); new iMinutes = str_to_num( szMinutes ); if ( iMinutes > get_pcvar_num ( gCvarGagMinuteLimit ) ) { console_print( id, "%s Ai setat %d minute, iar limita maxima de minute este %d! Setare automata pe %d.", get_tag( ), iMinutes, get_pcvar_float ( gCvarGagMinuteLimit ), get_pcvar_float ( gCvarGagMinuteLimit ) ); iMinutes = get_pcvar_num( gCvarGagMinuteLimit ) ; } get_user_name( iPlayer, szName, sizeof ( szName ) -1 ); szOldName[ iPlayer ] = szName; if( PlayerGagged[ iPlayer ] == 1 ) { client_cmd( id, "echo %s Jucatorul %s are deja Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) ); return 1; } if ( get_pcvar_num( gCvarTagName ) == 1 ) { client_cmd( iPlayer, "name ^"%s %s^"", gGagTag, szName ); } PlayerGagged[ iPlayer ] = 1; PlayerGagTime[ iPlayer ] = iMinutes; set_speak( iPlayer, SPEAK_MUTED ); ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Gag^3 %s^1(^3%s^1) pentru^4 %d^1 minute", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), iMinutes ); ColorChat( iPlayer, RED, "^4%s^1 Ai primit Gag pentru ca ai injurat sau ai facut reclama!", get_tag( ) ); ColorChat( iPlayer, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) ); log_to_file( gLogFileName, "[GAG]%s i-a dat gag lui <%s><%s><%s> pentru <%d> minute", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ), iMinutes ); client_cmd( iPlayer, "speak ^"%s^"", gGaggedSound ); return PLUGIN_HANDLED; } public CommandUngag( id ) { if( !(get_user_flags( id ) & COMMAND_ACCESS ) ) { client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) ); return 1; } new szArg[ 32 ]; read_argv( 1, szArg, charsmax( szArg ) ); if( equal( szArg, "" ) ) { client_cmd( id, "echo amx_ungag < nume > !" ); return 1; } new iPlayer = cmd_target ( id, szArg, CMDTARGET_ALLOW_SELF ); if( !iPlayer ) { client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) ); return 1; } if( PlayerGagged[ iPlayer ] == 0 ) { console_print( id, "%s Jucatorul %s nu are Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) ); return 1; } if ( get_pcvar_num ( gCvarTagName ) == 1 ) { client_cmd( iPlayer, "name ^"%s^"", szOldName[ iPlayer ] ); } PlayerGagged[ iPlayer ] = 0; PlayerGagTime[ iPlayer ] = 0; set_speak( iPlayer, SPEAK_NORMAL ); ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Ungag^3 %s^1(^3%s^1|^3%s^1)", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) ); ColorChat( iPlayer, RED, "^4%s^1 Ai primit Ungag de la adminul: ^4%s^1, ai grija la limbaj data viitoare!", get_tag( ), GetInfo( id, INFO_NAME ) ); log_to_file( gLogFileName, "[UNGAG]<%s> i-a dat ungag lui <%s><%s><%s>", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) ); client_cmd( iPlayer, "speak ^"%s^"", gUnGaggedSound ); return PLUGIN_HANDLED; } public Forward_GagThinker( iEntity ) { if ( pev_valid( iEntity ) ) { set_pev( iEntity, pev_nextthink, get_gametime( ) + 1.0 ) ; new id; for ( id = 1; id <= gMaxPlayers; id++ ) { if ( is_user_connected ( id ) && ! is_user_bot( id ) && PlayerGagged[ id ] == 1 && PlayerGagTime[ id ] > 0 && ( ( get_systime( ) - JoinTime[ id ] ) >= get_pcvar_num ( gCvarGagMinuteInSeconds ) ) ) { JoinTime[ id ] = get_systime( ); PlayerGagTime[ id ] -= 1; if ( PlayerGagTime[ id ] <= 0 ) { PlayerGagTime[ id ] = 0; PlayerGagged[ id ] = 0; set_speak( id, SPEAK_NORMAL ); ColorChat( id, RED, "^4%s^3 Ai primit UnGag, ai grija la limbaj data viitoare!", get_tag( ) ); log_to_file( gLogFileName, "[AUTOUNGAG]<%s> a primit AutoUnGag!", GetInfo( id, INFO_NAME ) ); client_cmd( id, "speak ^"%s^"", gUnGaggedSound ); client_cmd( id, "name ^"%s^"", szOldName[ id ] ); } } } } } stock SaveGag( id ) { gVault = nvault_open( gGagVaultName ); new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ]; get_user_ip( id, szIp, charsmax( szIp ) ); formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp ); formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] ); nvault_set( gVault, szVaultKey, szVaultData ); nvault_close( gVault ); } stock LoadGag( id ) { gVault = nvault_open( gGagVaultName ); new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ]; get_user_ip( id, szIp, charsmax ( szIp ) ); formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp ); formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] ); nvault_get( gVault, szVaultKey, szVaultData, charsmax ( szVaultData ) ); replace_all( szVaultData, charsmax( szVaultData ), "#", " " ); new iGagOn[ 32 ], iGagTime [ 32 ]; parse( szVaultData, iGagOn, charsmax ( iGagOn ), iGagTime, charsmax ( iGagTime ) ); PlayerGagged[ id ] = str_to_num ( iGagOn ); PlayerGagTime[ id ] = clamp ( str_to_num ( iGagTime ), 0, get_pcvar_num ( gCvarGagMinuteLimit ) ); nvault_close( gVault ); } stock GagThinker( ) { new iEntity = create_entity ( "info_target" ); if( ! pev_valid ( iEntity ) ) { return PLUGIN_HANDLED; } set_pev ( iEntity, pev_classname, gGagThinkerClassname ); set_pev ( iEntity, pev_nextthink, get_gametime( ) + 1.0 ); return PLUGIN_HANDLED; } stock get_tag( ) { new szTag [ 32 ]; get_pcvar_string( gCvarTag, szTag, sizeof ( szTag ) -1 ); return szTag; } stock GetInfo( id, const iInfo ) { new szInfoToReturn[ 64 ]; switch( iInfo ) { case INFO_NAME: { new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szName ); } case INFO_IP: { new szIp[ 32 ]; get_user_ip( id, szIp, sizeof ( szIp ) -1, 1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szIp ); } case INFO_AUTHID: { new szAuthId[ 35 ]; get_user_authid( id, szAuthId, sizeof ( szAuthId ) -1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szAuthId ); } } return szInfoToReturn; } stock bool:UTIL_IsValidMessage( const szSaid[ ] ) { new iLen = strlen( szSaid ); if( !iLen ) { return false; } for( new i = 0; i < iLen; i++ ) { if( szSaid[ i ] != ' ' ) { return true; } } return false; }
[inchis] Modificare plugin
Modificari necesare ale pluginurilor
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
- Ramb00
- Fost moderator
- Posts: 966
- Joined: 12 Feb 2014, 17:37
- Detinator Steam: Da
- Reputatie: Fost moderator ajutator
Nume anterior: Claudiu123 - Location: Calarasi
- Has thanked: 28 times
- Been thanked: 19 times
Salut vreau si eu sa imi modificati acest plugin de gag sa fie fara sunete!!
Multumesc!! Repede daca se poate :)
Last edited by sUperstar on 13 Mar 2014, 19:06, edited 2 times in total.
Reason: 1.3. Titlul trebuie sa fie concis si sa reflecte, pe cat de mult posibil, continutul. Nu mai sunt acceptate titlurile de genul "Cerere modificare plugin".
Reason: 1.3. Titlul trebuie sa fie concis si sa reflecte, pe cat de mult posibil, continutul. Nu mai sunt acceptate titlurile de genul "Cerere modificare plugin".
- YONTU
- Scripter eXtreamCS
- Posts: 2466
- Joined: 10 May 2013, 14:25
- Detinator Steam: Nu
- CS Status: Everyone is looking at ur shoes
- Reputatie: Moderator ajutator
Fost scripter eXtreamCS - Location: Gura Humorului
- Has thanked: 256 times
- Been thanked: 288 times
- Contact:
Mutat in sectiunea corespunzatoare !
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș
Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș
Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114
Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
- PapiLover
- Utilizator neserios (tepar)
- Posts: 1697
- Joined: 22 Aug 2013, 14:26
- Detinator Steam: Nu
- CS Status: n/a
- Detinator server CS: n/a
- SteamID: n/a
- Reputatie: Restrictie moderator
Utilizator neserios (tepar)
Fost Membru Club eXtreamCS (doua luni) - Has thanked: 33 times
- Been thanked: 28 times
- Contact:
- | Afiseaza codul
/* amx_autogag_time 3 // minutele pentru gag cand ia autogag amx_gag_minute_limit 300 // limita maxima pentru gag minute amx_gag_minute_in_seconds 60 // minute in secunde amx_gag_tagname 1 // pune taguri la gag amx_admingag 0 // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti amx_maxwords 200 // lista maxima de cuvinte in gag_words.ini amx_gagtag * // tag-ul din chat amx_gag < nume > < timp in minute > - dai gag unui jucator pentru x minute amx_ungag < nume > ii scoti gag-ul unui jucator /gag < nume > < timp in minute > - dai gag unui jucator pentru x minute /ungag < nume > ii scoti gag-ul unui jucator Cand un jucator cu gag iese de pe server va fi salvat intr-un fisier Atunci cand se va conecta pe server va avea gag exact cate minute mai avea cand a iesit de pe server Autor: Cristi. C */ #include < amxmodx > #include < amxmisc > #include < fakemeta > #include < engine > #include < nvault > #include < CC_ColorChat > #pragma semicolon 1 #define PLUGIN "Special Admin Gag" #define VERSION "1.0" #define COMMAND_ACCESS ADMIN_KICK // accesu adminilor pentru comanda #define MAX_PLAYERS 32 + 1 enum { INFO_NAME, INFO_IP, INFO_AUTHID }; new const bars[ ] = "/"; new command[ ] [ ] = { "/gag", "/ungag" }; new Caccess[ ] = { COMMAND_ACCESS, COMMAND_ACCESS }; new const gGagTag[ ] = "Gag#"; new const gGagFileName[ ] = "gag_words.ini"; new const gLogFileName[ ] = "GagLog.log"; new const gGagThinkerClassname[ ] = "GagThinker_"; new const gGagVaultName[ ] = "GaggedPlayers"; new const gGaggedSound[ ] = "misc/gag_dat.wav"; new const gUnGaggedSound[ ] = "misc/gag_scos.wav"; new const gHalfLifeGaggedSounds[ ][ ] = { "barney/youtalkmuch.wav", "scientist/stopasking.wav", "scientist/shutup.wav", "scientist/shutup2.wav", "hgrunt/silence!.wav" }; new PlayerGagged[ MAX_PLAYERS ]; new PlayerGagTime[ MAX_PLAYERS ]; new JoinTime[ MAX_PLAYERS ]; new szName[ 33 ]; new g_Words[ 562 ] [ 32 ], g_Count; new szOldName[ MAX_PLAYERS ] [ 40 ]; new gCvarSwearGagTime; new gCvarGagMinuteLimit; new gCvarGagMinuteInSeconds; new gCvarAdminGag; new gCvarTagName; new gCvarWords; new gCvarTag; new gMaxPlayers; new gVault; public plugin_init( ) { register_plugin( PLUGIN, PLUGIN, "Cristi .C" ); register_concmd( "amx_gag", "CommandGag" ); register_concmd( "amx_ungag", "CommandUngag" ); register_clcmd( "say", "CheckGag" ); register_clcmd( "say_team", "CheckGag" ); register_clcmd( "say", "command_chat" ); GagThinker( ); register_think( gGagThinkerClassname, "Forward_GagThinker" ); gCvarSwearGagTime = register_cvar( "amx_autogag_time", "3" ); // minutele pentru gag cand ia autogag gCvarGagMinuteLimit = register_cvar( "amx_gag_minute_limit", "300" ); // limita maxima pentru gag minute gCvarGagMinuteInSeconds = register_cvar( "amx_gag_minute_in_seconds", "60" ); // minute in secunde gCvarTagName = register_cvar( "amx_gag_tagname", "1" ); // pune taguri la gag gCvarAdminGag = register_cvar( "amx_admingag", "0" ); // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti gCvarWords = register_cvar( "amx_maxwords", "200" ); // lista maxima de cuvinte in gag_words.ini gCvarTag = register_cvar( "amx_gagtag", "*" ); // tag-ul din chat gMaxPlayers = get_maxplayers( ); } public plugin_precache( ) { new i; for( i = 0; i < sizeof gHalfLifeGaggedSounds; i++ ) { //precache_sound( gHalfLifeGaggedSounds[ i ] ); } //precache_sound( gGaggedSound ); //precache_sound( gUnGaggedSound ); } public plugin_cfg( ) { static szConfigDir[ 64 ], iFile[ 64 ]; get_localinfo ( "amxx_configsdir", szConfigDir, 63 ); formatex ( iFile , charsmax( iFile ) , "%s/%s" , szConfigDir, gGagFileName ); if( !file_exists( iFile ) ) { write_file( iFile, "# Pune aici cuvintele jignitoare sau reclamele", -1 ); log_to_file( gLogFileName, "Fisierul <%s> nu exista! Creez unul nou acum...", iFile ); } new szBuffer[ 128 ]; new szFile = fopen( iFile, "rt" ); while( !feof( szFile ) ) { fgets( szFile, szBuffer, charsmax( szBuffer ) ); if( szBuffer[ 0 ] == '#' ) { continue; } parse( szBuffer, g_Words[ g_Count ], sizeof g_Words[ ] - 1 ); g_Count++; if( g_Count >= get_pcvar_num ( gCvarWords ) ) { break; } } fclose( szFile ); } public client_putinserver( id ) { if ( is_user_connected( id ) ) { JoinTime[ id ] = get_systime( ); } } public client_disconnect( id ) { if ( PlayerGagged[ id ] == 1 ) { ColorChat( 0, RED, "^4%s^1 Jucatorul cu gag^4 %s^1(^3%s^1|^3%s^1), s-a deconectat!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); log_to_file( gLogFileName, "[EXIT]Jucatorul cu gag <%s><%s><%s>, s-a deconectat!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); } JoinTime[ id ] = 0 ; SaveGag( id ); } public client_connect( id ) { LoadGag( id ); } public command_chat( index ) { static szArg[ 192 ], command2[ 192 ]; read_args( szArg, charsmax ( szArg ) ); if( ! szArg [ 0 ] ) return PLUGIN_CONTINUE; remove_quotes( szArg[0] ); for( new x; x < sizeof command; x++ ) { if ( equal ( szArg, command [ x ], strlen ( command [ x ] ) ) ) { if ( get_user_flags ( index ) & Caccess [ x ] ) { replace( szArg, charsmax ( szArg ), bars, "" ); formatex( command2, charsmax(command2), "amx_%s", szArg ); client_cmd( index, command2 ); } break; } } return PLUGIN_CONTINUE; } public CheckGag( id ) { new szSaid[ 300 ]; read_args( szSaid, charsmax( szSaid ) ); remove_quotes( szSaid ); if( !UTIL_IsValidMessage( szSaid ) ) { return PLUGIN_HANDLED; } if ( PlayerGagged[ id ] == 1 ) { PlayerGagged[ id ] = 1; ColorChat( id, RED, "^4%s^1 Ai primit Gag pentru limbaj vulgar, asteapta^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] ); //client_cmd( id, "speak ^"%s^"", gHalfLifeGaggedSounds[ random_num( 0, charsmax( gHalfLifeGaggedSounds ) ) ] ); return PLUGIN_HANDLED; } else { new i; for( i = 0; i < get_pcvar_num ( gCvarWords ); i++ ) { if( containi( szSaid, g_Words[ i ] ) != -1 ) { if( get_pcvar_num( gCvarAdminGag ) == 0 ) { if ( is_user_admin ( id ) ) { return 1; } } get_user_name( id, szName, sizeof ( szName ) -1 ); if ( get_pcvar_num( gCvarTagName ) == 1 ) { client_cmd( id, "name ^"%s %s^"", gGagTag, szName ); } szOldName[ id ] = szName; PlayerGagged[ id ] = 1; PlayerGagTime[ id ] = get_pcvar_num ( gCvarSwearGagTime ); set_speak( id, SPEAK_MUTED ); ColorChat( 0, RED, "^3%s^4 %s^1 (^3%s^1)^1 a primit AutoGag pentru limbaj sau reclama!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ) ); ColorChat( id, RED, "^4%s^1 Ai primit AutoGag pentru injuratura sau reclama! Timpul expira in:^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] ); ColorChat( id, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) ); log_to_file( gLogFileName, "[AUTOGAG]<%s><%s><%s> a luat AutoGag pentru ca a injurat sau a facut reclama!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); //client_cmd( id, "speak ^"%s^"", gGaggedSound ); return PLUGIN_HANDLED; } } } return PLUGIN_CONTINUE; } public CommandGag( id ) { if( !(get_user_flags( id ) & COMMAND_ACCESS ) ) { client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) ); return 1; } new szArg[ 32 ], szMinutes[ 32 ]; read_argv( 1, szArg, charsmax ( szArg ) ); if( equal( szArg, "" ) ) { client_cmd( id, "echo amx_gag < nume > < minute > < motiv >!" ); return 1; } new iPlayer = cmd_target( id, szArg, CMDTARGET_ALLOW_SELF ); if( !iPlayer ) { client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) ); return 1; } if ( get_pcvar_num( gCvarAdminGag ) == 0 ) { if ( is_user_admin( iPlayer ) ) { client_cmd( id, "echo %s Nu poti da gag la Admini!", get_tag( ) ); return 1; } } read_argv( 2, szMinutes, charsmax ( szMinutes ) ); new iMinutes = str_to_num( szMinutes ); if ( iMinutes > get_pcvar_num ( gCvarGagMinuteLimit ) ) { console_print( id, "%s Ai setat %d minute, iar limita maxima de minute este %d! Setare automata pe %d.", get_tag( ), iMinutes, get_pcvar_float ( gCvarGagMinuteLimit ), get_pcvar_float ( gCvarGagMinuteLimit ) ); iMinutes = get_pcvar_num( gCvarGagMinuteLimit ) ; } get_user_name( iPlayer, szName, sizeof ( szName ) -1 ); szOldName[ iPlayer ] = szName; if( PlayerGagged[ iPlayer ] == 1 ) { client_cmd( id, "echo %s Jucatorul %s are deja Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) ); return 1; } if ( get_pcvar_num( gCvarTagName ) == 1 ) { client_cmd( iPlayer, "name ^"%s %s^"", gGagTag, szName ); } PlayerGagged[ iPlayer ] = 1; PlayerGagTime[ iPlayer ] = iMinutes; set_speak( iPlayer, SPEAK_MUTED ); ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Gag^3 %s^1(^3%s^1) pentru^4 %d^1 minute", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), iMinutes ); ColorChat( iPlayer, RED, "^4%s^1 Ai primit Gag pentru ca ai injurat sau ai facut reclama!", get_tag( ) ); ColorChat( iPlayer, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) ); log_to_file( gLogFileName, "[GAG]%s i-a dat gag lui <%s><%s><%s> pentru. <%d> minute", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ), iMinutes ); //client_cmd( iPlayer, "speak ^"%s^"", gGaggedSound ); return PLUGIN_HANDLED; } public CommandUngag( id ) { if( !(get_user_flags( id ) & COMMAND_ACCESS ) ) { client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) ); return 1; } new szArg[ 32 ]; read_argv( 1, szArg, charsmax( szArg ) ); if( equal( szArg, "" ) ) { client_cmd( id, "echo amx_ungag < nume > !" ); return 1; } new iPlayer = cmd_target ( id, szArg, CMDTARGET_ALLOW_SELF ); if( !iPlayer ) { client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) ); return 1; } if( PlayerGagged[ iPlayer ] == 0 ) { console_print( id, "%s Jucatorul %s nu are Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) ); return 1; } if ( get_pcvar_num ( gCvarTagName ) == 1 ) { client_cmd( iPlayer, "name ^"%s^"", szOldName[ iPlayer ] ); } PlayerGagged[ iPlayer ] = 0; PlayerGagTime[ iPlayer ] = 0; set_speak( iPlayer, SPEAK_NORMAL ); ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Ungag^3 %s^1(^3%s^1|^3%s^1)", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) ); ColorChat( iPlayer, RED, "^4%s^1 Ai primit Ungag de la adminul: ^4%s^1, ai grija la limbaj data viitoare!", get_tag( ), GetInfo( id, INFO_NAME ) ); log_to_file( gLogFileName, "[UNGAG]<%s> i-a dat ungag lui <%s><%s><%s>", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) ); //client_cmd( iPlayer, "speak ^"%s^"", gUnGaggedSound ); return PLUGIN_HANDLED; } public Forward_GagThinker( iEntity ) { if ( pev_valid( iEntity ) ) { set_pev( iEntity, pev_nextthink, get_gametime( ) + 1.0 ) ; new id; for ( id = 1; id <= gMaxPlayers; id++ ) { if ( is_user_connected ( id ) && ! is_user_bot( id ) && PlayerGagged[ id ] == 1 && PlayerGagTime[ id ] > 0 && ( ( get_systime( ) - JoinTime[ id ] ) >= get_pcvar_num ( gCvarGagMinuteInSeconds ) ) ) { JoinTime[ id ] = get_systime( ); PlayerGagTime[ id ] -= 1; if ( PlayerGagTime[ id ] <= 0 ) { PlayerGagTime[ id ] = 0; PlayerGagged[ id ] = 0; set_speak( id, SPEAK_NORMAL ); ColorChat( id, RED, "^4%s^3 Ai primit UnGag, ai grija la limbaj data viitoare!", get_tag( ) ); log_to_file( gLogFileName, "[AUTOUNGAG]<%s> a primit AutoUnGag!", GetInfo( id, INFO_NAME ) ); //client_cmd( id, "speak ^"%s^"", gUnGaggedSound ); //client_cmd( id, "name ^"%s^"", szOldName[ id ] ); } } } } } stock SaveGag( id ) { gVault = nvault_open( gGagVaultName ); new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ]; get_user_ip( id, szIp, charsmax( szIp ) ); formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp ); formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] ); nvault_set( gVault, szVaultKey, szVaultData ); nvault_close( gVault ); } stock LoadGag( id ) { gVault = nvault_open( gGagVaultName ); new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ]; get_user_ip( id, szIp, charsmax ( szIp ) ); formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp ); formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] ); nvault_get( gVault, szVaultKey, szVaultData, charsmax ( szVaultData ) ); replace_all( szVaultData, charsmax( szVaultData ), "#", " " ); new iGagOn[ 32 ], iGagTime [ 32 ]; parse( szVaultData, iGagOn, charsmax ( iGagOn ), iGagTime, charsmax ( iGagTime ) ); PlayerGagged[ id ] = str_to_num ( iGagOn ); PlayerGagTime[ id ] = clamp ( str_to_num ( iGagTime ), 0, get_pcvar_num ( gCvarGagMinuteLimit ) ); nvault_close( gVault ); } stock GagThinker( ) { new iEntity = create_entity ( "info_target" ); if( ! pev_valid ( iEntity ) ) { return PLUGIN_HANDLED; } set_pev ( iEntity, pev_classname, gGagThinkerClassname ); set_pev ( iEntity, pev_nextthink, get_gametime( ) + 1.0 ); return PLUGIN_HANDLED; } stock get_tag( ) { new szTag [ 32 ]; get_pcvar_string( gCvarTag, szTag, sizeof ( szTag ) -1 ); return szTag; } stock GetInfo( id, const iInfo ) { new szInfoToReturn[ 64 ]; switch( iInfo ) { case INFO_NAME: { new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szName ); } case INFO_IP: { new szIp[ 32 ]; get_user_ip( id, szIp, sizeof ( szIp ) -1, 1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szIp ); } case INFO_AUTHID: { new szAuthId[ 35 ]; get_user_authid( id, szAuthId, sizeof ( szAuthId ) -1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szAuthId ); } } return szInfoToReturn; } stock bool:UTIL_IsValidMessage( const szSaid[ ] ) { new iLen = strlen( szSaid ); if( !iLen ) { return false; } for( new i = 0; i < iLen; i++ ) { if( szSaid[ i ] != ' ' ) { return true; } } return false; }
- Ramb00
- Fost moderator
- Posts: 966
- Joined: 12 Feb 2014, 17:37
- Detinator Steam: Da
- Reputatie: Fost moderator ajutator
Nume anterior: Claudiu123 - Location: Calarasi
- Has thanked: 28 times
- Been thanked: 19 times
Mersi pentru sunete,dar este o problema cu pluginu dau gag(merge) dar inca pot scriePapiLover wrote:
- | Afiseaza codul
/* amx_autogag_time 3 // minutele pentru gag cand ia autogag amx_gag_minute_limit 300 // limita maxima pentru gag minute amx_gag_minute_in_seconds 60 // minute in secunde amx_gag_tagname 1 // pune taguri la gag amx_admingag 0 // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti amx_maxwords 200 // lista maxima de cuvinte in gag_words.ini amx_gagtag * // tag-ul din chat amx_gag < nume > < timp in minute > - dai gag unui jucator pentru x minute amx_ungag < nume > ii scoti gag-ul unui jucator /gag < nume > < timp in minute > - dai gag unui jucator pentru x minute /ungag < nume > ii scoti gag-ul unui jucator Cand un jucator cu gag iese de pe server va fi salvat intr-un fisier Atunci cand se va conecta pe server va avea gag exact cate minute mai avea cand a iesit de pe server Autor: Cristi. C */ #include < amxmodx > #include < amxmisc > #include < fakemeta > #include < engine > #include < nvault > #include < CC_ColorChat > #pragma semicolon 1 #define PLUGIN "Special Admin Gag" #define VERSION "1.0" #define COMMAND_ACCESS ADMIN_KICK // accesu adminilor pentru comanda #define MAX_PLAYERS 32 + 1 enum { INFO_NAME, INFO_IP, INFO_AUTHID }; new const bars[ ] = "/"; new command[ ] [ ] = { "/gag", "/ungag" }; new Caccess[ ] = { COMMAND_ACCESS, COMMAND_ACCESS }; new const gGagTag[ ] = "Gag#"; new const gGagFileName[ ] = "gag_words.ini"; new const gLogFileName[ ] = "GagLog.log"; new const gGagThinkerClassname[ ] = "GagThinker_"; new const gGagVaultName[ ] = "GaggedPlayers"; new const gGaggedSound[ ] = "misc/gag_dat.wav"; new const gUnGaggedSound[ ] = "misc/gag_scos.wav"; new const gHalfLifeGaggedSounds[ ][ ] = { "barney/youtalkmuch.wav", "scientist/stopasking.wav", "scientist/shutup.wav", "scientist/shutup2.wav", "hgrunt/silence!.wav" }; new PlayerGagged[ MAX_PLAYERS ]; new PlayerGagTime[ MAX_PLAYERS ]; new JoinTime[ MAX_PLAYERS ]; new szName[ 33 ]; new g_Words[ 562 ] [ 32 ], g_Count; new szOldName[ MAX_PLAYERS ] [ 40 ]; new gCvarSwearGagTime; new gCvarGagMinuteLimit; new gCvarGagMinuteInSeconds; new gCvarAdminGag; new gCvarTagName; new gCvarWords; new gCvarTag; new gMaxPlayers; new gVault; public plugin_init( ) { register_plugin( PLUGIN, PLUGIN, "Cristi .C" ); register_concmd( "amx_gag", "CommandGag" ); register_concmd( "amx_ungag", "CommandUngag" ); register_clcmd( "say", "CheckGag" ); register_clcmd( "say_team", "CheckGag" ); register_clcmd( "say", "command_chat" ); GagThinker( ); register_think( gGagThinkerClassname, "Forward_GagThinker" ); gCvarSwearGagTime = register_cvar( "amx_autogag_time", "3" ); // minutele pentru gag cand ia autogag gCvarGagMinuteLimit = register_cvar( "amx_gag_minute_limit", "300" ); // limita maxima pentru gag minute gCvarGagMinuteInSeconds = register_cvar( "amx_gag_minute_in_seconds", "60" ); // minute in secunde gCvarTagName = register_cvar( "amx_gag_tagname", "1" ); // pune taguri la gag gCvarAdminGag = register_cvar( "amx_admingag", "0" ); // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti gCvarWords = register_cvar( "amx_maxwords", "200" ); // lista maxima de cuvinte in gag_words.ini gCvarTag = register_cvar( "amx_gagtag", "*" ); // tag-ul din chat gMaxPlayers = get_maxplayers( ); } public plugin_precache( ) { new i; for( i = 0; i < sizeof gHalfLifeGaggedSounds; i++ ) { //precache_sound( gHalfLifeGaggedSounds[ i ] ); } //precache_sound( gGaggedSound ); //precache_sound( gUnGaggedSound ); } public plugin_cfg( ) { static szConfigDir[ 64 ], iFile[ 64 ]; get_localinfo ( "amxx_configsdir", szConfigDir, 63 ); formatex ( iFile , charsmax( iFile ) , "%s/%s" , szConfigDir, gGagFileName ); if( !file_exists( iFile ) ) { write_file( iFile, "# Pune aici cuvintele jignitoare sau reclamele", -1 ); log_to_file( gLogFileName, "Fisierul <%s> nu exista! Creez unul nou acum...", iFile ); } new szBuffer[ 128 ]; new szFile = fopen( iFile, "rt" ); while( !feof( szFile ) ) { fgets( szFile, szBuffer, charsmax( szBuffer ) ); if( szBuffer[ 0 ] == '#' ) { continue; } parse( szBuffer, g_Words[ g_Count ], sizeof g_Words[ ] - 1 ); g_Count++; if( g_Count >= get_pcvar_num ( gCvarWords ) ) { break; } } fclose( szFile ); } public client_putinserver( id ) { if ( is_user_connected( id ) ) { JoinTime[ id ] = get_systime( ); } } public client_disconnect( id ) { if ( PlayerGagged[ id ] == 1 ) { ColorChat( 0, RED, "^4%s^1 Jucatorul cu gag^4 %s^1(^3%s^1|^3%s^1), s-a deconectat!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); log_to_file( gLogFileName, "[EXIT]Jucatorul cu gag <%s><%s><%s>, s-a deconectat!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); } JoinTime[ id ] = 0 ; SaveGag( id ); } public client_connect( id ) { LoadGag( id ); } public command_chat( index ) { static szArg[ 192 ], command2[ 192 ]; read_args( szArg, charsmax ( szArg ) ); if( ! szArg [ 0 ] ) return PLUGIN_CONTINUE; remove_quotes( szArg[0] ); for( new x; x < sizeof command; x++ ) { if ( equal ( szArg, command [ x ], strlen ( command [ x ] ) ) ) { if ( get_user_flags ( index ) & Caccess [ x ] ) { replace( szArg, charsmax ( szArg ), bars, "" ); formatex( command2, charsmax(command2), "amx_%s", szArg ); client_cmd( index, command2 ); } break; } } return PLUGIN_CONTINUE; } public CheckGag( id ) { new szSaid[ 300 ]; read_args( szSaid, charsmax( szSaid ) ); remove_quotes( szSaid ); if( !UTIL_IsValidMessage( szSaid ) ) { return PLUGIN_HANDLED; } if ( PlayerGagged[ id ] == 1 ) { PlayerGagged[ id ] = 1; ColorChat( id, RED, "^4%s^1 Ai primit Gag pentru limbaj vulgar, asteapta^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] ); //client_cmd( id, "speak ^"%s^"", gHalfLifeGaggedSounds[ random_num( 0, charsmax( gHalfLifeGaggedSounds ) ) ] ); return PLUGIN_HANDLED; } else { new i; for( i = 0; i < get_pcvar_num ( gCvarWords ); i++ ) { if( containi( szSaid, g_Words[ i ] ) != -1 ) { if( get_pcvar_num( gCvarAdminGag ) == 0 ) { if ( is_user_admin ( id ) ) { return 1; } } get_user_name( id, szName, sizeof ( szName ) -1 ); if ( get_pcvar_num( gCvarTagName ) == 1 ) { client_cmd( id, "name ^"%s %s^"", gGagTag, szName ); } szOldName[ id ] = szName; PlayerGagged[ id ] = 1; PlayerGagTime[ id ] = get_pcvar_num ( gCvarSwearGagTime ); set_speak( id, SPEAK_MUTED ); ColorChat( 0, RED, "^3%s^4 %s^1 (^3%s^1)^1 a primit AutoGag pentru limbaj sau reclama!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ) ); ColorChat( id, RED, "^4%s^1 Ai primit AutoGag pentru injuratura sau reclama! Timpul expira in:^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] ); ColorChat( id, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) ); log_to_file( gLogFileName, "[AUTOGAG]<%s><%s><%s> a luat AutoGag pentru ca a injurat sau a facut reclama!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); //client_cmd( id, "speak ^"%s^"", gGaggedSound ); return PLUGIN_HANDLED; } } } return PLUGIN_CONTINUE; } public CommandGag( id ) { if( !(get_user_flags( id ) & COMMAND_ACCESS ) ) { client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) ); return 1; } new szArg[ 32 ], szMinutes[ 32 ]; read_argv( 1, szArg, charsmax ( szArg ) ); if( equal( szArg, "" ) ) { client_cmd( id, "echo amx_gag < nume > < minute > < motiv >!" ); return 1; } new iPlayer = cmd_target( id, szArg, CMDTARGET_ALLOW_SELF ); if( !iPlayer ) { client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) ); return 1; } if ( get_pcvar_num( gCvarAdminGag ) == 0 ) { if ( is_user_admin( iPlayer ) ) { client_cmd( id, "echo %s Nu poti da gag la Admini!", get_tag( ) ); return 1; } } read_argv( 2, szMinutes, charsmax ( szMinutes ) ); new iMinutes = str_to_num( szMinutes ); if ( iMinutes > get_pcvar_num ( gCvarGagMinuteLimit ) ) { console_print( id, "%s Ai setat %d minute, iar limita maxima de minute este %d! Setare automata pe %d.", get_tag( ), iMinutes, get_pcvar_float ( gCvarGagMinuteLimit ), get_pcvar_float ( gCvarGagMinuteLimit ) ); iMinutes = get_pcvar_num( gCvarGagMinuteLimit ) ; } get_user_name( iPlayer, szName, sizeof ( szName ) -1 ); szOldName[ iPlayer ] = szName; if( PlayerGagged[ iPlayer ] == 1 ) { client_cmd( id, "echo %s Jucatorul %s are deja Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) ); return 1; } if ( get_pcvar_num( gCvarTagName ) == 1 ) { client_cmd( iPlayer, "name ^"%s %s^"", gGagTag, szName ); } PlayerGagged[ iPlayer ] = 1; PlayerGagTime[ iPlayer ] = iMinutes; set_speak( iPlayer, SPEAK_MUTED ); ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Gag^3 %s^1(^3%s^1) pentru^4 %d^1 minute", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), iMinutes ); ColorChat( iPlayer, RED, "^4%s^1 Ai primit Gag pentru ca ai injurat sau ai facut reclama!", get_tag( ) ); ColorChat( iPlayer, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) ); log_to_file( gLogFileName, "[GAG]%s i-a dat gag lui <%s><%s><%s> pentru. <%d> minute", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ), iMinutes ); //client_cmd( iPlayer, "speak ^"%s^"", gGaggedSound ); return PLUGIN_HANDLED; } public CommandUngag( id ) { if( !(get_user_flags( id ) & COMMAND_ACCESS ) ) { client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) ); return 1; } new szArg[ 32 ]; read_argv( 1, szArg, charsmax( szArg ) ); if( equal( szArg, "" ) ) { client_cmd( id, "echo amx_ungag < nume > !" ); return 1; } new iPlayer = cmd_target ( id, szArg, CMDTARGET_ALLOW_SELF ); if( !iPlayer ) { client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) ); return 1; } if( PlayerGagged[ iPlayer ] == 0 ) { console_print( id, "%s Jucatorul %s nu are Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) ); return 1; } if ( get_pcvar_num ( gCvarTagName ) == 1 ) { client_cmd( iPlayer, "name ^"%s^"", szOldName[ iPlayer ] ); } PlayerGagged[ iPlayer ] = 0; PlayerGagTime[ iPlayer ] = 0; set_speak( iPlayer, SPEAK_NORMAL ); ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Ungag^3 %s^1(^3%s^1|^3%s^1)", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) ); ColorChat( iPlayer, RED, "^4%s^1 Ai primit Ungag de la adminul: ^4%s^1, ai grija la limbaj data viitoare!", get_tag( ), GetInfo( id, INFO_NAME ) ); log_to_file( gLogFileName, "[UNGAG]<%s> i-a dat ungag lui <%s><%s><%s>", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) ); //client_cmd( iPlayer, "speak ^"%s^"", gUnGaggedSound ); return PLUGIN_HANDLED; } public Forward_GagThinker( iEntity ) { if ( pev_valid( iEntity ) ) { set_pev( iEntity, pev_nextthink, get_gametime( ) + 1.0 ) ; new id; for ( id = 1; id <= gMaxPlayers; id++ ) { if ( is_user_connected ( id ) && ! is_user_bot( id ) && PlayerGagged[ id ] == 1 && PlayerGagTime[ id ] > 0 && ( ( get_systime( ) - JoinTime[ id ] ) >= get_pcvar_num ( gCvarGagMinuteInSeconds ) ) ) { JoinTime[ id ] = get_systime( ); PlayerGagTime[ id ] -= 1; if ( PlayerGagTime[ id ] <= 0 ) { PlayerGagTime[ id ] = 0; PlayerGagged[ id ] = 0; set_speak( id, SPEAK_NORMAL ); ColorChat( id, RED, "^4%s^3 Ai primit UnGag, ai grija la limbaj data viitoare!", get_tag( ) ); log_to_file( gLogFileName, "[AUTOUNGAG]<%s> a primit AutoUnGag!", GetInfo( id, INFO_NAME ) ); //client_cmd( id, "speak ^"%s^"", gUnGaggedSound ); //client_cmd( id, "name ^"%s^"", szOldName[ id ] ); } } } } } stock SaveGag( id ) { gVault = nvault_open( gGagVaultName ); new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ]; get_user_ip( id, szIp, charsmax( szIp ) ); formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp ); formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] ); nvault_set( gVault, szVaultKey, szVaultData ); nvault_close( gVault ); } stock LoadGag( id ) { gVault = nvault_open( gGagVaultName ); new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ]; get_user_ip( id, szIp, charsmax ( szIp ) ); formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp ); formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] ); nvault_get( gVault, szVaultKey, szVaultData, charsmax ( szVaultData ) ); replace_all( szVaultData, charsmax( szVaultData ), "#", " " ); new iGagOn[ 32 ], iGagTime [ 32 ]; parse( szVaultData, iGagOn, charsmax ( iGagOn ), iGagTime, charsmax ( iGagTime ) ); PlayerGagged[ id ] = str_to_num ( iGagOn ); PlayerGagTime[ id ] = clamp ( str_to_num ( iGagTime ), 0, get_pcvar_num ( gCvarGagMinuteLimit ) ); nvault_close( gVault ); } stock GagThinker( ) { new iEntity = create_entity ( "info_target" ); if( ! pev_valid ( iEntity ) ) { return PLUGIN_HANDLED; } set_pev ( iEntity, pev_classname, gGagThinkerClassname ); set_pev ( iEntity, pev_nextthink, get_gametime( ) + 1.0 ); return PLUGIN_HANDLED; } stock get_tag( ) { new szTag [ 32 ]; get_pcvar_string( gCvarTag, szTag, sizeof ( szTag ) -1 ); return szTag; } stock GetInfo( id, const iInfo ) { new szInfoToReturn[ 64 ]; switch( iInfo ) { case INFO_NAME: { new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szName ); } case INFO_IP: { new szIp[ 32 ]; get_user_ip( id, szIp, sizeof ( szIp ) -1, 1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szIp ); } case INFO_AUTHID: { new szAuthId[ 35 ]; get_user_authid( id, szAuthId, sizeof ( szAuthId ) -1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szAuthId ); } } return szInfoToReturn; } stock bool:UTIL_IsValidMessage( const szSaid[ ] ) { new iLen = strlen( szSaid ); if( !iLen ) { return false; } for( new i = 0; i < iLen; i++ ) { if( szSaid[ i ] != ' ' ) { return true; } } return false; }
Si inca ceva daca poti sa scoti chestia aia sa nu mai schimbe nick la player ex: claudiu123 inainte,dupa Gag*claudiu123
Multumesc!
- PapiLover
- Utilizator neserios (tepar)
- Posts: 1697
- Joined: 22 Aug 2013, 14:26
- Detinator Steam: Nu
- CS Status: n/a
- Detinator server CS: n/a
- SteamID: n/a
- Reputatie: Restrictie moderator
Utilizator neserios (tepar)
Fost Membru Club eXtreamCS (doua luni) - Has thanked: 33 times
- Been thanked: 28 times
- Contact:
Inainte facea la fel ? Adica, inainte sa ti-l modific, dadeai gag si ramanea gagu ?Claudiu123 wrote:Mersi pentru sunete,dar este o problema cu pluginu dau gag(merge) dar inca pot scriePapiLover wrote:
- | Afiseaza codul
/* amx_autogag_time 3 // minutele pentru gag cand ia autogag amx_gag_minute_limit 300 // limita maxima pentru gag minute amx_gag_minute_in_seconds 60 // minute in secunde amx_gag_tagname 1 // pune taguri la gag amx_admingag 0 // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti amx_maxwords 200 // lista maxima de cuvinte in gag_words.ini amx_gagtag * // tag-ul din chat amx_gag < nume > < timp in minute > - dai gag unui jucator pentru x minute amx_ungag < nume > ii scoti gag-ul unui jucator /gag < nume > < timp in minute > - dai gag unui jucator pentru x minute /ungag < nume > ii scoti gag-ul unui jucator Cand un jucator cu gag iese de pe server va fi salvat intr-un fisier Atunci cand se va conecta pe server va avea gag exact cate minute mai avea cand a iesit de pe server Autor: Cristi. C */ #include < amxmodx > #include < amxmisc > #include < fakemeta > #include < engine > #include < nvault > #include < CC_ColorChat > #pragma semicolon 1 #define PLUGIN "Special Admin Gag" #define VERSION "1.0" #define COMMAND_ACCESS ADMIN_KICK // accesu adminilor pentru comanda #define MAX_PLAYERS 32 + 1 enum { INFO_NAME, INFO_IP, INFO_AUTHID }; new const bars[ ] = "/"; new command[ ] [ ] = { "/gag", "/ungag" }; new Caccess[ ] = { COMMAND_ACCESS, COMMAND_ACCESS }; new const gGagTag[ ] = "Gag#"; new const gGagFileName[ ] = "gag_words.ini"; new const gLogFileName[ ] = "GagLog.log"; new const gGagThinkerClassname[ ] = "GagThinker_"; new const gGagVaultName[ ] = "GaggedPlayers"; new const gGaggedSound[ ] = "misc/gag_dat.wav"; new const gUnGaggedSound[ ] = "misc/gag_scos.wav"; new const gHalfLifeGaggedSounds[ ][ ] = { "barney/youtalkmuch.wav", "scientist/stopasking.wav", "scientist/shutup.wav", "scientist/shutup2.wav", "hgrunt/silence!.wav" }; new PlayerGagged[ MAX_PLAYERS ]; new PlayerGagTime[ MAX_PLAYERS ]; new JoinTime[ MAX_PLAYERS ]; new szName[ 33 ]; new g_Words[ 562 ] [ 32 ], g_Count; new szOldName[ MAX_PLAYERS ] [ 40 ]; new gCvarSwearGagTime; new gCvarGagMinuteLimit; new gCvarGagMinuteInSeconds; new gCvarAdminGag; new gCvarTagName; new gCvarWords; new gCvarTag; new gMaxPlayers; new gVault; public plugin_init( ) { register_plugin( PLUGIN, PLUGIN, "Cristi .C" ); register_concmd( "amx_gag", "CommandGag" ); register_concmd( "amx_ungag", "CommandUngag" ); register_clcmd( "say", "CheckGag" ); register_clcmd( "say_team", "CheckGag" ); register_clcmd( "say", "command_chat" ); GagThinker( ); register_think( gGagThinkerClassname, "Forward_GagThinker" ); gCvarSwearGagTime = register_cvar( "amx_autogag_time", "3" ); // minutele pentru gag cand ia autogag gCvarGagMinuteLimit = register_cvar( "amx_gag_minute_limit", "300" ); // limita maxima pentru gag minute gCvarGagMinuteInSeconds = register_cvar( "amx_gag_minute_in_seconds", "60" ); // minute in secunde gCvarTagName = register_cvar( "amx_gag_tagname", "1" ); // pune taguri la gag gCvarAdminGag = register_cvar( "amx_admingag", "0" ); // poti da si la admini gag daca e egal cu 1, daca e 0 nu poti gCvarWords = register_cvar( "amx_maxwords", "200" ); // lista maxima de cuvinte in gag_words.ini gCvarTag = register_cvar( "amx_gagtag", "*" ); // tag-ul din chat gMaxPlayers = get_maxplayers( ); } public plugin_precache( ) { new i; for( i = 0; i < sizeof gHalfLifeGaggedSounds; i++ ) { //precache_sound( gHalfLifeGaggedSounds[ i ] ); } //precache_sound( gGaggedSound ); //precache_sound( gUnGaggedSound ); } public plugin_cfg( ) { static szConfigDir[ 64 ], iFile[ 64 ]; get_localinfo ( "amxx_configsdir", szConfigDir, 63 ); formatex ( iFile , charsmax( iFile ) , "%s/%s" , szConfigDir, gGagFileName ); if( !file_exists( iFile ) ) { write_file( iFile, "# Pune aici cuvintele jignitoare sau reclamele", -1 ); log_to_file( gLogFileName, "Fisierul <%s> nu exista! Creez unul nou acum...", iFile ); } new szBuffer[ 128 ]; new szFile = fopen( iFile, "rt" ); while( !feof( szFile ) ) { fgets( szFile, szBuffer, charsmax( szBuffer ) ); if( szBuffer[ 0 ] == '#' ) { continue; } parse( szBuffer, g_Words[ g_Count ], sizeof g_Words[ ] - 1 ); g_Count++; if( g_Count >= get_pcvar_num ( gCvarWords ) ) { break; } } fclose( szFile ); } public client_putinserver( id ) { if ( is_user_connected( id ) ) { JoinTime[ id ] = get_systime( ); } } public client_disconnect( id ) { if ( PlayerGagged[ id ] == 1 ) { ColorChat( 0, RED, "^4%s^1 Jucatorul cu gag^4 %s^1(^3%s^1|^3%s^1), s-a deconectat!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); log_to_file( gLogFileName, "[EXIT]Jucatorul cu gag <%s><%s><%s>, s-a deconectat!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); } JoinTime[ id ] = 0 ; SaveGag( id ); } public client_connect( id ) { LoadGag( id ); } public command_chat( index ) { static szArg[ 192 ], command2[ 192 ]; read_args( szArg, charsmax ( szArg ) ); if( ! szArg [ 0 ] ) return PLUGIN_CONTINUE; remove_quotes( szArg[0] ); for( new x; x < sizeof command; x++ ) { if ( equal ( szArg, command [ x ], strlen ( command [ x ] ) ) ) { if ( get_user_flags ( index ) & Caccess [ x ] ) { replace( szArg, charsmax ( szArg ), bars, "" ); formatex( command2, charsmax(command2), "amx_%s", szArg ); client_cmd( index, command2 ); } break; } } return PLUGIN_CONTINUE; } public CheckGag( id ) { new szSaid[ 300 ]; read_args( szSaid, charsmax( szSaid ) ); remove_quotes( szSaid ); if( !UTIL_IsValidMessage( szSaid ) ) { return PLUGIN_HANDLED; } if ( PlayerGagged[ id ] == 1 ) { PlayerGagged[ id ] = 1; ColorChat( id, RED, "^4%s^1 Ai primit Gag pentru limbaj vulgar, asteapta^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] ); //client_cmd( id, "speak ^"%s^"", gHalfLifeGaggedSounds[ random_num( 0, charsmax( gHalfLifeGaggedSounds ) ) ] ); return PLUGIN_HANDLED; } else { new i; for( i = 0; i < get_pcvar_num ( gCvarWords ); i++ ) { if( containi( szSaid, g_Words[ i ] ) != -1 ) { if( get_pcvar_num( gCvarAdminGag ) == 0 ) { if ( is_user_admin ( id ) ) { return 1; } } get_user_name( id, szName, sizeof ( szName ) -1 ); if ( get_pcvar_num( gCvarTagName ) == 1 ) { client_cmd( id, "name ^"%s %s^"", gGagTag, szName ); } szOldName[ id ] = szName; PlayerGagged[ id ] = 1; PlayerGagTime[ id ] = get_pcvar_num ( gCvarSwearGagTime ); set_speak( id, SPEAK_MUTED ); ColorChat( 0, RED, "^3%s^4 %s^1 (^3%s^1)^1 a primit AutoGag pentru limbaj sau reclama!", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ) ); ColorChat( id, RED, "^4%s^1 Ai primit AutoGag pentru injuratura sau reclama! Timpul expira in:^4 %d^1 minute!", get_tag( ), PlayerGagTime[ id ] ); ColorChat( id, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) ); log_to_file( gLogFileName, "[AUTOGAG]<%s><%s><%s> a luat AutoGag pentru ca a injurat sau a facut reclama!", GetInfo( id, INFO_NAME ), GetInfo( id, INFO_IP ), GetInfo( id, INFO_AUTHID ) ); //client_cmd( id, "speak ^"%s^"", gGaggedSound ); return PLUGIN_HANDLED; } } } return PLUGIN_CONTINUE; } public CommandGag( id ) { if( !(get_user_flags( id ) & COMMAND_ACCESS ) ) { client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) ); return 1; } new szArg[ 32 ], szMinutes[ 32 ]; read_argv( 1, szArg, charsmax ( szArg ) ); if( equal( szArg, "" ) ) { client_cmd( id, "echo amx_gag < nume > < minute > < motiv >!" ); return 1; } new iPlayer = cmd_target( id, szArg, CMDTARGET_ALLOW_SELF ); if( !iPlayer ) { client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) ); return 1; } if ( get_pcvar_num( gCvarAdminGag ) == 0 ) { if ( is_user_admin( iPlayer ) ) { client_cmd( id, "echo %s Nu poti da gag la Admini!", get_tag( ) ); return 1; } } read_argv( 2, szMinutes, charsmax ( szMinutes ) ); new iMinutes = str_to_num( szMinutes ); if ( iMinutes > get_pcvar_num ( gCvarGagMinuteLimit ) ) { console_print( id, "%s Ai setat %d minute, iar limita maxima de minute este %d! Setare automata pe %d.", get_tag( ), iMinutes, get_pcvar_float ( gCvarGagMinuteLimit ), get_pcvar_float ( gCvarGagMinuteLimit ) ); iMinutes = get_pcvar_num( gCvarGagMinuteLimit ) ; } get_user_name( iPlayer, szName, sizeof ( szName ) -1 ); szOldName[ iPlayer ] = szName; if( PlayerGagged[ iPlayer ] == 1 ) { client_cmd( id, "echo %s Jucatorul %s are deja Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) ); return 1; } if ( get_pcvar_num( gCvarTagName ) == 1 ) { client_cmd( iPlayer, "name ^"%s %s^"", gGagTag, szName ); } PlayerGagged[ iPlayer ] = 1; PlayerGagTime[ iPlayer ] = iMinutes; set_speak( iPlayer, SPEAK_MUTED ); ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Gag^3 %s^1(^3%s^1) pentru^4 %d^1 minute", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), iMinutes ); ColorChat( iPlayer, RED, "^4%s^1 Ai primit Gag pentru ca ai injurat sau ai facut reclama!", get_tag( ) ); ColorChat( iPlayer, RED, "^4%s^1 Nu mai poti folosi urmatoarele comenzi:^4 say^1,^4 say_team^1,^4 voice speak", get_tag( ) ); log_to_file( gLogFileName, "[GAG]%s i-a dat gag lui <%s><%s><%s> pentru. <%d> minute", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ), iMinutes ); //client_cmd( iPlayer, "speak ^"%s^"", gGaggedSound ); return PLUGIN_HANDLED; } public CommandUngag( id ) { if( !(get_user_flags( id ) & COMMAND_ACCESS ) ) { client_cmd( id, "echo %s Nu ai acces la aceasta comanda!", get_tag( ) ); return 1; } new szArg[ 32 ]; read_argv( 1, szArg, charsmax( szArg ) ); if( equal( szArg, "" ) ) { client_cmd( id, "echo amx_ungag < nume > !" ); return 1; } new iPlayer = cmd_target ( id, szArg, CMDTARGET_ALLOW_SELF ); if( !iPlayer ) { client_cmd( id, "echo %s Jucatorul specificat nu a fost gasit!", get_tag( ) ); return 1; } if( PlayerGagged[ iPlayer ] == 0 ) { console_print( id, "%s Jucatorul %s nu are Gag!", get_tag( ), GetInfo( iPlayer, INFO_NAME ) ); return 1; } if ( get_pcvar_num ( gCvarTagName ) == 1 ) { client_cmd( iPlayer, "name ^"%s^"", szOldName[ iPlayer ] ); } PlayerGagged[ iPlayer ] = 0; PlayerGagTime[ iPlayer ] = 0; set_speak( iPlayer, SPEAK_NORMAL ); ColorChat( 0, RED, "^4%s^1 ADMIN^4 %s:^1 Ungag^3 %s^1(^3%s^1|^3%s^1)", get_tag( ), GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) ); ColorChat( iPlayer, RED, "^4%s^1 Ai primit Ungag de la adminul: ^4%s^1, ai grija la limbaj data viitoare!", get_tag( ), GetInfo( id, INFO_NAME ) ); log_to_file( gLogFileName, "[UNGAG]<%s> i-a dat ungag lui <%s><%s><%s>", GetInfo( id, INFO_NAME ), GetInfo( iPlayer, INFO_NAME ), GetInfo( iPlayer, INFO_IP ), GetInfo( iPlayer, INFO_AUTHID ) ); //client_cmd( iPlayer, "speak ^"%s^"", gUnGaggedSound ); return PLUGIN_HANDLED; } public Forward_GagThinker( iEntity ) { if ( pev_valid( iEntity ) ) { set_pev( iEntity, pev_nextthink, get_gametime( ) + 1.0 ) ; new id; for ( id = 1; id <= gMaxPlayers; id++ ) { if ( is_user_connected ( id ) && ! is_user_bot( id ) && PlayerGagged[ id ] == 1 && PlayerGagTime[ id ] > 0 && ( ( get_systime( ) - JoinTime[ id ] ) >= get_pcvar_num ( gCvarGagMinuteInSeconds ) ) ) { JoinTime[ id ] = get_systime( ); PlayerGagTime[ id ] -= 1; if ( PlayerGagTime[ id ] <= 0 ) { PlayerGagTime[ id ] = 0; PlayerGagged[ id ] = 0; set_speak( id, SPEAK_NORMAL ); ColorChat( id, RED, "^4%s^3 Ai primit UnGag, ai grija la limbaj data viitoare!", get_tag( ) ); log_to_file( gLogFileName, "[AUTOUNGAG]<%s> a primit AutoUnGag!", GetInfo( id, INFO_NAME ) ); //client_cmd( id, "speak ^"%s^"", gUnGaggedSound ); //client_cmd( id, "name ^"%s^"", szOldName[ id ] ); } } } } } stock SaveGag( id ) { gVault = nvault_open( gGagVaultName ); new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ]; get_user_ip( id, szIp, charsmax( szIp ) ); formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp ); formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] ); nvault_set( gVault, szVaultKey, szVaultData ); nvault_close( gVault ); } stock LoadGag( id ) { gVault = nvault_open( gGagVaultName ); new szIp[ 40 ], szVaultKey[ 64 ], szVaultData[ 64 ]; get_user_ip( id, szIp, charsmax ( szIp ) ); formatex( szVaultKey, charsmax( szVaultKey ), "%s-Gag", szIp ); formatex( szVaultData, charsmax( szVaultData ), "%i#%i", PlayerGagged[ id ], PlayerGagTime[ id ] ); nvault_get( gVault, szVaultKey, szVaultData, charsmax ( szVaultData ) ); replace_all( szVaultData, charsmax( szVaultData ), "#", " " ); new iGagOn[ 32 ], iGagTime [ 32 ]; parse( szVaultData, iGagOn, charsmax ( iGagOn ), iGagTime, charsmax ( iGagTime ) ); PlayerGagged[ id ] = str_to_num ( iGagOn ); PlayerGagTime[ id ] = clamp ( str_to_num ( iGagTime ), 0, get_pcvar_num ( gCvarGagMinuteLimit ) ); nvault_close( gVault ); } stock GagThinker( ) { new iEntity = create_entity ( "info_target" ); if( ! pev_valid ( iEntity ) ) { return PLUGIN_HANDLED; } set_pev ( iEntity, pev_classname, gGagThinkerClassname ); set_pev ( iEntity, pev_nextthink, get_gametime( ) + 1.0 ); return PLUGIN_HANDLED; } stock get_tag( ) { new szTag [ 32 ]; get_pcvar_string( gCvarTag, szTag, sizeof ( szTag ) -1 ); return szTag; } stock GetInfo( id, const iInfo ) { new szInfoToReturn[ 64 ]; switch( iInfo ) { case INFO_NAME: { new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szName ); } case INFO_IP: { new szIp[ 32 ]; get_user_ip( id, szIp, sizeof ( szIp ) -1, 1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szIp ); } case INFO_AUTHID: { new szAuthId[ 35 ]; get_user_authid( id, szAuthId, sizeof ( szAuthId ) -1 ); copy( szInfoToReturn, sizeof ( szInfoToReturn ) -1, szAuthId ); } } return szInfoToReturn; } stock bool:UTIL_IsValidMessage( const szSaid[ ] ) { new iLen = strlen( szSaid ); if( !iLen ) { return false; } for( new i = 0; i < iLen; i++ ) { if( szSaid[ i ] != ' ' ) { return true; } } return false; }
Si inca ceva daca poti sa scoti chestia aia sa nu mai schimbe nick la player ex: claudiu123 inainte,dupa Gag*claudiu123
Multumesc!
Return to “Modificari pluginuri”
Jump to
- eXtream - Forum
- ↳ Steam
- ↳ Forum
- ↳ WebDesign
- ↳ Incepatori
- ↳ Cos de reciclare
- ↳ Discutii generale
- ↳ Anunturi
- ↳ Security zone
- ↳ Filme si seriale
- ↳ Reclamatii
- ↳ Entertainment
- ↳ Distractie
- ↳ Clubul eXtreamCS - Intra si tu ! [noi oportunitati]
- eXtream - Counter-Strike 2
- ↳ Counter-Strike 2
- eXtream - Counter-Strike 1.6
- ↳ Diverse
- ↳ Filme gaming
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Tutoriale
- ↳ Cereri
- ↳ Discutii generale
- ↳ Probleme la servere dedicate de Counter-Strike
- ↳ Cereri admin / slot
- ↳ Probleme in jocul Counter-Strike
- ↳ Pluginuri
- ↳ Pluginuri eXtream
- ↳ Cereri
- ↳ AdminMod
- ↳ AmxModX
- ↳ Resurse
- ↳ Moduri
- ↳ Addon-uri
- ↳ Kit-uri
- ↳ Harti
- ↳ Diverse
- ↳ Cereri
- ↳ Servere
- ↳ Programarea CS-ului
- ↳ Scripting
- ↳ Modificari pluginuri
- ↳ CStrike
- ↳ Cereri
- eXtream - Echipa
- ↳ Productia eXtream
- ↳ Harti eXtream
- ↳ CS.eXtreamCS.com - Server oficial eXtreamCS
- ↳ Zona administrativă
- ↳ Cereri acces
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Admin zone
- ↳ CS2.eXtreamCS.com - Server official eXtreamCS
- ↳ XMAS.eXtreamCS.com
- ↳ Cereri admin
- ↳ Cereri unban
- ↳ Reclamatii / Sugestii
- ↳ eXtreamCS #PubMasters
- eXtream - Counter Strike Global Offensive
- ↳ Diverse
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Probleme la servere dedicate de Counter-Strike: Global Offensive
- ↳ Probleme in jocul Counter-Strike: Global Offensive
- ↳ Pluginuri
- ↳ Cereri
- ↳ Resurse
- ↳ Addons-uri
- ↳ Hărți
- ↳ Diverse
- ↳ Servere
- eXtream - Counter-Strike Source
- ↳ Tutoriale
- ↳ Pluginuri
- ↳ Servere
- ↳ Resurse
- ↳ Harti
- ↳ Moduri
- ↳ Diverse
- ↳ Classic » CS
- ↳ Anunțuri administrative
- ↳ Cereri admin/slot
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Banlist
- ↳ Admins Only
- ↳ Discord