HNS - GameMod (New version)( with credits system )

Pluginuri facute de utilizatorii forumului eXtream.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

13 Sep 2013, 14:34

Fi atent ai pus max. playeri 2 pentru a porni modul. Suntem fix 2, porneste modul si cand iese 1, cade serverul. Nu da eroare in log sau consola ca sa iti arat
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
RoyalServer
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:

13 Sep 2013, 15:19

| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < fun >
#include < cstrike >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < geoip >
#include < nvault >

enum _: szPlayerTime
{
	formatMinutes,
	formatHours
};
enum _: szVipType
{
	vipActive,
	vipSuspended
}
enum _: g_szItems
{
	g_iDeagle,
	g_iSmoke,
	g_iFlash,
	g_iHe,
	g_iViata,
	g_iArmura,
	g_iMoney
};
enum
{
	szDeagle,
	szHe,
	szFlash,
	szSmoke,
	szHealth,
	szArmor,
	szMoney,
}

#define VERSION "1.0"

#pragma semicolon 1

#define CMD				6						/* Max commands */
#define GROUPS 			6						/* Max Groups */
#define ACCES 			5						/* Max Acces */
#define VIP_ACCES 		6 						/* Max VIP Acces */

#define IsPlayer(%1) ( 1 <= %1 <= get_maxplayers( ) )

new const g_szServerCMD[ CMD ][ 512 ] = 
{ 
	"mp_freezetime 2", 
	"mp_roundtime 2", 
	"sv_gravity 650", 
	"sv_airaccelerate 100", 
	"sv_maxspeed 9999", 
	"sv_unlag 1"
};
new const g_szWhoGroup[ GROUPS ][ 512 ]	=
{ 
	"Owner", 
	"Super-Mod", 
	"Moderator", 
	"Helper", 
	"Slot", 
	"V.I.P" 
};
new const g_szWhoAcces[ ACCES ][ 512 ] = 
{ 
	"abcdefghijklmnopqrstwyxz",
	"abcdefghijklmnopqz", 
	"abcdefghijklz", 
	"abcdefghz", 
	"bz" 
};
new const g_szVipAcces[ VIP_ACCES ][ 512 ] = 
{ 
	"", 
	"abcdefghijklmz", 
	"abcdefghijklnz", 
	"abcdefghijkloz", 
	"abcdefghijkltz", 
	"abcdefghijklrz" 
};						/*		L:  1	2	 3	  4	   5    6	 7      8     9    10    11	   12      13     14     15      16     17      18       19      20       21 	*/
new const g_iLevelsXP[ 20 + 1 ] = { 25, 50, 100, 250, 350, 500, 1000, 1500, 3000, 6000, 9000, 15000, 50000, 80000, 100000, 150000, 250000, 500000, 800000, 1000000, 1300000 };
new const g_szLevelItems[ 21 + 1 ][ g_szItems ][ 512 ] = 
{
	{ "0", "0", "0", "0", "0", "0", "0" },		/* L: 0 */
	{ "0", "0", "1", "0", "2", "1", "0" }, 		/* L: 1 */
	{ "0", "0", "1", "0", "3", "3", "1" }, 		/* L: 2 */
	{ "0", "1", "1", "0", "5", "3", "1" },  	/* L: 3 */
	{ "0", "1", "2", "0", "5", "5", "5" },  	/* L: 3 */
	{ "0", "2", "2", "0", "8", "9", "6" },  	/* L: 4 */
	{ "0", "2", "2", "1", "8", "9", "6" },  	/* L: 5 */
	{ "0", "2", "2", "1", "10", "13", "10" },  	/* L: 6 */
	{ "1", "2", "2", "2", "15", "15", "15" },  	/* L: 7 */
	{ "1", "3", "2", "2", "18", "18", "18" },  	/* L: 8 */
	{ "1", "3", "3", "2", "18", "18", "18" },  	/* L: 9 */
	{ "1", "3", "3", "2", "18", "20", "20" },  	/* L: 10 */
	{ "2", "3", "3", "3", "23", "25", "25" },  	/* L: 11 */
	{ "2", "3", "4", "4", "25", "25", "25" },  	/* L: 12 */
	{ "3", "5", "5", "6", "30", "25", "30" },  	/* L: 13 */
	{ "3", "6", "6", "6", "30", "30", "30" },  	/* L: 14 */
	{ "3", "7", "6", "6", "30", "30", "30" },  	/* L: 15 */
	{ "3", "7", "7", "6", "33", "30", "30" },  	/* L: 16 */
	{ "3", "7", "7", "6", "35", "35", "30" },  	/* L: 17 */
	{ "4", "8", "8", "7", "35", "40", "30" },  	/* L: 18 */
	{ "4", "8", "8", "8", "43", "43", "35" },  	/* L: 19 */
	{ "4", "8", "8", "8", "45", "45", "45" }   	/* L: 20 */
};

// Cvars

new g_TaskIteme, g_MedicHealth, g_MedicCoolDown, g_MedicMaxHealth, g_MedicCost, g_ExecCMD, g_Tombola, g_MaxNumber, g_RemoveNumber, g_MinNumberT, 
g_PingCheck, g_MaxPing, g_TimePlayed, g_AddInfoServer, g_XpKill, g_XpRoundEndT, g_XpDeath, g_CreditsKill, g_CostShopAdmin, g_CostShopSlot, g_CostShopVIP, g_ModSnow, g_WinnerXP,
g_APHP, g_MaxWarn, g_TaskWarn, g_TaskDurWarn;

// Mod plugin

new g_iRounds;
new g_iModPlugin;
new const szTag[ ] = "!vHide!c'!vN!c'!vSeek!c";

// Tombol 

new g_iNumberIs;
new g_iWinner;
new g_iNumberTrue[ 33 ];
new g_iNumberAll;
new g_iNumberChosen;
new g_iNumber[ 33 ][ 31 ];
new g_iNumberPlayer[ 33 ];
new g_szNameTombol[ 33 ];

// Vault

new g_szVaultTime;
new g_szVaultPlayerStats;
new g_szVaultPlayerCredits;

// Played Time

new g_iPlayedTime[ 33 ][ szPlayerTime ];

// Level / XP

new g_iPlayerXP[ 33 ];
new g_iPlayerLevel[ 33 ];

// Vip 

new g_iVipNum[ 33 ][ 6 ];
new g_VipType[ 33 ][ szVipType ];
new g_iVipTotal[ szVipType ];
new g_szFileVip[ 128 ];
new g_UserIsVip[ 33 ];

// Medic

new g_iMedicLast[ 33 ];

// Console print

new const g_szConsolePrintHeader[ ] = "HNS.CS32.RO";
new const g_szConsolePrintFooter[ ] = "HNS.CS32.RO";

// Credits

new g_iPlayerCredits[ 33 ];

// Fps

new Float: g_fGameTime[ 33 ];
new g_iCurFPS[ 33 ];
new g_iFPS[ 33 ];
new g_iFramesPer[ 33 ];

// Restricted name

new g_szFileRestricted;

// Warn

