[cerere plugin] SupplyBox CSGO REMAKE

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

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

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
User avatar
Kpone
Membru, skill +1
Membru, skill +1
Posts: 100
Joined: 16 May 2016, 20:19
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 1 time
Contact:

17 Nov 2019, 08:31

L E V I N wrote:
16 Nov 2019, 20:59

Code: Select all

	/* 
	Plugin: Xmas Gifts 2.3.2 
	Autor: KronoS # GG 

	Credite: 
	@FakeNick - pentru pluginul Pick up present de unde a pornit tot 
	@joropito - pentru Super Spawns 
	@Askhanar - pentru fixarea Super Spawns 

	Cvar-uri: 
	- presents_respawn_time 60.0 (Dupa cat timp dupa ridicarea unui cadou apare altul pe harta) 
	- presents_on_map 11 (Cate cadouri sa apara pe harta) 
	ATENTIE: Se calculeaza numarul cvar-ului - 1!!! 
	Daca puneti 11 or sa apara doar 10 cadouri! 

	Changelog: 

	* v2.3.2 - 28.12.2012 
	- cadourile primeau respawn chiar daca timpul era setat pe 0.0 

	* v2.3.1 - 28.12.2012 
	- cadourile nu primeau respawn 

	* v2.3 - 28.12.2012 
	- cod infrumusetat 
	- cadourile nu mai apareau dupa prima runda (fixat de Askhanar) 

	* v2.2 - 25.11.2010 
	- bug reparat: cadourile dispareau de pe harta 
	- FM_Think indeparta 

	* v2.1 - 17.11.2010 
	- super spawns 
	- cvar: presents_on_map 
	- bug reparat: cadourile apareau in aer 
	- variabila globala 
	- FUN -> Fakemeta 
	- Hamsandwich 
	- optimizare mesaje HUD 

	* v1.0 - 14.11.2010 
	- plugin publicat 

	*/ 

	#include < amxmodx >
	#include < cstrike >
	#include < hamsandwich >
	#include < engine >
	#include < fakemeta >


	native csgor_get_user_keys(id)
	native csgor_set_user_keys(id,amount)
	native csgor_get_user_dusts(id)
	native csgor_set_user_dusts(id,amount)
	native csgor_get_user_cases(id)
	native csgor_set_user_cases(id,amount)
	native csgor_get_user_skins(id,amount)
	native csgor_set_user_skins(id,skinid,amount)
	native csgor_is_user_logged(id)


	/* Extras din Super Spawns */ 
	#define SS_MIN_DISTANCE 500.0 
	#define SS_MAX_LOOPS 100000 

	/* Model cadou */
	#define MODEL_CUTIE "models/cutie.mdl"

	new Array:g_vecSsOrigins; 
	new Array:g_vecSsSpawns; 
	new Array:g_vecSsUsed; 
	new Float:g_flSsMinDist; 
	new g_iSsTime; 

	new const g_szStarts[ ][ ] = { "info_player_start", "info_player_deathmatch" }; 
	new const Float:g_flOffsets[ ] = { 3500.0, 3500.0, 1500.0 }; 

	new pcvar_respawn_time, pcvar_presents_on_map; 


	public plugin_init( ) 
	{ 
		register_plugin( "XMAS GIFTS", "2.3.2", "KronoS" ); 

	// Eventuri 
		register_event( "HLTV", "spawn_gifts", "a", "1=0", "2=0" ); 
		RegisterHam( Ham_Killed, "player", "client_death", 1 ); 
		register_forward( FM_Touch, "forward_touch" ); 

	// Cvar-uri 
		pcvar_respawn_time = register_cvar( "presents_respawn_time", "90.0" ); 
		pcvar_presents_on_map = register_cvar( "presents_on_map", "4" );
	//NOI
		register_cvar("box_chei","1");
		register_cvar("box_cutii","1");
		register_cvar("box_pulbere","1");
		register_cvar("box_bani","333");
		register_cvar("box_skin_max","80");

		SsInit( 800.0 ); 
		SsScan( ); 
		XGIFTS_Spawn( ); 
	} 

	public plugin_precache( )	engfunc( EngFunc_PrecacheModel, MODEL_CUTIE );

	public spawn_gifts( )	XGIFTS_Spawn( ); 

	public XGIFTS_Spawn( ) 
	{ 
		new Float:fOrigin[ 3 ];
		for ( new i = 0; i < get_pcvar_num( pcvar_presents_on_map ); i++ )	if ( SsGetOrigin( fOrigin ) ) XGIFTS_Create( fOrigin );
	} 

	public XGIFTS_Create( const Float:fOrigin[ 3 ] ) 
	{ 
		new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) ); 

		if ( pev_valid( ent ) ) 
		{ 
			engfunc( EngFunc_SetModel, ent, MODEL_CUTIE ); 
			engfunc( EngFunc_SetOrigin, ent, fOrigin ); 
			static Float:fMaxs[ 3 ] = { 2.0, 2.0, 4.0 }; 
			static Float:fMins[ 3 ] = { -2.0, -2.0, -4.0 }; 
			set_pev( ent, pev_solid, SOLID_BBOX ); 
			engfunc( EngFunc_SetSize, ent, fMins, fMaxs ); 
			engfunc( EngFunc_DropToFloor, ent ); 

			set_pev( ent, pev_classname, "csgo_supplybox" );
		} 
	} 

	public XGIFTS_Respawn( iOrigin[ ] ) 
	{ 
		new Float:fOrigin[ 3 ], auxOrigin[ 3 ]; 

		auxOrigin[ 0 ] = iOrigin[ 0 ]; 
		auxOrigin[ 1 ] = iOrigin[ 1 ]; 
		auxOrigin[ 2 ] = iOrigin[ 2 ]; 

		IVecFVec( auxOrigin, fOrigin ); 
		XGIFTS_Create( fOrigin );

		set_hudmessage(255, 165, 0, 0.02, 0.73, 0, 6.0, 5.0,0.1,0.2,-1);
		show_hudmessage(0,"Tocmai a fost aruncata o cutie pe mapa!^nCautati-o pentru a afla ce ascunde.");
	}

	public forward_touch( ent, id ) 
	{ 
		if ( !pev_valid( ent ) )	return FMRES_IGNORED; 

		static class[ 20 ]; 
		pev( ent, pev_classname, class, sizeof class - 1 ); 

		if ( !equal( class, "csgo_supplybox" )||!is_user_alive( id ) ) return FMRES_IGNORED; 

		set_pev( ent, pev_solid, SOLID_NOT ); 
		set_pev( ent, pev_effects, EF_NODRAW ); 

		if ( get_pcvar_float( pcvar_respawn_time ) > 0.0 ) 
		{ 
			new Float:flOrigin[ 3 ], iOrigin[ 3 ]; 
			entity_get_vector( ent, EV_VEC_origin, flOrigin ); 
			FVecIVec( flOrigin, iOrigin ); 
			set_task( get_pcvar_float( pcvar_respawn_time ), "XGIFTS_Respawn", _, iOrigin, 3 ); 
		} 

		switch ( random_num( 0, 4 ) ) 
		{
			case 0: 
			{
				if(csgor_is_user_logged(id))
				{
					csgor_set_user_keys(id,csgor_get_user_keys(id)+get_cvar_num("box_chei"));
					print_cc(id,".gSuper!Ai primit +%d chei%s",get_cvar_num("box_chei"),get_cvar_num("box_chei")==1?"e":"");
				}
				else	return print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
			case 1: 
			{
				if(csgor_is_user_logged(id))
				{
					csgor_set_user_cases(id,csgor_get_user_cases(id)+get_cvar_num("box_cutii"));
					print_cc(id,".gSuper!Ai primit +%d cuti%s",get_cvar_num("box_cutii"),get_cvar_num("box_cutii")==1?"e":"i");
				}
				else	return print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
			case 2: 
			{
				if(csgor_is_user_logged(id))
				{
					csgor_set_user_dusts(id,csgor_get_user_dusts(id)+get_cvar_num("box_pulbere"));
					print_cc(id,".gSuper!Ai primit +%d pulber%s",get_cvar_num("box_pulbere"),get_cvar_num("box_pulbere")==1?"e":"i");
				}
				else	return print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
			case 3: 
			{
				if(csgor_is_user_logged(id))
				{
					csgor_set_user_skins(id,random_num(0,get_cvar_num("box_skin_max")),1);
					print_cc(id,".gSuper!Ai primit +1 skin");
				}
				else	return print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
			case 4: 
			{
				if(csgor_is_user_logged(id))
				{
					cs_set_user_money(id,cs_get_user_money(id)+get_cvar_num("box_bani"),1);
					print_cc(id,".gSuper!Ai primit +%d$",get_cvar_num("box_bani"));
				}
				else	return print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
		}

		return FMRES_IGNORED; 
	}

	// Super spawns 
	public SsInit( Float:mindist ) 
	{ 
		g_flSsMinDist = mindist; 
		g_vecSsOrigins = ArrayCreate( 3, 1 ); 
		g_vecSsSpawns = ArrayCreate( 3, 1 ); 
		g_vecSsUsed = ArrayCreate( 3, 1 ); 
	} 

	stock SsClean( ) 
	{ 
		g_flSsMinDist = 0.0; 
		ArrayClear( g_vecSsOrigins ); 
		ArrayClear( g_vecSsSpawns ); 
		ArrayClear( g_vecSsUsed ); 
	} 

	stock SsGetOrigin( Float:origin[ 3 ] ) 
	{ 
		new Float:data[3], size; 
		new ok = 1; 

		while ( ( size = ArraySize( g_vecSsOrigins ) ) ) 
		{ 
			new idx = random_num( 0, size - 1 ); 

			ArrayGetArray( g_vecSsOrigins, idx, origin ); 

			new used = ArraySize( g_vecSsUsed ); 
			for ( new i = 0; i < used ; i++ ) 
			{ 
				ok = 0; 
				ArrayGetArray( g_vecSsUsed, i, data ); 
				if ( get_distance_f( data, origin ) >= g_flSsMinDist ) 
				{ 
					ok = 1; 
					break; 
				} 
			} 

			ArrayDeleteItem( g_vecSsOrigins, idx ); 

			if ( ok ) 
			{ 
				ArrayPushArray( g_vecSsUsed, origin ); 
				return true; 
			} 
		} 

		return false; 
	} 

	public SsScan( ) 
	{ 
		new start, Float:origin[ 3 ], starttime; 

		starttime = get_systime( ); 

		for ( start = 0 ; start < sizeof( g_szStarts ) ; start++ ) 
		{ 
			server_print( "Searching for %s", g_szStarts[ start ] ); 

			new ent; 

			if ( ( ent = engfunc( EngFunc_FindEntityByString, ent, "classname", g_szStarts[ start ] ) ) ) 
			{ 
				new counter; 

				pev( ent, pev_origin, origin ); 
				ArrayPushArray( g_vecSsSpawns, origin ); 

				while ( counter < SS_MAX_LOOPS ) counter = GetLocation( origin, counter ); 
			} 
		} 

		g_iSsTime = get_systime( ); 
		g_iSsTime -= starttime; 
	} 

	GetLocation( Float:start[ 3 ], &counter ) 
	{ 
		new Float:end[ 3 ]; 

		for ( new i = 0 ; i < 3 ; i++ ) end[ i ] += random_float( 0.0 - g_flOffsets[ i ], g_flOffsets[ i ] ); 

		if ( IsValid( start, end ) ) 
		{ 
			start[ 0 ] = end[ 0 ]; 
			start[ 1 ] = end[ 1 ]; 
			start[ 2 ] = end[ 2 ]; 

			ArrayPushArray( g_vecSsOrigins, end ); 
		} 

		counter++;

		return counter; 
	} 

	IsValid( Float:start[ 3 ], Float:end[ 3 ] ) 
	{ 
		SetFloor( end ); 
		end[ 2 ] += 36.0; 
		new point = engfunc( EngFunc_PointContents, end ); 
		if ( point == CONTENTS_EMPTY ) if ( CheckPoints( end ) && CheckDistance( end ) && CheckVisibility( start, end ) ) if ( !trace_hull( end, HULL_LARGE, -1 ) ) return true;

		return false;
	}

	CheckVisibility( Float:start[ 3 ], Float:end[ 3 ] ) 
	{ 
		new tr; 

		engfunc( EngFunc_TraceLine, start, end, IGNORE_GLASS, -1, tr ); 

		return ( get_tr2( tr, TR_pHit ) < 0 ); 
	} 

	SetFloor( Float:start[ 3 ] ) 
	{ 
		new tr, Float:end[ 3 ]; 

		end[ 0 ] = start[ 0 ]; 
		end[ 1 ] = start[ 1 ]; 
		end[ 2 ] = -99999.9; 

		engfunc( EngFunc_TraceLine, start, end, DONT_IGNORE_MONSTERS, -1, tr ); 
		get_tr2( tr, TR_vecEndPos, start ); 
	} 

	CheckPoints( Float:origin[ 3 ] ) 
	{ 
		new Float:data[ 3 ], tr, point; 

		data[ 0 ] = origin[ 0 ]; 
		data[ 1 ] = origin[ 1 ]; 
		data[ 2 ] = 99999.9; 

		engfunc( EngFunc_TraceLine, origin, data, DONT_IGNORE_MONSTERS, -1, tr ); 
		get_tr2( tr, TR_vecEndPos, data ); 
		point = engfunc( EngFunc_PointContents, data ); 

		if ( point == CONTENTS_SKY && get_distance_f( origin, data ) < 250.0 ) return false; 

		data[ 2 ] = -99999.9; 

		engfunc( EngFunc_TraceLine, origin, data, DONT_IGNORE_MONSTERS, -1, tr ); 
		get_tr2( tr, TR_vecEndPos, data ); 
		point = engfunc( EngFunc_PointContents, data ); 

		if ( point < CONTENTS_SOLID ) return false; 

		return true; 
	} 

	CheckDistance( Float:origin[ 3 ] ) 
	{ 
		new Float:dist, Float:data[ 3 ]; 

		new count = ArraySize( g_vecSsSpawns ); 

		for ( new i = 0; i < count ; i++ ) 
		{ 
			ArrayGetArray( g_vecSsSpawns, i, data ); 
			dist = get_distance_f( origin, data ); 
			if ( dist < SS_MIN_DISTANCE ) return false; 
		} 

		count = ArraySize( g_vecSsOrigins ); 

		for ( new i = 0 ; i < count ; i++ ) 
		{ 
			ArrayGetArray( g_vecSsOrigins, i, data ); 
			dist = get_distance_f( origin, data ); 
			if ( dist < SS_MIN_DISTANCE ) return false; 
		} 

		return true;
	}

	stock fm_find_ent_by_owner(index, const classname[], owner, jghgtype = 0) {
		new strtype[11] = "classname", ent = index;
		switch (jghgtype) {
			case 1: strtype = "target";
			case 2: strtype = "targetname";
		}

		while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner) {}

		return ent;
	}

print_cc(id, fmt[], any:...)
{
	static saytext = 0, fake_user;
	if (!saytext)
	{
		saytext = get_user_msgid("SayText");
		fake_user = get_maxplayers() + 1;
	}
	new msg[192];
	vformat(msg, charsmax(msg), fmt, 3)
	replace_all(msg, sizeof(msg) - 1, ".g", "^x04");
	replace_all(msg, sizeof(msg) - 1, ".n", "^x01");
	replace_all(msg, sizeof(msg) - 1, ".t", "^x03");
	message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, saytext, _, id);
	write_byte(id ? id : fake_user);
	write_string(msg);
	message_end();
}
a dar o eroare la compilare la codul din partea de jos a sursei

Code: Select all

csgo_suplybox.sma(431) : warning 209: function "print_cc" should return a value
Header size:           1760 bytes
Code size:            12020 bytes
Data size:             4384 bytes
Stack/heap size:      16384 bytes; max. usage is unknown, due to recursion
Total requirements:   34548 bytes

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

17 Nov 2019, 18:16

e warning nu eroare, dacă era eroare nu se compila și nu arăta warning.........se poate rezolva prin bool și return false

Code: Select all

	/* 
	Plugin: Xmas Gifts 2.3.2 
	Autor: KronoS # GG 

	Credite: 
	@FakeNick - pentru pluginul Pick up present de unde a pornit tot 
	@joropito - pentru Super Spawns 
	@Askhanar - pentru fixarea Super Spawns 

	Cvar-uri: 
	- presents_respawn_time 60.0 (Dupa cat timp dupa ridicarea unui cadou apare altul pe harta) 
	- presents_on_map 11 (Cate cadouri sa apara pe harta) 
	ATENTIE: Se calculeaza numarul cvar-ului - 1!!! 
	Daca puneti 11 or sa apara doar 10 cadouri! 

	Changelog: 

	* v2.3.2 - 28.12.2012 
	- cadourile primeau respawn chiar daca timpul era setat pe 0.0 

	* v2.3.1 - 28.12.2012 
	- cadourile nu primeau respawn 

	* v2.3 - 28.12.2012 
	- cod infrumusetat 
	- cadourile nu mai apareau dupa prima runda (fixat de Askhanar) 

	* v2.2 - 25.11.2010 
	- bug reparat: cadourile dispareau de pe harta 
	- FM_Think indeparta 

	* v2.1 - 17.11.2010 
	- super spawns 
	- cvar: presents_on_map 
	- bug reparat: cadourile apareau in aer 
	- variabila globala 
	- FUN -> Fakemeta 
	- Hamsandwich 
	- optimizare mesaje HUD 

	* v1.0 - 14.11.2010 
	- plugin publicat 

	*/ 

	#include < amxmodx >
	#include < cstrike >
	#include < hamsandwich >
	#include < engine >
	#include < fakemeta >


	native csgor_get_user_keys(id)
	native csgor_set_user_keys(id,amount)
	native csgor_get_user_dusts(id)
	native csgor_set_user_dusts(id,amount)
	native csgor_get_user_cases(id)
	native csgor_set_user_cases(id,amount)
	native csgor_get_user_skins(id,amount)
	native csgor_set_user_skins(id,skinid,amount)
	native csgor_is_user_logged(id)


	/* Extras din Super Spawns */ 
	#define SS_MIN_DISTANCE 500.0 
	#define SS_MAX_LOOPS 100000 

	/* Model cadou */
	#define MODEL_CUTIE "models/cutie.mdl"

	new Array:g_vecSsOrigins; 
	new Array:g_vecSsSpawns; 
	new Array:g_vecSsUsed; 
	new Float:g_flSsMinDist; 
	new g_iSsTime; 

	new const g_szStarts[ ][ ] = { "info_player_start", "info_player_deathmatch" }; 
	new const Float:g_flOffsets[ ] = { 3500.0, 3500.0, 1500.0 }; 

	new pcvar_respawn_time, pcvar_presents_on_map; 


	public plugin_init( ) 
	{ 
		register_plugin( "XMAS GIFTS", "2.3.2", "KronoS" ); 

	// Eventuri 
		register_event( "HLTV", "spawn_gifts", "a", "1=0", "2=0" ); 
		RegisterHam( Ham_Killed, "player", "client_death", 1 ); 
		register_forward( FM_Touch, "forward_touch" ); 

	// Cvar-uri 
		pcvar_respawn_time = register_cvar( "presents_respawn_time", "90.0" ); 
		pcvar_presents_on_map = register_cvar( "presents_on_map", "4" );
	//NOI
		register_cvar("box_chei","1");
		register_cvar("box_cutii","1");
		register_cvar("box_pulbere","1");
		register_cvar("box_bani","333");
		register_cvar("box_skin_max","80");

		SsInit( 800.0 ); 
		SsScan( ); 
		XGIFTS_Spawn( ); 
	} 

	public plugin_precache( )	engfunc( EngFunc_PrecacheModel, MODEL_CUTIE );

	public spawn_gifts( )	XGIFTS_Spawn( ); 

	public XGIFTS_Spawn( ) 
	{ 
		new Float:fOrigin[ 3 ];
		for ( new i = 0; i < get_pcvar_num( pcvar_presents_on_map ); i++ )	if ( SsGetOrigin( fOrigin ) ) XGIFTS_Create( fOrigin );
	} 

	public XGIFTS_Create( const Float:fOrigin[ 3 ] ) 
	{ 
		new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) ); 

		if ( pev_valid( ent ) ) 
		{ 
			engfunc( EngFunc_SetModel, ent, MODEL_CUTIE ); 
			engfunc( EngFunc_SetOrigin, ent, fOrigin ); 
			static Float:fMaxs[ 3 ] = { 2.0, 2.0, 4.0 }; 
			static Float:fMins[ 3 ] = { -2.0, -2.0, -4.0 }; 
			set_pev( ent, pev_solid, SOLID_BBOX ); 
			engfunc( EngFunc_SetSize, ent, fMins, fMaxs ); 
			engfunc( EngFunc_DropToFloor, ent ); 

			set_pev( ent, pev_classname, "csgo_supplybox" );
		} 
	} 

	public XGIFTS_Respawn( iOrigin[ ] ) 
	{ 
		new Float:fOrigin[ 3 ], auxOrigin[ 3 ]; 

		auxOrigin[ 0 ] = iOrigin[ 0 ]; 
		auxOrigin[ 1 ] = iOrigin[ 1 ]; 
		auxOrigin[ 2 ] = iOrigin[ 2 ]; 

		IVecFVec( auxOrigin, fOrigin ); 
		XGIFTS_Create( fOrigin );

		set_hudmessage(255, 165, 0, 0.02, 0.73, 0, 6.0, 5.0,0.1,0.2,-1);
		show_hudmessage(0,"Tocmai a fost aruncata o cutie pe mapa!^nCautati-o pentru a afla ce ascunde.");
	}

	public forward_touch( ent, id ) 
	{
		if ( !pev_valid( ent ) )	return FMRES_IGNORED; 

		static class[ 20 ]; 
		pev( ent, pev_classname, class, sizeof class - 1 ); 

		if ( !equal( class, "csgo_supplybox" )||!is_user_alive( id ) ) return FMRES_IGNORED; 

		set_pev( ent, pev_solid, SOLID_NOT ); 
		set_pev( ent, pev_effects, EF_NODRAW ); 

		if ( get_pcvar_float( pcvar_respawn_time ) > 0.0 ) 
		{ 
			new Float:flOrigin[ 3 ], iOrigin[ 3 ]; 
			entity_get_vector( ent, EV_VEC_origin, flOrigin ); 
			FVecIVec( flOrigin, iOrigin ); 
			set_task( get_pcvar_float( pcvar_respawn_time ), "XGIFTS_Respawn", _, iOrigin, 3 ); 
		} 

		switch ( random_num( 0, 4 ) ) 
		{
			case 0: 
			{
				if(csgor_is_user_logged(id))
				{
					csgor_set_user_keys(id,csgor_get_user_keys(id)+get_cvar_num("box_chei"));
					print_cc(id,".gSuper!Ai primit +%d chei%s",get_cvar_num("box_chei"),get_cvar_num("box_chei")==1?"e":"");
				}
				else	print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
			case 1: 
			{
				if(csgor_is_user_logged(id))
				{
					csgor_set_user_cases(id,csgor_get_user_cases(id)+get_cvar_num("box_cutii"));
					print_cc(id,".gSuper!Ai primit +%d cuti%s",get_cvar_num("box_cutii"),get_cvar_num("box_cutii")==1?"e":"i");
				}
				else	print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
			case 2: 
			{
				if(csgor_is_user_logged(id))
				{
					csgor_set_user_dusts(id,csgor_get_user_dusts(id)+get_cvar_num("box_pulbere"));
					print_cc(id,".gSuper!Ai primit +%d pulber%s",get_cvar_num("box_pulbere"),get_cvar_num("box_pulbere")==1?"e":"i");
				}
				else	print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
			case 3: 
			{
				if(csgor_is_user_logged(id))
				{
					csgor_set_user_skins(id,random_num(0,get_cvar_num("box_skin_max")),1);
					print_cc(id,".gSuper!Ai primit +1 skin");
				}
				else	print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
			case 4: 
			{
				if(csgor_is_user_logged(id))
				{
					cs_set_user_money(id,cs_get_user_money(id)+get_cvar_num("box_bani"),1);
					print_cc(id,".gSuper!Ai primit +%d$",get_cvar_num("box_bani"));
				}
				else	print_cc(id,".gInregistreaza-te prin /reg pentru a avea acces la Supply BOX");
			}
		}

		return FMRES_IGNORED; 
	}

	// Super spawns 
	public SsInit( Float:mindist ) 
	{ 
		g_flSsMinDist = mindist; 
		g_vecSsOrigins = ArrayCreate( 3, 1 ); 
		g_vecSsSpawns = ArrayCreate( 3, 1 ); 
		g_vecSsUsed = ArrayCreate( 3, 1 ); 
	} 

	stock SsClean( ) 
	{ 
		g_flSsMinDist = 0.0; 
		ArrayClear( g_vecSsOrigins ); 
		ArrayClear( g_vecSsSpawns ); 
		ArrayClear( g_vecSsUsed ); 
	} 

	stock SsGetOrigin( Float:origin[ 3 ] ) 
	{ 
		new Float:data[3], size; 
		new ok = 1; 

		while ( ( size = ArraySize( g_vecSsOrigins ) ) ) 
		{ 
			new idx = random_num( 0, size - 1 ); 

			ArrayGetArray( g_vecSsOrigins, idx, origin ); 

			new used = ArraySize( g_vecSsUsed ); 
			for ( new i = 0; i < used ; i++ ) 
			{ 
				ok = 0; 
				ArrayGetArray( g_vecSsUsed, i, data ); 
				if ( get_distance_f( data, origin ) >= g_flSsMinDist ) 
				{ 
					ok = 1; 
					break; 
				} 
			} 

			ArrayDeleteItem( g_vecSsOrigins, idx ); 

			if ( ok ) 
			{ 
				ArrayPushArray( g_vecSsUsed, origin ); 
				return true; 
			} 
		} 

		return false; 
	} 

	public SsScan( ) 
	{ 
		new start, Float:origin[ 3 ], starttime; 

		starttime = get_systime( ); 

		for ( start = 0 ; start < sizeof( g_szStarts ) ; start++ ) 
		{ 
			server_print( "Searching for %s", g_szStarts[ start ] ); 

			new ent; 

			if ( ( ent = engfunc( EngFunc_FindEntityByString, ent, "classname", g_szStarts[ start ] ) ) ) 
			{ 
				new counter; 

				pev( ent, pev_origin, origin ); 
				ArrayPushArray( g_vecSsSpawns, origin ); 

				while ( counter < SS_MAX_LOOPS ) counter = GetLocation( origin, counter ); 
			} 
		} 

		g_iSsTime = get_systime( ); 
		g_iSsTime -= starttime; 
	} 

	GetLocation( Float:start[ 3 ], &counter ) 
	{ 
		new Float:end[ 3 ]; 

		for ( new i = 0 ; i < 3 ; i++ ) end[ i ] += random_float( 0.0 - g_flOffsets[ i ], g_flOffsets[ i ] ); 

		if ( IsValid( start, end ) ) 
		{ 
			start[ 0 ] = end[ 0 ]; 
			start[ 1 ] = end[ 1 ]; 
			start[ 2 ] = end[ 2 ]; 

			ArrayPushArray( g_vecSsOrigins, end ); 
		} 

		counter++;

		return counter; 
	} 

	IsValid( Float:start[ 3 ], Float:end[ 3 ] ) 
	{ 
		SetFloor( end ); 
		end[ 2 ] += 36.0; 
		new point = engfunc( EngFunc_PointContents, end ); 
		if ( point == CONTENTS_EMPTY ) if ( CheckPoints( end ) && CheckDistance( end ) && CheckVisibility( start, end ) ) if ( !trace_hull( end, HULL_LARGE, -1 ) ) return true;

		return false;
	}

	CheckVisibility( Float:start[ 3 ], Float:end[ 3 ] ) 
	{ 
		new tr; 

		engfunc( EngFunc_TraceLine, start, end, IGNORE_GLASS, -1, tr ); 

		return ( get_tr2( tr, TR_pHit ) < 0 ); 
	} 

	SetFloor( Float:start[ 3 ] ) 
	{ 
		new tr, Float:end[ 3 ]; 

		end[ 0 ] = start[ 0 ]; 
		end[ 1 ] = start[ 1 ]; 
		end[ 2 ] = -99999.9; 

		engfunc( EngFunc_TraceLine, start, end, DONT_IGNORE_MONSTERS, -1, tr ); 
		get_tr2( tr, TR_vecEndPos, start ); 
	} 

	CheckPoints( Float:origin[ 3 ] ) 
	{ 
		new Float:data[ 3 ], tr, point; 

		data[ 0 ] = origin[ 0 ]; 
		data[ 1 ] = origin[ 1 ]; 
		data[ 2 ] = 99999.9; 

		engfunc( EngFunc_TraceLine, origin, data, DONT_IGNORE_MONSTERS, -1, tr ); 
		get_tr2( tr, TR_vecEndPos, data ); 
		point = engfunc( EngFunc_PointContents, data ); 

		if ( point == CONTENTS_SKY && get_distance_f( origin, data ) < 250.0 ) return false; 

		data[ 2 ] = -99999.9; 

		engfunc( EngFunc_TraceLine, origin, data, DONT_IGNORE_MONSTERS, -1, tr ); 
		get_tr2( tr, TR_vecEndPos, data ); 
		point = engfunc( EngFunc_PointContents, data ); 

		if ( point < CONTENTS_SOLID ) return false; 

		return true; 
	} 

	CheckDistance( Float:origin[ 3 ] ) 
	{ 
		new Float:dist, Float:data[ 3 ]; 

		new count = ArraySize( g_vecSsSpawns ); 
		for ( new i = 0; i < count ; i++ ) 
		{ 
			ArrayGetArray( g_vecSsSpawns, i, data ); 
			dist = get_distance_f( origin, data ); 
			if ( dist < SS_MIN_DISTANCE ) return false; 
		} 

		count = ArraySize( g_vecSsOrigins ); 
		for ( new i = 0 ; i < count ; i++ ) 
		{ 
			ArrayGetArray( g_vecSsOrigins, i, data ); 
			dist = get_distance_f( origin, data ); 
			if ( dist < SS_MIN_DISTANCE ) return false; 
		} 

		return true;
	}

	stock fm_find_ent_by_owner(index, const classname[], owner, jghgtype = 0) {
		new strtype[11] = "classname", ent = index;
		switch (jghgtype) {
			case 1: strtype = "target";
			case 2: strtype = "targetname";
		}

		while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner) {}

		return ent;
	}

print_cc(id, fmt[], any:...)
{
	static saytext = 0, fake_user;
	if (!saytext)
	{
		saytext = get_user_msgid("SayText");
		fake_user = get_maxplayers() + 1;
	}
	new msg[192];
	vformat(msg, charsmax(msg), fmt, 3)
	replace_all(msg, sizeof(msg) - 1, ".g", "^x04");
	replace_all(msg, sizeof(msg) - 1, ".n", "^x01");
	replace_all(msg, sizeof(msg) - 1, ".t", "^x03");
	message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, saytext, _, id);
	write_byte(id ? id : fake_user);
	write_string(msg);
	message_end();
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Post Reply

Return to “Cereri”

  • Information