[Surf] XP Mod / Level System

Pluginuri facute de utilizatorii forumului eXtream.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

COMAN001
Membru, skill 0
Membru, skill 0
Posts: 27
Joined: 14 Feb 2017, 13:33
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

20 Feb 2017, 16:39

Nu merge compilat de la fvault..
RoyalServer
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

20 Feb 2017, 17:31

COMAN001 wrote:Nu merge compilat de la fvault..
Il ai in arhiva
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
EliVvo.
Membru, skill 0
Membru, skill 0
Posts: 2
Joined: 28 Dec 2018, 18:24
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

28 Dec 2018, 18:43

YONTU wrote: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) | Afiseaza codul
// 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
Link oficial: Pe extream!

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:

Code: Select all

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

Imagini: Rog pe cineva sa faca imagini si sa le uploadezi aici.
ALTE INFORMATII | Afiseaza codul
- daca vrei sa schimbi accesul de a seta levele, modifica linia: (o gasesti in sursa)
[quote]#define ADMIN_ACCESS	ADMIN_LEVEL_G
- daca vrei sa modifici tag-ul din chat, cauti linia in sursa: (modifici doar ce se afla intre "")
new const Tag[ ] = "[SURF: Level System]";
- beneficiile pe care le primesti in functie de level le gasesti aici:
new const g_PlayerData[ MAX_LEVEL ][ 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
}
-pe prima coloana se afla xp-ul necesar pe care trebuie sa-l faci sa avansezi la un nou level. Acesta este:
100, 250, 300, 400, 500, 750, 1000, 1400, 1800, 2500, 4000, 5500, 7500, 9000, 12000 (se poate modifica dupa bunul plac)
-pe a doua coloana se afla viteza pe care o poti primi in functie de level-ul pe care il ai, analog gravitate, viata, armura, flash, he, smoke
- sa luam un exemplu: La level 10, voi avea nevoie de 4000 xp acumulat sa trec la urmatorul nivel, voi beneficia de 620.0 gravitate, 300.5 viteza, 150 viata, 50 armura, 0 grenade flash, 0 grenade he, 0 grenade smoke[/sursa]
Bucurati-va de plugin. A fost facut la cerere, dar se pare ca, cumparatorul a fost neserios.
Toate beneficiile se pot seta dupa bunul plac![/quote]

poți să adaugi
ctwin_xp "20"
ttwin_xp" "20"
damage_xp "2"
User avatar
al3xz3t21
Membru, skill 0
Membru, skill 0
Posts: 20
Joined: 08 Jan 2018, 23:41
Detinator Steam: Da
CS Status: Elite.cspower.ro
Detinator server CS: elite.cspower.ro
SteamID: KentHD93
Fond eXtream: 0
Contact:

09 Feb 2020, 23:10

edit, sorry, topic gresit
Image
Post Reply

Return to “Pluginuri eXtream”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 7 guests