Plugin admin

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Locked
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

24 Sep 2013, 18:18

N-am idee cum iti apare asa.. eu l-am testat si apare normal. Da-mi PM cu serverul.
Retras
RoyalServer 2
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

24 Sep 2013, 23:09

Am zis sa nu fac alt topic .. sa postez aici,Falcao ai putea face o versiune pentru a suspenda admini,cum este si asta facut insa modificat in felul urmator :

treci intr-un fisier .ini adminul(trebuie sa se afle si in users.ini) si treci in dreptul numelui sau dedesubt cum poti face data pana cand are suspend,si cum l-ai trecut acolo sa ii puna ; in fata si dupa ce ii expira suspendul sa ii dispara ; din fata,adica sa ii activeze adminul,sper ca ai inteles ..
#Vali
Fost moderator
Fost moderator
Posts: 2611
Joined: 24 Jan 2012, 11:00
Detinator Steam: Da
SteamID: id/spryt3
Reputatie: Fost Moderator
Fost Scripter eXtreamCS.com
1.2 / 3
Location: root
Has thanked: 81 times
Been thanked: 144 times
Contact:

26 Sep 2013, 18:29

Testat de cineva pe perioada lunga?

Pareri?
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

03 Oct 2013, 11:28

Am testat si eu pluginul si am descoperit un bug zic eu,ori nu am inteles cum functioneaza pluginul.

Deci sa va explic,am pus pluginul pe server am pus si numele in fisierul admin.ini si cum am intrat am primit un warn cica fiindca nu am stat 0 ore si fiindca am facut 0 minute : http://cloud-2.steampowered.com/ugc/597 ... 024B70F67/

Intrebarea mea este :Unde scrie "pentru ca nu ai stat 0 ore" nu trebuia sa apara cate ore are de stat adminul pe server?Si dupa ce am facut un minut aparea : http://cloud-2.steampowered.com/ugc/597 ... 27904A4AE/

Rog sa fiu corectat daca am gresit ..


Folosesc sursa aceasta fiindca vreau sa functioneze la orice ora pluginul :
| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < nvault >

#define PLUGIN "Admins activity"
#define VERSION "0.1"


#define MAX_WARN	5 

new g_szFile[ 64 ];
new const g_szFileName[ ] = "admini.ini" 		/* Numele la fisierul de unde sunt incarcate datele fiecarui admin */

new g_iPlayerStats[ 33 ];
new g_iPlayerMinutes[ 33 ];
new g_iPlayerWarn[ 33 ];

new g_iHourPlayer[ 33 ];

public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "falcao" );
	
	/* Verificare fisier */
	
	get_configsdir( g_szFile, sizeof( g_szFile ) -1 );
	format( g_szFile, sizeof( g_szFile ) -1, "%s/%s", g_szFile, g_szFileName );
	
	if( !file_exists( g_szFile ) )
	{
		write_file( g_szFile, "; Activitate admini", -1 );
	}
	
	/* Clcmd */
	
	register_clcmd( "say /warn", "cmdWarn" );
	register_clcmd( "say /program", "cmdProgram" );
}

public client_putinserver( id )
{
	new iHour, iMinute;
	time( iHour, iMinute, _ );

	
		LoadHours( id );
		
		set_task( 60.0, "adaugareMinut", id, _, _, "b", _ );
		
		static szName[ 32 ];
		get_user_name( id, szName, sizeof( szName ) -1 );
		
		set_task( 3.0, "verifyPlayer", id );
		
		if( g_iPlayerWarn[ id ] >= MAX_WARN )
		{
			new szFile = fopen( "addons/amxmodx/configs/users.ini", "r" );
			
			if( !szFile )
				return 1;
			
			new szData[ 512 ], szParseName[ 32 ], szParsePassword[ 32 ], szParseFlags[ 32 ], szParseRFlags[ 32 ], iLine;
			
			while( !feof( szFile ) )
			{
				fgets( szFile, szData, sizeof( szData ) -1 );
				
				if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
					continue;
					
				parse( szData, szParseName, sizeof( szParseName ) -1, szParsePassword, sizeof( szParsePassword ) -1, szParseFlags, sizeof( szParseFlags ) -1, szParseRFlags, sizeof( szParseRFlags ) -1 );
				
				if( equali( szParseName, szName ) )
				{
					new szPlayerInfo[ 256 ];
					format( szPlayerInfo, sizeof( szPlayerInfo ) -1, "; ^"%s^" ^"%s^" ^"%s^" ^"%s^"", szParseName, szParsePassword, szParseFlags, szParseRFlags );
					
					write_file( "addons/amxmodx/configs/users.ini", szPlayerInfo, iLine );
					
					g_iPlayerWarn[ id ] = 0;
					
					set_task( 3.0, "mesajWarn", id );
				}
				
				iLine++;
			}
			
			fclose( szFile );
		} 
	
	return 1;
}

