[ Plugins ] - [Surf] XP Mod / Level System - Plugins - GAMELIFE România Jump to content

[ Plugins ] - [Surf] XP Mod / Level System


Recommended Posts

  • Administrators
Posted

[Surf] XP Mod / Level System


Descriere: Toata lumea cred ca stie ce-i ala un level mod. Ei, daca nu stiai pana acum, level mod inseamna un plugin bazat pe nivele, avansezi in level facand experienta. Odata ce ai ajuns la x/x experienta, avansezi la nivelul urmator. Pluginul are in total 15 levele, beneficii. Toate astea mai jos

Descarcare: Link!

SMA (EDITAT) | 

Spoiler
// Includes
#include < amxmodx >
#include < amxmisc >
#include < hamsandwich >
#include < cstrike >
#include < fakemeta >
#include < fun >
#include < fvault >

// Register Plugin
new const PLUGIN_NAME[  ] = "[SURF] Level System", 
	 PLUGIN_VERSION[  ] = "1.7", 
	 PLUGIN_AUTHOR[  ] = "YONTU";

#define MAX_LEVEL	15	// This is max level
#define ADMIN_ACCESS	ADMIN_LEVEL_G
#define is_user_valid(%1)	(1 <= %1 <= 32)

enum bs_data { Level = 1, Gravity, Speed, Health, Armor, Flash, He, Smoke }

new const Tag[  ] = "[SURF: Level System]";
new const SoundLevelUp[  ] = "misc/levelup.wav";
new const g_Vault[  ] = "surf_levelmod_1.7";

new g_UserXP[ 33 ], g_UserLevel[ 33 ];

new cvar_levelup_protect, cvar_levelup_effects, cvar_kill_xp, cvar_hs_xp;
new c_levelup_protect, c_levelup_effects, SyncHudMessage;

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

enum e_data { Xp, Float:Gravity, Float:Speed, Health, Armor, Flash, He, Smoke }

new const g_PlayerData[ MAX_LEVEL+1 ][ e_data ] = {

	/* XP	Gravity	Speed	Health	Armor	Flash	He	Smoke */	// e_data
	{ 0,	800.0,	260.0,	100,	0,	0,	0,	0 },	// NU modifica nimic pe linia asta
	{ 100,	800.0,	260.0,	100,	0,	0,	0,	0 },	// Level 1
	{ 250,	780.0,	260.5,	105,	5,	0,	0,	0 },	// Level 2
	{ 300,	760.0,	270.0,	105,	10,	0,	0,	0 },	// Level 3
	{ 400,	740.0,	270.5,	110,	10,	0,	0,	0 },	// Level 4
	{ 500,	720.0,	280.0,	110,	15,	0,	0,	0 },	// Level 5
	{ 750,	700.0,	280.5,	115,	20,	0,	0,	0 },	// Level 6
	{ 1000,	680.0,	290.0,	120,	25,	0,	0,	0 },	// Level 7
	{ 1400,	660.0,	290.5,	125,	30,	0,	0,	0 },	// Level 8
	{ 1800,	640.0,	300.0,	130,	35,	0,	0,	0 },	// Level 9
	{ 2500,	620.0,	300.5,	150,	50,	0,	0,	0 },	// Level 10
	{ 4000,	600.0,	310.0,	150,	50,	1,	0,	0 },	// Level 11
	{ 5500,	580.0,	310.5,	150,	50,	1,	0,	1 },	// Level 12
	{ 7500,	560.0,	315.0,	150,	50,	2,	0,	1 },	// Level 13
	{ 9000,	540.0,	320.0,	150,	50,	2,	1,	1 },	// Level 14
	{ 12000,	500.0,	330.0,	175,	75,	2,	1,	1 }	// Level 15
	/* XP	Gravity	Speed	Health	Armor	Flash	He	Smoke */	//e_data
}

