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

Pluginuri facute de utilizatorii forumului eXtream.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

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:

08 Sep 2013, 17:49

Descriere: Un plugin pentru modul hide-n-seek. Are incluse multe chestii noi pe langa cel original.

Descarcare: ZippyShare

Nume: Numele pluginului respectiv
Versiune: 1.x
Link oficial: Aici.
Sursa:
| 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_MinimPlayers, 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, g_MaxRetry, g_MaxRetryBan;

// 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_MinimPlayers = register_cvar( "HNS_minplayers", "2" );
	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" );
	g_MaxRetry = register_cvar( "HNS_max_retry", "3" );
	g_MaxRetryBan = register_cvar( "HNS_max_retryban", "25" );
	
	// 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" );
	if( iNum < get_pcvar_num( g_MinimPlayers ) )
	{
		C_PrintChat( 0, "Total jucatori !v%d!c/!v%d!c. Trebuie !v%d!c pentru - !vTime!eAnd!vRemove!c.", get_playersnum( ), get_maxplayers( ), get_pcvar_num( g_MinimPlayers ) );
		g_iModPlugin = false;
	}
	else
	{
		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
		{
			C_PrintChat( 0, "Modul !vTime!eAnd!vRemove!c este pornit, 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 ] );
			}
		}
	}
}
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( );
		}
	}
}
Instalare:
1. Fisierul nume_plugin.sma il puneti in addons/amxmodx/scripting
2. Fisierul nume_plugin.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Code: Select all

nume_plugin.amxx
4. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):
  • HNS_taskiteme
    HNS_minplayers - la cati playeri sa porneasca pluginul.
    HNS_health - cat hp sa primesti de la medic.
    HNS_medic_cooldown - de la chemarea medicului, peste cate secunde sa-ti mai de-a voie sa-l chemi.
    HNS_medic_maxhealth - cat hp permite maxim medicul.
    HNS_medic_cost - costul pentru a chema medicul.
    HNS_taskcmd - din cate in cate secunde sa se execute comenziile din constante.
    HNS_max_ping - pingul maxim permis pe server.
    HNS_ping_check - din cate in cate secunde sa verifice pingul playeriilor.
    HNS_add_info - din cate in cate secunde sa adauge informatii despre vip.
    HNS_xp_kill - xpul pe kill.
    HNS_xp_roundend - cat xp sa primeasca la sfarsitul rundei.
    HNS_xp_death - cat xp sa scada cand moare.
    HNS_credits_kill - cate credite sa de-a pe kill
    HNS_cost_admin - costul admin din shop. (credite)
    HNS_cost_slot - costul slot din shop. (credite)
    HNS_cost_vip - costul vip din shop. (credite)
    HNS_snow_mod - statusul modului snow.
    HNS_task_addwinner - la cate secunde sa adauga un castigor. (cel mai mare level)
    HNS_task_warn - din cate in cate secunde sa verifice secundele.
    HNS_task_durwarn - cat sa dureze warnuriile.
Comenzi admin:
  • amx_transfer - <nume> <echipa> transferi un player la o echipa.
    amx_addcredits - <nume> <credite> adaugi credite.
    amx_addxp - <nume> <xp> adaugi xp.
    amx_addvip - <Status> <Nume> <Grad> adaugi un vip.
    amx_resetstats - <nume> resetezi statisticiile.
    amx_info - <nume> afli informatii despre un player.
    amx_addwarn - <nume> <warn> adaugi un / mai multe warnuri.
    amx_infowarn - <nume> afli warnuriile unui player.


Comenzi publice (se tasteaza in joc prin apasarea tastei Y):
  • /medic - chemi medicul.
    /playerxp <nume> - afli xpul unui player.
    /numar <nr> - iti alegi un numar la tombola.
    /numarales - afli numarul ales. (la tombola)
    /tombola - informatii despre tombola.
    /who - afli adminii online. (in motd)
    /credits - afli creditele tale.
    /shop - se deschide shopul in hud, si poti cumpara vip, slot, admin.
    /pxp <nume> - afli xpul unui player.
    /pcredits <nume> - afli creditele unui player.
    /warn - afli warnuriile tale.
Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini):
- CStrike
- Fun
- Engine
- Fakemeta
- Hamsandwich
- Geoip
- Nvault
- alte module necesare..

Imagini: http://www24.zippyshare.com/v/87797516/file.html

P.S: Este vorba de acest plugin: http://www.extreamcs.com/forum/diverse/ ... 12465.html
P.S2: Acest pareri.
P.S3: Orice parere / sugestie este bine venita.
Retras
RoyalServer
User avatar
Rony
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 966
Joined: 11 Mar 2013, 11:43
Detinator Steam: Da
CS Status: CO-FOUNDER BETANO
Detinator server CS: CS1.6 , CS:GO
SteamID: 31r1
Reputatie: Membru Club eXtreamCS (1 luna)
Membru Club eXtreamCs (28 Feb)
Utilizator neserios (tepar)
Location: NAPOLI
Has thanked: 173 times
Been thanked: 66 times
Contact:

08 Sep 2013, 18:00

bravo,felicitari pentru new version foarte frumos!
User avatar
high.G1
Membru, skill 0
Membru, skill 0
Posts: 37
Joined: 30 Aug 2013, 15:54
Detinator Steam: Nu
CS Status: Nick anterior: SeNNN[Z]aTioN
Has thanked: 11 times
Been thanked: 19 times
Contact:

08 Sep 2013, 18:28