public mesajWarn( id )
{
	C_PrintChat( id, "Ai facut !v5!c/!v5!c warn-uri. Adminul tau a fost oprit." );
}

public cmdWarn( id )
{
	new szFile = fopen( g_szFile, "r" );
	
	if( !szFile )
		return 1;
	
	new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
	
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, sizeof( szData ) -1 );
		
		if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		
		parse( szData,\
			szParseName, sizeof( szParseName ),\
			szParseHours, sizeof( szParseHours ) );
		
		static szName[ 32 ];
		get_user_name( id, szName, sizeof( szName ) -1 );
		
		if( equali( szParseName, szName ) ) 
		{
			C_PrintChat( id, "Ai !v%i!c/!v%i!c warn-uri, respectati programul zilnic sau primesti remove.", g_iPlayerWarn[ id ], MAX_WARN );
		}
	}
	
	fclose( szFile );
	
	return 1;
}

public cmdProgram( id )
{
	if( get_user_flags( id ) & ADMIN_SLAY )
	{
		new szFile = fopen( g_szFile, "r" );
		
		if( !szFile )
			return 1;
		
		new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
		
		while( !feof( szFile ) )
		{
			fgets( szFile, szData, sizeof( szData ) -1 );
			
			if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			
			parse( szData, szParseName, sizeof( szParseName ), szParseHours, sizeof( szParseHours ) );
			
			static szName[ 32 ];
			get_user_name( id, szName, sizeof( szName ) -1 );

			if( equali( szParseName, szName ) ) 
			{
				C_PrintChat( id, "Mai ai !v%i!c ore pana iti termini programul de azi.", g_iHourPlayer[ id ] );
			}
		}
		
		fclose( szFile );
	}
	
	else
	{
		C_PrintChat( id, "Ne pare rau, dar nu ai admin pe server." );
	}
	
	return 1;
}

public client_disconnect( id )
{
	new iHour, iMinute;
	time( iHour, iMinute, _ );

	
		SaveHours( id );
	
}

public adaugareMinut( id )
{
	if( is_user_connected( id ) && !is_user_bot( id ) )
	{
		g_iPlayerStats[ id ] += 1;
		
		if( g_iPlayerMinutes[ id ] >= 60 )
		{
			g_iHourPlayer[ id ] -= 1;
			g_iPlayerStats[ id ] += 1;
			g_iPlayerMinutes[ id ] -= 60;
		}
	}
}

public verifyPlayer( id )
{
	new szFile = fopen( g_szFile, "r" );
	
	if( !szFile )
		return 1;
	
	new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, sizeof( szData ) -1 );
		
		if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		
		parse( szData, szParseName, sizeof( szParseName ), szParseHours, sizeof( szParseHours ) );
		
		if( equali( szParseName, szName ) ) 
		{
			if( g_iPlayerStats[ id ] >= str_to_num( szParseHours ) )
			{
				log_to_file( "activity_admins.log", "%s si-a respectat programul cu %i/%i ore.", szName, g_iPlayerStats[ id ], str_to_num( szParseHours ) );	
			}
			
			else
			{
				log_to_file( "activity_admins.log", "%s a stat doar %i minute pe server. A primit 1 warn.", szName, g_iPlayerStats[ id ], str_to_num( szParseHours ), g_iPlayerMinutes[ id ] );
				
				C_PrintChat( id, "Atentie ! Azi ai facut !v%i!c minute. Trebuie sa stai minim !v%i!c ore.", g_iPlayerMinutes[ id ], str_to_num( szParseHours ), str_to_num( szParseHours ) );
				C_PrintChat( id, "Ai primit !v1!c warn, pentru ca nu ai stat !v%i!c ore. (!v%i!c/!v%i!c)", g_iPlayerStats[ id ], g_iPlayerStats[ id ], str_to_num( szParseHours ) );
				
				g_iPlayerWarn[ id ] += 1;
			}
			
			g_iHourPlayer[ id ] =  str_to_num( szParseHours );
		}
	}
	
	fclose( szFile );
	
	return 1;
}
		