public plugin_init(  ) {

	register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR );
	register_cvar( "level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER );
	set_cvar_string( "level_mod_", PLUGIN_VERSION );

	cvar_kill_xp = register_cvar( "surf_kill_xp", "25" );
	cvar_hs_xp = register_cvar( "surf_hs_xp", "50" );
	cvar_levelup_protect = register_cvar( "surf_levelup_protect", "1" );
	cvar_levelup_effects = register_cvar( "surf_levelup_effects", "1" );

	register_event( "HLTV", "event_NewRound", "a", "1=0", "2=0" );
	register_event( "DeathMsg", "event_DeathMsg", "a" );

	// Block change name. Is restricted.
	register_forward( FM_ClientUserInfoChanged, "fw_ChangeName" );

	RegisterHam( Ham_Spawn, "player", "fw_PlayerSpawn", 1 );
	RegisterHam( Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1 );

	register_clcmd( "say /xp", "ClShowXp" );
	register_clcmd( "say_team /xp", "ClShowXp" );

	register_clcmd( "say /level", "CmdManagePlayers" );
	register_clcmd( "say_team /level", "CmdManagePlayers" );

	SyncHudMessage = CreateHudSyncObj(  );
}

public plugin_precache(  )
	precache_sound( SoundLevelUp );

public plugin_cfg(  ) {

	c_levelup_protect = get_pcvar_num( cvar_levelup_protect );
	c_levelup_effects = get_pcvar_num( cvar_levelup_effects );
}

public plugin_natives(  ) {

	// Player specific natives
	register_native( "xp_mod", "native_xp_mod", 1 );
	register_native( "get_user_xp", "native_get_user_xp", 1 );
	register_native( "get_user_level", "native_get_user_level", 1 );
	register_native( "get_max_level", "native_get_max_level", 1 );
	register_native( "get_user_next_level_xp", "native_get_user_next_level_xp", 1 );
}

public native_xp_mod( id, set_xp, xp, set_level, level, update, save ) {

	if( !is_user_valid( id ) ) {

		log_error( AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id );
		return false;
	}

	return make_user_happy( id, set_xp, xp, set_level, level, update, save );
}

public native_get_user_xp( id ) {

	if( !is_user_valid( id ) ) {

		log_error( AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id );
		return false;
	}

	return g_UserXP[ id ];
}

public native_get_user_level( id ) {

	if( !is_user_valid( id ) ) {

		log_error( AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id );
		return false;
	}

	return g_UserLevel[ id ];
}

public native_get_max_level(  )
	return MAX_LEVEL;

public native_get_user_next_level_xp( id ) {

	if( !is_user_valid( id ) ) {

		log_error( AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id );
		return false;
	}

	if( is_user_connected( id ) && g_UserLevel[ id ] <= native_get_max_level(  ) )
		return get_xp_on_level( id );

	return true;
}

public client_putinserver( id ) {

	LoadUserExperience( id );
	set_task( 1.0, "task_ShowHUD", id + 1221, _, _, "b" );
}

public client_disconnect( id ) {

	SaveUserExperience( id );
	remove_task( id + 1221 );
}

public fw_ChangeName( id ) {

	if( is_user_connected( id ) ) {

		new g_NewName[ 32 ];
		get_user_info( id, "name", g_NewName, charsmax( g_NewName ) );

		if( !equal( get_name( id ), g_NewName ) ) {

			ColorChat( id, "!3%s!1 Este!4 INTERZISA!1 schimbarea numelui pe server.", Tag );
			set_user_info( id, "name", get_name( id ) );
		}
	}
}

public fw_ResetMaxSpeed_Post( id ) {

	if( !is_user_alive( id ) )
		return HAM_HANDLED;

	new Float:fMaxSpeed = g_PlayerData[ g_UserLevel[ id ] ][ Speed ];
	set_user_maxspeed( id, fMaxSpeed );

	new command[ 128 ];
	formatex( command, charsmax( command ), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed );
	client_cmd( id, command );

	return HAM_IGNORED;
}

public fw_PlayerSpawn( id ) {

	if( !is_user_alive( id ) )
		return PLUGIN_HANDLED;

	if( g_UserLevel[ id ] == MAX_LEVEL)
		ColorChat( id, "!4***!1 Level:!3 %d!4 ***!1 XP:!3 %d", MAX_LEVEL, g_UserXP[ id ] );
	else
		ColorChat( id, "!4***!1 Level:!3 %d!1/!3%d!4 ***!1 XP:!3 %d!1/!3%d", g_UserLevel[ id ], MAX_LEVEL, g_UserXP[ id ], get_xp_on_level( id ) );

	if( g_UserLevel[ id ] == 0 ) {

		make_user_happy( id, 0, 0, 0, 0, 1, 0 );
		return PLUGIN_CONTINUE;
	}

	set_task( 1.0, "set_user_items", id );

	return PLUGIN_CONTINUE;
}