new g_iWarn[ 33 ];
new g_szFileWarn[ 128 ];

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
public plugin_init( )
{
	// Register plugin
	
	register_plugin( "Time & Remove", VERSION, "Simao" );
	
	// Log Event
	
	register_logevent( "EV_RoundStart", 2, "1=Round_Start" );
	register_logevent( "EV_RoundEnd", 2, "1=Round_End" );

	// Event
	
	register_event( "DeathMsg", "EV_DeathMsg", "a" );
	
	// Cvars
	
	g_TaskIteme = register_cvar( "HNS_taskiteme", "5" );
	g_MedicHealth = register_cvar( "HNS_health", "25" );
	g_MedicCoolDown = register_cvar( "HNS_medic_cooldown", "5" );
	g_MedicMaxHealth = register_cvar( "HNS_medic_maxhealth", "101" );
	g_MedicCost	= register_cvar( "HNS_medic_cost", "1" );
	g_ExecCMD = register_cvar( "HNS_taskcmd", "15" );
	g_Tombola = register_cvar( "HNS_task_tombola", "25" );
	g_MaxNumber = register_cvar( "HNS_max_number", "31" );
	g_RemoveNumber = register_cvar( "HNS_remove_numbertime", "11" );	
	g_MinNumberT = register_cvar( "HNS_min_number", "5" );
	g_MaxPing = register_cvar( "HNS_max_ping", "100" );
	g_PingCheck = register_cvar( "HNS_ping_check", "5" );
	g_TimePlayed = register_cvar( "HNS_played_task", "60" );
	g_AddInfoServer = register_cvar( "HNS_add_info", "3600" );
	g_XpKill = register_cvar( "HNS_xp_kill", "25" );
	g_XpRoundEndT = register_cvar( "HNS_xp_roundend", "50" );
	g_XpDeath = register_cvar( "HNS_xp_death", "5" );
	g_CreditsKill = register_cvar( "HNS_credits_kill", "2" );
	g_CostShopAdmin = register_cvar( "HNS_cost_admin", "300" );
	g_CostShopSlot = register_cvar( "HNS_cost_slot", "100" );
	g_CostShopVIP = register_cvar( "HNS_cost_vip", "400" );
	g_ModSnow = register_cvar( "HNS_snow_mod", "0" );
	g_WinnerXP = register_cvar( "HNS_task_addwinner", "5" );
	g_APHP = register_cvar( "HNS_hp_winner", "120" );
	g_MaxWarn = register_cvar( "HNS_max_warn", "5" );
	g_TaskWarn = register_cvar( "HNS_task_warn", "3" );
	g_TaskDurWarn = register_cvar( "HNS_task_durwarn", "300" );
	
	// ClCmd
	
	register_clcmd( "say", "hookSay" );
	register_clcmd( "say_team", "hookSay" );
	
	// ConCmd
	
	register_concmd( "amx_transfer", "cmdTransfer", ADMIN_KICK, "<Nume> <Echipa> - Transferi un player" );
	register_concmd( "amx_addxp", "cmdAddXP", ADMIN_RCON, "<Nume> <XP> - Adaugi unui player XP" );
	register_concmd( "amx_addcredits", "cmdAddCredits", ADMIN_RCON, "<Nume> <Credite> - Adaugi unui player Credite" );
	register_concmd( "amx_addvip", "cmdAddVip", ADMIN_RCON, "<Status> <Nume> <Grad> - Adaugi un VIP" );
	register_concmd( "amx_resetstats", "cmdResetStats", ADMIN_RCON, "<Nume> - Resetezi statisticiile" );
	register_concmd( "amx_info", "cmdInfoPlayer", ADMIN_RCON, "<Nume> <XP/LVL/Credits> - Afli una din 3 optiuni( XP/LVL/Credits )" );
	register_concmd( "amx_addwarn", "cmdAddWarn", ADMIN_RCON, "<Nume> <Numar> - Adaugi WARN/uri" );
	register_concmd( "amx_infowarn", "cmdInfoWarn", ADMIN_SLAY, "<Nume> - Afli warn-uriile" );
	
	// Task
	
	set_task( float( get_pcvar_num( g_ExecCMD ) ), "serverCommands", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_Tombola ) ), "serverTombola" );
	set_task( float( get_pcvar_num( g_PingCheck ) ), "serverPingCheck", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_TaskWarn ) ), "serverCheckWarn", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_TaskDurWarn ) ), "serverRemoveWarn", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_AddInfoServer ) ), "addInfoServer", _, _, _, "b" );

	// Forward
	
	register_forward( FM_PlayerPreThink, "fwPlayerPreThink" );
	
	// Get file vip
	
	get_configsdir( g_szFileVip, 127 );
	format( g_szFileVip, 127, "%s/HNS_vip.ini", g_szFileVip );
	if( !file_exists( g_szFileVip ) )
	{
		write_file( g_szFileVip, "; [S] - Suspendat", -1 );
		write_file( g_szFileVip, "; [A] - Activ", -1 );
	}

	// Vault
	
	g_szVaultTime = nvault_open( "HNS_TimePlayed" );
	g_szVaultPlayerStats = nvault_open( "HNS_LevelXP" );
	g_szVaultPlayerCredits = nvault_open( "HNS_PlayerCredits" );
	
	// Add info VIP
		
	addInfoServer( );
	
	// Add snow
	
	addSnowServer( );
}
public plugin_cfg( )
{
	// Restrict name
	
	g_szFileRestricted = fopen( "addons/amxmodx/configs/HNS_restrictname.ini", "r" );
	if( !g_szFileRestricted )
		return 1;
	
	// User Warn
	
	get_configsdir( g_szFileWarn, 127 );
	format( g_szFileWarn, 127, "%s/HNS_userwarn.ini", g_szFileWarn );
	if( !file_exists( g_szFileWarn ) )
	{
		write_file( g_szFileWarn, "; Users warn", -1 );
		write_file( g_szFileWarn, "", -1 );
	}	
	
	// Verifiyng snow mod
	
	if( get_pcvar_num( g_ModSnow ) )
	{
		engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "env_snow" ) ); 
	}
	return 0;
}
public EV_RoundStart( )
{
	g_iRounds++;
	new iPlayers[ 32 ], iNum;
	get_players( iPlayers, iNum, "ac" );
	g_iModPlugin = true;
	if( g_iRounds == 1 )
	{
		client_print( 0, print_center, "Mod pornit cu succes. Bucurati-va de joc." );
		for( new i = 0; i < iNum; i++ )
		{
			new iPlayer;
			iPlayer = iPlayers[ i ];
			g_iModPlugin = true;
			set_task( float( get_pcvar_num( g_TaskIteme ) ), "playerItems", iPlayer );
			set_task( float( get_pcvar_num( g_WinnerXP ) ), "addWinnerXP", iPlayer );
			playerCalculateLevel( iPlayers[ i ] );
		}
	}
	else
	{
		for( new i = 0; i < iNum; i++ )
		{
			new iPlayer;
			iPlayer = iPlayers[ i ];
			g_iModPlugin = true;
			set_task( float( get_pcvar_num( g_TaskIteme ) ), "playerItems", iPlayer );
			set_task( float( get_pcvar_num( g_WinnerXP ) ), "addWinnerXP", iPlayer );
			playerCalculateLevel( iPlayers[ i ] );
		}
	}
}
public EV_DeathMsg( )
{
	if( g_iModPlugin )
	{
		new szVictim = read_data( 2 );
		new szAttacker = get_user_attacker( szVictim );
		if( szVictim == szAttacker ) 
			return;
			
		/* - - - Victima - - - */
		
		new szAttackerName[ 32 ];
		get_user_name( szAttacker, szAttackerName, 31 );
		C_PrintChat( szVictim, "Ai fost omorat de !v%s!c. [-!v%d!cXP]", szAttackerName, get_pcvar_num( g_XpDeath ) );
		g_iPlayerXP[ szVictim ] -= get_pcvar_num( g_XpDeath );
		CreateFade( szVictim, 200, 5, 100, 5 );
		
		/* - - - Atacator - - - */
		
		new szVictimName[ 32 ];
		get_user_name( szVictim, szVictimName, 31 );
		C_PrintChat( szAttacker, "L-ai omorat pe !v%s!c. [+!v%d!cXP][+!v%d!cCredits]", szVictimName, get_pcvar_num( g_XpKill ), get_pcvar_num( g_CreditsKill ) );
		g_iPlayerXP[ szAttacker ] += get_pcvar_num( g_XpKill );
		g_iPlayerCredits[ szAttacker ] += get_pcvar_num( g_CreditsKill );
		
		/* - - - Calculare Level - - - (t - temp) */
		
		playerCalculateLevel( szAttacker );
	}
}
public EV_RoundEnd( )
{
	new i_Players[ 32 ], i_Num;
	get_players( i_Players, i_Num, "c" );
	for( new i = 0; i < i_Num; i++ )
	{
		switch( get_user_team( i_Players[ i ] ) )
		{
			case 1:
			{
				if( is_user_alive( i_Players[ i ] ) && is_user_connected( i_Players[ i ] ) )
				{
					C_PrintChat( i_Players[ i ], "S-a mai dus o runda.. frumos. [+!v%d!cXP]", get_pcvar_num( g_XpRoundEndT ) );
					g_iPlayerXP[ i_Players[ i ] ] += get_pcvar_num( g_XpRoundEndT );
				}
			}
			case 2:
			{
				if( is_user_alive( i_Players[ i ] ) && is_user_connected( i_Players[ i ] ) )
				{
					C_PrintChat( i_Players[ i ], "Tu asa faci fraguri ? Omoara cat mai mult pentru !vXP!c / !vLEVEL!c." );
				}
			}
		}
	}
}
public playerItems( id )
{
	if( !IsPlayer( id ) )
		return PLUGIN_HANDLED;
	if( is_user_alive( id ) && !is_user_bot( id ) )
	{
		if( g_iPlayerLevel[ id ] < 1 )
		{
			C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - Nu ai iteme.", g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ] );
		}
		else
		{
			switch( g_iPlayerLevel[ id ] )
			{
				case 1: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cHP][+!v%d!cAP]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
				}		
				case 2: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}		
				case 3..4: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cSM][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ),
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ]  ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}	
				case 5..7: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cSM][+!v%d!cFL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}		
				case 8..20: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cSM][+!v%d!cHE][+!v%d!cDGL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ),
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iHe ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iDeagle ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Grenade( id, szHe, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iHe ] ) );
					f_Gun( id, szDeagle, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iDeagle ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}
			}
		}
	}
	return PLUGIN_CONTINUE;
}		
public fwPlayerPreThink( id )
{
	if( is_user_alive( id ) )
	{
		new szTarget, szBody;
		get_user_aiming( id, szTarget, szBody, 9999 );
		if( is_user_alive( szTarget ) )
		{
			static szHudMessage[ 256 ], szName[ 32 ];
			if( get_user_team( id ) == get_user_team( szTarget ) )
			{
				get_user_name( szTarget, szName, 31 );
				switch( get_user_team( szTarget ) )
				{
					case 1:
					{
						formatex( szHudMessage, 255, "( Friend )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
					case 2:
					{
						formatex( szHudMessage, 255, "( Friend )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 0, 0, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
				}
			}
			else
			{
				switch( get_user_team( szTarget ) )
				{
					case 1:
					{
						formatex( szHudMessage, 255, "( Enemy )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
					case 2:
					{
						formatex( szHudMessage, 255, "( Enemy )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 0, 0, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
				}
			}
			show_hudmessage( id, szHudMessage );
		}
	}
	g_fGameTime[ id ] = get_gametime( );
	if( g_iFramesPer[ id ] > g_fGameTime[ id ] )
	{
		g_iFPS[ id ] += 1;
	}
	else
	{
		g_iFramesPer[ id ] += 1;
		g_iCurFPS[ id ] = g_iFPS[ id ];
		g_iFPS[ id ] = 0;
	}
}
public hookSay( id )
{
	new s_Arg[ 192 ];
	read_args( s_Arg, 191 );
	remove_quotes( s_Arg );
	if( contain( s_Arg, "/medic" ) != -1 || contain( s_Arg, "medic" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iMedicLast[ id ] <= time( ) )
			{
				new iHealth, iMoney;
				iMoney = cs_get_user_money( id );
				iHealth = get_user_health( id );
				if( iMoney < get_pcvar_num( g_MedicCost ) )
				{
					C_PrintChat( id, "Nu ai destui bani pentru a apela la !vmedic!c." );
				}
				else
				{
					if( iHealth <= get_pcvar_num( g_MedicMaxHealth ) )
					{
						new iGiveHealth = get_user_health( id ) + get_pcvar_num( g_MedicHealth );
						set_user_health( id, iGiveHealth );
						C_PrintChat( id, "Ai primit !v%d!c HP de la medic. -!v%d!c$$.", get_pcvar_num( g_MedicHealth ), get_pcvar_num( g_MedicCost ) );
						cs_set_user_money( id, cs_get_user_money( id ) - get_pcvar_num( g_MedicCost ) );
						CreateFade( id, 255, 0, 0, 0 );
					}
					else
					{
						C_PrintChat( id, "Acest server permite maxim !v%d!c HP. Tu ai !v%d!c.", get_pcvar_num( g_MedicMaxHealth ), iHealth );
					}
					g_iMedicLast[ id ] = time( ) + get_pcvar_num( g_MedicCoolDown );
				}
			}
			else
			{
				new iLastTime = g_iMedicLast[ id ] - time( );
				C_PrintChat( id, "Asteapta !v%d!c secunde pentru a apela la medic.", iLastTime );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/playerxp" ) != -1 )
	{
		new target[ 32 ];
		copy( target, 31, s_Arg[ 10 ] );
		new szTarget = cmd_target( id, target, 3 );
		if( szTarget )
		{
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szTarget, g_iPlayerXP[ szTarget ] );
		}
		else
		{
			C_PrintChat( id, "Player-ul ales nu exista." );
		}
	}
	if( contain( s_Arg, "/numar" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iNumar[ 32 ];
			copy( iNumar, 31, s_Arg[ 7 ] );
			if( !str_to_num( iNumar ) )
			{
				C_PrintChat( id, "Foloseste !v/numar!c <!eNumarul tau!c>" );
			}
			else
			{
				if( !g_iNumberAll )
				{
					if( g_iNumber[ id ][ str_to_num( iNumar ) ] )
					{
						C_PrintChat( id, "Numarul ales de tine este deja folosit." );
					}
					else
					{
						if( str_to_num( iNumar ) >= get_pcvar_num( g_MaxNumber ) )
						{
							C_PrintChat( id, "Poti alege un numar de la !v1!c, la !v%d!c. (doar daca numarul nu este deja ales.)", ( get_pcvar_num( g_MaxNumber ) -1 ) );
						}
						else
						{
							if( !g_iNumberTrue[ id ] )
							{
								g_iNumberTrue[ id ] = true;
								C_PrintChat( id, "Ai ales numarul !v%d!c. Pentru informatii despre tragerea la sort, tasteaza !v/tombola!c.", str_to_num( iNumar ) );
								g_iNumber[ id ][ str_to_num( iNumar ) ] = true;
								g_iNumberPlayer[ id ] = str_to_num( iNumar );
								g_iNumberIs++;
							}
							else
							{
								C_PrintChat( id, "Ai ales deja un numar. Numarul este !v%d!c.", g_iNumberPlayer[ id ] );
							}
						}
					}
				}
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/numarales" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iNumberChosen <= 0 )
			{
				C_PrintChat( id, "Numarul nu a fost ales, inca." );
			}
			else
			{
				C_PrintChat( id, "Numaru ales astazi este !v%d!c.", g_iNumberChosen );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/tombola" ) != -1 )
	{
		if( g_iModPlugin )
		{
			show_motd( id, "addons/amxmodx/configs/HNS/tombola.html", "Tombola server" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/true" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iNumberChosen <= 0 )
			{
				C_PrintChat( id, "Numarul nu a fost ales, inca." );
			}
			else
			{
				if( g_iNumberAll )
				{
					if( g_iNumberChosen == g_iNumberPlayer[ id ] )
					{
						new szName[ 32 ];
						get_user_name( id, szName, 31 );
						C_PrintChat( id, "Felicitari, tu esti castigorul tombolei de pe aceasta harta." );
						C_PrintChat( 0, "Player !v%s!c, este castigorul tombolei de pe aceasta harta.", szName );
						copy( g_szNameTombol, 32, szName );
						g_iWinner = true;
						g_iNumberAll = false;
					}
					else
					{
						C_PrintChat( id, "Nu esti tu castigatorul tombolei !" );
					}
				}
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/who" ) != -1 || contain( s_Arg, "/admin" ) != -1 || contain( s_Arg, "/admins" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iLen, szMotd[ 2048 ], szName[ 32 ], iPlayers[ 32 ], iNum;
			get_players( iPlayers, iNum, "c" );
			iLen = format( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>^n^n" );
			iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white>Acest server foloseste</font><font color=red> %s</font><font color=white> creat de </font><font color=red>%s</font>^n^n", \
			"Time & Remove", "Rainq" );
			for( new i = 0; i <	sizeof( g_szWhoGroup ); i++ )
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=gray>%s</font>^n", g_szWhoGroup[ i ] );
				for( new x = 0; x < iNum; x++ )
				{
					get_user_name( iPlayers[ x ], szName, 31 );
					if( i + 1 < sizeof( g_szWhoGroup ) )
					{
						if( get_user_flags( iPlayers[ x ] ) == read_flags( g_szWhoAcces[ i ] ) )
						{
							iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font>^n", szName );
						}
					}
					else
					{
						for( new z = 1; z < sizeof( g_szVipAcces ); z++ )
						{
							if( get_user_flags( iPlayers[ x ] ) == read_flags( g_szVipAcces[ z ] ) )
							{
								iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font> <font color=white>[</font><font color=green>G:%d</font><font color=white>]</font> <font color=white>[</font><font color=green>%s</font><font color=white>]</font> <font color=white>[</font><font color=green>FTP:</font><font color=red>%s</font></font><font color=white>]</font>^n",\
								szName, z, g_VipType[ iPlayers[ x ] ][ vipActive ] == 1 ? "A" : "S" );
							}
						}
					}
				}
			}
			show_motd( id, szMotd, "Adminii serverului" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/castigator" ) != -1 || contain( s_Arg, "/castigatorTombola" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iLen, szMotd[ 2048 ];
			iLen = format( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>^n" );
			if( g_iWinner )
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white><font size=5>Castigatorul tombolei de astazi:</font></font>^n^n" );
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font><font color=white> cu numarul</font><font color=red> %d</font>", g_szNameTombol, g_iNumberPlayer[ id ] );
			}
			else
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white>Niciun castigator al tombolei de azi.</font>" );
			}
			show_motd( id, szMotd, "Castigator tombola" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/orejucate" ) != -1 || contain( s_Arg, "/ore" ) != -1 || contain( s_Arg, "/playedtime" ) != -1 )
	{
		C_PrintChat( id, "Ai !v%d!c minut%s jucat%s pe server.",\
		g_iPlayedTime[ id ][ formatMinutes ], g_iPlayedTime[ id ][ formatMinutes ] == 1 ? "" : "e", g_iPlayedTime[ id ][ formatMinutes ] == 1 ? "" : "e" );
	}
	if( contain( s_Arg, "/xp" ) != -1 || contain( s_Arg, "/lvl" ) != -1 || contain( s_Arg, "xp" ) != -1 || contain( s_Arg, "lvl" ) != -1 )
	{
		if( g_iModPlugin )
		{
			C_PrintChat( id, "Ai level !v%d!c - Xp !v%d!c/!v%d!c.", g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ] );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/credits" ) != -1 || contain( s_Arg, "/credite" ) != -1 )
	{
		if( g_iModPlugin )
		{
			static szName[ 32 ];
			get_user_name( id, szName, 31 );
			C_PrintChat( id, "!v%s!c - ai !v%d!c credit%s.", szName, g_iPlayerCredits[ id ], g_iPlayerCredits[ id ] == 1 ? "" : "e" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/shop" ) != -1 || contain( s_Arg, "/shopcredits" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new szMenuFormat[ 256 ], iCostAdmin[ 128 ], iCostSlot[ 128 ], iCostVIP[ 128 ];
			format( szMenuFormat, 255, "\r%d\y Credits\w - Ce doresti sa cumperi ?", g_iPlayerCredits[ id ] );
			format( iCostAdmin, 127, "\wAdmin\y - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopAdmin ) );
			format( iCostSlot, 127, "\wSlot\y - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopSlot ) );
			format( iCostVIP, 127, "\wV.I.P \y(\rG:2\y) - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopVIP ) );
			new g_Menu = menu_create( szMenuFormat, "shopHandler" );
			menu_additem( g_Menu, iCostAdmin, "1", 0 );
			menu_additem( g_Menu, iCostSlot, "2", 0 );
			menu_additem( g_Menu, iCostVIP, "3", 0 );
			menu_display( id, g_Menu, 0 );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/pxp" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new s_Arg2[ 32 ];
			copy( s_Arg2, 31, s_Arg[ 5 ] );
			new szTarget = cmd_target( id, s_Arg2, 31 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - !vXP!c.", szName, g_iPlayerXP[ szTarget ] );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}	
	if( contain( s_Arg, "/pcredits" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new s_Arg2[ 32 ];
			copy( s_Arg2, 31, s_Arg[ 5 ] );
			new szTarget = cmd_target( id, s_Arg2, 31 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - !vCredit%s!c.", szName, g_iPlayerCredits[ szTarget ], g_iPlayerCredits[ szTarget ] == 1 ? "" : "s" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/restart" ) != -1 || contain( s_Arg, "/rr" ) != -1 || contain( s_Arg, "/restartserver" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_SLAY )
			{
				server_cmd( "sv_restart 1" );
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				C_PrintChat( 0, "!v%s!c, a dat restart.", szName );
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/playerinfo" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_KICK )
			{
				new target[ 32 ];
				copy( target, 31, s_Arg[ 12 ] );
				if( !strlen( target ) )
				{
					C_PrintChat( id, "Comanda se foloseste in felul urmator: !v/playerinfo <!eNume!c>" );
				}
				else
				{
					new iLen, szMotd[ 2048 ];
					iLen = formatex( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<table border=^"1^" cellspaccing=^"1%^" cellpadding=^"5^"" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Nick</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>XP</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Level</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Credits</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>FPS</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Ping</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Loss</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</tr>" );		
					new szTarget = cmd_target( id, target, 3 );
					if( !szTarget ) 
						return PLUGIN_HANDLED;
					static szName[ 32 ], iPing, iLoss;
					get_user_name( szTarget, szName, 31 );
					get_user_ping( szTarget, iPing, iLoss );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%s</font></th>", szName );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerXP[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerLevel[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerCredits[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iCurFPS[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", iPing );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", iLoss );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</body></center>" );
						
					/* Final.. */
					
					show_motd( id, szMotd, "Player info" );
				}
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
	}
	if( contain( s_Arg, "/warn" ) != -1 || contain( s_Arg, "/mwarn" ) != -1 || contain( s_Arg, "/mywarn" ) != -1 )
	{
		if( g_iModPlugin )
		{
			C_PrintChat( id, "Ai !v%d!c/!v%d!c WARN-uri. La !v%d!c, vei primi ban.", g_iWarn[ id ], get_pcvar_num( g_MaxWarn ), get_pcvar_num( g_MaxWarn ) );
			C_PrintChat( id, "Warn-uriile se sterg odata la !v%d!c minute la toti playeri.", ( get_pcvar_num( g_TaskDurWarn ) / 60 ) );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/winfo" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_KICK )
			{
				new Target[ 32 ];
				copy( Target, 31, s_Arg[ 7 ] );
				new szTarget = cmd_target( id, Target, 3 );
				if( !szTarget )
					return PLUGIN_HANDLED;
				static szName[ 32 ];
				get_user_name( szTarget, szName, 31 );
				C_PrintChat( id, "Player !v%s!c are !v%d!c - WARN. (!v%d!c/!v%d!c)", szName, g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	return PLUGIN_CONTINUE;
}
public shopHandler( id, menu, item )
{
	switch( item )
	{
		case 0:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopAdmin ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vADMIN!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, read_flags( "abcdefghijkl" ) );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopAdmin );
				C_PrintChat( id, "Ai cumparat !vADMIN!c, ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopAdmin ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vADMIN!c.(!vO harta!c)", szName );
			}
		}
		case 1:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopSlot ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vSLOT!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, ADMIN_RESERVATION );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopSlot );
				C_PrintChat( id, "Ai cumparat !vSLOT!c, ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopSlot ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vSLOT!c.(!vO harta!c)", szName );
			}
		}
		case 2:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopVIP ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vVIP!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, read_flags( g_szVipAcces[ 2 ] ) );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopVIP );
				C_PrintChat( id, "Ai cumparat !vVIP!c (!vG:2!c), ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopVIP ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vVIP!c.(!vO harta!c)", szName );
				g_VipType[ id ][ vipActive ] = true;
			}
		}
	}
}
public checkVipPlayer( id, const szName[ ], const szIP[ ], const szAuthId[ ] )
{
	/* Set variables false */
	
	g_iVipNum[ id ][ 1 ] = false;
	g_iVipNum[ id ][ 2 ] = false;
	g_iVipNum[ id ][ 3 ] = false;
	g_iVipNum[ id ][ 4 ] = false;
	g_iVipNum[ id ][ 5 ] = false;
	
	/* Check */
	
	new szFile = fopen( g_szFileVip, "r" );
	if( !szFile )
		return;
	new szData[ 512 ], szInfo[ 64 ], iVipType[ 64 ], iAcces[ 64 ];
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, 511 );
		if( szData[ 0 ] == ';' || szData[ 0 ] == '#' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		parse( szData, iVipType, 63, szInfo, 63, iAcces, 63 );
		if( equali( szInfo, szName ) || equali( szInfo, szIP ) || equali( szInfo, szAuthId ) )
		{
			g_UserIsVip[ id ] = true;
		}
		switch( iVipType[ 1 ] )
		{
			case 'A': g_VipType[ id ][ vipActive ] = true;
			case 'S': g_VipType[ id ][ vipSuspended ] = true;
		}
		if( g_UserIsVip[ id ] )
		{
			switch( iAcces[ 1 ] )
			{
				case '1':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 1 ] ) );
				}
				case '2':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 2 ] ) );
				}				
				case '3':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 3 ] ) );
				}				
				case '4':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 4 ] ) );
				}				
				case '5':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 5 ] ) );
				}
			}
		}
	}
	fclose( szFile );
}
public serverTombola( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iNum;
		get_players( iPlayers, iNum, "g" );
		for( new i = 0; i < iNum; i++ )
		{
			g_iNumberChosen = random_num( 1, get_pcvar_num( g_MaxNumber ) );
			if( g_iNumberIs >= get_pcvar_num( g_MinNumberT ) )
			{
				client_cmd( iPlayers[ i ], "spk ^"is time^"" );
				C_PrintChat( iPlayers[ i ], "Este timp-ul pentru !vTOMBOLA!c." );
				CreateFade( iPlayers[ i ], 5, 5, 195, 125 );
				C_PrintChat( iPlayers[ i ], "Numar ales random pe aceasta harta, este !v%d!c.", g_iNumberChosen );
				C_PrintChat( iPlayers[ i ], "Playerul cu acest numar (!v%d!c), sa scrie in !v10!c secunde in chat, !v/true!c.", g_iNumberChosen );
				g_iNumberAll = true;
				set_task( float( get_pcvar_num( g_RemoveNumber ) ), "anulareNumarTombola", iPlayers[ i ] );
			}
		}
	}
}
public anulareNumarTombola( id )
{
	if( g_iNumberAll )
	{
		C_PrintChat( id, "Numarul la tombola de pe aceasta harta nu a fost gasit." );
		g_iNumberAll = false;
	}
}
public checkPlayedTime( id )
{
	if( is_user_connected( id ) && !is_user_bot( id ) )
	{
		g_iPlayedTime[ id ][ formatMinutes ] += 1;
		if( g_iPlayedTime[ id ][ formatMinutes ] >= 60 )
		{
			g_iPlayedTime[ id ][ formatHours ] += 1;
			g_iPlayedTime[ id ][ formatMinutes ] -= 60;
		}
	}
}
public cmdAddXP( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iAmount[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iAmount, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iAmount ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <XP> se adauga o valoare numerica." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			C_PrintChat( 0, "Admin !v%s!c ii adauga lui !v%s!c - !v%d!c XP.", szNameAdmin, szNameTarget, str_to_num( iAmount ) );
			g_iPlayerXP[ szTarget ] += str_to_num( iAmount );
			playerCalculateLevel( szTarget );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddWarn( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iWarn[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iWarn, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iWarn ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Numar> se adauga o valoare numerica. (cate WARN/uri vrei sa dai[%d ban])", get_pcvar_num( g_MaxWarn ) );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			g_iWarn[ szTarget ] += str_to_num( iWarn );
			C_PrintChat( 0, "Admin !v%s!c ii da lui !v%s!c / !v%d!c WARN. Acum are [!v%d!c/!v%d!c] Warn.", szNameAdmin, szNameTarget, str_to_num( iWarn ), g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdInfoWarn( id )
{
	if( g_iModPlugin )
	{
		if( get_user_flags( id ) & ADMIN_KICK )
		{
			new s_Arg[ 32 ];
			read_argv( 1, s_Arg, 31 );
			new szTarget = cmd_target( id, s_Arg, 3 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			static szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - WARN. (!v%d!c/!v%d!c)", szName, g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
		}
		else
		{
			C_PrintChat( id, "Nu ai acces la aceasta comanda." );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddVip( id )
{
	if( g_iModPlugin )
	{
		static szStatus[ 32 ], szNume[ 32 ], iGrad[ 32 ];
		read_argv( 1, szStatus, 31 );
		read_argv( 2, szNume, 31 );
		read_argv( 3, iGrad, 31 );
		if( !strlen( szStatus ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Status> se adauga A - Activ sau S - Suspendat." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else if( !strlen( szNume ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Nume> se adauga numele VIP-ului care doresti sa-l adaugi." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else if( !str_to_num( iGrad ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Grad> se adauga o valoare numerica, incepand de la 1 (cel mai mic), pana la 5 (cel mai mare)." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			if( strlen( szStatus ) == 1 )
			{
				if( str_to_num( iGrad ) > 0 || str_to_num( iGrad ) < 6 )
				{
					new szFormat[ 256 ], szTarget;
					szTarget = cmd_target( id, szNume, 3 );
					if( is_user_connected( szTarget ) && !is_user_bot( szTarget ) )
					{
						C_PrintChat( szTarget, "Admin !v%s!c te-a adaugat ca V.I.P - !v%s!c | !v%s!c | !v%d!c", szStatus, szNume, str_to_num( iGrad ) );
						set_user_flags( szTarget, read_flags( g_szVipAcces[ str_to_num( iGrad ) ] ) );
					}
					formatex( szFormat, 255, "[%s] ^"%s^" [%d]", szStatus, szNume, str_to_num( iGrad ) );
					write_file( "addons/amxmodx/configs/HNS_vip.ini", szFormat, -1 );
				}
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_HANDLED;
}
public cmdInfoPlayer( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], s_Arg2[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, s_Arg2, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !strlen( s_Arg2 ) ) 
		{
			console_print( id, "La <XP/LVL/Credits> XP - XP-ul unui player / LVL - Levelul unui player / Credits - Creditele unui player" );
		}
		else
		{
			static szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			switch( s_Arg2[ 0 ] )
			{
				case 'L':
				{
					C_PrintChat( id, "Player !v%s!c are level !v%d!c.", szName, g_iPlayerLevel[ szTarget ] );
				}
				case 'X':
				{
					C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szName, g_iPlayerXP[ szTarget ] );
				}
				case 'C':
				{
					C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szName, g_iPlayerCredits[ szTarget ] );
				}
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}		
public cmdResetStats( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ];
		read_argv( 1, s_Arg, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		static pName[ 32 ], aName[ 32 ];
		get_user_name( id, aName, 31 );
		get_user_name( szTarget, pName, 31 );
		C_PrintChat( 0, "Admin !v%s!c ii reseteaza statisticiile lui !v%s!c. [!vXP!c/!vLVL!c/!vCredits!c]", aName, pName );
		g_iPlayerXP[ szTarget ] = 0;
		g_iPlayerLevel[ szTarget ] = 0;
		g_iPlayerCredits[ szTarget ] = 0;
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddCredits( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iAmount[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iAmount, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iAmount ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Credits> se adauga o valoare numerica." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			C_PrintChat( 0, "Admin !v%s!c ii adauga lui !v%s!c - !v%d!c Credit%s.", szNameAdmin, szNameTarget, str_to_num( iAmount ), str_to_num( iAmount ) == 1 ? "" : "e" );
			g_iPlayerCredits[ szTarget ] += str_to_num( iAmount );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdTransfer( id )
{
	if( g_iModPlugin )
	{
		new c_Arg[ 32 ], c_Echipa[ 32 ];
		read_argv( 1, c_Arg, 31 );
		read_argv( 2, c_Echipa, 31 );
		new target = cmd_target( id, c_Arg, 3 );
		if( !target )
			return PLUGIN_HANDLED;
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		switch( c_Echipa[ 0 ] )
		{
			case 'T':
			{
				user_kill( target );
				cs_set_user_team( target, 1 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vTERO!c.", szName );
			}
			case 'C':
			{
				user_kill( target );
				cs_set_user_team( target, 2 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vCOUNTER!e-!vTERO!c.", szName );
			}
			case 'S':
			{
				user_kill( target );
				cs_set_user_team( target, 3 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vSPEC!c.", szName );
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public serverPingCheck( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iNum, id;
		get_players( iPlayers, iNum, "c" );
		for( new i = 0; i < iNum; i++ )
		{
			id = iPlayers[ i ];
			static iPing, iLoss;
			get_user_ping( id, iPing, iLoss );
			if( iPing >= get_pcvar_num( g_MaxPing ) )
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				C_PrintChat( id, "Player !v%s!c avea ping prea mare si a fost deconectat.", szName );
				server_cmd( "kick #%d Ping prea mare, rezolva-l si revin-o la joc !", get_user_userid( id ) );
			}
		}
	}
}
public serverCheckWarn( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount;
		get_players( iPlayers, iCount, "ac" );
		for( new i = 0; i < iCount; i++ )
		{
			if( is_user_connected( iPlayers[ i ] ) && !is_user_bot( iPlayers[ i ] ) )
			{
				if( g_iWarn[ iPlayers[ i ] ] >= get_pcvar_num( g_MaxWarn ) )
				{
					server_cmd( "kick #%d Ai %d/%d WARN/uri.", get_user_userid( iPlayers[ i ] ), g_iWarn[ iPlayers[ i ] ], get_pcvar_num( g_MaxWarn ) );
					new szNameFormat[ 256 ], szName[ 32 ];
					get_user_name( iPlayers[ i ], szName, 31 );
					format( szNameFormat, 255, "%s", szName );
					write_file( g_szFileWarn, szNameFormat, -1 );
				}
			}
		}
	}
}
public serverRemoveWarn( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount;
		get_players( iPlayers, iCount, "ac" );
		for( new i = 0; i < iCount; i++ )
		{
			if( is_user_connected( iPlayers[ i ] ) && !is_user_bot( iPlayers[ i ] ) )
			{
				if( g_iWarn[ iPlayers[ i ] ] > 0 )
				{
					C_PrintChat( iPlayers[ i ], "Toate !vWARN!c-uriile, au fost sterse. (la toti useri.)" );
					g_iWarn[ iPlayers[ i ] ] -= g_iWarn[ iPlayers[ i ] ];
				}
			}
		}
	}
}
public serverCommands( )
{
	for( new i = 0; i < sizeof( g_szServerCMD ); i++ )
		server_cmd( g_szServerCMD[ i ] );
}
public client_disconnect( id )
{
	// Save Time 
		
	PlayedTimeSave( id );
		
	// Save XP
		
	PlayerXpSave( id );
	
	// Save Credits
		
	PlayerCreditsSave( id );
		
	// Print
		
	ClientDisconnected( id );
		
	// Task
		
	remove_task( id );
}
public client_putinserver( id )
{
	// Load Time
		
	PlayedTimeLoad( id );
	
	// Load XP
		
	PlayerXpLoad( id );
		
	// Load Credits
		
	PlayerCreditsLoad( id );
		
	// Task
		
	set_task( float( get_pcvar_num( g_TimePlayed ) ), "checkPlayedTime", id, _, _, "b" );
		
	// Check VIP
		
	static szName[ 32 ], szIP[ 32 ], szAuthId[ 32 ];
	get_user_name( id, szName, 31 );
	get_user_ip( id, szIP, 31, 1 );
	get_user_authid( id, szAuthId, 31 );
	checkVipPlayer( id, szName, szIP, szAuthId );
		
	// Print
		
	ClientConnected( id );
	
	// Check name
		
	ClientCheckName( id );
	
	// Check Warn
		
	ClientCheckWarn( id );
	
	// Hud
	
	set_task( 1.0, "hudPlayerCredits", id, _, _, "b" );
}
public ClientCheckName( id )
{
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		new szData[ 512 ], szRestrictedName[ 128 ];
		while( !feof( g_szFileRestricted ) )
		{
			fgets( g_szFileRestricted, szData, 511 );
			if( szData[ 0 ] == ';' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			parse( szData, szRestrictedName, 127 );
			if( equal( szRestrictedName, szName ) )
			{
				server_cmd( "kick #%d Numele tau nu este permis pe acest server.", get_user_userid( id ) );
			}
		}
		fclose( g_szFileRestricted );
	}
	return 0;
}
public ClientCheckWarn( id )
{	
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		new szFile = fopen( g_szFileWarn, "r" );
		if( !szFile )
			return 1;
		new szData[ 512 ], szInfo[ 64 ];
		while( !feof( szFile ) )
		{
			fgets( szFile, szData, 511 );
			if( szData[ 0 ] == ';' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			parse( szData, szInfo, 63 );
			if( equal( szInfo, szName ) )
			{
				server_cmd( "kick #%d Ai %d/%d WARN/uri.", get_user_userid( id ), g_iWarn, get_pcvar_num( g_MaxWarn ) );
			}
		}
		fclose( szFile );
	}
	return 0;
}
public ClientDisconnected( id )
{
	if( g_iModPlugin )
	{
		static szMesaj[ 128 ], szName[ 32 ];
		get_user_name( id, szName, 31 );
		if( get_user_flags( id ) & ADMIN_LEVEL_C ||
		get_user_flags( id ) & ADMIN_LEVEL_A ||
		get_user_flags( id ) & ADMIN_LEVEL_B ||
		get_user_flags( id ) & ADMIN_LEVEL_F ||
		get_user_flags( id ) & ADMIN_LEVEL_H )
		{
			format( szMesaj, 127, "V.I.P !v%s!c [!v%s!c] sa deconectat.", szName, g_VipType[ id ][ vipActive ] == 1 ? "A" : "S" );
		}
		else
		{
			format( szMesaj, 127, "Jucator !v%s!c sa deconectat.", szName );
		}
		C_PrintChat( id, szMesaj );
	}
}
public ClientConnected( id )
{
	if( g_iModPlugin )
	{
		static szMesaj[ 128 ], szName[ 32 ];
		get_user_name( id, szName, 31 );
		if( get_user_flags( id ) & ADMIN_LEVEL_C ||
		get_user_flags( id ) & ADMIN_LEVEL_A ||
		get_user_flags( id ) & ADMIN_LEVEL_B ||
		get_user_flags( id ) & ADMIN_LEVEL_F ||
		get_user_flags( id ) & ADMIN_LEVEL_H )
		{
			format( szMesaj, 127, "V.I.P !v%s!c [!v%s!c] sa conectat.", szName, g_VipType[ id ][ vipActive ] == 1 ? "A" : "S" );
		}
		else
		{
			format( szMesaj, 127, "Jucator !v%s!c sa conectat.", szName );
		}
		C_PrintChat( id, szMesaj );
	}
}
public hudPlayerCredits( id )
{
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		set_hudmessage( 40, 100, 200, -1.0, 0.64, 1, 6.0, 1.0 );
		show_hudmessage( id, "( %s ) - FPS-ul tau %d ^n[Credits: %d][XP: %d][Level: %d][Warn: %d]", szName, g_iCurFPS[ id ], g_iPlayerCredits[ id ], g_iPlayerXP[ id ], g_iPlayerLevel[ id ], g_iWarn[ id ] );
	}
}
public PlayerXpSave( id )
{		
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i#%i", g_iPlayerLevel[ id ], g_iPlayerXP[ id ] );
	nvault_set( g_szVaultPlayerStats, szVaultKey, szVaultData );
}
public PlayerXpLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i#%i", g_iPlayerLevel[ id ], g_iPlayerXP[ id ] );
	nvault_get( g_szVaultPlayerStats, szVaultKey, szVaultData, 255 );
	replace_all( szVaultData, 255, "#", " " );
	new iPlayerLevel[ 33 ], iPlayerXP[ 33 ];
	parse( szVaultData, iPlayerLevel, 32, iPlayerXP, 32 );
	g_iPlayerLevel[ id ] = str_to_num( iPlayerLevel );
	g_iPlayerXP[ id ] = str_to_num( iPlayerXP );
}
public PlayerCreditsSave( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayerCredits[ id ] );
	nvault_set( g_szVaultPlayerCredits, szVaultKey, szVaultData );
}
public PlayerCreditsLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayerCredits[ id ] );
	nvault_get( g_szVaultPlayerCredits, szVaultKey, szVaultData, 255 );
	new iPlayerCredits[ 33 ];
	parse( szVaultData, iPlayerCredits, 32 );
	g_iPlayerCredits[ id ] = str_to_num( iPlayerCredits );
}
public PlayedTimeSave( id ) 
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayedTime[ id ][ formatMinutes ] );
	nvault_set( g_szVaultTime, szVaultKey, szVaultData );
}
public PlayedTimeLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayedTime[ id ][ formatMinutes ] );
	nvault_get( g_szVaultTime, szVaultKey, szVaultData, 255 );
	new iPlayedMinutes[ 33 ];
	parse( szVaultData, iPlayedMinutes, 32 );
	g_iPlayedTime[ id ][ formatMinutes ] = str_to_num( iPlayedMinutes );
}
public plugin_end( )
{
	nvault_close( g_szVaultTime );
	nvault_close( g_szVaultPlayerStats );
	nvault_close( g_szVaultPlayerCredits );
}
public addInfoServer( )
{
	new szFile = fopen( g_szFileVip, "r" );
	new szData[ 512 ];
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, 511 );
		switch( szData[ 1 ] )
		{
			case 'A':
			{
				g_iVipTotal[ vipSuspended ] = 0;
				g_iVipTotal[ vipActive ] = 0;
				g_iVipTotal[ vipActive ]++;
			}
			case 'S':
			{
				g_iVipTotal[ vipSuspended ] = 0;
				g_iVipTotal[ vipActive ] = 0;
				g_iVipTotal[ vipSuspended ]++;
			}
		}
	}
	fclose( szFile );
	new szFormat[ 128 ], szDate[ 32 ];
	get_time( "%d.%m.%Y | %H:%M:%S", szDate, 31 );
	format( szFormat, 127, "[%s] Total VIP(s): [A] %d | [S] %d", szDate, g_iVipTotal[ vipActive ], g_iVipTotal[ vipSuspended ]  );
	write_file( "addons/amxmodx/configs/HNS_infoServer.ini", szFormat, -1 );
	write_file( "addons/amxmodx/configs/HNS_infoServer.ini", "", -1 );
}
public addSnowServer( )
{
	if( g_iModPlugin )
	{
		if( get_pcvar_num( g_ModSnow ) )
		{
			new iPlayers[ 32 ], iCount;
			get_players( iPlayers, iCount, "ac" );
			for( new i = 0; i < iCount; i++ )
			{
				client_cmd( iPlayers[ i ], "cl_weather ^"1^"" );
			}
		}
	}
}
public addWinnerXP( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount, iMax, i;
		get_players( iPlayers, iCount, "a" );
		for( i = 0; i < iCount; i++ )
		{
			if( g_iPlayerLevel[ iPlayers[ i ] ] > g_iPlayerLevel[ iPlayers[ i + 1 ] ] )
			{
				iMax = iPlayers[ i ];
				if( g_iPlayerLevel[ iMax ] > 0 )
				{
					static szName[ 32 ]; 
					get_user_name( iMax, szName, 31 );
					C_PrintChat( 0, "Player !v%s!c are level !v%d!c. Va fi premiat.", szName, g_iPlayerLevel[ iMax ] );
					C_PrintChat( iMax, "Pentru ca ai level !v%d!c (cel mai mare). Vei avea +!v%d!c[HP/AP].", g_iPlayerLevel[ iMax ], get_pcvar_num( g_APHP ) );
					set_user_health( iMax, get_user_health( iMax ) + get_pcvar_num( g_APHP ) );
					set_user_armor( iMax, get_user_armor( iMax ) + get_pcvar_num( g_APHP ) );
					CreateFade( iMax, 255, 0, 0, 0 );
					ShakeScreen( iMax, 5.0 );
				}
			}
			else
			{
				iMax = iPlayers[ i + 1 ];
			}
		}
	}
}
playerCalculateLevel( id )
{
	if( ( g_iPlayerLevel[ id ] <= 21 ) && ( g_iPlayerXP[ id ] >= g_iLevelsXP[ g_iPlayerLevel[ id ] ] ) )
	{
		while( g_iPlayerXP[ id ] >= g_iLevelsXP[ g_iPlayerLevel[ id ] ] )
		{
			g_iPlayerLevel[ id ] += 1;
		}
	}
}
stock CreateFade( id, red, green, blue, alpha )
{
	message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), { 0, 0, 0 }, id );
	write_short( 5 << 10 );
	write_short( 5 << 10 );
	write_short( 5 << 12 );
	write_byte( red );
	write_byte( green );
	write_byte( blue );
	write_byte( alpha );
	message_end( );
}
public ShakeScreen( id, const Float:seconds )
{
	message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( 1 << 13 );
	message_end( );
}
stock f_Gun( id, gun, ammo )
{
	switch( gun )
	{
		case szDeagle:
		{
			if( find_ent_by_owner( -1, "weapon_deagle", id ) )
			{
				cs_set_weapon_ammo( find_ent_by_owner( -1, "weapon_deagle", id ), cs_get_weapon_ammo( find_ent_by_owner( -1, "weapon_deagle", id ) ) + ammo );
			} 
			else 
			{
				give_item( id, "weapon_deagle" );
				new eNtry = find_ent_by_owner( -1, "weapon_deagle", id );
				if( eNtry )
				{
					cs_set_weapon_ammo( eNtry, ammo );
				}
			}
		}
	}
}
stock f_Grenade( id, grenade, nr )
{
	switch( grenade )
	{
		case szHe:
		{
			new it = cs_get_user_bpammo( id, CSW_HEGRENADE );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_HEGRENADE, it + nr );
			}
			else 
			{
				give_item( id, "weapon_hegrenade" );
				cs_set_user_bpammo( id, CSW_HEGRENADE, nr );
			}
		}
		case szSmoke:
		{
			new it = cs_get_user_bpammo( id, CSW_SMOKEGRENADE );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_SMOKEGRENADE, it + nr );
			}
			else 
			{
				give_item( id, "weapon_smokegrenade" );
				cs_set_user_bpammo( id, CSW_SMOKEGRENADE, nr );
			}
		}
		case szFlash:
		{
			new it = cs_get_user_bpammo( id, CSW_FLASHBANG );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_FLASHBANG , it + nr );
			}
			else 
			{
				give_item( id, "weapon_flashbang" );
				cs_set_user_bpammo( id, CSW_FLASHBANG , nr );
			}
		}
	}
}
stock f_Skill( id, skill, count )
{
	switch( skill )
	{
		case szHealth:
		{
			set_user_health( id, get_user_health( id ) + count );
		}
		case szArmor:
		{
			set_user_armor( id, get_user_armor( id ) + count );
		}
		case szMoney:
		{
			cs_set_user_money( id, cs_get_user_money( id ) + count );
		}
	}
}
stock C_PrintChat( const id, const input[ ], any:... )
{
	new iCount = 1, iPlayers[ 32 ];
	static szMsg[ 320 ], szMsg2[ 320 ];
	vformat( szMsg, 190, input, 3 );
	format( szMsg2, 190, "!c[%s] %s", szTag, szMsg );
	replace_all( szMsg2, 190, "!v", "^4" );
	replace_all( szMsg2, 190, "!c", "^1" );
	replace_all( szMsg2, 190, "!e", "^3" );
	if( id )
	{
		iPlayers[ 0 ] = id;
	}
	else
	{
		get_players( iPlayers, iCount, "ch" );
	}
	for( new i = 0; i < iCount; 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( );
		}
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Am scos verificarea playeriilor. Vedeti acum.
Retras
FantasyCso
Membru, skill +1
Membru, skill +1
Posts: 109
Joined: 02 Sep 2013, 20:31
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Been thanked: 2 times
Contact:

13 Sep 2013, 19:22

Idea e buna , ai furat mult de la fast si ai folosit nvault .
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:

13 Sep 2013, 19:24

FantasyCso wrote:Idea e buna , ai furat mult de la fast si ai folosit nvault ( te caci pe el ) .
:)) pluginu lui fast sa invechit, si nu am copiat nimic. Oricum fast mi-ar da voie.
Retras
FantasyCso
Membru, skill +1
Membru, skill +1
Posts: 109
Joined: 02 Sep 2013, 20:31
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Been thanked: 2 times
Contact:

13 Sep 2013, 20:29

Simao wrote:
FantasyCso wrote:Idea e buna , ai furat mult de la fast si ai folosit nvault ( te caci pe el ) .
:)) pluginu lui fast sa invechit, si nu am copiat nimic. Oricum fast mi-ar da voie.
Aici e pe vrute sau nevrute?

Daca vrei copi , daca nu asta e , cine te opreste?
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:

13 Sep 2013, 21:01

FantasyCso wrote:
Simao wrote:
FantasyCso wrote:Idea e buna , ai furat mult de la fast si ai folosit nvault ( te caci pe el ) .
:)) pluginu lui fast sa invechit, si nu am copiat nimic. Oricum fast mi-ar da voie.
Aici e pe vrute sau nevrute?

Daca vrei copi , daca nu asta e , cine te opreste?
Il lumea ta e si normal ca nu sti ce inseamna.
@ Gata cu offtopic. Astept pareri in continuare / buguri / probleme.
Retras
snd
Membru, skill +1
Membru, skill +1
Posts: 134
Joined: 26 Dec 2012, 17:25
Detinator Steam: Nu
CS Status: I Don't have.
Has thanked: 34 times
Been thanked: 2 times
Contact:

19 Sep 2013, 19:26

Pica serveru ` cand il pun ... o rezolvare?
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:

19 Sep 2013, 19:27

Simao wrote:
| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < fun >
#include < cstrike >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < geoip >
#include < nvault >

enum _: szPlayerTime
{
	formatMinutes,
	formatHours
};
enum _: szVipType
{
	vipActive,
	vipSuspended
}
enum _: g_szItems
{
	g_iDeagle,
	g_iSmoke,
	g_iFlash,
	g_iHe,
	g_iViata,
	g_iArmura,
	g_iMoney
};
enum
{
	szDeagle,
	szHe,
	szFlash,
	szSmoke,
	szHealth,
	szArmor,
	szMoney,
}

#define VERSION "1.0"

#pragma semicolon 1

#define CMD				6						/* Max commands */
#define GROUPS 			6						/* Max Groups */
#define ACCES 			5						/* Max Acces */
#define VIP_ACCES 		6 						/* Max VIP Acces */

#define IsPlayer(%1) ( 1 <= %1 <= get_maxplayers( ) )

new const g_szServerCMD[ CMD ][ 512 ] = 
{ 
	"mp_freezetime 2", 
	"mp_roundtime 2", 
	"sv_gravity 650", 
	"sv_airaccelerate 100", 
	"sv_maxspeed 9999", 
	"sv_unlag 1"
};
new const g_szWhoGroup[ GROUPS ][ 512 ]	=
{ 
	"Owner", 
	"Super-Mod", 
	"Moderator", 
	"Helper", 
	"Slot", 
	"V.I.P" 
};
new const g_szWhoAcces[ ACCES ][ 512 ] = 
{ 
	"abcdefghijklmnopqrstwyxz",
	"abcdefghijklmnopqz", 
	"abcdefghijklz", 
	"abcdefghz", 
	"bz" 
};
new const g_szVipAcces[ VIP_ACCES ][ 512 ] = 
{ 
	"", 
	"abcdefghijklmz", 
	"abcdefghijklnz", 
	"abcdefghijkloz", 
	"abcdefghijkltz", 
	"abcdefghijklrz" 
};						/*		L:  1	2	 3	  4	   5    6	 7      8     9    10    11	   12      13     14     15      16     17      18       19      20       21 	*/
new const g_iLevelsXP[ 20 + 1 ] = { 25, 50, 100, 250, 350, 500, 1000, 1500, 3000, 6000, 9000, 15000, 50000, 80000, 100000, 150000, 250000, 500000, 800000, 1000000, 1300000 };
new const g_szLevelItems[ 21 + 1 ][ g_szItems ][ 512 ] = 
{
	{ "0", "0", "0", "0", "0", "0", "0" },		/* L: 0 */
	{ "0", "0", "1", "0", "2", "1", "0" }, 		/* L: 1 */
	{ "0", "0", "1", "0", "3", "3", "1" }, 		/* L: 2 */
	{ "0", "1", "1", "0", "5", "3", "1" },  	/* L: 3 */
	{ "0", "1", "2", "0", "5", "5", "5" },  	/* L: 3 */
	{ "0", "2", "2", "0", "8", "9", "6" },  	/* L: 4 */
	{ "0", "2", "2", "1", "8", "9", "6" },  	/* L: 5 */
	{ "0", "2", "2", "1", "10", "13", "10" },  	/* L: 6 */
	{ "1", "2", "2", "2", "15", "15", "15" },  	/* L: 7 */
	{ "1", "3", "2", "2", "18", "18", "18" },  	/* L: 8 */
	{ "1", "3", "3", "2", "18", "18", "18" },  	/* L: 9 */
	{ "1", "3", "3", "2", "18", "20", "20" },  	/* L: 10 */
	{ "2", "3", "3", "3", "23", "25", "25" },  	/* L: 11 */
	{ "2", "3", "4", "4", "25", "25", "25" },  	/* L: 12 */
	{ "3", "5", "5", "6", "30", "25", "30" },  	/* L: 13 */
	{ "3", "6", "6", "6", "30", "30", "30" },  	/* L: 14 */
	{ "3", "7", "6", "6", "30", "30", "30" },  	/* L: 15 */
	{ "3", "7", "7", "6", "33", "30", "30" },  	/* L: 16 */
	{ "3", "7", "7", "6", "35", "35", "30" },  	/* L: 17 */
	{ "4", "8", "8", "7", "35", "40", "30" },  	/* L: 18 */
	{ "4", "8", "8", "8", "43", "43", "35" },  	/* L: 19 */
	{ "4", "8", "8", "8", "45", "45", "45" }   	/* L: 20 */
};

// Cvars

new g_TaskIteme, g_MedicHealth, g_MedicCoolDown, g_MedicMaxHealth, g_MedicCost, g_ExecCMD, g_Tombola, g_MaxNumber, g_RemoveNumber, g_MinNumberT, 
g_PingCheck, g_MaxPing, g_TimePlayed, g_AddInfoServer, g_XpKill, g_XpRoundEndT, g_XpDeath, g_CreditsKill, g_CostShopAdmin, g_CostShopSlot, g_CostShopVIP, g_ModSnow, g_WinnerXP,
g_APHP, g_MaxWarn, g_TaskWarn, g_TaskDurWarn;

// Mod plugin

new g_iRounds;
new g_iModPlugin;
new const szTag[ ] = "!vHide!c'!vN!c'!vSeek!c";

// Tombol 

new g_iNumberIs;
new g_iWinner;
new g_iNumberTrue[ 33 ];
new g_iNumberAll;
new g_iNumberChosen;
new g_iNumber[ 33 ][ 31 ];
new g_iNumberPlayer[ 33 ];
new g_szNameTombol[ 33 ];

// Vault

new g_szVaultTime;
new g_szVaultPlayerStats;
new g_szVaultPlayerCredits;

// Played Time

new g_iPlayedTime[ 33 ][ szPlayerTime ];

// Level / XP

new g_iPlayerXP[ 33 ];
new g_iPlayerLevel[ 33 ];

// Vip 

new g_iVipNum[ 33 ][ 6 ];
new g_VipType[ 33 ][ szVipType ];
new g_iVipTotal[ szVipType ];
new g_szFileVip[ 128 ];
new g_UserIsVip[ 33 ];

// Medic

new g_iMedicLast[ 33 ];

// Console print

new const g_szConsolePrintHeader[ ] = "HNS.CS32.RO";
new const g_szConsolePrintFooter[ ] = "HNS.CS32.RO";

// Credits

new g_iPlayerCredits[ 33 ];

// Fps

new Float: g_fGameTime[ 33 ];
new g_iCurFPS[ 33 ];
new g_iFPS[ 33 ];
new g_iFramesPer[ 33 ];

// Restricted name

new g_szFileRestricted;

// Warn

new g_iWarn[ 33 ];
new g_szFileWarn[ 128 ];

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
public plugin_init( )
{
	// Register plugin
	
	register_plugin( "Time & Remove", VERSION, "Simao" );
	
	// Log Event
	
	register_logevent( "EV_RoundStart", 2, "1=Round_Start" );
	register_logevent( "EV_RoundEnd", 2, "1=Round_End" );

	// Event
	
	register_event( "DeathMsg", "EV_DeathMsg", "a" );
	
	// Cvars
	
	g_TaskIteme = register_cvar( "HNS_taskiteme", "5" );
	g_MedicHealth = register_cvar( "HNS_health", "25" );
	g_MedicCoolDown = register_cvar( "HNS_medic_cooldown", "5" );
	g_MedicMaxHealth = register_cvar( "HNS_medic_maxhealth", "101" );
	g_MedicCost	= register_cvar( "HNS_medic_cost", "1" );
	g_ExecCMD = register_cvar( "HNS_taskcmd", "15" );
	g_Tombola = register_cvar( "HNS_task_tombola", "25" );
	g_MaxNumber = register_cvar( "HNS_max_number", "31" );
	g_RemoveNumber = register_cvar( "HNS_remove_numbertime", "11" );	
	g_MinNumberT = register_cvar( "HNS_min_number", "5" );
	g_MaxPing = register_cvar( "HNS_max_ping", "100" );
	g_PingCheck = register_cvar( "HNS_ping_check", "5" );
	g_TimePlayed = register_cvar( "HNS_played_task", "60" );
	g_AddInfoServer = register_cvar( "HNS_add_info", "3600" );
	g_XpKill = register_cvar( "HNS_xp_kill", "25" );
	g_XpRoundEndT = register_cvar( "HNS_xp_roundend", "50" );
	g_XpDeath = register_cvar( "HNS_xp_death", "5" );
	g_CreditsKill = register_cvar( "HNS_credits_kill", "2" );
	g_CostShopAdmin = register_cvar( "HNS_cost_admin", "300" );
	g_CostShopSlot = register_cvar( "HNS_cost_slot", "100" );
	g_CostShopVIP = register_cvar( "HNS_cost_vip", "400" );
	g_ModSnow = register_cvar( "HNS_snow_mod", "0" );
	g_WinnerXP = register_cvar( "HNS_task_addwinner", "5" );
	g_APHP = register_cvar( "HNS_hp_winner", "120" );
	g_MaxWarn = register_cvar( "HNS_max_warn", "5" );
	g_TaskWarn = register_cvar( "HNS_task_warn", "3" );
	g_TaskDurWarn = register_cvar( "HNS_task_durwarn", "300" );
	
	// ClCmd
	
	register_clcmd( "say", "hookSay" );
	register_clcmd( "say_team", "hookSay" );
	
	// ConCmd
	
	register_concmd( "amx_transfer", "cmdTransfer", ADMIN_KICK, "<Nume> <Echipa> - Transferi un player" );
	register_concmd( "amx_addxp", "cmdAddXP", ADMIN_RCON, "<Nume> <XP> - Adaugi unui player XP" );
	register_concmd( "amx_addcredits", "cmdAddCredits", ADMIN_RCON, "<Nume> <Credite> - Adaugi unui player Credite" );
	register_concmd( "amx_addvip", "cmdAddVip", ADMIN_RCON, "<Status> <Nume> <Grad> - Adaugi un VIP" );
	register_concmd( "amx_resetstats", "cmdResetStats", ADMIN_RCON, "<Nume> - Resetezi statisticiile" );
	register_concmd( "amx_info", "cmdInfoPlayer", ADMIN_RCON, "<Nume> <XP/LVL/Credits> - Afli una din 3 optiuni( XP/LVL/Credits )" );
	register_concmd( "amx_addwarn", "cmdAddWarn", ADMIN_RCON, "<Nume> <Numar> - Adaugi WARN/uri" );
	register_concmd( "amx_infowarn", "cmdInfoWarn", ADMIN_SLAY, "<Nume> - Afli warn-uriile" );
	
	// Task
	
	set_task( float( get_pcvar_num( g_ExecCMD ) ), "serverCommands", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_Tombola ) ), "serverTombola" );
	set_task( float( get_pcvar_num( g_PingCheck ) ), "serverPingCheck", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_TaskWarn ) ), "serverCheckWarn", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_TaskDurWarn ) ), "serverRemoveWarn", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_AddInfoServer ) ), "addInfoServer", _, _, _, "b" );

	// Forward
	
	register_forward( FM_PlayerPreThink, "fwPlayerPreThink" );
	
	// Get file vip
	
	get_configsdir( g_szFileVip, 127 );
	format( g_szFileVip, 127, "%s/HNS_vip.ini", g_szFileVip );
	if( !file_exists( g_szFileVip ) )
	{
		write_file( g_szFileVip, "; [S] - Suspendat", -1 );
		write_file( g_szFileVip, "; [A] - Activ", -1 );
	}

	// Vault
	
	g_szVaultTime = nvault_open( "HNS_TimePlayed" );
	g_szVaultPlayerStats = nvault_open( "HNS_LevelXP" );
	g_szVaultPlayerCredits = nvault_open( "HNS_PlayerCredits" );
	
	// Add info VIP
		
	addInfoServer( );
	
	// Add snow
	
	addSnowServer( );
}
public plugin_cfg( )
{
	// Restrict name
	
	g_szFileRestricted = fopen( "addons/amxmodx/configs/HNS_restrictname.ini", "r" );
	if( !g_szFileRestricted )
		return 1;
	
	// User Warn
	
	get_configsdir( g_szFileWarn, 127 );
	format( g_szFileWarn, 127, "%s/HNS_userwarn.ini", g_szFileWarn );
	if( !file_exists( g_szFileWarn ) )
	{
		write_file( g_szFileWarn, "; Users warn", -1 );
		write_file( g_szFileWarn, "", -1 );
	}	
	
	// Verifiyng snow mod
	
	if( get_pcvar_num( g_ModSnow ) )
	{
		engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "env_snow" ) ); 
	}
	return 0;
}
public EV_RoundStart( )
{
	g_iRounds++;
	new iPlayers[ 32 ], iNum;
	get_players( iPlayers, iNum, "ac" );
	g_iModPlugin = true;
	if( g_iRounds == 1 )
	{
		client_print( 0, print_center, "Mod pornit cu succes. Bucurati-va de joc." );
		for( new i = 0; i < iNum; i++ )
		{
			new iPlayer;
			iPlayer = iPlayers[ i ];
			g_iModPlugin = true;
			set_task( float( get_pcvar_num( g_TaskIteme ) ), "playerItems", iPlayer );
			set_task( float( get_pcvar_num( g_WinnerXP ) ), "addWinnerXP", iPlayer );
			playerCalculateLevel( iPlayers[ i ] );
		}
	}
	else
	{
		for( new i = 0; i < iNum; i++ )
		{
			new iPlayer;
			iPlayer = iPlayers[ i ];
			g_iModPlugin = true;
			set_task( float( get_pcvar_num( g_TaskIteme ) ), "playerItems", iPlayer );
			set_task( float( get_pcvar_num( g_WinnerXP ) ), "addWinnerXP", iPlayer );
			playerCalculateLevel( iPlayers[ i ] );
		}
	}
}
public EV_DeathMsg( )
{
	if( g_iModPlugin )
	{
		new szVictim = read_data( 2 );
		new szAttacker = get_user_attacker( szVictim );
		if( szVictim == szAttacker ) 
			return;
			
		/* - - - Victima - - - */
		
		new szAttackerName[ 32 ];
		get_user_name( szAttacker, szAttackerName, 31 );
		C_PrintChat( szVictim, "Ai fost omorat de !v%s!c. [-!v%d!cXP]", szAttackerName, get_pcvar_num( g_XpDeath ) );
		g_iPlayerXP[ szVictim ] -= get_pcvar_num( g_XpDeath );
		CreateFade( szVictim, 200, 5, 100, 5 );
		
		/* - - - Atacator - - - */
		
		new szVictimName[ 32 ];
		get_user_name( szVictim, szVictimName, 31 );
		C_PrintChat( szAttacker, "L-ai omorat pe !v%s!c. [+!v%d!cXP][+!v%d!cCredits]", szVictimName, get_pcvar_num( g_XpKill ), get_pcvar_num( g_CreditsKill ) );
		g_iPlayerXP[ szAttacker ] += get_pcvar_num( g_XpKill );
		g_iPlayerCredits[ szAttacker ] += get_pcvar_num( g_CreditsKill );
		
		/* - - - Calculare Level - - - (t - temp) */
		
		playerCalculateLevel( szAttacker );
	}
}
public EV_RoundEnd( )
{
	new i_Players[ 32 ], i_Num;
	get_players( i_Players, i_Num, "c" );
	for( new i = 0; i < i_Num; i++ )
	{
		switch( get_user_team( i_Players[ i ] ) )
		{
			case 1:
			{
				if( is_user_alive( i_Players[ i ] ) && is_user_connected( i_Players[ i ] ) )
				{
					C_PrintChat( i_Players[ i ], "S-a mai dus o runda.. frumos. [+!v%d!cXP]", get_pcvar_num( g_XpRoundEndT ) );
					g_iPlayerXP[ i_Players[ i ] ] += get_pcvar_num( g_XpRoundEndT );
				}
			}
			case 2:
			{
				if( is_user_alive( i_Players[ i ] ) && is_user_connected( i_Players[ i ] ) )
				{
					C_PrintChat( i_Players[ i ], "Tu asa faci fraguri ? Omoara cat mai mult pentru !vXP!c / !vLEVEL!c." );
				}
			}
		}
	}
}
public playerItems( id )
{
	if( !IsPlayer( id ) )
		return PLUGIN_HANDLED;
	if( is_user_alive( id ) && !is_user_bot( id ) )
	{
		if( g_iPlayerLevel[ id ] < 1 )
		{
			C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - Nu ai iteme.", g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ] );
		}
		else
		{
			switch( g_iPlayerLevel[ id ] )
			{
				case 1: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cHP][+!v%d!cAP]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
				}		
				case 2: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}		
				case 3..4: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cSM][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ),
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ]  ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}	
				case 5..7: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cSM][+!v%d!cFL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}		
				case 8..20: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cSM][+!v%d!cHE][+!v%d!cDGL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ),
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iHe ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iDeagle ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Grenade( id, szHe, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iHe ] ) );
					f_Gun( id, szDeagle, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iDeagle ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}
			}
		}
	}
	return PLUGIN_CONTINUE;
}		
public fwPlayerPreThink( id )
{
	if( is_user_alive( id ) )
	{
		new szTarget, szBody;
		get_user_aiming( id, szTarget, szBody, 9999 );
		if( is_user_alive( szTarget ) )
		{
			static szHudMessage[ 256 ], szName[ 32 ];
			if( get_user_team( id ) == get_user_team( szTarget ) )
			{
				get_user_name( szTarget, szName, 31 );
				switch( get_user_team( szTarget ) )
				{
					case 1:
					{
						formatex( szHudMessage, 255, "( Friend )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
					case 2:
					{
						formatex( szHudMessage, 255, "( Friend )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 0, 0, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
				}
			}
			else
			{
				switch( get_user_team( szTarget ) )
				{
					case 1:
					{
						formatex( szHudMessage, 255, "( Enemy )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
					case 2:
					{
						formatex( szHudMessage, 255, "( Enemy )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 0, 0, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
				}
			}
			show_hudmessage( id, szHudMessage );
		}
	}
	g_fGameTime[ id ] = get_gametime( );
	if( g_iFramesPer[ id ] > g_fGameTime[ id ] )
	{
		g_iFPS[ id ] += 1;
	}
	else
	{
		g_iFramesPer[ id ] += 1;
		g_iCurFPS[ id ] = g_iFPS[ id ];
		g_iFPS[ id ] = 0;
	}
}
public hookSay( id )
{
	new s_Arg[ 192 ];
	read_args( s_Arg, 191 );
	remove_quotes( s_Arg );
	if( contain( s_Arg, "/medic" ) != -1 || contain( s_Arg, "medic" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iMedicLast[ id ] <= time( ) )
			{
				new iHealth, iMoney;
				iMoney = cs_get_user_money( id );
				iHealth = get_user_health( id );
				if( iMoney < get_pcvar_num( g_MedicCost ) )
				{
					C_PrintChat( id, "Nu ai destui bani pentru a apela la !vmedic!c." );
				}
				else
				{
					if( iHealth <= get_pcvar_num( g_MedicMaxHealth ) )
					{
						new iGiveHealth = get_user_health( id ) + get_pcvar_num( g_MedicHealth );
						set_user_health( id, iGiveHealth );
						C_PrintChat( id, "Ai primit !v%d!c HP de la medic. -!v%d!c$$.", get_pcvar_num( g_MedicHealth ), get_pcvar_num( g_MedicCost ) );
						cs_set_user_money( id, cs_get_user_money( id ) - get_pcvar_num( g_MedicCost ) );
						CreateFade( id, 255, 0, 0, 0 );
					}
					else
					{
						C_PrintChat( id, "Acest server permite maxim !v%d!c HP. Tu ai !v%d!c.", get_pcvar_num( g_MedicMaxHealth ), iHealth );
					}
					g_iMedicLast[ id ] = time( ) + get_pcvar_num( g_MedicCoolDown );
				}
			}
			else
			{
				new iLastTime = g_iMedicLast[ id ] - time( );
				C_PrintChat( id, "Asteapta !v%d!c secunde pentru a apela la medic.", iLastTime );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/playerxp" ) != -1 )
	{
		new target[ 32 ];
		copy( target, 31, s_Arg[ 10 ] );
		new szTarget = cmd_target( id, target, 3 );
		if( szTarget )
		{
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szTarget, g_iPlayerXP[ szTarget ] );
		}
		else
		{
			C_PrintChat( id, "Player-ul ales nu exista." );
		}
	}
	if( contain( s_Arg, "/numar" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iNumar[ 32 ];
			copy( iNumar, 31, s_Arg[ 7 ] );
			if( !str_to_num( iNumar ) )
			{
				C_PrintChat( id, "Foloseste !v/numar!c <!eNumarul tau!c>" );
			}
			else
			{
				if( !g_iNumberAll )
				{
					if( g_iNumber[ id ][ str_to_num( iNumar ) ] )
					{
						C_PrintChat( id, "Numarul ales de tine este deja folosit." );
					}
					else
					{
						if( str_to_num( iNumar ) >= get_pcvar_num( g_MaxNumber ) )
						{
							C_PrintChat( id, "Poti alege un numar de la !v1!c, la !v%d!c. (doar daca numarul nu este deja ales.)", ( get_pcvar_num( g_MaxNumber ) -1 ) );
						}
						else
						{
							if( !g_iNumberTrue[ id ] )
							{
								g_iNumberTrue[ id ] = true;
								C_PrintChat( id, "Ai ales numarul !v%d!c. Pentru informatii despre tragerea la sort, tasteaza !v/tombola!c.", str_to_num( iNumar ) );
								g_iNumber[ id ][ str_to_num( iNumar ) ] = true;
								g_iNumberPlayer[ id ] = str_to_num( iNumar );
								g_iNumberIs++;
							}
							else
							{
								C_PrintChat( id, "Ai ales deja un numar. Numarul este !v%d!c.", g_iNumberPlayer[ id ] );
							}
						}
					}
				}
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/numarales" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iNumberChosen <= 0 )
			{
				C_PrintChat( id, "Numarul nu a fost ales, inca." );
			}
			else
			{
				C_PrintChat( id, "Numaru ales astazi este !v%d!c.", g_iNumberChosen );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/tombola" ) != -1 )
	{
		if( g_iModPlugin )
		{
			show_motd( id, "addons/amxmodx/configs/HNS/tombola.html", "Tombola server" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/true" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iNumberChosen <= 0 )
			{
				C_PrintChat( id, "Numarul nu a fost ales, inca." );
			}
			else
			{
				if( g_iNumberAll )
				{
					if( g_iNumberChosen == g_iNumberPlayer[ id ] )
					{
						new szName[ 32 ];
						get_user_name( id, szName, 31 );
						C_PrintChat( id, "Felicitari, tu esti castigorul tombolei de pe aceasta harta." );
						C_PrintChat( 0, "Player !v%s!c, este castigorul tombolei de pe aceasta harta.", szName );
						copy( g_szNameTombol, 32, szName );
						g_iWinner = true;
						g_iNumberAll = false;
					}
					else
					{
						C_PrintChat( id, "Nu esti tu castigatorul tombolei !" );
					}
				}
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/who" ) != -1 || contain( s_Arg, "/admin" ) != -1 || contain( s_Arg, "/admins" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iLen, szMotd[ 2048 ], szName[ 32 ], iPlayers[ 32 ], iNum;
			get_players( iPlayers, iNum, "c" );
			iLen = format( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>^n^n" );
			iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white>Acest server foloseste</font><font color=red> %s</font><font color=white> creat de </font><font color=red>%s</font>^n^n", \
			"Time & Remove", "Rainq" );
			for( new i = 0; i <	sizeof( g_szWhoGroup ); i++ )
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=gray>%s</font>^n", g_szWhoGroup[ i ] );
				for( new x = 0; x < iNum; x++ )
				{
					get_user_name( iPlayers[ x ], szName, 31 );
					if( i + 1 < sizeof( g_szWhoGroup ) )
					{
						if( get_user_flags( iPlayers[ x ] ) == read_flags( g_szWhoAcces[ i ] ) )
						{
							iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font>^n", szName );
						}
					}
					else
					{
						for( new z = 1; z < sizeof( g_szVipAcces ); z++ )
						{
							if( get_user_flags( iPlayers[ x ] ) == read_flags( g_szVipAcces[ z ] ) )
							{
								iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font> <font color=white>[</font><font color=green>G:%d</font><font color=white>]</font> <font color=white>[</font><font color=green>%s</font><font color=white>]</font> <font color=white>[</font><font color=green>FTP:</font><font color=red>%s</font></font><font color=white>]</font>^n",\
								szName, z, g_VipType[ iPlayers[ x ] ][ vipActive ] == 1 ? "A" : "S" );
							}
						}
					}
				}
			}
			show_motd( id, szMotd, "Adminii serverului" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/castigator" ) != -1 || contain( s_Arg, "/castigatorTombola" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iLen, szMotd[ 2048 ];
			iLen = format( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>^n" );
			if( g_iWinner )
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white><font size=5>Castigatorul tombolei de astazi:</font></font>^n^n" );
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font><font color=white> cu numarul</font><font color=red> %d</font>", g_szNameTombol, g_iNumberPlayer[ id ] );
			}
			else
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white>Niciun castigator al tombolei de azi.</font>" );
			}
			show_motd( id, szMotd, "Castigator tombola" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/orejucate" ) != -1 || contain( s_Arg, "/ore" ) != -1 || contain( s_Arg, "/playedtime" ) != -1 )
	{
		C_PrintChat( id, "Ai !v%d!c minut%s jucat%s pe server.",\
		g_iPlayedTime[ id ][ formatMinutes ], g_iPlayedTime[ id ][ formatMinutes ] == 1 ? "" : "e", g_iPlayedTime[ id ][ formatMinutes ] == 1 ? "" : "e" );
	}
	if( contain( s_Arg, "/xp" ) != -1 || contain( s_Arg, "/lvl" ) != -1 || contain( s_Arg, "xp" ) != -1 || contain( s_Arg, "lvl" ) != -1 )
	{
		if( g_iModPlugin )
		{
			C_PrintChat( id, "Ai level !v%d!c - Xp !v%d!c/!v%d!c.", g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ] );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/credits" ) != -1 || contain( s_Arg, "/credite" ) != -1 )
	{
		if( g_iModPlugin )
		{
			static szName[ 32 ];
			get_user_name( id, szName, 31 );
			C_PrintChat( id, "!v%s!c - ai !v%d!c credit%s.", szName, g_iPlayerCredits[ id ], g_iPlayerCredits[ id ] == 1 ? "" : "e" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/shop" ) != -1 || contain( s_Arg, "/shopcredits" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new szMenuFormat[ 256 ], iCostAdmin[ 128 ], iCostSlot[ 128 ], iCostVIP[ 128 ];
			format( szMenuFormat, 255, "\r%d\y Credits\w - Ce doresti sa cumperi ?", g_iPlayerCredits[ id ] );
			format( iCostAdmin, 127, "\wAdmin\y - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopAdmin ) );
			format( iCostSlot, 127, "\wSlot\y - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopSlot ) );
			format( iCostVIP, 127, "\wV.I.P \y(\rG:2\y) - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopVIP ) );
			new g_Menu = menu_create( szMenuFormat, "shopHandler" );
			menu_additem( g_Menu, iCostAdmin, "1", 0 );
			menu_additem( g_Menu, iCostSlot, "2", 0 );
			menu_additem( g_Menu, iCostVIP, "3", 0 );
			menu_display( id, g_Menu, 0 );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/pxp" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new s_Arg2[ 32 ];
			copy( s_Arg2, 31, s_Arg[ 5 ] );
			new szTarget = cmd_target( id, s_Arg2, 31 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - !vXP!c.", szName, g_iPlayerXP[ szTarget ] );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}	
	if( contain( s_Arg, "/pcredits" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new s_Arg2[ 32 ];
			copy( s_Arg2, 31, s_Arg[ 5 ] );
			new szTarget = cmd_target( id, s_Arg2, 31 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - !vCredit%s!c.", szName, g_iPlayerCredits[ szTarget ], g_iPlayerCredits[ szTarget ] == 1 ? "" : "s" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/restart" ) != -1 || contain( s_Arg, "/rr" ) != -1 || contain( s_Arg, "/restartserver" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_SLAY )
			{
				server_cmd( "sv_restart 1" );
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				C_PrintChat( 0, "!v%s!c, a dat restart.", szName );
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/playerinfo" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_KICK )
			{
				new target[ 32 ];
				copy( target, 31, s_Arg[ 12 ] );
				if( !strlen( target ) )
				{
					C_PrintChat( id, "Comanda se foloseste in felul urmator: !v/playerinfo <!eNume!c>" );
				}
				else
				{
					new iLen, szMotd[ 2048 ];
					iLen = formatex( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<table border=^"1^" cellspaccing=^"1%^" cellpadding=^"5^"" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Nick</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>XP</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Level</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Credits</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>FPS</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Ping</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Loss</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</tr>" );		
					new szTarget = cmd_target( id, target, 3 );
					if( !szTarget ) 
						return PLUGIN_HANDLED;
					static szName[ 32 ], iPing, iLoss;
					get_user_name( szTarget, szName, 31 );
					get_user_ping( szTarget, iPing, iLoss );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%s</font></th>", szName );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerXP[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerLevel[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerCredits[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iCurFPS[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", iPing );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", iLoss );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</body></center>" );
						
					/* Final.. */
					
					show_motd( id, szMotd, "Player info" );
				}
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
	}
	if( contain( s_Arg, "/warn" ) != -1 || contain( s_Arg, "/mwarn" ) != -1 || contain( s_Arg, "/mywarn" ) != -1 )
	{
		if( g_iModPlugin )
		{
			C_PrintChat( id, "Ai !v%d!c/!v%d!c WARN-uri. La !v%d!c, vei primi ban.", g_iWarn[ id ], get_pcvar_num( g_MaxWarn ), get_pcvar_num( g_MaxWarn ) );
			C_PrintChat( id, "Warn-uriile se sterg odata la !v%d!c minute la toti playeri.", ( get_pcvar_num( g_TaskDurWarn ) / 60 ) );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/winfo" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_KICK )
			{
				new Target[ 32 ];
				copy( Target, 31, s_Arg[ 7 ] );
				new szTarget = cmd_target( id, Target, 3 );
				if( !szTarget )
					return PLUGIN_HANDLED;
				static szName[ 32 ];
				get_user_name( szTarget, szName, 31 );
				C_PrintChat( id, "Player !v%s!c are !v%d!c - WARN. (!v%d!c/!v%d!c)", szName, g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	return PLUGIN_CONTINUE;
}
public shopHandler( id, menu, item )
{
	switch( item )
	{
		case 0:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopAdmin ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vADMIN!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, read_flags( "abcdefghijkl" ) );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopAdmin );
				C_PrintChat( id, "Ai cumparat !vADMIN!c, ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopAdmin ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vADMIN!c.(!vO harta!c)", szName );
			}
		}
		case 1:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopSlot ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vSLOT!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, ADMIN_RESERVATION );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopSlot );
				C_PrintChat( id, "Ai cumparat !vSLOT!c, ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopSlot ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vSLOT!c.(!vO harta!c)", szName );
			}
		}
		case 2:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopVIP ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vVIP!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, read_flags( g_szVipAcces[ 2 ] ) );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopVIP );
				C_PrintChat( id, "Ai cumparat !vVIP!c (!vG:2!c), ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopVIP ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vVIP!c.(!vO harta!c)", szName );
				g_VipType[ id ][ vipActive ] = true;
			}
		}
	}
}
public checkVipPlayer( id, const szName[ ], const szIP[ ], const szAuthId[ ] )
{
	/* Set variables false */
	
	g_iVipNum[ id ][ 1 ] = false;
	g_iVipNum[ id ][ 2 ] = false;
	g_iVipNum[ id ][ 3 ] = false;
	g_iVipNum[ id ][ 4 ] = false;
	g_iVipNum[ id ][ 5 ] = false;
	
	/* Check */
	
	new szFile = fopen( g_szFileVip, "r" );
	if( !szFile )
		return;
	new szData[ 512 ], szInfo[ 64 ], iVipType[ 64 ], iAcces[ 64 ];
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, 511 );
		if( szData[ 0 ] == ';' || szData[ 0 ] == '#' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		parse( szData, iVipType, 63, szInfo, 63, iAcces, 63 );
		if( equali( szInfo, szName ) || equali( szInfo, szIP ) || equali( szInfo, szAuthId ) )
		{
			g_UserIsVip[ id ] = true;
		}
		switch( iVipType[ 1 ] )
		{
			case 'A': g_VipType[ id ][ vipActive ] = true;
			case 'S': g_VipType[ id ][ vipSuspended ] = true;
		}
		if( g_UserIsVip[ id ] )
		{
			switch( iAcces[ 1 ] )
			{
				case '1':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 1 ] ) );
				}
				case '2':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 2 ] ) );
				}				
				case '3':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 3 ] ) );
				}				
				case '4':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 4 ] ) );
				}				
				case '5':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 5 ] ) );
				}
			}
		}
	}
	fclose( szFile );
}
public serverTombola( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iNum;
		get_players( iPlayers, iNum, "g" );
		for( new i = 0; i < iNum; i++ )
		{
			g_iNumberChosen = random_num( 1, get_pcvar_num( g_MaxNumber ) );
			if( g_iNumberIs >= get_pcvar_num( g_MinNumberT ) )
			{
				client_cmd( iPlayers[ i ], "spk ^"is time^"" );
				C_PrintChat( iPlayers[ i ], "Este timp-ul pentru !vTOMBOLA!c." );
				CreateFade( iPlayers[ i ], 5, 5, 195, 125 );
				C_PrintChat( iPlayers[ i ], "Numar ales random pe aceasta harta, este !v%d!c.", g_iNumberChosen );
				C_PrintChat( iPlayers[ i ], "Playerul cu acest numar (!v%d!c), sa scrie in !v10!c secunde in chat, !v/true!c.", g_iNumberChosen );
				g_iNumberAll = true;
				set_task( float( get_pcvar_num( g_RemoveNumber ) ), "anulareNumarTombola", iPlayers[ i ] );
			}
		}
	}
}
public anulareNumarTombola( id )
{
	if( g_iNumberAll )
	{
		C_PrintChat( id, "Numarul la tombola de pe aceasta harta nu a fost gasit." );
		g_iNumberAll = false;
	}
}
public checkPlayedTime( id )
{
	if( is_user_connected( id ) && !is_user_bot( id ) )
	{
		g_iPlayedTime[ id ][ formatMinutes ] += 1;
		if( g_iPlayedTime[ id ][ formatMinutes ] >= 60 )
		{
			g_iPlayedTime[ id ][ formatHours ] += 1;
			g_iPlayedTime[ id ][ formatMinutes ] -= 60;
		}
	}
}
public cmdAddXP( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iAmount[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iAmount, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iAmount ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <XP> se adauga o valoare numerica." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			C_PrintChat( 0, "Admin !v%s!c ii adauga lui !v%s!c - !v%d!c XP.", szNameAdmin, szNameTarget, str_to_num( iAmount ) );
			g_iPlayerXP[ szTarget ] += str_to_num( iAmount );
			playerCalculateLevel( szTarget );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddWarn( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iWarn[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iWarn, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iWarn ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Numar> se adauga o valoare numerica. (cate WARN/uri vrei sa dai[%d ban])", get_pcvar_num( g_MaxWarn ) );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			g_iWarn[ szTarget ] += str_to_num( iWarn );
			C_PrintChat( 0, "Admin !v%s!c ii da lui !v%s!c / !v%d!c WARN. Acum are [!v%d!c/!v%d!c] Warn.", szNameAdmin, szNameTarget, str_to_num( iWarn ), g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdInfoWarn( id )
{
	if( g_iModPlugin )
	{
		if( get_user_flags( id ) & ADMIN_KICK )
		{
			new s_Arg[ 32 ];
			read_argv( 1, s_Arg, 31 );
			new szTarget = cmd_target( id, s_Arg, 3 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			static szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - WARN. (!v%d!c/!v%d!c)", szName, g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
		}
		else
		{
			C_PrintChat( id, "Nu ai acces la aceasta comanda." );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddVip( id )
{
	if( g_iModPlugin )
	{
		static szStatus[ 32 ], szNume[ 32 ], iGrad[ 32 ];
		read_argv( 1, szStatus, 31 );
		read_argv( 2, szNume, 31 );
		read_argv( 3, iGrad, 31 );
		if( !strlen( szStatus ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Status> se adauga A - Activ sau S - Suspendat." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else if( !strlen( szNume ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Nume> se adauga numele VIP-ului care doresti sa-l adaugi." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else if( !str_to_num( iGrad ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Grad> se adauga o valoare numerica, incepand de la 1 (cel mai mic), pana la 5 (cel mai mare)." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			if( strlen( szStatus ) == 1 )
			{
				if( str_to_num( iGrad ) > 0 || str_to_num( iGrad ) < 6 )
				{
					new szFormat[ 256 ], szTarget;
					szTarget = cmd_target( id, szNume, 3 );
					if( is_user_connected( szTarget ) && !is_user_bot( szTarget ) )
					{
						C_PrintChat( szTarget, "Admin !v%s!c te-a adaugat ca V.I.P - !v%s!c | !v%s!c | !v%d!c", szStatus, szNume, str_to_num( iGrad ) );
						set_user_flags( szTarget, read_flags( g_szVipAcces[ str_to_num( iGrad ) ] ) );
					}
					formatex( szFormat, 255, "[%s] ^"%s^" [%d]", szStatus, szNume, str_to_num( iGrad ) );
					write_file( "addons/amxmodx/configs/HNS_vip.ini", szFormat, -1 );
				}
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_HANDLED;
}
public cmdInfoPlayer( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], s_Arg2[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, s_Arg2, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !strlen( s_Arg2 ) ) 
		{
			console_print( id, "La <XP/LVL/Credits> XP - XP-ul unui player / LVL - Levelul unui player / Credits - Creditele unui player" );
		}
		else
		{
			static szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			switch( s_Arg2[ 0 ] )
			{
				case 'L':
				{
					C_PrintChat( id, "Player !v%s!c are level !v%d!c.", szName, g_iPlayerLevel[ szTarget ] );
				}
				case 'X':
				{
					C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szName, g_iPlayerXP[ szTarget ] );
				}
				case 'C':
				{
					C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szName, g_iPlayerCredits[ szTarget ] );
				}
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}		
public cmdResetStats( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ];
		read_argv( 1, s_Arg, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		static pName[ 32 ], aName[ 32 ];
		get_user_name( id, aName, 31 );
		get_user_name( szTarget, pName, 31 );
		C_PrintChat( 0, "Admin !v%s!c ii reseteaza statisticiile lui !v%s!c. [!vXP!c/!vLVL!c/!vCredits!c]", aName, pName );
		g_iPlayerXP[ szTarget ] = 0;
		g_iPlayerLevel[ szTarget ] = 0;
		g_iPlayerCredits[ szTarget ] = 0;
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddCredits( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iAmount[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iAmount, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iAmount ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Credits> se adauga o valoare numerica." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			C_PrintChat( 0, "Admin !v%s!c ii adauga lui !v%s!c - !v%d!c Credit%s.", szNameAdmin, szNameTarget, str_to_num( iAmount ), str_to_num( iAmount ) == 1 ? "" : "e" );
			g_iPlayerCredits[ szTarget ] += str_to_num( iAmount );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdTransfer( id )
{
	if( g_iModPlugin )
	{
		new c_Arg[ 32 ], c_Echipa[ 32 ];
		read_argv( 1, c_Arg, 31 );
		read_argv( 2, c_Echipa, 31 );
		new target = cmd_target( id, c_Arg, 3 );
		if( !target )
			return PLUGIN_HANDLED;
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		switch( c_Echipa[ 0 ] )
		{
			case 'T':
			{
				user_kill( target );
				cs_set_user_team( target, 1 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vTERO!c.", szName );
			}
			case 'C':
			{
				user_kill( target );
				cs_set_user_team( target, 2 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vCOUNTER!e-!vTERO!c.", szName );
			}
			case 'S':
			{
				user_kill( target );
				cs_set_user_team( target, 3 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vSPEC!c.", szName );
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public serverPingCheck( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iNum, id;
		get_players( iPlayers, iNum, "c" );
		for( new i = 0; i < iNum; i++ )
		{
			id = iPlayers[ i ];
			static iPing, iLoss;
			get_user_ping( id, iPing, iLoss );
			if( iPing >= get_pcvar_num( g_MaxPing ) )
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				C_PrintChat( id, "Player !v%s!c avea ping prea mare si a fost deconectat.", szName );
				server_cmd( "kick #%d Ping prea mare, rezolva-l si revin-o la joc !", get_user_userid( id ) );
			}
		}
	}
}
public serverCheckWarn( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount;
		get_players( iPlayers, iCount, "ac" );
		for( new i = 0; i < iCount; i++ )
		{
			if( is_user_connected( iPlayers[ i ] ) && !is_user_bot( iPlayers[ i ] ) )
			{
				if( g_iWarn[ iPlayers[ i ] ] >= get_pcvar_num( g_MaxWarn ) )
				{
					server_cmd( "kick #%d Ai %d/%d WARN/uri.", get_user_userid( iPlayers[ i ] ), g_iWarn[ iPlayers[ i ] ], get_pcvar_num( g_MaxWarn ) );
					new szNameFormat[ 256 ], szName[ 32 ];
					get_user_name( iPlayers[ i ], szName, 31 );
					format( szNameFormat, 255, "%s", szName );
					write_file( g_szFileWarn, szNameFormat, -1 );
				}
			}
		}
	}
}
public serverRemoveWarn( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount;
		get_players( iPlayers, iCount, "ac" );
		for( new i = 0; i < iCount; i++ )
		{
			if( is_user_connected( iPlayers[ i ] ) && !is_user_bot( iPlayers[ i ] ) )
			{
				if( g_iWarn[ iPlayers[ i ] ] > 0 )
				{
					C_PrintChat( iPlayers[ i ], "Toate !vWARN!c-uriile, au fost sterse. (la toti useri.)" );
					g_iWarn[ iPlayers[ i ] ] -= g_iWarn[ iPlayers[ i ] ];
				}
			}
		}
	}
}
public serverCommands( )
{
	for( new i = 0; i < sizeof( g_szServerCMD ); i++ )
		server_cmd( g_szServerCMD[ i ] );
}
public client_disconnect( id )
{
	// Save Time 
		
	PlayedTimeSave( id );
		
	// Save XP
		
	PlayerXpSave( id );
	
	// Save Credits
		
	PlayerCreditsSave( id );
		
	// Print
		
	ClientDisconnected( id );
		
	// Task
		
	remove_task( id );
}
public client_putinserver( id )
{
	// Load Time
		
	PlayedTimeLoad( id );
	
	// Load XP
		
	PlayerXpLoad( id );
		
	// Load Credits
		
	PlayerCreditsLoad( id );
		
	// Task
		
	set_task( float( get_pcvar_num( g_TimePlayed ) ), "checkPlayedTime", id, _, _, "b" );
		
	// Check VIP
		
	static szName[ 32 ], szIP[ 32 ], szAuthId[ 32 ];
	get_user_name( id, szName, 31 );
	get_user_ip( id, szIP, 31, 1 );
	get_user_authid( id, szAuthId, 31 );
	checkVipPlayer( id, szName, szIP, szAuthId );
		
	// Print
		
	ClientConnected( id );
	
	// Check name
		
	ClientCheckName( id );
	
	// Check Warn
		
	ClientCheckWarn( id );
	
	// Hud
	
	set_task( 1.0, "hudPlayerCredits", id, _, _, "b" );
}
public ClientCheckName( id )
{
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		new szData[ 512 ], szRestrictedName[ 128 ];
		while( !feof( g_szFileRestricted ) )
		{
			fgets( g_szFileRestricted, szData, 511 );
			if( szData[ 0 ] == ';' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			parse( szData, szRestrictedName, 127 );
			if( equal( szRestrictedName, szName ) )
			{
				server_cmd( "kick #%d Numele tau nu este permis pe acest server.", get_user_userid( id ) );
			}
		}
		fclose( g_szFileRestricted );
	}
	return 0;
}
public ClientCheckWarn( id )
{	
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		new szFile = fopen( g_szFileWarn, "r" );
		if( !szFile )
			return 1;
		new szData[ 512 ], szInfo[ 64 ];
		while( !feof( szFile ) )
		{
			fgets( szFile, szData, 511 );
			if( szData[ 0 ] == ';' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			parse( szData, szInfo, 63 );
			if( equal( szInfo, szName ) )
			{
				server_cmd( "kick #%d Ai %d/%d WARN/uri.", get_user_userid( id ), g_iWarn, get_pcvar_num( g_MaxWarn ) );
			}
		}
		fclose( szFile );
	}
	return 0;
}
public ClientDisconnected( id )
{
	if( g_iModPlugin )
	{
		static szMesaj[ 128 ], szName[ 32 ];
		get_user_name( id, szName, 31 );
		if( get_user_flags( id ) & ADMIN_LEVEL_C ||
		get_user_flags( id ) & ADMIN_LEVEL_A ||
		get_user_flags( id ) & ADMIN_LEVEL_B ||
		get_user_flags( id ) & ADMIN_LEVEL_F ||
		get_user_flags( id ) & ADMIN_LEVEL_H )
		{
			format( szMesaj, 127, "V.I.P !v%s!c [!v%s!c] sa deconectat.", szName, g_VipType[ id ][ vipActive ] == 1 ? "A" : "S" );
		}
		else
		{
			format( szMesaj, 127, "Jucator !v%s!c sa deconectat.", szName );
		}
		C_PrintChat( id, szMesaj );
	}
}
public ClientConnected( id )
{
	if( g_iModPlugin )
	{
		static szMesaj[ 128 ], szName[ 32 ];
		get_user_name( id, szName, 31 );
		if( get_user_flags( id ) & ADMIN_LEVEL_C ||
		get_user_flags( id ) & ADMIN_LEVEL_A ||
		get_user_flags( id ) & ADMIN_LEVEL_B ||
		get_user_flags( id ) & ADMIN_LEVEL_F ||
		get_user_flags( id ) & ADMIN_LEVEL_H )
		{
			format( szMesaj, 127, "V.I.P !v%s!c [!v%s!c] sa conectat.", szName, g_VipType[ id ][ vipActive ] == 1 ? "A" : "S" );
		}
		else
		{
			format( szMesaj, 127, "Jucator !v%s!c sa conectat.", szName );
		}
		C_PrintChat( id, szMesaj );
	}
}
public hudPlayerCredits( id )
{
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		set_hudmessage( 40, 100, 200, -1.0, 0.64, 1, 6.0, 1.0 );
		show_hudmessage( id, "( %s ) - FPS-ul tau %d ^n[Credits: %d][XP: %d][Level: %d][Warn: %d]", szName, g_iCurFPS[ id ], g_iPlayerCredits[ id ], g_iPlayerXP[ id ], g_iPlayerLevel[ id ], g_iWarn[ id ] );
	}
}
public PlayerXpSave( id )
{		
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i#%i", g_iPlayerLevel[ id ], g_iPlayerXP[ id ] );
	nvault_set( g_szVaultPlayerStats, szVaultKey, szVaultData );
}
public PlayerXpLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i#%i", g_iPlayerLevel[ id ], g_iPlayerXP[ id ] );
	nvault_get( g_szVaultPlayerStats, szVaultKey, szVaultData, 255 );
	replace_all( szVaultData, 255, "#", " " );
	new iPlayerLevel[ 33 ], iPlayerXP[ 33 ];
	parse( szVaultData, iPlayerLevel, 32, iPlayerXP, 32 );
	g_iPlayerLevel[ id ] = str_to_num( iPlayerLevel );
	g_iPlayerXP[ id ] = str_to_num( iPlayerXP );
}
public PlayerCreditsSave( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayerCredits[ id ] );
	nvault_set( g_szVaultPlayerCredits, szVaultKey, szVaultData );
}
public PlayerCreditsLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayerCredits[ id ] );
	nvault_get( g_szVaultPlayerCredits, szVaultKey, szVaultData, 255 );
	new iPlayerCredits[ 33 ];
	parse( szVaultData, iPlayerCredits, 32 );
	g_iPlayerCredits[ id ] = str_to_num( iPlayerCredits );
}
public PlayedTimeSave( id ) 
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayedTime[ id ][ formatMinutes ] );
	nvault_set( g_szVaultTime, szVaultKey, szVaultData );
}
public PlayedTimeLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayedTime[ id ][ formatMinutes ] );
	nvault_get( g_szVaultTime, szVaultKey, szVaultData, 255 );
	new iPlayedMinutes[ 33 ];
	parse( szVaultData, iPlayedMinutes, 32 );
	g_iPlayedTime[ id ][ formatMinutes ] = str_to_num( iPlayedMinutes );
}
public plugin_end( )
{
	nvault_close( g_szVaultTime );
	nvault_close( g_szVaultPlayerStats );
	nvault_close( g_szVaultPlayerCredits );
}
public addInfoServer( )
{
	new szFile = fopen( g_szFileVip, "r" );
	new szData[ 512 ];
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, 511 );
		switch( szData[ 1 ] )
		{
			case 'A':
			{
				g_iVipTotal[ vipSuspended ] = 0;
				g_iVipTotal[ vipActive ] = 0;
				g_iVipTotal[ vipActive ]++;
			}
			case 'S':
			{
				g_iVipTotal[ vipSuspended ] = 0;
				g_iVipTotal[ vipActive ] = 0;
				g_iVipTotal[ vipSuspended ]++;
			}
		}
	}
	fclose( szFile );
	new szFormat[ 128 ], szDate[ 32 ];
	get_time( "%d.%m.%Y | %H:%M:%S", szDate, 31 );
	format( szFormat, 127, "[%s] Total VIP(s): [A] %d | [S] %d", szDate, g_iVipTotal[ vipActive ], g_iVipTotal[ vipSuspended ]  );
	write_file( "addons/amxmodx/configs/HNS_infoServer.ini", szFormat, -1 );
	write_file( "addons/amxmodx/configs/HNS_infoServer.ini", "", -1 );
}
public addSnowServer( )
{
	if( g_iModPlugin )
	{
		if( get_pcvar_num( g_ModSnow ) )
		{
			new iPlayers[ 32 ], iCount;
			get_players( iPlayers, iCount, "ac" );
			for( new i = 0; i < iCount; i++ )
			{
				client_cmd( iPlayers[ i ], "cl_weather ^"1^"" );
			}
		}
	}
}
public addWinnerXP( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount, iMax, i;
		get_players( iPlayers, iCount, "a" );
		for( i = 0; i < iCount; i++ )
		{
			if( g_iPlayerLevel[ iPlayers[ i ] ] > g_iPlayerLevel[ iPlayers[ i + 1 ] ] )
			{
				iMax = iPlayers[ i ];
				if( g_iPlayerLevel[ iMax ] > 0 )
				{
					static szName[ 32 ]; 
					get_user_name( iMax, szName, 31 );
					C_PrintChat( 0, "Player !v%s!c are level !v%d!c. Va fi premiat.", szName, g_iPlayerLevel[ iMax ] );
					C_PrintChat( iMax, "Pentru ca ai level !v%d!c (cel mai mare). Vei avea +!v%d!c[HP/AP].", g_iPlayerLevel[ iMax ], get_pcvar_num( g_APHP ) );
					set_user_health( iMax, get_user_health( iMax ) + get_pcvar_num( g_APHP ) );
					set_user_armor( iMax, get_user_armor( iMax ) + get_pcvar_num( g_APHP ) );
					CreateFade( iMax, 255, 0, 0, 0 );
					ShakeScreen( iMax, 5.0 );
				}
			}
			else
			{
				iMax = iPlayers[ i + 1 ];
			}
		}
	}
}
playerCalculateLevel( id )
{
	if( ( g_iPlayerLevel[ id ] <= 21 ) && ( g_iPlayerXP[ id ] >= g_iLevelsXP[ g_iPlayerLevel[ id ] ] ) )
	{
		while( g_iPlayerXP[ id ] >= g_iLevelsXP[ g_iPlayerLevel[ id ] ] )
		{
			g_iPlayerLevel[ id ] += 1;
		}
	}
}
stock CreateFade( id, red, green, blue, alpha )
{
	message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), { 0, 0, 0 }, id );
	write_short( 5 << 10 );
	write_short( 5 << 10 );
	write_short( 5 << 12 );
	write_byte( red );
	write_byte( green );
	write_byte( blue );
	write_byte( alpha );
	message_end( );
}
public ShakeScreen( id, const Float:seconds )
{
	message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( 1 << 13 );
	message_end( );
}
stock f_Gun( id, gun, ammo )
{
	switch( gun )
	{
		case szDeagle:
		{
			if( find_ent_by_owner( -1, "weapon_deagle", id ) )
			{
				cs_set_weapon_ammo( find_ent_by_owner( -1, "weapon_deagle", id ), cs_get_weapon_ammo( find_ent_by_owner( -1, "weapon_deagle", id ) ) + ammo );
			} 
			else 
			{
				give_item( id, "weapon_deagle" );
				new eNtry = find_ent_by_owner( -1, "weapon_deagle", id );
				if( eNtry )
				{
					cs_set_weapon_ammo( eNtry, ammo );
				}
			}
		}
	}
}
stock f_Grenade( id, grenade, nr )
{
	switch( grenade )
	{
		case szHe:
		{
			new it = cs_get_user_bpammo( id, CSW_HEGRENADE );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_HEGRENADE, it + nr );
			}
			else 
			{
				give_item( id, "weapon_hegrenade" );
				cs_set_user_bpammo( id, CSW_HEGRENADE, nr );
			}
		}
		case szSmoke:
		{
			new it = cs_get_user_bpammo( id, CSW_SMOKEGRENADE );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_SMOKEGRENADE, it + nr );
			}
			else 
			{
				give_item( id, "weapon_smokegrenade" );
				cs_set_user_bpammo( id, CSW_SMOKEGRENADE, nr );
			}
		}
		case szFlash:
		{
			new it = cs_get_user_bpammo( id, CSW_FLASHBANG );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_FLASHBANG , it + nr );
			}
			else 
			{
				give_item( id, "weapon_flashbang" );
				cs_set_user_bpammo( id, CSW_FLASHBANG , nr );
			}
		}
	}
}
stock f_Skill( id, skill, count )
{
	switch( skill )
	{
		case szHealth:
		{
			set_user_health( id, get_user_health( id ) + count );
		}
		case szArmor:
		{
			set_user_armor( id, get_user_armor( id ) + count );
		}
		case szMoney:
		{
			cs_set_user_money( id, cs_get_user_money( id ) + count );
		}
	}
}
stock C_PrintChat( const id, const input[ ], any:... )
{
	new iCount = 1, iPlayers[ 32 ];
	static szMsg[ 320 ], szMsg2[ 320 ];
	vformat( szMsg, 190, input, 3 );
	format( szMsg2, 190, "!c[%s] %s", szTag, szMsg );
	replace_all( szMsg2, 190, "!v", "^4" );
	replace_all( szMsg2, 190, "!c", "^1" );
	replace_all( szMsg2, 190, "!e", "^3" );
	if( id )
	{
		iPlayers[ 0 ] = id;
	}
	else
	{
		get_players( iPlayers, iCount, "ch" );
	}
	for( new i = 0; i < iCount; 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( );
		}
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Am scos verificarea playeriilor. Vedeti acum.
Retras
snd
Membru, skill +1
Membru, skill +1
Posts: 134
Joined: 26 Dec 2012, 17:25
Detinator Steam: Nu
CS Status: I Don't have.
Has thanked: 34 times
Been thanked: 2 times
Contact:

21 Sep 2013, 11:12

Auzi . cum poti seta , ca adminul / slotul / vipul sa fie permanent ? Cand le iei , evident din shop ..?
User avatar
Ulquiorra
Fost moderator
Fost moderator
Posts: 2053
Joined: 25 Jul 2010, 17:29
Detinator Steam: Da
CS Status: A mai trecut o zi asteptand una mai buna
Detinator server CS: Retras.
SteamID: STEAM_0:1:318247XX
Reputatie: Fost Scripter eXtreamCS
Fost Moderator ajutator
Nick anterior: Askhanar
Location: Braila, Romania.
Has thanked: 215 times
Been thanked: 1132 times

21 Sep 2013, 19:13

genial.. nu am ce zice

mai bine ai face givexp < nume | @ALL| @CT | @T > lafel si takexp.. sa nu stai cu alt public pentru fiecare comanda..
poti gasi exemplu in credits al meu :P

ai lucrat cv la el :P
Caut o persoana dedicata care se pricepe si stie ce face.
Vreau sa creeze si sa se ocupe de administrarea unui server de MU, da e vorba de vechiul joc..ma gandesc undeva la un season 3 ep1/2.

O sa achizitionez un domeniu .ro.
Totodata sponsorizez absolut orice este necesar.
Ma puteti contacta prin: http://solo.to/stfrzv
snd
Membru, skill +1
Membru, skill +1
Posts: 134
Joined: 26 Dec 2012, 17:25
Detinator Steam: Nu
CS Status: I Don't have.
Has thanked: 34 times
Been thanked: 2 times
Contact:

21 Sep 2013, 19:38

Chiar nu stiu ce are ... pica mereu cand il pun ~X( , am pus si versiunea a doua ( cand nu controleaza playerii ) si tot pica ... ce sa-i fac... e prea bun , in rest
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:

22 Sep 2013, 10:54

| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < fun >
#include < cstrike >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < geoip >
#include < nvault >

enum _: szPlayerTime
{
	formatMinutes,
	formatHours
};
enum _: szVipType
{
	vipActive,
	vipSuspended
}
enum _: g_szItems
{
	g_iDeagle,
	g_iSmoke,
	g_iFlash,
	g_iHe,
	g_iViata,
	g_iArmura,
	g_iMoney
};
enum
{
	szDeagle,
	szHe,
	szFlash,
	szSmoke,
	szHealth,
	szArmor,
	szMoney,
}

#define VERSION "1.0"

#pragma semicolon 1

#define CMD				6						/* Max commands */
#define GROUPS 			6						/* Max Groups */
#define ACCES 			5						/* Max Acces */
#define VIP_ACCES 		6 						/* Max VIP Acces */

#define IsPlayer(%1) ( 1 <= %1 <= get_maxplayers( ) )

new const g_szServerCMD[ CMD ][ 512 ] = 
{ 
	"mp_freezetime 2", 
	"mp_roundtime 2", 
	"sv_gravity 650", 
	"sv_airaccelerate 100", 
	"sv_maxspeed 9999", 
	"sv_unlag 1"
};
new const g_szWhoGroup[ GROUPS ][ 512 ]	=
{ 
	"Owner", 
	"Super-Mod", 
	"Moderator", 
	"Helper", 
	"Slot", 
	"V.I.P" 
};
new const g_szWhoAcces[ ACCES ][ 512 ] = 
{ 
	"abcdefghijklmnopqrstwyxz",
	"abcdefghijklmnopqz", 
	"abcdefghijklz", 
	"abcdefghz", 
	"bz" 
};
new const g_szVipAcces[ VIP_ACCES ][ 512 ] = 
{ 
	"", 
	"abcdefghijklmz", 
	"abcdefghijklnz", 
	"abcdefghijkloz", 
	"abcdefghijkltz", 
	"abcdefghijklrz" 
};						/*		L:  1	2	 3	  4	   5    6	 7      8     9    10    11	   12      13     14     15      16     17      18       19      20       21 	*/
new const g_iLevelsXP[ 20 + 1 ] = { 25, 50, 100, 250, 350, 500, 1000, 1500, 3000, 6000, 9000, 15000, 50000, 80000, 100000, 150000, 250000, 500000, 800000, 1000000, 1300000 };
new const g_szLevelItems[ 21 + 1 ][ g_szItems ][ 512 ] = 
{
	{ "0", "0", "0", "0", "0", "0", "0" },		/* L: 0 */
	{ "0", "0", "1", "0", "2", "1", "0" }, 		/* L: 1 */
	{ "0", "0", "1", "0", "3", "3", "1" }, 		/* L: 2 */
	{ "0", "1", "1", "0", "5", "3", "1" },  	/* L: 3 */
	{ "0", "1", "2", "0", "5", "5", "5" },  	/* L: 3 */
	{ "0", "2", "2", "0", "8", "9", "6" },  	/* L: 4 */
	{ "0", "2", "2", "1", "8", "9", "6" },  	/* L: 5 */
	{ "0", "2", "2", "1", "10", "13", "10" },  	/* L: 6 */
	{ "1", "2", "2", "2", "15", "15", "15" },  	/* L: 7 */
	{ "1", "3", "2", "2", "18", "18", "18" },  	/* L: 8 */
	{ "1", "3", "3", "2", "18", "18", "18" },  	/* L: 9 */
	{ "1", "3", "3", "2", "18", "20", "20" },  	/* L: 10 */
	{ "2", "3", "3", "3", "23", "25", "25" },  	/* L: 11 */
	{ "2", "3", "4", "4", "25", "25", "25" },  	/* L: 12 */
	{ "3", "5", "5", "6", "30", "25", "30" },  	/* L: 13 */
	{ "3", "6", "6", "6", "30", "30", "30" },  	/* L: 14 */
	{ "3", "7", "6", "6", "30", "30", "30" },  	/* L: 15 */
	{ "3", "7", "7", "6", "33", "30", "30" },  	/* L: 16 */
	{ "3", "7", "7", "6", "35", "35", "30" },  	/* L: 17 */
	{ "4", "8", "8", "7", "35", "40", "30" },  	/* L: 18 */
	{ "4", "8", "8", "8", "43", "43", "35" },  	/* L: 19 */
	{ "4", "8", "8", "8", "45", "45", "45" }   	/* L: 20 */
};

// Cvars

new g_TaskIteme, g_MedicHealth, g_MedicCoolDown, g_MedicMaxHealth, g_MedicCost, g_ExecCMD, g_Tombola, g_MaxNumber, g_RemoveNumber, g_MinNumberT, 
g_PingCheck, g_MaxPing, g_TimePlayed, g_AddInfoServer, g_XpKill, g_XpRoundEndT, g_XpDeath, g_CreditsKill, g_CostShopAdmin, g_CostShopSlot, g_CostShopVIP, g_ModSnow, g_WinnerXP,
g_APHP, g_MaxWarn, g_TaskWarn, g_TaskDurWarn;

// Mod plugin

new g_iModPlugin;
new const szTag[ ] = "!vHide!c'!vN!c'!vSeek!c";

// Tombol 

new g_iNumberIs;
new g_iWinner;
new g_iNumberTrue[ 33 ];
new g_iNumberAll;
new g_iNumberChosen;
new g_iNumber[ 33 ][ 31 ];
new g_iNumberPlayer[ 33 ];
new g_szNameTombol[ 33 ];

// Vault

new g_szVaultTime;
new g_szVaultPlayerStats;
new g_szVaultPlayerCredits;

// Played Time

new g_iPlayedTime[ 33 ][ szPlayerTime ];

// Level / XP

new g_iPlayerXP[ 33 ];
new g_iPlayerLevel[ 33 ];

// Vip 

new g_iVipNum[ 33 ][ 6 ];
new g_VipType[ 33 ][ szVipType ];
new g_iVipTotal[ szVipType ];
new g_szFileVip[ 128 ];
new g_UserIsVip[ 33 ];

// Medic

new g_iMedicLast[ 33 ];

// Console print

new const g_szConsolePrintHeader[ ] = "HNS.CS32.RO";
new const g_szConsolePrintFooter[ ] = "HNS.CS32.RO";

// Credits

new g_iPlayerCredits[ 33 ];

// Fps

new Float: g_fGameTime[ 33 ];
new g_iCurFPS[ 33 ];
new g_iFPS[ 33 ];
new g_iFramesPer[ 33 ];

// Restricted name

new g_szFileRestricted;

// Warn

new g_iWarn[ 33 ];
new g_szFileWarn[ 128 ];

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
public plugin_init( )
{
	// Register plugin
	
	register_plugin( "Time & Remove", VERSION, "Simao" );
	
	// Log Event
	
	register_logevent( "EV_RoundStart", 2, "1=Round_Start" );
	register_logevent( "EV_RoundEnd", 2, "1=Round_End" );

	// Event
	
	register_event( "DeathMsg", "EV_DeathMsg", "a" );
	
	// Cvars
	
	g_TaskIteme = register_cvar( "HNS_taskiteme", "5" );
	g_MedicHealth = register_cvar( "HNS_health", "25" );
	g_MedicCoolDown = register_cvar( "HNS_medic_cooldown", "5" );
	g_MedicMaxHealth = register_cvar( "HNS_medic_maxhealth", "101" );
	g_MedicCost	= register_cvar( "HNS_medic_cost", "1" );
	g_ExecCMD = register_cvar( "HNS_taskcmd", "15" );
	g_Tombola = register_cvar( "HNS_task_tombola", "25" );
	g_MaxNumber = register_cvar( "HNS_max_number", "31" );
	g_RemoveNumber = register_cvar( "HNS_remove_numbertime", "11" );	
	g_MinNumberT = register_cvar( "HNS_min_number", "5" );
	g_MaxPing = register_cvar( "HNS_max_ping", "100" );
	g_PingCheck = register_cvar( "HNS_ping_check", "5" );
	g_TimePlayed = register_cvar( "HNS_played_task", "60" );
	g_AddInfoServer = register_cvar( "HNS_add_info", "3600" );
	g_XpKill = register_cvar( "HNS_xp_kill", "25" );
	g_XpRoundEndT = register_cvar( "HNS_xp_roundend", "50" );
	g_XpDeath = register_cvar( "HNS_xp_death", "5" );
	g_CreditsKill = register_cvar( "HNS_credits_kill", "2" );
	g_CostShopAdmin = register_cvar( "HNS_cost_admin", "300" );
	g_CostShopSlot = register_cvar( "HNS_cost_slot", "100" );
	g_CostShopVIP = register_cvar( "HNS_cost_vip", "400" );
	g_ModSnow = register_cvar( "HNS_snow_mod", "0" );
	g_WinnerXP = register_cvar( "HNS_task_addwinner", "5" );
	g_APHP = register_cvar( "HNS_hp_winner", "120" );
	g_MaxWarn = register_cvar( "HNS_max_warn", "5" );
	g_TaskWarn = register_cvar( "HNS_task_warn", "3" );
	g_TaskDurWarn = register_cvar( "HNS_task_durwarn", "300" );
	
	// ClCmd
	
	register_clcmd( "say", "hookSay" );
	register_clcmd( "say_team", "hookSay" );
	
	// ConCmd
	
	register_concmd( "amx_transfer", "cmdTransfer", ADMIN_KICK, "<Nume> <Echipa> - Transferi un player" );
	register_concmd( "amx_addxp", "cmdAddXP", ADMIN_RCON, "<Nume> <XP> - Adaugi unui player XP" );
	register_concmd( "amx_addcredits", "cmdAddCredits", ADMIN_RCON, "<Nume> <Credite> - Adaugi unui player Credite" );
	register_concmd( "amx_addvip", "cmdAddVip", ADMIN_RCON, "<Status> <Nume> <Grad> - Adaugi un VIP" );
	register_concmd( "amx_resetstats", "cmdResetStats", ADMIN_RCON, "<Nume> - Resetezi statisticiile" );
	register_concmd( "amx_info", "cmdInfoPlayer", ADMIN_RCON, "<Nume> <XP/LVL/Credits> - Afli una din 3 optiuni( XP/LVL/Credits )" );
	register_concmd( "amx_addwarn", "cmdAddWarn", ADMIN_RCON, "<Nume> <Numar> - Adaugi WARN/uri" );
	register_concmd( "amx_infowarn", "cmdInfoWarn", ADMIN_SLAY, "<Nume> - Afli warn-uriile" );
	
	// Task
	
	set_task( float( get_pcvar_num( g_ExecCMD ) ), "serverCommands", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_Tombola ) ), "serverTombola" );
	set_task( float( get_pcvar_num( g_PingCheck ) ), "serverPingCheck", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_TaskWarn ) ), "serverCheckWarn", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_TaskDurWarn ) ), "serverRemoveWarn", _, _, _, "b" );
	set_task( float( get_pcvar_num( g_AddInfoServer ) ), "addInfoServer", _, _, _, "b" );

	// Forward
	
	register_forward( FM_PlayerPreThink, "fwPlayerPreThink" );
	
	// Get file vip
	
	get_configsdir( g_szFileVip, 127 );
	format( g_szFileVip, 127, "%s/HNS_vip.ini", g_szFileVip );
	if( !file_exists( g_szFileVip ) )
	{
		write_file( g_szFileVip, "; [S] - Suspendat", -1 );
		write_file( g_szFileVip, "; [A] - Activ", -1 );
	}

	// Vault
	
	g_szVaultTime = nvault_open( "HNS_TimePlayed" );
	g_szVaultPlayerStats = nvault_open( "HNS_LevelXP" );
	g_szVaultPlayerCredits = nvault_open( "HNS_PlayerCredits" );
	
	// Add info VIP
		
	addInfoServer( );
	
	// Add snow
	
	// addSnowServer( );
}
public plugin_cfg( )
{
	// Restrict name
	
	g_szFileRestricted = fopen( "addons/amxmodx/configs/HNS_restrictname.ini", "r" );
	if( !g_szFileRestricted )
		return 1;
	
	// User Warn
	
	get_configsdir( g_szFileWarn, 127 );
	format( g_szFileWarn, 127, "%s/HNS_userwarn.ini", g_szFileWarn );
	if( !file_exists( g_szFileWarn ) )
	{
		write_file( g_szFileWarn, "; Users warn", -1 );
		write_file( g_szFileWarn, "", -1 );
	}	
	
	// Verifiyng snow mod
	
	if( get_pcvar_num( g_ModSnow ) )
	{
		engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "env_snow" ) ); 
	}
	return 0;
}
public EV_RoundStart( )
{
	new iPlayers[ 32 ], iNum;
	get_players( iPlayers, iNum, "ac" );
	
	g_iModPlugin = true;
		
	for( new i = 0; i < iNum; i++ )
	{
		new iPlayer;
		iPlayer = iPlayers[ i ];
			
		
		set_task( float( get_pcvar_num( g_TaskIteme ) ), "playerItems", iPlayer );
		set_task( float( get_pcvar_num( g_WinnerXP ) ), "addWinnerXP", iPlayer );
			
		playerCalculateLevel( iPlayers[ i ] );
	}
}
public EV_DeathMsg( )
{
	if( g_iModPlugin )
	{
		new szVictim = read_data( 2 );
		new szAttacker = get_user_attacker( szVictim );
		if( szVictim == szAttacker ) 
			return;
			
		/* - - - Victima - - - */
		
		new szAttackerName[ 32 ];
		get_user_name( szAttacker, szAttackerName, 31 );
		C_PrintChat( szVictim, "Ai fost omorat de !v%s!c. [-!v%d!cXP]", szAttackerName, get_pcvar_num( g_XpDeath ) );
		g_iPlayerXP[ szVictim ] -= get_pcvar_num( g_XpDeath );
		CreateFade( szVictim, 200, 5, 100, 5 );
		
		/* - - - Atacator - - - */
		
		new szVictimName[ 32 ];
		get_user_name( szVictim, szVictimName, 31 );
		C_PrintChat( szAttacker, "L-ai omorat pe !v%s!c. [+!v%d!cXP][+!v%d!cCredits]", szVictimName, get_pcvar_num( g_XpKill ), get_pcvar_num( g_CreditsKill ) );
		g_iPlayerXP[ szAttacker ] += get_pcvar_num( g_XpKill );
		g_iPlayerCredits[ szAttacker ] += get_pcvar_num( g_CreditsKill );
		
		/* - - - Calculare Level - - - (t - temp) */
		
		playerCalculateLevel( szAttacker );
	}
}
public EV_RoundEnd( )
{
	new i_Players[ 32 ], i_Num;
	get_players( i_Players, i_Num, "c" );
	for( new i = 0; i < i_Num; i++ )
	{
		switch( get_user_team( i_Players[ i ] ) )
		{
			case 1:
			{
				if( is_user_alive( i_Players[ i ] ) && is_user_connected( i_Players[ i ] ) )
				{
					C_PrintChat( i_Players[ i ], "S-a mai dus o runda.. frumos. [+!v%d!cXP]", get_pcvar_num( g_XpRoundEndT ) );
					g_iPlayerXP[ i_Players[ i ] ] += get_pcvar_num( g_XpRoundEndT );
				}
			}
			case 2:
			{
				if( is_user_alive( i_Players[ i ] ) && is_user_connected( i_Players[ i ] ) )
				{
					C_PrintChat( i_Players[ i ], "Tu asa faci fraguri ? Omoara cat mai mult pentru !vXP!c / !vLEVEL!c." );
				}
			}
		}
	}
}
public playerItems( id )
{
	if( !IsPlayer( id ) )
		return PLUGIN_HANDLED;
	if( is_user_alive( id ) && !is_user_bot( id ) )
	{
		if( g_iPlayerLevel[ id ] < 1 )
		{
			C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - Nu ai iteme.", g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ] );
		}
		else
		{
			switch( g_iPlayerLevel[ id ] )
			{
				case 1: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cHP][+!v%d!cAP]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
				}		
				case 2: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}		
				case 3..4: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cSM][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ),
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ]  ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}	
				case 5..7: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cSM][+!v%d!cFL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}		
				case 8..20: 
				{
					// Print
			
					C_PrintChat( id, "[Level !v%d!c - XP !v%d!c/!v%d!c] - [+!v%d!cFL][+!v%d!cSM][+!v%d!cHE][+!v%d!cDGL][+!v%d!cHP][+!v%d!cAP][+!v%d!c$$]", \
					g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ], \
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ),
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iHe ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iDeagle ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ), str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ), 
					str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
					
					// GiveItems
					
					f_Grenade( id, szFlash, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iFlash ] ) );
					f_Grenade( id, szSmoke, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iSmoke ] ) );
					f_Grenade( id, szHe, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iHe ] ) );
					f_Gun( id, szDeagle, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iDeagle ] ) );
					f_Skill( id, szHealth, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iViata ] ) );
					f_Skill( id, szArmor, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iArmura ] ) );
					f_Skill( id, szMoney, str_to_num( g_szLevelItems[ g_iPlayerLevel[ id ] ][ g_iMoney ] ) );
				}
			}
		}
	}
	return PLUGIN_CONTINUE;
}		
public fwPlayerPreThink( id )
{
	if( is_user_alive( id ) )
	{
		new szTarget, szBody;
		get_user_aiming( id, szTarget, szBody, 9999 );
		if( is_user_alive( szTarget ) )
		{
			static szHudMessage[ 256 ], szName[ 32 ];
			if( get_user_team( id ) == get_user_team( szTarget ) )
			{
				get_user_name( szTarget, szName, 31 );
				switch( get_user_team( szTarget ) )
				{
					case 1:
					{
						formatex( szHudMessage, 255, "( Friend )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
					case 2:
					{
						formatex( szHudMessage, 255, "( Friend )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 0, 0, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
				}
			}
			else
			{
				switch( get_user_team( szTarget ) )
				{
					case 1:
					{
						formatex( szHudMessage, 255, "( Enemy )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 127, 0, 0, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
					case 2:
					{
						formatex( szHudMessage, 255, "( Enemy )^n %s - %dHP", szName, get_user_health( szTarget ) );
						set_hudmessage( 0, 0, 127, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1 );
					}
				}
			}
			show_hudmessage( id, szHudMessage );
		}
	}
	g_fGameTime[ id ] = get_gametime( );
	if( g_iFramesPer[ id ] > g_fGameTime[ id ] )
	{
		g_iFPS[ id ] += 1;
	}
	else
	{
		g_iFramesPer[ id ] += 1;
		g_iCurFPS[ id ] = g_iFPS[ id ];
		g_iFPS[ id ] = 0;
	}
}
public hookSay( id )
{
	new s_Arg[ 192 ];
	read_args( s_Arg, 191 );
	remove_quotes( s_Arg );
	if( contain( s_Arg, "/medic" ) != -1 || contain( s_Arg, "medic" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iMedicLast[ id ] <= time( ) )
			{
				new iHealth, iMoney;
				iMoney = cs_get_user_money( id );
				iHealth = get_user_health( id );
				if( iMoney < get_pcvar_num( g_MedicCost ) )
				{
					C_PrintChat( id, "Nu ai destui bani pentru a apela la !vmedic!c." );
				}
				else
				{
					if( iHealth <= get_pcvar_num( g_MedicMaxHealth ) )
					{
						new iGiveHealth = get_user_health( id ) + get_pcvar_num( g_MedicHealth );
						set_user_health( id, iGiveHealth );
						C_PrintChat( id, "Ai primit !v%d!c HP de la medic. -!v%d!c$$.", get_pcvar_num( g_MedicHealth ), get_pcvar_num( g_MedicCost ) );
						cs_set_user_money( id, cs_get_user_money( id ) - get_pcvar_num( g_MedicCost ) );
						CreateFade( id, 255, 0, 0, 0 );
					}
					else
					{
						C_PrintChat( id, "Acest server permite maxim !v%d!c HP. Tu ai !v%d!c.", get_pcvar_num( g_MedicMaxHealth ), iHealth );
					}
					g_iMedicLast[ id ] = time( ) + get_pcvar_num( g_MedicCoolDown );
				}
			}
			else
			{
				new iLastTime = g_iMedicLast[ id ] - time( );
				C_PrintChat( id, "Asteapta !v%d!c secunde pentru a apela la medic.", iLastTime );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/playerxp" ) != -1 )
	{
		new target[ 32 ];
		copy( target, 31, s_Arg[ 10 ] );
		new szTarget = cmd_target( id, target, 3 );
		if( szTarget )
		{
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szTarget, g_iPlayerXP[ szTarget ] );
		}
		else
		{
			C_PrintChat( id, "Player-ul ales nu exista." );
		}
	}
	if( contain( s_Arg, "/numar" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iNumar[ 32 ];
			copy( iNumar, 31, s_Arg[ 7 ] );
			if( !str_to_num( iNumar ) )
			{
				C_PrintChat( id, "Foloseste !v/numar!c <!eNumarul tau!c>" );
			}
			else
			{
				if( !g_iNumberAll )
				{
					if( g_iNumber[ id ][ str_to_num( iNumar ) ] )
					{
						C_PrintChat( id, "Numarul ales de tine este deja folosit." );
					}
					else
					{
						if( str_to_num( iNumar ) >= get_pcvar_num( g_MaxNumber ) )
						{
							C_PrintChat( id, "Poti alege un numar de la !v1!c, la !v%d!c. (doar daca numarul nu este deja ales.)", ( get_pcvar_num( g_MaxNumber ) -1 ) );
						}
						else
						{
							if( !g_iNumberTrue[ id ] )
							{
								g_iNumberTrue[ id ] = true;
								C_PrintChat( id, "Ai ales numarul !v%d!c. Pentru informatii despre tragerea la sort, tasteaza !v/tombola!c.", str_to_num( iNumar ) );
								g_iNumber[ id ][ str_to_num( iNumar ) ] = true;
								g_iNumberPlayer[ id ] = str_to_num( iNumar );
								g_iNumberIs++;
							}
							else
							{
								C_PrintChat( id, "Ai ales deja un numar. Numarul este !v%d!c.", g_iNumberPlayer[ id ] );
							}
						}
					}
				}
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/numarales" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iNumberChosen <= 0 )
			{
				C_PrintChat( id, "Numarul nu a fost ales, inca." );
			}
			else
			{
				C_PrintChat( id, "Numaru ales astazi este !v%d!c.", g_iNumberChosen );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/tombola" ) != -1 )
	{
		if( g_iModPlugin )
		{
			show_motd( id, "addons/amxmodx/configs/HNS/tombola.html", "Tombola server" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/true" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( g_iNumberChosen <= 0 )
			{
				C_PrintChat( id, "Numarul nu a fost ales, inca." );
			}
			else
			{
				if( g_iNumberAll )
				{
					if( g_iNumberChosen == g_iNumberPlayer[ id ] )
					{
						new szName[ 32 ];
						get_user_name( id, szName, 31 );
						C_PrintChat( id, "Felicitari, tu esti castigorul tombolei de pe aceasta harta." );
						C_PrintChat( 0, "Player !v%s!c, este castigorul tombolei de pe aceasta harta.", szName );
						copy( g_szNameTombol, 32, szName );
						g_iWinner = true;
						g_iNumberAll = false;
					}
					else
					{
						C_PrintChat( id, "Nu esti tu castigatorul tombolei !" );
					}
				}
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/who" ) != -1 || contain( s_Arg, "/admin" ) != -1 || contain( s_Arg, "/admins" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iLen, szMotd[ 2048 ], szName[ 32 ], iPlayers[ 32 ], iNum;
			get_players( iPlayers, iNum, "c" );
			iLen = format( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>^n^n" );
			iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white>Acest server foloseste</font><font color=red> %s</font><font color=white> creat de </font><font color=red>%s</font>^n^n", \
			"Time & Remove", "Rainq" );
			for( new i = 0; i <	sizeof( g_szWhoGroup ); i++ )
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=gray>%s</font>^n", g_szWhoGroup[ i ] );
				for( new x = 0; x < iNum; x++ )
				{
					get_user_name( iPlayers[ x ], szName, 31 );
					if( i + 1 < sizeof( g_szWhoGroup ) )
					{
						if( get_user_flags( iPlayers[ x ] ) == read_flags( g_szWhoAcces[ i ] ) )
						{
							iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font>^n", szName );
						}
					}
					else
					{
						for( new z = 1; z < sizeof( g_szVipAcces ); z++ )
						{
							if( get_user_flags( iPlayers[ x ] ) == read_flags( g_szVipAcces[ z ] ) )
							{
								iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font> <font color=white>[</font><font color=green>G:%d</font><font color=white>]</font> <font color=white>[</font><font color=green>%s</font><font color=white>]</font> <font color=white>[</font><font color=green>FTP:</font><font color=red>%s</font></font><font color=white>]</font>^n",\
								szName, z, g_VipType[ iPlayers[ x ] ][ vipActive ] == 1 ? "A" : "S" );
							}
						}
					}
				}
			}
			show_motd( id, szMotd, "Adminii serverului" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/castigator" ) != -1 || contain( s_Arg, "/castigatorTombola" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new iLen, szMotd[ 2048 ];
			iLen = format( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>^n" );
			if( g_iWinner )
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white><font size=5>Castigatorul tombolei de astazi:</font></font>^n^n" );
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=red>%s</font><font color=white> cu numarul</font><font color=red> %d</font>", g_szNameTombol, g_iNumberPlayer[ id ] );
			}
			else
			{
				iLen += format( szMotd[ iLen ], 2048 - iLen, "<font color=white>Niciun castigator al tombolei de azi.</font>" );
			}
			show_motd( id, szMotd, "Castigator tombola" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/orejucate" ) != -1 || contain( s_Arg, "/ore" ) != -1 || contain( s_Arg, "/playedtime" ) != -1 )
	{
		C_PrintChat( id, "Ai !v%d!c minut%s jucat%s pe server.",\
		g_iPlayedTime[ id ][ formatMinutes ], g_iPlayedTime[ id ][ formatMinutes ] == 1 ? "" : "e", g_iPlayedTime[ id ][ formatMinutes ] == 1 ? "" : "e" );
	}
	if( contain( s_Arg, "/xp" ) != -1 || contain( s_Arg, "/lvl" ) != -1 || contain( s_Arg, "xp" ) != -1 || contain( s_Arg, "lvl" ) != -1 )
	{
		if( g_iModPlugin )
		{
			C_PrintChat( id, "Ai level !v%d!c - Xp !v%d!c/!v%d!c.", g_iPlayerLevel[ id ], g_iPlayerXP[ id ], g_iLevelsXP[ g_iPlayerLevel[ id ] ] );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/credits" ) != -1 || contain( s_Arg, "/credite" ) != -1 )
	{
		if( g_iModPlugin )
		{
			static szName[ 32 ];
			get_user_name( id, szName, 31 );
			C_PrintChat( id, "!v%s!c - ai !v%d!c credit%s.", szName, g_iPlayerCredits[ id ], g_iPlayerCredits[ id ] == 1 ? "" : "e" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/shop" ) != -1 || contain( s_Arg, "/shopcredits" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new szMenuFormat[ 256 ], iCostAdmin[ 128 ], iCostSlot[ 128 ], iCostVIP[ 128 ];
			format( szMenuFormat, 255, "\r%d\y Credits\w - Ce doresti sa cumperi ?", g_iPlayerCredits[ id ] );
			format( iCostAdmin, 127, "\wAdmin\y - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopAdmin ) );
			format( iCostSlot, 127, "\wSlot\y - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopSlot ) );
			format( iCostVIP, 127, "\wV.I.P \y(\rG:2\y) - \r[\w%d\yCredits\r][\wOdata pe harta\r]", get_pcvar_num( g_CostShopVIP ) );
			new g_Menu = menu_create( szMenuFormat, "shopHandler" );
			menu_additem( g_Menu, iCostAdmin, "1", 0 );
			menu_additem( g_Menu, iCostSlot, "2", 0 );
			menu_additem( g_Menu, iCostVIP, "3", 0 );
			menu_display( id, g_Menu, 0 );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/pxp" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new s_Arg2[ 32 ];
			copy( s_Arg2, 31, s_Arg[ 5 ] );
			new szTarget = cmd_target( id, s_Arg2, 31 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - !vXP!c.", szName, g_iPlayerXP[ szTarget ] );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}	
	if( contain( s_Arg, "/pcredits" ) != -1 )
	{
		if( g_iModPlugin )
		{
			new s_Arg2[ 32 ];
			copy( s_Arg2, 31, s_Arg[ 5 ] );
			new szTarget = cmd_target( id, s_Arg2, 31 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			new szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - !vCredit%s!c.", szName, g_iPlayerCredits[ szTarget ], g_iPlayerCredits[ szTarget ] == 1 ? "" : "s" );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/restart" ) != -1 || contain( s_Arg, "/rr" ) != -1 || contain( s_Arg, "/restartserver" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_SLAY )
			{
				server_cmd( "sv_restart 1" );
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				C_PrintChat( 0, "!v%s!c, a dat restart.", szName );
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/playerinfo" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_KICK )
			{
				new target[ 32 ];
				copy( target, 31, s_Arg[ 12 ] );
				if( !strlen( target ) )
				{
					C_PrintChat( id, "Comanda se foloseste in felul urmator: !v/playerinfo <!eNume!c>" );
				}
				else
				{
					new iLen, szMotd[ 2048 ];
					iLen = formatex( szMotd[ iLen ], 2048 - iLen, "<body bgcolor=black><center><pre>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<table border=^"1^" cellspaccing=^"1%^" cellpadding=^"5^"" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Nick</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>XP</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Level</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Credits</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>FPS</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Ping</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=deepskyblue>Loss</font></th>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</tr>" );		
					new szTarget = cmd_target( id, target, 3 );
					if( !szTarget ) 
						return PLUGIN_HANDLED;
					static szName[ 32 ], iPing, iLoss;
					get_user_name( szTarget, szName, 31 );
					get_user_ping( szTarget, iPing, iLoss );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%s</font></th>", szName );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerXP[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerLevel[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iPlayerCredits[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", g_iCurFPS[ szTarget ] );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", iPing );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "<th><font color=red>%i</font></th>", iLoss );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</tr>" );
					iLen += format( szMotd[ iLen ], 2048 - iLen, "</body></center>" );
						
					/* Final.. */
					
					show_motd( id, szMotd, "Player info" );
				}
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
	}
	if( contain( s_Arg, "/warn" ) != -1 || contain( s_Arg, "/mwarn" ) != -1 || contain( s_Arg, "/mywarn" ) != -1 )
	{
		if( g_iModPlugin )
		{
			C_PrintChat( id, "Ai !v%d!c/!v%d!c WARN-uri. La !v%d!c, vei primi ban.", g_iWarn[ id ], get_pcvar_num( g_MaxWarn ), get_pcvar_num( g_MaxWarn ) );
			C_PrintChat( id, "Warn-uriile se sterg odata la !v%d!c minute la toti playeri.", ( get_pcvar_num( g_TaskDurWarn ) / 60 ) );
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	if( contain( s_Arg, "/winfo" ) != -1 )
	{
		if( g_iModPlugin )
		{
			if( get_user_flags( id ) & ADMIN_KICK )
			{
				new Target[ 32 ];
				copy( Target, 31, s_Arg[ 7 ] );
				new szTarget = cmd_target( id, Target, 3 );
				if( !szTarget )
					return PLUGIN_HANDLED;
				static szName[ 32 ];
				get_user_name( szTarget, szName, 31 );
				C_PrintChat( id, "Player !v%s!c are !v%d!c - WARN. (!v%d!c/!v%d!c)", szName, g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
			}
			else
			{
				C_PrintChat( id, "Nu ai acces la aceasta comanda." );
			}
		}
		else
		{
			C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
		}
	}
	return PLUGIN_CONTINUE;
}
public shopHandler( id, menu, item )
{
	switch( item )
	{
		case 0:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopAdmin ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vADMIN!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, read_flags( "abcdefghijkl" ) );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopAdmin );
				C_PrintChat( id, "Ai cumparat !vADMIN!c, ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopAdmin ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vADMIN!c.(!vO harta!c)", szName );
			}
		}
		case 1:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopSlot ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vSLOT!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, ADMIN_RESERVATION );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopSlot );
				C_PrintChat( id, "Ai cumparat !vSLOT!c, ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopSlot ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vSLOT!c.(!vO harta!c)", szName );
			}
		}
		case 2:
		{
			if( g_iPlayerCredits[ id ] < get_pcvar_num( g_CostShopVIP ) )
			{
				C_PrintChat( id, "Nu ai destule credite pentru a cumpara !vVIP!c." );
			}
			else
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				set_user_flags( id, read_flags( g_szVipAcces[ 2 ] ) );
				g_iPlayerCredits[ id ] -= get_pcvar_num( g_CostShopVIP );
				C_PrintChat( id, "Ai cumparat !vVIP!c (!vG:2!c), ai doar pe aceasta mapa. [-!v%d!cCredits]", get_pcvar_num( g_CostShopVIP ) );
				C_PrintChat( 0, "Player !v%s!c, si-a cumparat !vVIP!c.(!vO harta!c)", szName );
				g_VipType[ id ][ vipActive ] = true;
			}
		}
	}
}
public checkVipPlayer( id, const szName[ ], const szIP[ ], const szAuthId[ ] )
{
	/* Set variables false */
	
	g_iVipNum[ id ][ 1 ] = false;
	g_iVipNum[ id ][ 2 ] = false;
	g_iVipNum[ id ][ 3 ] = false;
	g_iVipNum[ id ][ 4 ] = false;
	g_iVipNum[ id ][ 5 ] = false;
	
	/* Check */
	
	new szFile = fopen( g_szFileVip, "r" );
	if( !szFile )
		return;
	new szData[ 512 ], szInfo[ 64 ], iVipType[ 64 ], iAcces[ 64 ];
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, 511 );
		if( szData[ 0 ] == ';' || szData[ 0 ] == '#' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
			continue;
		parse( szData, iVipType, 63, szInfo, 63, iAcces, 63 );
		if( equali( szInfo, szName ) || equali( szInfo, szIP ) || equali( szInfo, szAuthId ) )
		{
			g_UserIsVip[ id ] = true;
		}
		switch( iVipType[ 1 ] )
		{
			case 'A': g_VipType[ id ][ vipActive ] = true;
			case 'S': g_VipType[ id ][ vipSuspended ] = true;
		}
		if( g_UserIsVip[ id ] )
		{
			switch( iAcces[ 1 ] )
			{
				case '1':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 1 ] ) );
				}
				case '2':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 2 ] ) );
				}				
				case '3':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 3 ] ) );
				}				
				case '4':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 4 ] ) );
				}				
				case '5':
				{
					set_user_flags( id, read_flags( g_szVipAcces[ 5 ] ) );
				}
			}
		}
	}
	fclose( szFile );
}
public serverTombola( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iNum;
		get_players( iPlayers, iNum, "g" );
		for( new i = 0; i < iNum; i++ )
		{
			g_iNumberChosen = random_num( 1, get_pcvar_num( g_MaxNumber ) );
			if( g_iNumberIs >= get_pcvar_num( g_MinNumberT ) )
			{
				client_cmd( iPlayers[ i ], "spk ^"is time^"" );
				C_PrintChat( iPlayers[ i ], "Este timp-ul pentru !vTOMBOLA!c." );
				CreateFade( iPlayers[ i ], 5, 5, 195, 125 );
				C_PrintChat( iPlayers[ i ], "Numar ales random pe aceasta harta, este !v%d!c.", g_iNumberChosen );
				C_PrintChat( iPlayers[ i ], "Playerul cu acest numar (!v%d!c), sa scrie in !v10!c secunde in chat, !v/true!c.", g_iNumberChosen );
				g_iNumberAll = true;
				set_task( float( get_pcvar_num( g_RemoveNumber ) ), "anulareNumarTombola", iPlayers[ i ] );
			}
		}
	}
}
public anulareNumarTombola( id )
{
	if( g_iNumberAll )
	{
		C_PrintChat( id, "Numarul la tombola de pe aceasta harta nu a fost gasit." );
		g_iNumberAll = false;
	}
}
public checkPlayedTime( id )
{
	if( is_user_connected( id ) && !is_user_bot( id ) )
	{
		g_iPlayedTime[ id ][ formatMinutes ] += 1;
		if( g_iPlayedTime[ id ][ formatMinutes ] >= 60 )
		{
			g_iPlayedTime[ id ][ formatHours ] += 1;
			g_iPlayedTime[ id ][ formatMinutes ] -= 60;
		}
	}
}
public cmdAddXP( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iAmount[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iAmount, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iAmount ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <XP> se adauga o valoare numerica." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			C_PrintChat( 0, "Admin !v%s!c ii adauga lui !v%s!c - !v%d!c XP.", szNameAdmin, szNameTarget, str_to_num( iAmount ) );
			g_iPlayerXP[ szTarget ] += str_to_num( iAmount );
			playerCalculateLevel( szTarget );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddWarn( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iWarn[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iWarn, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iWarn ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Numar> se adauga o valoare numerica. (cate WARN/uri vrei sa dai[%d ban])", get_pcvar_num( g_MaxWarn ) );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			g_iWarn[ szTarget ] += str_to_num( iWarn );
			C_PrintChat( 0, "Admin !v%s!c ii da lui !v%s!c / !v%d!c WARN. Acum are [!v%d!c/!v%d!c] Warn.", szNameAdmin, szNameTarget, str_to_num( iWarn ), g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdInfoWarn( id )
{
	if( g_iModPlugin )
	{
		if( get_user_flags( id ) & ADMIN_KICK )
		{
			new s_Arg[ 32 ];
			read_argv( 1, s_Arg, 31 );
			new szTarget = cmd_target( id, s_Arg, 3 );
			if( !szTarget )
				return PLUGIN_HANDLED;
			static szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			C_PrintChat( id, "Player !v%s!c are !v%d!c - WARN. (!v%d!c/!v%d!c)", szName, g_iWarn[ szTarget ], get_pcvar_num( g_MaxWarn ) );
		}
		else
		{
			C_PrintChat( id, "Nu ai acces la aceasta comanda." );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddVip( id )
{
	if( g_iModPlugin )
	{
		static szStatus[ 32 ], szNume[ 32 ], iGrad[ 32 ];
		read_argv( 1, szStatus, 31 );
		read_argv( 2, szNume, 31 );
		read_argv( 3, iGrad, 31 );
		if( !strlen( szStatus ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Status> se adauga A - Activ sau S - Suspendat." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else if( !strlen( szNume ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Nume> se adauga numele VIP-ului care doresti sa-l adaugi." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else if( !str_to_num( iGrad ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Grad> se adauga o valoare numerica, incepand de la 1 (cel mai mic), pana la 5 (cel mai mare)." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			if( strlen( szStatus ) == 1 )
			{
				if( str_to_num( iGrad ) > 0 || str_to_num( iGrad ) < 6 )
				{
					new szFormat[ 256 ], szTarget;
					szTarget = cmd_target( id, szNume, 3 );
					if( is_user_connected( szTarget ) && !is_user_bot( szTarget ) )
					{
						C_PrintChat( szTarget, "Admin !v%s!c te-a adaugat ca V.I.P - !v%s!c | !v%s!c | !v%d!c", szStatus, szNume, str_to_num( iGrad ) );
						set_user_flags( szTarget, read_flags( g_szVipAcces[ str_to_num( iGrad ) ] ) );
					}
					formatex( szFormat, 255, "[%s] ^"%s^" [%d]", szStatus, szNume, str_to_num( iGrad ) );
					write_file( "addons/amxmodx/configs/HNS_vip.ini", szFormat, -1 );
				}
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_HANDLED;
}
public cmdInfoPlayer( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], s_Arg2[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, s_Arg2, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !strlen( s_Arg2 ) ) 
		{
			console_print( id, "La <XP/LVL/Credits> XP - XP-ul unui player / LVL - Levelul unui player / Credits - Creditele unui player" );
		}
		else
		{
			static szName[ 32 ];
			get_user_name( szTarget, szName, 31 );
			switch( s_Arg2[ 0 ] )
			{
				case 'L':
				{
					C_PrintChat( id, "Player !v%s!c are level !v%d!c.", szName, g_iPlayerLevel[ szTarget ] );
				}
				case 'X':
				{
					C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szName, g_iPlayerXP[ szTarget ] );
				}
				case 'C':
				{
					C_PrintChat( id, "Player !v%s!c are !v%d!c XP.", szName, g_iPlayerCredits[ szTarget ] );
				}
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}		
public cmdResetStats( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ];
		read_argv( 1, s_Arg, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		static pName[ 32 ], aName[ 32 ];
		get_user_name( id, aName, 31 );
		get_user_name( szTarget, pName, 31 );
		C_PrintChat( 0, "Admin !v%s!c ii reseteaza statisticiile lui !v%s!c. [!vXP!c/!vLVL!c/!vCredits!c]", aName, pName );
		g_iPlayerXP[ szTarget ] = 0;
		g_iPlayerLevel[ szTarget ] = 0;
		g_iPlayerCredits[ szTarget ] = 0;
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdAddCredits( id )
{
	if( g_iModPlugin )
	{
		new s_Arg[ 32 ], iAmount[ 32 ];
		read_argv( 1, s_Arg, 31 );
		read_argv( 2, iAmount, 31 );
		new szTarget = cmd_target( id, s_Arg, 3 );
		if( !szTarget )
			return PLUGIN_HANDLED;
		if( !str_to_num( iAmount ) )
		{
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintHeader );
			console_print( id, "La <Credits> se adauga o valoare numerica." );
			console_print( id, "- - - - - - - - %s - - - - - - - -", g_szConsolePrintFooter );
		}
		else
		{
			static szNameTarget[ 32 ], szNameAdmin[ 32 ];
			get_user_name( szTarget, szNameTarget, 31 );
			get_user_name( id, szNameAdmin, 31 );
			C_PrintChat( 0, "Admin !v%s!c ii adauga lui !v%s!c - !v%d!c Credit%s.", szNameAdmin, szNameTarget, str_to_num( iAmount ), str_to_num( iAmount ) == 1 ? "" : "e" );
			g_iPlayerCredits[ szTarget ] += str_to_num( iAmount );
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public cmdTransfer( id )
{
	if( g_iModPlugin )
	{
		new c_Arg[ 32 ], c_Echipa[ 32 ];
		read_argv( 1, c_Arg, 31 );
		read_argv( 2, c_Echipa, 31 );
		new target = cmd_target( id, c_Arg, 3 );
		if( !target )
			return PLUGIN_HANDLED;
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		switch( c_Echipa[ 0 ] )
		{
			case 'T':
			{
				user_kill( target );
				cs_set_user_team( target, 1 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vTERO!c.", szName );
			}
			case 'C':
			{
				user_kill( target );
				cs_set_user_team( target, 2 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vCOUNTER!e-!vTERO!c.", szName );
			}
			case 'S':
			{
				user_kill( target );
				cs_set_user_team( target, 3 );
				C_PrintChat( 0, "Player !v%s!c a fost mutat la echipa !vSPEC!c.", szName );
			}
		}
	}
	else
	{
		C_PrintChat( id, "Modul !vTime!eAnd!vRemove!c este oprit." );
	}
	return PLUGIN_CONTINUE;
}
public serverPingCheck( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iNum, id;
		get_players( iPlayers, iNum, "c" );
		for( new i = 0; i < iNum; i++ )
		{
			id = iPlayers[ i ];
			static iPing, iLoss;
			get_user_ping( id, iPing, iLoss );
			if( iPing >= get_pcvar_num( g_MaxPing ) )
			{
				static szName[ 32 ];
				get_user_name( id, szName, 31 );
				C_PrintChat( id, "Player !v%s!c avea ping prea mare si a fost deconectat.", szName );
				server_cmd( "kick #%d Ping prea mare, rezolva-l si revin-o la joc !", get_user_userid( id ) );
			}
		}
	}
}
public serverCheckWarn( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount;
		get_players( iPlayers, iCount, "ac" );
		for( new i = 0; i < iCount; i++ )
		{
			if( is_user_connected( iPlayers[ i ] ) && !is_user_bot( iPlayers[ i ] ) )
			{
				if( g_iWarn[ iPlayers[ i ] ] >= get_pcvar_num( g_MaxWarn ) )
				{
					server_cmd( "kick #%d Ai %d/%d WARN/uri.", get_user_userid( iPlayers[ i ] ), g_iWarn[ iPlayers[ i ] ], get_pcvar_num( g_MaxWarn ) );
					new szNameFormat[ 256 ], szName[ 32 ];
					get_user_name( iPlayers[ i ], szName, 31 );
					format( szNameFormat, 255, "%s", szName );
					write_file( g_szFileWarn, szNameFormat, -1 );
				}
			}
		}
	}
}
public serverRemoveWarn( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount;
		get_players( iPlayers, iCount, "ac" );
		for( new i = 0; i < iCount; i++ )
		{
			if( is_user_connected( iPlayers[ i ] ) && !is_user_bot( iPlayers[ i ] ) )
			{
				if( g_iWarn[ iPlayers[ i ] ] > 0 )
				{
					C_PrintChat( iPlayers[ i ], "Toate !vWARN!c-uriile, au fost sterse. (la toti useri.)" );
					g_iWarn[ iPlayers[ i ] ] -= g_iWarn[ iPlayers[ i ] ];
				}
			}
		}
	}
}
public serverCommands( )
{
	for( new i = 0; i < sizeof( g_szServerCMD ); i++ )
		server_cmd( g_szServerCMD[ i ] );
}
public client_disconnect( id )
{
	// Save Time 
		
	PlayedTimeSave( id );
		
	// Save XP
		
	PlayerXpSave( id );
	
	// Save Credits
		
	PlayerCreditsSave( id );
		
	// Print
		
	ClientDisconnected( id );
		
	// Task
		
	remove_task( id );
}
public client_putinserver( id )
{
	// Load Time
		
	PlayedTimeLoad( id );
	
	// Load XP
		
	PlayerXpLoad( id );
		
	// Load Credits
		
	PlayerCreditsLoad( id );
		
	// Task
		
	set_task( float( get_pcvar_num( g_TimePlayed ) ), "checkPlayedTime", id, _, _, "b" );
		
	// Check VIP
		
	static szName[ 32 ], szIP[ 32 ], szAuthId[ 32 ];
	get_user_name( id, szName, 31 );
	get_user_ip( id, szIP, 31, 1 );
	get_user_authid( id, szAuthId, 31 );
	checkVipPlayer( id, szName, szIP, szAuthId );
		
	// Print
		
	ClientConnected( id );
	
	// Check name
		
	ClientCheckName( id );
	
	// Check Warn
		
	ClientCheckWarn( id );
	
	// Hud
	
	set_task( 1.0, "hudPlayerCredits", id, _, _, "b" );
}
public ClientCheckName( id )
{
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		new szData[ 512 ], szRestrictedName[ 128 ];
		while( !feof( g_szFileRestricted ) )
		{
			fgets( g_szFileRestricted, szData, 511 );
			if( szData[ 0 ] == ';' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			parse( szData, szRestrictedName, 127 );
			if( equal( szRestrictedName, szName ) )
			{
				server_cmd( "kick #%d Numele tau nu este permis pe acest server.", get_user_userid( id ) );
			}
		}
		fclose( g_szFileRestricted );
	}
	return 0;
}
public ClientCheckWarn( id )
{	
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		new szFile = fopen( g_szFileWarn, "r" );
		if( !szFile )
			return 1;
		new szData[ 512 ], szInfo[ 64 ];
		while( !feof( szFile ) )
		{
			fgets( szFile, szData, 511 );
			if( szData[ 0 ] == ';' || szData[ 0 ] == '/' && szData[ 1 ] == '/' )
				continue;
			parse( szData, szInfo, 63 );
			if( equal( szInfo, szName ) )
			{
				server_cmd( "kick #%d Ai %d/%d WARN/uri.", get_user_userid( id ), g_iWarn, get_pcvar_num( g_MaxWarn ) );
			}
		}
		fclose( szFile );
	}
	return 0;
}
public ClientDisconnected( id )
{
	if( g_iModPlugin )
	{
		static szMesaj[ 128 ], szName[ 32 ];
		get_user_name( id, szName, 31 );
		if( get_user_flags( id ) & ADMIN_LEVEL_C ||
		get_user_flags( id ) & ADMIN_LEVEL_A ||
		get_user_flags( id ) & ADMIN_LEVEL_B ||
		get_user_flags( id ) & ADMIN_LEVEL_F ||
		get_user_flags( id ) & ADMIN_LEVEL_H )
		{
			format( szMesaj, 127, "V.I.P !v%s!c [!v%s!c] sa deconectat.", szName, g_VipType[ id ][ vipActive ] == 1 ? "A" : "S" );
		}
		else
		{
			format( szMesaj, 127, "Jucator !v%s!c sa deconectat.", szName );
		}
		C_PrintChat( id, szMesaj );
	}
}
public ClientConnected( id )
{
	if( g_iModPlugin )
	{
		static szMesaj[ 128 ], szName[ 32 ];
		get_user_name( id, szName, 31 );
		if( get_user_flags( id ) & ADMIN_LEVEL_C ||
		get_user_flags( id ) & ADMIN_LEVEL_A ||
		get_user_flags( id ) & ADMIN_LEVEL_B ||
		get_user_flags( id ) & ADMIN_LEVEL_F ||
		get_user_flags( id ) & ADMIN_LEVEL_H )
		{
			format( szMesaj, 127, "V.I.P !v%s!c [!v%s!c] sa conectat.", szName, g_VipType[ id ][ vipActive ] == 1 ? "A" : "S" );
		}
		else
		{
			format( szMesaj, 127, "Jucator !v%s!c sa conectat.", szName );
		}
		C_PrintChat( id, szMesaj );
	}
}
public hudPlayerCredits( id )
{
	if( g_iModPlugin )
	{
		static szName[ 32 ];
		get_user_name( id, szName, 31 );
		set_hudmessage( 40, 100, 200, -1.0, 0.64, 1, 6.0, 1.0 );
		show_hudmessage( id, "( %s ) - FPS-ul tau %d ^n[Credits: %d][XP: %d][Level: %d][Warn: %d]", szName, g_iCurFPS[ id ], g_iPlayerCredits[ id ], g_iPlayerXP[ id ], g_iPlayerLevel[ id ], g_iWarn[ id ] );
	}
}
public PlayerXpSave( id )
{		
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i#%i", g_iPlayerLevel[ id ], g_iPlayerXP[ id ] );
	nvault_set( g_szVaultPlayerStats, szVaultKey, szVaultData );
}
public PlayerXpLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i#%i", g_iPlayerLevel[ id ], g_iPlayerXP[ id ] );
	nvault_get( g_szVaultPlayerStats, szVaultKey, szVaultData, 255 );
	replace_all( szVaultData, 255, "#", " " );
	new iPlayerLevel[ 33 ], iPlayerXP[ 33 ];
	parse( szVaultData, iPlayerLevel, 32, iPlayerXP, 32 );
	g_iPlayerLevel[ id ] = str_to_num( iPlayerLevel );
	g_iPlayerXP[ id ] = str_to_num( iPlayerXP );
}
public PlayerCreditsSave( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayerCredits[ id ] );
	nvault_set( g_szVaultPlayerCredits, szVaultKey, szVaultData );
}
public PlayerCreditsLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayerCredits[ id ] );
	nvault_get( g_szVaultPlayerCredits, szVaultKey, szVaultData, 255 );
	new iPlayerCredits[ 33 ];
	parse( szVaultData, iPlayerCredits, 32 );
	g_iPlayerCredits[ id ] = str_to_num( iPlayerCredits );
}
public PlayedTimeSave( id ) 
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayedTime[ id ][ formatMinutes ] );
	nvault_set( g_szVaultTime, szVaultKey, szVaultData );
}
public PlayedTimeLoad( id )
{
	static szName[ 32 ], szVaultData[ 256 ], szVaultKey[ 128 ];
	get_user_name( id, szName, 31 );
	format( szVaultKey, 127, "%s", szName );
	format( szVaultData, 255, "%i", g_iPlayedTime[ id ][ formatMinutes ] );
	nvault_get( g_szVaultTime, szVaultKey, szVaultData, 255 );
	new iPlayedMinutes[ 33 ];
	parse( szVaultData, iPlayedMinutes, 32 );
	g_iPlayedTime[ id ][ formatMinutes ] = str_to_num( iPlayedMinutes );
}
public plugin_end( )
{
	nvault_close( g_szVaultTime );
	nvault_close( g_szVaultPlayerStats );
	nvault_close( g_szVaultPlayerCredits );
}
public addInfoServer( )
{
	new szFile = fopen( g_szFileVip, "r" );
	new szData[ 512 ];
	while( !feof( szFile ) )
	{
		fgets( szFile, szData, 511 );
		switch( szData[ 1 ] )
		{
			case 'A':
			{
				g_iVipTotal[ vipSuspended ] = 0;
				g_iVipTotal[ vipActive ] = 0;
				g_iVipTotal[ vipActive ]++;
			}
			case 'S':
			{
				g_iVipTotal[ vipSuspended ] = 0;
				g_iVipTotal[ vipActive ] = 0;
				g_iVipTotal[ vipSuspended ]++;
			}
		}
	}
	fclose( szFile );
	new szFormat[ 128 ], szDate[ 32 ];
	get_time( "%d.%m.%Y | %H:%M:%S", szDate, 31 );
	format( szFormat, 127, "[%s] Total VIP(s): [A] %d | [S] %d", szDate, g_iVipTotal[ vipActive ], g_iVipTotal[ vipSuspended ]  );
	write_file( "addons/amxmodx/configs/HNS_infoServer.ini", szFormat, -1 );
	write_file( "addons/amxmodx/configs/HNS_infoServer.ini", "", -1 );
}
public addSnowServer( )
{
	if( g_iModPlugin )
	{
		if( get_pcvar_num( g_ModSnow ) )
		{
			new iPlayers[ 32 ], iCount;
			get_players( iPlayers, iCount, "ac" );
			for( new i = 0; i < iCount; i++ )
			{
				client_cmd( iPlayers[ i ], "cl_weather ^"1^"" );
			}
		}
	}
}
public addWinnerXP( )
{
	if( g_iModPlugin )
	{
		new iPlayers[ 32 ], iCount, iMax, i;
		get_players( iPlayers, iCount, "a" );
		for( i = 0; i < iCount; i++ )
		{
			if( g_iPlayerLevel[ iPlayers[ i ] ] > g_iPlayerLevel[ iPlayers[ i + 1 ] ] )
			{
				iMax = iPlayers[ i ];
				if( g_iPlayerLevel[ iMax ] > 0 )
				{
					static szName[ 32 ]; 
					get_user_name( iMax, szName, 31 );
					C_PrintChat( 0, "Player !v%s!c are level !v%d!c. Va fi premiat.", szName, g_iPlayerLevel[ iMax ] );
					C_PrintChat( iMax, "Pentru ca ai level !v%d!c (cel mai mare). Vei avea +!v%d!c[HP/AP].", g_iPlayerLevel[ iMax ], get_pcvar_num( g_APHP ) );
					set_user_health( iMax, get_user_health( iMax ) + get_pcvar_num( g_APHP ) );
					set_user_armor( iMax, get_user_armor( iMax ) + get_pcvar_num( g_APHP ) );
					CreateFade( iMax, 255, 0, 0, 0 );
					ShakeScreen( iMax, 5.0 );
				}
			}
			else
			{
				iMax = iPlayers[ i + 1 ];
			}
		}
	}
}
playerCalculateLevel( id )
{
	if( ( g_iPlayerLevel[ id ] <= 21 ) && ( g_iPlayerXP[ id ] >= g_iLevelsXP[ g_iPlayerLevel[ id ] ] ) )
	{
		while( g_iPlayerXP[ id ] >= g_iLevelsXP[ g_iPlayerLevel[ id ] ] )
		{
			g_iPlayerLevel[ id ] += 1;
		}
	}
}
stock CreateFade( id, red, green, blue, alpha )
{
	message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), { 0, 0, 0 }, id );
	write_short( 5 << 10 );
	write_short( 5 << 10 );
	write_short( 5 << 12 );
	write_byte( red );
	write_byte( green );
	write_byte( blue );
	write_byte( alpha );
	message_end( );
}
public ShakeScreen( id, const Float:seconds )
{
	message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( 1 << 13 );
	message_end( );
}
stock f_Gun( id, gun, ammo )
{
	switch( gun )
	{
		case szDeagle:
		{
			if( find_ent_by_owner( -1, "weapon_deagle", id ) )
			{
				cs_set_weapon_ammo( find_ent_by_owner( -1, "weapon_deagle", id ), cs_get_weapon_ammo( find_ent_by_owner( -1, "weapon_deagle", id ) ) + ammo );
			} 
			else 
			{
				give_item( id, "weapon_deagle" );
				new eNtry = find_ent_by_owner( -1, "weapon_deagle", id );
				if( eNtry )
				{
					cs_set_weapon_ammo( eNtry, ammo );
				}
			}
		}
	}
}
stock f_Grenade( id, grenade, nr )
{
	switch( grenade )
	{
		case szHe:
		{
			new it = cs_get_user_bpammo( id, CSW_HEGRENADE );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_HEGRENADE, it + nr );
			}
			else 
			{
				give_item( id, "weapon_hegrenade" );
				cs_set_user_bpammo( id, CSW_HEGRENADE, nr );
			}
		}
		case szSmoke:
		{
			new it = cs_get_user_bpammo( id, CSW_SMOKEGRENADE );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_SMOKEGRENADE, it + nr );
			}
			else 
			{
				give_item( id, "weapon_smokegrenade" );
				cs_set_user_bpammo( id, CSW_SMOKEGRENADE, nr );
			}
		}
		case szFlash:
		{
			new it = cs_get_user_bpammo( id, CSW_FLASHBANG );
			if( it > 0 )
			{
				cs_set_user_bpammo( id, CSW_FLASHBANG , it + nr );
			}
			else 
			{
				give_item( id, "weapon_flashbang" );
				cs_set_user_bpammo( id, CSW_FLASHBANG , nr );
			}
		}
	}
}
stock f_Skill( id, skill, count )
{
	switch( skill )
	{
		case szHealth:
		{
			set_user_health( id, get_user_health( id ) + count );
		}
		case szArmor:
		{
			set_user_armor( id, get_user_armor( id ) + count );
		}
		case szMoney:
		{
			cs_set_user_money( id, cs_get_user_money( id ) + count );
		}
	}
}
stock C_PrintChat( const id, const input[ ], any:... )
{
	new iCount = 1, iPlayers[ 32 ];
	static szMsg[ 320 ], szMsg2[ 320 ];
	vformat( szMsg, 190, input, 3 );
	format( szMsg2, 190, "!c[%s] %s", szTag, szMsg );
	replace_all( szMsg2, 190, "!v", "^4" );
	replace_all( szMsg2, 190, "!c", "^1" );
	replace_all( szMsg2, 190, "!e", "^3" );
	if( id )
	{
		iPlayers[ 0 ] = id;
	}
	else
	{
		get_players( iPlayers, iCount, "ch" );
	}
	for( new i = 0; i < iCount; 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( );
		}
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Dupa cateva teste, impreuna cu soundd, am reusit sa aflu eroarea si sa o rezolv.
Retras
Post Reply

Return to “Pluginuri eXtream”

  • Information
  • Who is online

    Users browsing this forum: Semrush [Bot] and 15 guests