public LoadHours( id )
{
	new szVaultData[ 256 ], szVaultKey[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	format( szVaultKey, sizeof( szVaultKey ) -1, "%s", szName );
	format( szVaultData, sizeof( szVaultData ) -1, "%i#%i#%i", g_iPlayerStats[ id ], g_iPlayerMinutes[ id ], g_iPlayerWarn[ id ] );	
	
	new szVaultFile = nvault_open( "_file_activity_adm" );
	nvault_get( szVaultFile, szVaultKey, szVaultData, sizeof( szVaultData ) -1 );
	
	replace_all( szVaultData, sizeof( szVaultData ), "#", " " );
	
	new iHours[ 32 ], iWarn[ 33 ], iMinutes[ 33 ];
	parse( szVaultData,\
		iHours, sizeof( iHours ) -1,\
		iWarn, sizeof( iWarn ) -1,\
		iMinutes, sizeof( iMinutes ) -1 );
	
	g_iPlayerStats[ id ] = str_to_num( iHours );
	g_iPlayerWarn[ id ] = str_to_num( iWarn );
	g_iPlayerMinutes[ id ] = str_to_num( iMinutes );
}

public SaveHours( id )
{
	new szVaultData[ 256 ], szVaultKey[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	format( szVaultKey, sizeof( szVaultKey ) -1, "%s", szName );
	format( szVaultData, sizeof( szVaultData ) -1, "%i#%i#%i", g_iPlayerStats[ id ], g_iPlayerMinutes[ id ], g_iPlayerWarn[ id ] );
	
	new szVaultFile = nvault_open( "_file_activity_adm" );
	nvault_set( szVaultFile, szVaultKey, szVaultData );
}

stock C_PrintChat( const id, const szInput[ ], any:... )
{
	new iPlayers[ 32 ], iNum = 1;
	
	static szMsg[ 320 ], szMsg2[ 320 ];
	
	vformat( szMsg, sizeof( szMsg ) -130, szInput, 3 );
	format( szMsg2, sizeof( szMsg2 ) -130, "!c[!vHNS!c] %s", szMsg );
	
	replace_all( szMsg2, sizeof( szMsg ) -130, "!v", "^x04" );
	replace_all( szMsg2, sizeof( szMsg ) -130, "!c", "^x01" );
	replace_all( szMsg2, sizeof( szMsg ) -130, "!e", "^x03" );
	
	if( id )
	{
		iPlayers[ 0 ] = id;
	}
	
	else
	{
		get_players( iPlayers, iNum, "c" );
	}
	
	for( new i = 0; i < iNum; i++ )
	{
		if( is_user_connected( iPlayers[ i ] ) )
		{
			message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, iPlayers[ i ] );
			
			write_byte( iPlayers[ i ] );
			write_string( szMsg2 );
			
			message_end( );
		}
	}
}
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

03 Oct 2013, 11:33

| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < nvault >

#define PLUGIN "Admins activity"
#define VERSION "0.1"


#define MAX_WARN	5 

new g_szFile[ 64 ];
new const g_szFileName[ ] = "admini.ini" 		/* Numele la fisierul de unde sunt incarcate datele fiecarui admin */

new g_iPlayerStats[ 33 ];
new g_iPlayerMinutes[ 33 ];
new g_iPlayerWarn[ 33 ];

new g_iHourPlayer[ 33 ];


public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "falcao" );
	
	/* Verificare fisier */
	
	get_configsdir( g_szFile, sizeof( g_szFile ) -1 );
	format( g_szFile, sizeof( g_szFile ) -1, "%s/%s", g_szFile, g_szFileName );
	
	if( !file_exists( g_szFile ) )
	{
		write_file( g_szFile, "; Activitate admini", -1 );
	}
	
	/* Clcmd */
	
	register_clcmd( "say /warn", "cmdWarn" );
	register_clcmd( "say /program", "cmdProgram" );
}