public event_NewRound(  ) {

	c_levelup_protect = get_pcvar_num( cvar_levelup_protect );
	c_levelup_effects = get_pcvar_num( cvar_levelup_effects );
}

public event_DeathMsg(  ) {

	new iAttacker = read_data( 1 );
	new iVictim = read_data( 2 );
	new iHeadShot = read_data( 3 );
	new HitSelf = ( iAttacker == iVictim ) ? 1 : 0;

	if( HitSelf )
		return PLUGIN_HANDLED;

	new _xp_kill, _xp_hs;
	_xp_hs = get_pcvar_num( cvar_hs_xp );
	_xp_kill = get_pcvar_num( cvar_kill_xp );

	if( is_user_connected( iAttacker ) && is_user_connected( iVictim ) && !HitSelf ) {

		if( iHeadShot ) {

			if( _xp_hs != 0 ) {

				make_user_happy( iAttacker, 1, _xp_hs, 0, 0, 1, 1 );
				ColorChat( iAttacker, "!4%s!1 You have been received!3 %i xp!1 for getting a headshot.", Tag, _xp_hs );
			}

			return PLUGIN_HANDLED;
		} else {

			if( _xp_kill != 0 ) {

				make_user_happy( iAttacker, 1, _xp_kill, 0, 0, 1, 1 );
				ColorChat( iAttacker, "!4%s!1 You have been received!3 %i xp!1 for killing the enemy.", Tag, _xp_kill );
			}

			return PLUGIN_HANDLED;
		}

		return PLUGIN_CONTINUE;
	}

	return PLUGIN_CONTINUE;
}

public ClShowXp( id ) {

	if( is_user_connected( id ) ) {

		if( g_UserLevel[ id ] == MAX_LEVEL)
			ColorChat( id, "!4***!1 Level:!3 %d!4 ***!1 XP:!3 %d", MAX_LEVEL, g_UserXP[ id ] );
		else
			ColorChat( id, "!4***!1 Level:!3 %d!1/!3%d!4 ***!1 XP:!3 %d!1/!3%d", g_UserLevel[ id ], MAX_LEVEL, g_UserXP[ id ], get_xp_on_level( id ) );
	}

	return PLUGIN_HANDLED;
}

public CmdManagePlayers( id ) {

	if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) {

		ColorChat( id, "!4%s!1 Doar!3 ADMINII!1 au acces!", Tag );
		return PLUGIN_HANDLED;
	}

	new menu = menu_create( "Alege un jucator:", "MenuHandler" );

	new iPlayers[ 32 ], iNum, i, player;
	new szUserID[ 32 ], szName[ 64 ];
	get_players( iPlayers, iNum );

	for( i = 0; i < iNum; i++ ) {

		player = iPlayers[ i ];

		formatex( szName, charsmax( szName ), "%s:\y Level:\r %d", get_name( player ), g_UserLevel[ player ] );
		formatex( szUserID, charsmax( szUserID ), "%d", get_user_userid( player ) );
		menu_additem( menu, szName, szUserID );
	}

	menu_display( id, menu );
	return PLUGIN_HANDLED;
}