Acum îl testez si revin cu reply :D>-
EDIT:
Mamăăăă frate este genial :x :x
Na mă eMy, uite aici un Game Mod adevărat.
Sponsorizez HNS.JOINET.RO
Sponsorizez HNS.REVHOSTING.RO
Vrei şi tu o sponsorizare? Trebuie să îmi devi prieten !
Image
[ sn1kkers ]




NICK ACTUAL: sN1kkeRs.
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

08 Sep 2013, 20:01

mai ai de lucrat la descrierea topicului/detalii.
nu toti stiu sa se uite in .sma dupa comenzi + ca nu ai spus ce face fiecare cvar..
+multe altele.

in rest GJ!
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
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:

08 Sep 2013, 20:08

Askhanar wrote:mai ai de lucrat la descrierea topicului/detalii.
nu toti stiu sa se uite in .sma dupa comenzi + ca nu ai spus ce face fiecare cvar..
+multe altele.

in rest GJ!
N-am avut timp sa scriu si descrierea. Aveam mult de scris. O sa editez.
Retras
User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3560
Joined: 02 Apr 2012, 16:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 797 times
Been thanked: 607 times

08 Sep 2013, 21:33

Bravo man ,sper sa functioaneze cum ti-ai dorit tu :)>-
Felicitari =D>
Last edited by Ulquiorra on 08 Sep 2013, 23:44, edited 1 time in total.
Reason: cum facem sa dau si eu de gagica din poza ta ?:D
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
User avatar
RoL
Membru, skill +1
Membru, skill +1
Posts: 434
Joined: 19 Jul 2013, 13:19
Detinator Steam: Da
Detinator server CS: DA
SteamID: rolcs97
Has thanked: 47 times
Been thanked: 28 times
Contact:

09 Sep 2013, 00:48

Poti baga si skowkeys ? (Sa arate ce butoane sa apesi)
+ Daca poti face unde scrie xp sa nu fie Xp : 0 sa fie 0/2000 ca sa stie playerii cat mai au pana fac lvl .
Server: HNS.CSBLACKDEVIL.COM
Mod: 500 GRAVITY + LVLMODE !
Owner : RoL

Multe altele pe server ! Ajuta-ma sa-l populez ..
http://www.extreamcs.com/forum/mesaj166 ... o_id=46686
User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3560
Joined: 02 Apr 2012, 16:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 797 times
Been thanked: 607 times

09 Sep 2013, 00:52

RoL wrote:Poti baga si skowkeys ? (Sa arate ce butoane sa apesi)
+ Daca poti face unde scrie xp sa nu fie Xp : 0 sa fie 0/2000 ca sa stie playerii cat mai au pana fac lvl .
Image
Asa rol ? Daca da are deja :D,dar daca e sa mai puna butoanele pe care apesi atata tot dar xp si ce ai mai zis tu are :) (de ce ar trebui sa scrie/2000 e bine si asa :D )
OFF : Askhanar gagica din avataru meu o gasesti pe net (cred :)) )
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

09 Sep 2013, 01:00

Un plugin de nota 10 :)>- felicitarile mele :)
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
User avatar
RoL
Membru, skill +1
Membru, skill +1
Posts: 434
Joined: 19 Jul 2013, 13:19
Detinator Steam: Da
Detinator server CS: DA
SteamID: rolcs97
Has thanked: 47 times
Been thanked: 28 times
Contact:

09 Sep 2013, 01:09

Da ca in poza sa apara si sub tinta , si sa fie si butoanele ar fi perfect
Server: HNS.CSBLACKDEVIL.COM
Mod: 500 GRAVITY + LVLMODE !
Owner : RoL

Multe altele pe server ! Ajuta-ma sa-l populez ..
http://www.extreamcs.com/forum/mesaj166 ... o_id=46686
User avatar
KronoS eXtream
Fost administrator
Fost administrator
Posts: 4378
Joined: 02 Apr 2009, 19:18
Detinator Steam: Da
Reputatie: Fost administrator
Fost detinator Zombie-Land.eXtream.Ro
Contribuitor
Fost Scripter eXtreamCS
Dezvoltator al listei de seriozitate eXtreamCS
Location: Bucharest
Has thanked: 551 times
Been thanked: 820 times
Contact:

09 Sep 2013, 08:26

Code: Select all

stock f_Skill( id, skill, count )
Opaaa, ai inceput sa folosesti anteturi mai dezvoltate :>
Last edited by munir on 09 Sep 2013, 10:35, edited 1 time in total.
Reason: :)) ca femeile.. dezvoltarea inainte de toate =))
Nu efectuez tranzactii pe mess, skype etc. Aveti grija la indivizii care se dau drept mine!
Nu mai ofer suport asa ca nu imi mai trimiteti mesaje in legatura cu asta!


Zombie Plague Shade 1.2-debug1 [with Item Limiter] (12 September 2015) - Bombardier Branch
User avatar
xXxAdyxXx;x
Membru, skill +1
Membru, skill +1
Posts: 448
Joined: 23 Aug 2012, 15:44
Detinator Steam: Da
CS Status: Ma joc !
Detinator server CS: hNs.lunetisitii.ro
SteamID: it_allen90
Location: Suceava/Radauti
Has thanked: 18 times
Been thanked: 32 times
Contact:

10 Sep 2013, 15:34

Arata bine o sa-l incerc si eu buna ideea ce-a cu creditele :)
Image
Post Reply

Return to “Pluginuri eXtream”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 5 guests