public client_putinserver( id )
{
	new iHour, iMinute;
	time( iHour, iMinute, _ );

	
		LoadHours( id );
		
		set_task( 60.0, "adaugareMinut", id, _, _, "b", _ );
		
		static szName[ 32 ];
		get_user_name( id, szName, sizeof( szName ) -1 );
		
		set_task( 3.0, "verifyPlayer", id );
		
		if( g_iPlayerWarn[ id ] >= MAX_WARN )
		{
			new szFile = fopen( "addons/amxmodx/configs/users.ini", "r" );
			
			if( !szFile )
				return 1;
			
			new szData[ 512 ], szParseName[ 32 ], szParsePassword[ 32 ], szParseFlags[ 32 ], szParseRFlags[ 32 ], iLine;
			
			while( !feof( szFile ) )
			{
				fgets( szFile, szData, sizeof( szData ) -1 );
				
				if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
					continue;
					
				parse( szData, szParseName, sizeof( szParseName ) -1, szParsePassword, sizeof( szParsePassword ) -1, szParseFlags, sizeof( szParseFlags ) -1, szParseRFlags, sizeof( szParseRFlags ) -1 );
				
				if( equali( szParseName, szName ) )
				{
					new szPlayerInfo[ 256 ];
					format( szPlayerInfo, sizeof( szPlayerInfo ) -1, "; ^"%s^" ^"%s^" ^"%s^" ^"%s^"", szParseName, szParsePassword, szParseFlags, szParseRFlags );
					
					write_file( "addons/amxmodx/configs/users.ini", szPlayerInfo, iLine );
					
					g_iPlayerWarn[ id ] = 0;
					
					set_task( 3.0, "mesajWarn", id );
				}
				
				iLine++;
			}
			
			fclose( szFile );
		} 
	
	return 1;
}

public mesajWarn( id )
{
	C_PrintChat( id, "Ai facut !v5!c/!v5!c warn-uri. Adminul tau a fost oprit." );
}

public cmdWarn( id )
{
	new szFile = fopen( g_szFile, "r" );
	
	if( !szFile )
		return 1;
	
	new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
	
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, sizeof( szData ) -1 );
		
		if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		
		parse( szData,\
			szParseName, sizeof( szParseName ),\
			szParseHours, sizeof( szParseHours ) );
		
		static szName[ 32 ];
		get_user_name( id, szName, sizeof( szName ) -1 );
		
		if( equali( szParseName, szName ) ) 
		{
			C_PrintChat( id, "Ai !v%i!c/!v%i!c warn-uri, respectati programul zilnic sau primesti remove.", g_iPlayerWarn[ id ], MAX_WARN );
		}
	}
	
	fclose( szFile );
	
	return 1;
}

public cmdProgram( id )
{
	if( get_user_flags( id ) & ADMIN_SLAY )
	{
		new szFile = fopen( g_szFile, "r" );
		
		if( !szFile )
			return 1;
		
		new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
		
		while( !feof( szFile ) )
		{
			fgets( szFile, szData, sizeof( szData ) -1 );
			
			if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			
			parse( szData, szParseName, sizeof( szParseName ), szParseHours, sizeof( szParseHours ) );
			
			static szName[ 32 ];
			get_user_name( id, szName, sizeof( szName ) -1 );

			if( equali( szParseName, szName ) ) 
			{
				C_PrintChat( id, "Mai ai !v%i!c ore pana iti termini programul de azi.", g_iHourPlayer[ id ] );
			}
		}
		
		fclose( szFile );
	}
	
	else
	{
		C_PrintChat( id, "Ne pare rau, dar nu ai admin pe server." );
	}
	
	return 1;
}

public client_disconnect( id )
{
	new iHour, iMinute;
	time( iHour, iMinute, _ );

	
		SaveHours( id );
	
}

public adaugareMinut( id )
{
	if( is_user_connected( id ) && !is_user_bot( id ) )
	{
		g_iPlayerStats[ id ] += 1;
		
		if( g_iPlayerMinutes[ id ] >= 60 )
		{
			g_iHourPlayer[ id ] -= 1;
			g_iPlayerStats[ id ] += 1;
			g_iPlayerMinutes[ id ] -= 60;
		}
	}
}