public MenuHandler( id, menu, item ) {

	if( item == MENU_EXIT ) {

		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
   
	new item_access, callback, info[ 64 ], name[ 32 ];
	menu_item_getinfo( menu, item, item_access, info, charsmax( info ), name, charsmax( name ), callback );
	
	new userid = str_to_num( info );
	new player = find_player( "k", userid );

	ChoosePlayer( id, player );
	return PLUGIN_HANDLED;
}

public ChoosePlayer( id, Choosen ) {

	new szTitle[ 101 ], mm[ 200 ], szChoosen[ 200 ];
	formatex( szTitle, charsmax( szTitle ), "Schimba-i lui \r%s\y level-ul in:", get_name( Choosen ) );
	new menu = menu_create( szTitle, "SetLevelHandler" );
	
	num_to_str( Choosen, szChoosen, charsmax( szChoosen ) );
	
	for( new i = 1; i < sizeof( g_PlayerData ); i++ ) {

		formatex( mm, charsmax( mm ), "%d", g_PlayerData[ i ][ Xp ] );
		menu_additem( menu, mm, szChoosen );
	}
	
	menu_display( id, menu );
	return PLUGIN_HANDLED;
}

public SetLevelHandler( id, menu, item ) {

	if( item == MENU_EXIT ) {

		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	
	new item_access, callback, info[ 64 ], name[ 32 ];
	menu_item_getinfo( menu, item, item_access, info, charsmax( info ), name, charsmax( name ), callback );
	
	new player = str_to_num( info );

	g_UserXP[ player ] = g_PlayerData[ item ][ Xp ];
	g_UserLevel[ player ] = item;
	CheckUserLevel( player );

	//make_user_happy( player, 1, g_PlayerData[ item ][ Xp ], 1, item, 1, 1 );
	ColorChat( player, "!4%s!1 Adminul!3 %s!1 ti-a schimbat level-ul in!4 %d!1.", Tag, get_name( id ), g_UserLevel[ player ] );
	
	menu_destroy( menu );
	return PLUGIN_HANDLED;
}

public CheckUserLevel( id ) {

	if( g_UserLevel[ id ] <= MAX_LEVEL ) {

		if( g_UserXP[ id ] >= get_xp_on_level( id ) ) {

			make_user_happy( id, 0, 0, 1, 1, 0, 1 );
			emit_sound( id, CHAN_AUTO, SoundLevelUp, 1.0, ATTN_NORM, 0, PITCH_NORM );

			// Un mic efect? Nu strica...
			if( c_levelup_effects ) {

				// Luam culorile setate pentru fiecare level in parte
				new g_Color[ 3 ];
				g_Color[ 0 ] = get_color_level( id, 0 ); // r
				g_Color[ 1 ] = get_color_level( id, 1 ); // g
				g_Color[ 2 ] = get_color_level( id, 2 ); // b

				// Producem efectul jucatorului
				MakeFadeScreen( id, 1.5, g_Color[ 2 ], g_Color[ 1 ], g_Color[ 0 ], random_num( 100, 200 ) );
			}

			if( c_levelup_protect ) {

				fm_set_user_godmode( id, 1 );
				set_task( 1.0, "task_RemoveProtect", id );
			}

			ColorChat( id, "!3%s!1 Congratulations, you've !4leveled up!1. Current level:!3 %d!1 !", Tag, g_UserLevel[ id ] );
			if( g_UserLevel[ id ] <= MAX_LEVEL -1 )
				ColorChat( id, "!3%s!1 Next XP:!4 %d!1 !", Tag, get_xp_on_level( id ) );
		}
	}

	return PLUGIN_HANDLED;
}

stock MakeFadeScreen( id, const Float:Seconds, const Red, const Green, const Blue, const Alpha ) {

	static g_MsgScreenFade = 0;
	if( !g_MsgScreenFade )
		g_MsgScreenFade = get_user_msgid( "ScreenFade" );

	message_begin( MSG_ONE, g_MsgScreenFade, _, id );
	write_short( floatround( 4096.0 * Seconds, floatround_round ) );
	write_short( floatround( 4096.0 * Seconds, floatround_round ) );
	write_short( 0x0000 );
	write_byte( Red );
	write_byte( Green );
	write_byte( Blue );
	write_byte( Alpha );
	message_end(  );
}

public get_color_level( id, number ) {

	new g_Color[ 3 ];
	switch( g_UserLevel[ id ] ) {

		case 1:	g_Color = { 248, 172, 58 };
		case 2:	g_Color = { 0, 255, 128 };
		case 3:	g_Color = { 170, 255, 127 };
		case 4:	g_Color = { 155, 240, 70 };
		case 5:	g_Color = { 255, 255, 0 };
		case 6:	g_Color = { 255, 127, 85 };
		case 7:	g_Color = { 0, 212, 255 };
		case 8:	g_Color = { 70, 70, 240 };
		case 9:	g_Color = { 170, 0, 255 };
		case 10:	g_Color = { 255, 255, 0 };
		default:	g_Color = { 0, 255, 0 };
	}
	
	return g_Color[ number ];
}

public task_RemoveProtect( id )
	fm_set_user_godmode( id, 0 );

public task_ShowHUD( taskid ) {

	new ID_SHOWHUD = taskid - 1221;
	new player = ID_SHOWHUD;

	if( !is_user_alive( player ) ) {

		player = pev( player, pev_iuser2 );

		if( !is_user_alive( player ) )
			return;
	}

	if( player == ID_SHOWHUD ) {

		new g_Color[ 3 ];
		g_Color[ 0 ] = get_color_level( player, 0 );
		g_Color[ 1 ] = get_color_level( player, 1 );
		g_Color[ 2 ] = get_color_level( player, 2 );

		if( g_UserLevel[ player ] == MAX_LEVEL) {

			set_hudmessage( g_Color[ 0 ], g_Color[ 1 ], g_Color[ 2 ], 0.02, 0.92, 0, 6.0, 1.1, 0.0, 0.0, -1 );
			ShowSyncHudMsg( player, SyncHudMessage, "LEVEL: Max Level  -  XP: %d", g_UserXP[ player ] );
		} else {

			set_hudmessage( g_Color[ 0 ], g_Color[ 1 ], g_Color[ 2 ], 0.02, 0.92, 0, 6.0, 1.1, 0.0, 0.0, -1 );
			ShowSyncHudMsg( player, SyncHudMessage, "LEVEL: %d/%d  -  XP: %d/%d  -  SPEED: %1.f", g_UserLevel[ player ], MAX_LEVEL, g_UserXP[ player ], get_xp_on_level( player ), get_user_maxspeed( player ) );
		}
	}
}

public SaveUserExperience( id ) {

	new szVaultKey[ 64 ], szVaultData[ 256 ];
	format( szVaultKey, charsmax( szVaultKey ), "%s", get_name( id ) );
	format( szVaultData, charsmax( szVaultData ), "%d %d", g_UserXP[ id ], g_UserLevel[ id ] );

	fvault_set_data( g_Vault, szVaultKey, szVaultData );
}

public LoadUserExperience( id ) {

	new szVaultKey[ 64 ], szVaultData[ 256 ], xp[ 33 ], levels[ 33 ];
	format( szVaultKey, charsmax( szVaultKey ), "%s", get_name( id ) );
	format( szVaultData, charsmax( szVaultData ), "%d %d", g_UserXP[ id ], g_UserLevel[ id ] );

	if( fvault_get_data( g_Vault, szVaultKey, szVaultData, charsmax( szVaultData ) ) ) {

		parse( szVaultData, xp, charsmax( xp ), levels, charsmax( levels ) );
		g_UserXP[ id ] = str_to_num( xp );
		g_UserLevel[ id ] = str_to_num( levels );
	}
}

// STOCK'S
public set_user_items( id ) {

	if( !is_user_alive( id ) )
		return;

	set_user_health( id, g_PlayerData[ g_UserLevel[ id ] ][ Health ] );
	set_user_armor( id, g_PlayerData[ g_UserLevel[ id ] ][ Armor ] );
	set_user_gravity( id, g_PlayerData[ g_UserLevel[ id ] ][ Gravity ] * 0.00125 );

	if( g_PlayerData[ g_UserLevel[ id ] ][ Flash ] != 0 ) {

		give_item( id, "weapon_flashbang" );
		cs_set_user_bpammo( id, CSW_FLASHBANG, cs_get_user_bpammo( id, CSW_FLASHBANG ) + g_PlayerData[ g_UserLevel[ id ] ][ Flash ] );
	}

	if( g_PlayerData[ g_UserLevel[ id ] ][ He ] != 0 ) {

		give_item( id, "weapon_hegrenade" );
		cs_set_user_bpammo( id, CSW_HEGRENADE, cs_get_user_bpammo( id, CSW_HEGRENADE ) + g_PlayerData[ g_UserLevel[ id ] ][ He ] );
	}

	if( g_PlayerData[ g_UserLevel[ id ] ][ Smoke ] != 0 ) {

		give_item( id, "weapon_smokegrenade" );
		cs_set_user_bpammo( id, CSW_SMOKEGRENADE, cs_get_user_bpammo( id, CSW_SMOKEGRENADE ) + g_PlayerData[ g_UserLevel[ id ] ][ Smoke ] );
	}

	ColorChat( id, "!3%s!1 Items: [!4%i He Grenades!1] [!4%i FlashBangs!1] [!4%i Smoke!1] [!4%i Health!1] [!4%i Armor!1]", Tag, 
	g_PlayerData[ g_UserLevel[ id ] ][ He ], 
	g_PlayerData[ g_UserLevel[ id ] ][ Flash ], 
	g_PlayerData[ g_UserLevel[ id ] ][ Smoke ], 
	g_PlayerData[ g_UserLevel[ id ] ][ Health ], 
	g_PlayerData[ g_UserLevel[ id ] ][ Armor ] );
}

// Stock by YONTU, pentru a preveni toate bugurile si pentru a optimiza codul doar printr-o linie, cand e vorba de setat si sters level.
// Stock-ul accepta valori pozitive si negative si eventuale activari si dezactivari
stock make_user_happy(id, set_xp, xp, set_level, level, update, save)
{
	if(!is_user_connected(id))
		return PLUGIN_HANDLED;

	if(set_xp)
	{
		g_UserXP[id] += xp;
		if(g_UserXP[id] <= 0) g_UserXP[id] = 0;
	}

	if(set_level)
	{
		if(level == 0) g_UserLevel[id] = 0;
		else if(level > MAX_LEVEL) g_UserLevel[id] = MAX_LEVEL;
		else
		{
			g_UserLevel[id] += level;
			if(g_UserLevel[id] <= 0) g_UserLevel[id] = 0;
		}
	}

	if(update) CheckUserLevel(id);
	if(save) SaveUserExperience(id);

	return PLUGIN_CONTINUE;
}

// 'Luam' xp-ul pentru fiecare level
stock get_xp_on_level( id ) {

	// 'Luam' xp-ul pentru fiecare level
	return g_PlayerData[ g_UserLevel[ id ] ][ Xp ];
}

stock ColorChat( id, String[  ], any:... ) {

	static szMesage[ 192 ];
	vformat( szMesage, charsmax( szMesage ), String, 3 );
	
	replace_all( szMesage, charsmax( szMesage ), "!1", "^1" );
	replace_all( szMesage, charsmax( szMesage ), "!3", "^3" );
	replace_all( szMesage, charsmax( szMesage ), "!4", "^4" );
	
	static g_msg_SayText = 0;
	if( !g_msg_SayText )
		g_msg_SayText = get_user_msgid( "SayText" );
	
	new Players[ 32 ], iNum = 1, i;

 	if( id ) Players[ 0 ] = id;
	else get_players( Players, iNum, "ch" );
	
	for( --iNum; iNum >= 0; iNum-- ) {

		i = Players[ iNum ];
		
		message_begin( MSG_ONE_UNRELIABLE, g_msg_SayText, _, i );
		write_byte( i );
		write_string( szMesage );
		message_end(  );
	}
}

stock get_name( id ) {

	new szName[ 32 ];
	get_user_name( id, szName, charsmax( szName ) );

	return szName;
}

stock fm_set_user_godmode( id, godmode = 0 ) {

	set_pev( id, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM );
	return PLUGIN_HANDLED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/

Nume: [Surf] Level Mod
Versiune: 1.7

Instalare:
1. Fisierul surf_level_mod_1.7.sma il puneti in addons/amxmodx/scripting
2. Fisierul surf_level_mod_1.7.amxx il puneti in addons/amxmodx/plugins
3. Fisierul fvault.inc il puneti in addons/amxmodx/scripting/include
4. Fisierul levelup.wav il puneti in sound
5. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

surf_level_mod_1.7.amxx

 

6. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):

surf_kill_xp "15" - xp-ul pe kill; daca vrei sa nu mai primesti xp pe kill, setezi 0
surf_hs_xp - xp-ul pe headshot; daca vrei sa nu mai primesti xp pe hs, setezi 0
surf_levelup_protect "1" - 1 sau 0: te protejeaza cand faci level nou
surf_levelup_effects "1" - 1 sau 0: iti coloreaza ecranul la level nou (1 - on | 0 - off)

Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator):

-

Comenzi publice (se tasteaza in joc prin apasarea tastei Y):

/xp - iti arata in chat un mesaj cu xp-ul si level-ul tau
/level - poti seta dintr-un meniu jucatorilor un level

Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini):
- CStrike
- Fun
- Fakemeta
- Hamsandwich


 

Donator: SteamDB

Donator: SteamLadder

Steam Level Up: https://slvlup.com/r/krrna6

Steam™ Hour Boosting!: https://freehourboost.com/?r=cosminzm

3177671.png

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.


×
×
  • Create New...

Important Information