public verifyPlayer( id )
{
	new szFile = fopen( g_szFile, "r" );
	
	if( !szFile )
		return 1;
	
	new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, sizeof( szData ) -1 );
		
		if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		
		parse( szData, szParseName, sizeof( szParseName ), szParseHours, sizeof( szParseHours ) );
		
		if( equali( szParseName, szName ) ) 
		{
			if( g_iPlayerStats[ id ] >= str_to_num( szParseHours ) )
			{
				log_to_file( "activity_admins.log", "%s si-a respectat programul cu %i/%i ore.", szName, g_iPlayerStats[ id ], str_to_num( szParseHours ) );	
			}
			
			else
			{
				log_to_file( "activity_admins.log", "%s a stat doar %i minute pe server. A primit 1 warn.", szName, g_iPlayerStats[ id ], str_to_num( szParseHours ), g_iPlayerMinutes[ id ] );
				
				C_PrintChat( id, "Atentie ! Azi ai facut !v%i!c minute. Trebuie sa stai minim !v%i!c ore.", g_iPlayerMinutes[ id ], str_to_num( szParseHours ), str_to_num( szParseHours ) );
				C_PrintChat( id, "Ai primit !v1!c warn, pentru ca nu ai stat !v%i!c ore. (!v%i!c/!v%i!c)", g_iPlayerStats[ id ], str_to_num( szParseHours ), g_iPlayerStats[ id ], str_to_num( szParseHours ) );
				
				g_iPlayerWarn[ id ] += 1;
			}
			
			g_iHourPlayer[ id ] =  str_to_num( szParseHours );
		}
	}
	
	fclose( szFile );
	
	return 1;
}
		
public LoadHours( id )
{
	new szVaultData[ 256 ], szVaultKey[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	format( szVaultKey, sizeof( szVaultKey ) -1, "%s", szName );
	format( szVaultData, sizeof( szVaultData ) -1, "%i#%i#%i", g_iPlayerStats[ id ], g_iPlayerMinutes[ id ], g_iPlayerWarn[ id ] );	
	
	new szVaultFile = nvault_open( "_file_activity_adm" );
	nvault_get( szVaultFile, szVaultKey, szVaultData, sizeof( szVaultData ) -1 );
	
	replace_all( szVaultData, sizeof( szVaultData ), "#", " " );
	
	new iHours[ 32 ], iWarn[ 33 ], iMinutes[ 33 ];
	parse( szVaultData,\
		iHours, sizeof( iHours ) -1,\
		iWarn, sizeof( iWarn ) -1,\
		iMinutes, sizeof( iMinutes ) -1 );
	
	g_iPlayerStats[ id ] = str_to_num( iHours );
	g_iPlayerWarn[ id ] = str_to_num( iWarn );
	g_iPlayerMinutes[ id ] = str_to_num( iMinutes );
}

public SaveHours( id )
{
	new szVaultData[ 256 ], szVaultKey[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	format( szVaultKey, sizeof( szVaultKey ) -1, "%s", szName );
	format( szVaultData, sizeof( szVaultData ) -1, "%i#%i#%i", g_iPlayerStats[ id ], g_iPlayerMinutes[ id ], g_iPlayerWarn[ id ] );
	
	new szVaultFile = nvault_open( "_file_activity_adm" );
	nvault_set( szVaultFile, szVaultKey, szVaultData );
}

stock C_PrintChat( const id, const szInput[ ], any:... )
{
	new iPlayers[ 32 ], iNum = 1;
	
	static szMsg[ 320 ], szMsg2[ 320 ];
	
	vformat( szMsg, sizeof( szMsg ) -130, szInput, 3 );
	format( szMsg2, sizeof( szMsg2 ) -130, "!c[!vHNS!c] %s", szMsg );
	
	replace_all( szMsg2, sizeof( szMsg ) -130, "!v", "^x04" );
	replace_all( szMsg2, sizeof( szMsg ) -130, "!c", "^x01" );
	replace_all( szMsg2, sizeof( szMsg ) -130, "!e", "^x03" );
	
	if( id )
	{
		iPlayers[ 0 ] = id;
	}
	
	else
	{
		get_players( iPlayers, iNum, "c" );
	}
	
	for( new i = 0; i < iNum; i++ )
	{
		if( is_user_connected( iPlayers[ i ] ) )
		{
			message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, iPlayers[ i ] );
			
			write_byte( iPlayers[ i ] );
			write_string( szMsg2 );
			
			message_end( );
		}
	}
}
Da, aveai dreptate. Era un bug.
Retras
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

03 Oct 2013, 21:01

E la fel .. : http://cloud-2.steampowered.com/ugc/597 ... 9AB7C7DC8/

Si am sters fisierul nvault vechi
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

03 Oct 2013, 21:12

| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < nvault >

#define PLUGIN "Admins activity"
#define VERSION "0.1"


#define MAX_WARN	5 

new g_szFile[ 64 ];
new const g_szFileName[ ] = "admini.ini" 		/* Numele la fisierul de unde sunt incarcate datele fiecarui admin */

new g_iPlayerStats[ 33 ];
new g_iPlayerMinutes[ 33 ];
new g_iPlayerWarn[ 33 ];

new g_iHourPlayer[ 33 ];


public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "falcao" );
	
	/* Verificare fisier */
	
	get_configsdir( g_szFile, sizeof( g_szFile ) -1 );
	format( g_szFile, sizeof( g_szFile ) -1, "%s/%s", g_szFile, g_szFileName );
	
	if( !file_exists( g_szFile ) )
	{
		write_file( g_szFile, "; Activitate admini", -1 );
	}
	
	/* Clcmd */
	
	register_clcmd( "say /warn", "cmdWarn" );
	register_clcmd( "say /program", "cmdProgram" );
}

public client_putinserver( id )
{
	new iHour, iMinute;
	time( iHour, iMinute, _ );

	
		LoadHours( id );
		
		set_task( 60.0, "adaugareMinut", id, _, _, "b", _ );
		
		static szName[ 32 ];
		get_user_name( id, szName, sizeof( szName ) -1 );
		
		set_task( 3.0, "verifyPlayer", id );
		
		if( g_iPlayerWarn[ id ] >= MAX_WARN )
		{
			new szFile = fopen( "addons/amxmodx/configs/users.ini", "r" );
			
			if( !szFile )
				return 1;
			
			new szData[ 512 ], szParseName[ 32 ], szParsePassword[ 32 ], szParseFlags[ 32 ], szParseRFlags[ 32 ], iLine;
			
			while( !feof( szFile ) )
			{
				fgets( szFile, szData, sizeof( szData ) -1 );
				
				if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
					continue;
					
				parse( szData, szParseName, sizeof( szParseName ) -1, szParsePassword, sizeof( szParsePassword ) -1, szParseFlags, sizeof( szParseFlags ) -1, szParseRFlags, sizeof( szParseRFlags ) -1 );
				
				if( equali( szParseName, szName ) )
				{
					new szPlayerInfo[ 256 ];
					format( szPlayerInfo, sizeof( szPlayerInfo ) -1, "; ^"%s^" ^"%s^" ^"%s^" ^"%s^"", szParseName, szParsePassword, szParseFlags, szParseRFlags );
					
					write_file( "addons/amxmodx/configs/users.ini", szPlayerInfo, iLine );
					
					g_iPlayerWarn[ id ] = 0;
					
					set_task( 3.0, "mesajWarn", id );
				}
				
				iLine++;
			}
			
			fclose( szFile );
		} 
	
	return 1;
}

public mesajWarn( id )
{
	C_PrintChat( id, "Ai facut !v5!c/!v5!c warn-uri. Adminul tau a fost oprit." );
}

public cmdWarn( id )
{
	new szFile = fopen( g_szFile, "r" );
	
	if( !szFile )
		return 1;
	
	new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
	
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, sizeof( szData ) -1 );
		
		if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		
		parse( szData,\
			szParseName, sizeof( szParseName ),\
			szParseHours, sizeof( szParseHours ) );
		
		static szName[ 32 ];
		get_user_name( id, szName, sizeof( szName ) -1 );
		
		if( equali( szParseName, szName ) ) 
		{
			C_PrintChat( id, "Ai !v%i!c/!v%i!c warn-uri, respectati programul zilnic sau primesti remove.", g_iPlayerWarn[ id ], MAX_WARN );
		}
	}
	
	fclose( szFile );
	
	return 1;
}

public cmdProgram( id )
{
	if( get_user_flags( id ) & ADMIN_SLAY )
	{
		new szFile = fopen( g_szFile, "r" );
		
		if( !szFile )
			return 1;
		
		new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
		
		while( !feof( szFile ) )
		{
			fgets( szFile, szData, sizeof( szData ) -1 );
			
			if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			
			parse( szData, szParseName, sizeof( szParseName ), szParseHours, sizeof( szParseHours ) );
			
			static szName[ 32 ];
			get_user_name( id, szName, sizeof( szName ) -1 );

			if( equali( szParseName, szName ) ) 
			{
				C_PrintChat( id, "Mai ai !v%i!c ore pana iti termini programul de azi.", g_iHourPlayer[ id ] );
			}
		}
		
		fclose( szFile );
	}
	
	else
	{
		C_PrintChat( id, "Ne pare rau, dar nu ai admin pe server." );
	}
	
	return 1;
}

public client_disconnect( id )
{
	new iHour, iMinute;
	time( iHour, iMinute, _ );

	
		SaveHours( id );
	
}

public adaugareMinut( id )
{
	if( is_user_connected( id ) && !is_user_bot( id ) )
	{
		g_iPlayerStats[ id ] += 1;
		
		if( g_iPlayerMinutes[ id ] >= 60 )
		{
			g_iHourPlayer[ id ] -= 1;
			g_iPlayerStats[ id ] += 1;
			g_iPlayerMinutes[ id ] -= 60;
		}
	}
}

public verifyPlayer( id )
{
	new szFile = fopen( g_szFile, "r" );
	
	if( !szFile )
		return 1;
	
	new szData[ 512 ], szParseName[ 32 ], szParseHours[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, sizeof( szData ) -1 );
		
		if( szData[ 0 ] == ';' || szData[ 0 ] == '!' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		
		parse( szData, szParseName, sizeof( szParseName ), szParseHours, sizeof( szParseHours ) );
		
		if( equali( szParseName, szName ) ) 
		{
			if( g_iPlayerStats[ id ] >= str_to_num( szParseHours ) )
			{
				log_to_file( "activity_admins.log", "%s si-a respectat programul cu %i/%i ore.", szName, g_iPlayerStats[ id ], str_to_num( szParseHours ) );	
			}
			
			else
			{
				log_to_file( "activity_admins.log", "%s a stat doar %i minute pe server. A primit 1 warn.", szName, g_iPlayerStats[ id ], str_to_num( szParseHours ), g_iPlayerMinutes[ id ] );
				
				C_PrintChat( id, "Atentie ! Azi ai facut !v%i!c minute. Trebuie sa stai minim !v%i!c ore.", g_iPlayerMinutes[ id ], str_to_num( szParseHours ), str_to_num( szParseHours ) );
				C_PrintChat( id, "Ai primit !v1!c warn, pentru ca nu ai stat !v%i!c ore. (!v%i!c/!v%i!c)", str_to_num( szParseHours ), g_iPlayerStats[ id ], str_to_num( szParseHours ) );
				
				g_iPlayerWarn[ id ] += 1;
			}
			
			g_iHourPlayer[ id ] =  str_to_num( szParseHours );
		}
	}
	
	fclose( szFile );
	
	return 1;
}
		
public LoadHours( id )
{
	new szVaultData[ 256 ], szVaultKey[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	format( szVaultKey, sizeof( szVaultKey ) -1, "%s", szName );
	format( szVaultData, sizeof( szVaultData ) -1, "%i#%i#%i", g_iPlayerStats[ id ], g_iPlayerMinutes[ id ], g_iPlayerWarn[ id ] );	
	
	new szVaultFile = nvault_open( "_file_activity_adm" );
	nvault_get( szVaultFile, szVaultKey, szVaultData, sizeof( szVaultData ) -1 );
	
	replace_all( szVaultData, sizeof( szVaultData ), "#", " " );
	
	new iHours[ 32 ], iWarn[ 33 ], iMinutes[ 33 ];
	parse( szVaultData,\
		iHours, sizeof( iHours ) -1,\
		iWarn, sizeof( iWarn ) -1,\
		iMinutes, sizeof( iMinutes ) -1 );
	
	g_iPlayerStats[ id ] = str_to_num( iHours );
	g_iPlayerWarn[ id ] = str_to_num( iWarn );
	g_iPlayerMinutes[ id ] = str_to_num( iMinutes );
}

public SaveHours( id )
{
	new szVaultData[ 256 ], szVaultKey[ 32 ];
	
	static szName[ 32 ];
	get_user_name( id, szName, sizeof( szName ) -1 );
	
	format( szVaultKey, sizeof( szVaultKey ) -1, "%s", szName );
	format( szVaultData, sizeof( szVaultData ) -1, "%i#%i#%i", g_iPlayerStats[ id ], g_iPlayerMinutes[ id ], g_iPlayerWarn[ id ] );
	
	new szVaultFile = nvault_open( "_file_activity_adm" );
	nvault_set( szVaultFile, szVaultKey, szVaultData );
}

stock C_PrintChat( const id, const szInput[ ], any:... )
{
	new iPlayers[ 32 ], iNum = 1;
	
	static szMsg[ 320 ], szMsg2[ 320 ];
	
	vformat( szMsg, sizeof( szMsg ) -130, szInput, 3 );
	format( szMsg2, sizeof( szMsg2 ) -130, "!c[!vHNS!c] %s", szMsg );
	
	replace_all( szMsg2, sizeof( szMsg ) -130, "!v", "^x04" );
	replace_all( szMsg2, sizeof( szMsg ) -130, "!c", "^x01" );
	replace_all( szMsg2, sizeof( szMsg ) -130, "!e", "^x03" );
	
	if( id )
	{
		iPlayers[ 0 ] = id;
	}
	
	else
	{
		get_players( iPlayers, iNum, "c" );
	}
	
	for( new i = 0; i < iNum; i++ )
	{
		if( is_user_connected( iPlayers[ i ] ) )
		{
			message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, iPlayers[ i ] );
			
			write_byte( iPlayers[ i ] );
			write_string( szMsg2 );
			
			message_end( );
		}
	}
}
Retras
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

03 Oct 2013, 22:51

La fel : http://cloud-4.steampowered.com/ugc/597 ... 822AA2FCD/ nu poti face sa numai zica "azi ai facut 0 minute" sau sa apara si secundele sau nu stiu orice ala metoda insa sa nu ii dea acel 1 warn
smileye
Fost moderator
Fost moderator
Posts: 4648
Joined: 12 Jun 2012, 15:18
Detinator Steam: Da
Reputatie: Fost moderator
Has thanked: 258 times
Been thanked: 38 times
Contact:

14 Oct 2013, 12:34

Is niste buguri la acest plugin, dupa cum a spus si OnlyHD mai sus, ca da warn, poate warn-ul nu e luat in considerare dar apare in chat.

Poate cineva sa il repare?As avea si eu nevoie de acest plugin.
Merci.
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

14 Oct 2013, 12:37

smileye wrote:Is niste buguri la acest plugin, dupa cum a spus si OnlyHD mai sus, ca da warn, poate warn-ul nu e luat in considerare dar apare in chat.

Poate cineva sa il repare?As avea si eu nevoie de acest plugin.
Merci.
Eu vad ca functioneaza ok in poza. Si, warnul se ia in considerare. O sa-l refac azi sau maine.
Retras
smileye
Fost moderator
Fost moderator
Posts: 4648
Joined: 12 Jun 2012, 15:18
Detinator Steam: Da
Reputatie: Fost moderator
Has thanked: 258 times
Been thanked: 38 times
Contact:

14 Oct 2013, 12:41

falseq wrote:
smileye wrote:Is niste buguri la acest plugin, dupa cum a spus si OnlyHD mai sus, ca da warn, poate warn-ul nu e luat in considerare dar apare in chat.

Poate cineva sa il repare?As avea si eu nevoie de acest plugin.
Merci.
Eu vad ca functioneaza ok in poza. Si, warnul se ia in considerare. O sa-l refac azi sau maine.
Warn-ul nu se ia in considerare bine, la asta m-am referit.
Da warn daca iesi dupa cateva minute de pe server, sau intri si iesi... din prima warn.

Ar trebui sa se salveze pe o zi intreaga adica 24h warnurile, nu dupa ce ai iesit de pe server.E o greseala mare sa salveze asa warnurile, la 5 deconectari daca nu ai facut o ora minim, si asa iei remove fara sa stii de ce.
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

14 Oct 2013, 12:48

Ar fi bine sa verifice la sfarsit de zi daca ai warn-urile si atunci sa iti dea unul.
Locked

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 17 guests