Cerere plugin gift christmas

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 .
Post Reply
HalogekT3Kz
Membru, skill 0
Membru, skill 0
Posts: 28
Joined: 20 Nov 2019, 23:05
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0

21 Nov 2019, 12:12

Plugin Cerut:Plugin pentru cadouri
Descriere (adica ce face el mai exact):as dori un plugin care sa puna niste cadouri pe mapa cu castiguri diferite de craciun ,am mai incercat cateva pluginuri care nu au functionat!!
Serverul ruleaza (HLDS/ReHLDS):ReHLDS
Versiune AMX Mod X:-
Modul Serverului:Clasic
Zonek
User avatar
L E V I N
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2955
Joined: 24 Aug 2011, 11:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Has thanked: 39 times
Been thanked: 454 times
Contact:

21 Nov 2019, 13:35

Code: Select all

/*

Plugin: Xmas Gifts 2.3.2
Autor: KronoS # GG
Site: www.eXtreamCS.com

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 < amxmisc >
#include < fakemeta >
#include < hamsandwich >
#include < engine >
#include < cellarray >
#include < xs >

/* Extras din Fakemeta Util */
#define fm_find_ent_by_class( %1, %2 ) engfunc( EngFunc_FindEntityByString, %1, "classname", %2 )
#define fm_create_entity(%1) engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, %1 ) )

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

#pragma semicolon 1;

/* Modele cadouri */
new const model_present[ ][ ] = { "models/present/w_present.mdl","models/present/w_present2.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 };

/* Offset-uri */
#if cellbits == 32
const OFFSET_CSMONEY = 115;
#else
const OFFSET_CSMONEY = 140;
#endif
const OFFSET_LINUX  = 5;
		
new pcvar_respawn_time, pcvar_presents_on_map;
new g_money;
new g_bonus[ 33 ];

public plugin_init( )
{
	register_plugin( "XMAS GIFTS", "2.3.2", "KronoS" );
		
	// Eventuri
	register_event( "HLTV", "spawn_gifts", "a", "1=0", "2=0" );
	RegisterHam( Ham_Spawn, "player", "round_start", 1 );
	RegisterHam( Ham_Killed, "player", "client_death", 1 );
    	RegisterHam( Ham_Item_PreFrame, "player", "FwdPreFramePost", 1 );
	register_forward( FM_Touch, "forward_touch" );
		
	// Cvar-uri
	pcvar_respawn_time = register_cvar( "presents_respawn_time", "60.0" );
	pcvar_presents_on_map = register_cvar( "presents_on_map", "11" );

	SsInit( 800.0 );
	SsScan( );
	XGIFTS_Spawn( );
	
	g_money = get_user_msgid( "Money" );
}

public plugin_precache( )
{
	for ( new i = 0; i < sizeof model_present ; i++ )
		engfunc( EngFunc_PrecacheModel, model_present[ i ] );
}

public spawn_gifts( )
	XGIFTS_Spawn( );

public round_start( id )
{
	if ( g_bonus[id] > 0 )
	{
		switch ( g_bonus[ id ] )
		{
			case 1: fm_set_user_health( id, get_user_health( id ) + 50 );
			case 2: fm_set_user_gravity( id, 0.4 );
		}
	}
}

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_present[ random_num( 0, sizeof model_present - 1 ) ] );
		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 );

		switch ( random_num( 0, 1 ) )
		{
			case 0: set_pev( ent, pev_classname, "small_present" );
			case 1: set_pev( ent, pev_classname, "large_present" );
		}
	}
}

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 );
}

public client_death( id )
{
	if ( g_bonus[ id ] > 0 )
		g_bonus[ id ] = 0;
}

public FwdPreFramePost( iClient )
{
	if ( is_user_connected( iClient ) )
	{
		if ( g_bonus[ iClient ] == 3 )
    			fm_set_user_maxspeed( iClient, 350.0 );
		else if ( g_bonus[ iClient ] == 4 )
    			fm_set_user_maxspeed( iClient, 200.0 );
	}
}  

public forward_touch( ent, id )
{
	if ( !pev_valid( ent ) )
		return FMRES_IGNORED;
	
	static class[ 20 ];
	
	pev( ent, pev_classname, class, sizeof class - 1 );
	
	if ( ( !equali( class, "small_present" ) && !equali( class, "large_present" ) ) )
		return FMRES_IGNORED;
	
	if ( !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  );
	}
	
	if ( equali( class, "small_present" ) )
	{
		switch ( random_num( 0, 4 ) )
		{
			case 0: 
			{
				fm_set_user_money( id, fm_get_user_money( id ) + 500 );
				set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 );
				show_hudmessage( id, "[XMAS Gift] Mosul ti-a oferit 500$" );
			}
			case 1:
			{
				fm_set_user_money( id, 16000 );
				set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 );
				show_hudmessage( id, "[XMAS Gift] Mosul ti-a oferit 16000$" );
			}
			case 2:
			{
				fm_set_user_money( id, 0 );
				set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 );
				show_hudmessage( id, "[XMAS Gift] Mosul ti-a furat toti banii" );
			}
			case 3:
			{
				fm_set_user_money( id, fm_get_user_money( id ) - 500 );
				set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 );
				show_hudmessage( id, "[XMAS Gift] Mosul ti-a furat 500$" );
			}
			case 4:
			{
				fm_give_item( id, "weapon_awp" );
				set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 );
				show_hudmessage( id, "[XMAS Gift] Mosul ti-a oferit un AWP" );
			}
		}
	}
	else if ( equali( class,"large_present" ) && !g_bonus[ id ] )
	{
		switch (random_num(0,3))
		{
			case 0: 
			{
				fm_set_user_health( id, get_user_health( id ) + 50);
				g_bonus[ id ] = 1;
				large_present_hud( id );
			}
			case 1:
			{
				fm_set_user_gravity( id, 0.4 );
				g_bonus[ id ] = 2;
				large_present_hud( id );
			}
			case 2:
			{
				fm_set_user_maxspeed( id, 350.0 );
				g_bonus[ id ] = 3;
				large_present_hud( id );
			}
			case 3:
			{
				fm_set_user_maxspeed( id, 200.0 );
				g_bonus[ id ] = 4;
				large_present_hud( id );
			}
		}
	}
	
	return FMRES_IGNORED;
}

public large_present_hud( id )
{
	if ( is_user_alive( id ) )
	{
		if ( g_bonus[ id ] > 0 )
		{
			switch( g_bonus[ id ] )
			{
				case 1:
				{
					set_hudmessage( 0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0);
					show_hudmessage( id, "[XMAS Gift] Viata+" );
				}
				case 2:
				{
					set_hudmessage( 0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0 );
					show_hudmessage( id, "[XMAS Gift] Gravitatie-" );
				}
				case 3:
				{
					set_hudmessage( 0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0 );
					show_hudmessage( id, "[XMAS Gift] Viteza+" );
				}
				case 4:
				{
					set_hudmessage( 200, 0, 0, 0.02, 0.73, 0, 6.0, 12.0 );
					show_hudmessage( id, "[XMAS Gift] Viteza-" );
				}
			}

			set_task( 12.0, "large_present_hud", id );
		}
	}
}

public client_disconnect( id )
	g_bonus[ id ] = 0;

// Fakemeta Util
stock fm_set_user_money( id, money, flash = 1 )
{
	set_pdata_int( id, OFFSET_CSMONEY, money, OFFSET_LINUX );

	message_begin( MSG_ONE, g_money, { 0, 0, 0 }, id );
	write_long( money );
	write_byte( flash );
	message_end( );
}

stock fm_get_user_money( id )
	return get_pdata_int( id, OFFSET_CSMONEY, OFFSET_LINUX );

stock fm_set_user_health( id, health )
{
	( health > 0 ) ? set_pev( id, pev_health, float( health ) ) : dllfunc( DLLFunc_ClientKill, id );

	return 1;
}

stock fm_give_item( index, const item[ ] )
{
	if ( !equal( item, "weapon_", 7 ) && !equal( item, "ammo_", 5 ) && !equal( item, "item_", 5 ) && !equal( item, "tf_weapon_", 10 ) )
		return 0;

	new ent = fm_create_entity( item) ;

	if ( !pev_valid( ent ) )
		return 0;

	new Float:origin[ 3 ];
	pev( index, pev_origin, origin );
	set_pev( ent, pev_origin, origin );
	set_pev( ent, pev_spawnflags, pev( ent, pev_spawnflags ) | SF_NORESPAWN );
	dllfunc( DLLFunc_Spawn, ent );

	new save = pev( ent, pev_solid );
	dllfunc( DLLFunc_Touch, ent, index );
	if ( pev( ent, pev_solid ) != save )
		return ent;

	engfunc( EngFunc_RemoveEntity, ent );

	return -1;
}

stock fm_set_user_gravity( index, Float:gravity = 1.0 )
{
	set_pev( index, pev_gravity, gravity );

	return 1;
}

stock fm_set_user_maxspeed( index, Float:speed = -1.0 )
{
	engfunc( EngFunc_SetClientMaxspeed, index, speed );
	set_pev( index, pev_maxspeed, speed );

	return 1;
}


// 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;
}
Faceți cerere bine detaliată aici și respectând modelul dacă vreți ajutor. Nu-mi mai dați add doar pentru a mă avea în lista de prieteni.
Am cont și activez doar aici! Aveți grijă la cei ce încearcă să mă copieze..Puteți lua legătura cu mine dacă aveți o problemă/nelămurire în acest caz!
În cazul în care utilizați ceva din addonsurile postate de mine aici, e bine să fiți la curent cu modificările aduse unor plugine, aici, iar dacă sunt ceva probleme sau aveți dvs. probleme nu ezitați să luați legătura cu mine.
HOST CS1.6
HalogekT3Kz
Membru, skill 0
Membru, skill 0
Posts: 28
Joined: 20 Nov 2019, 23:05
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0

21 Nov 2019, 13:40

nu merge ,nu am modelul w_present.mdl ,nu ai cumva si modelul?
User avatar
BUNNY.
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 14
Joined: 04 Jul 2015, 06:13
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Reputatie: Utilizator neserios (tepar)
Fond eXtream: 0
Contact:

21 Nov 2019, 15:17

Salut, mi-am facut timp pentru ati rezolva cererea. Nu uita, daca ti-am fost de folos sa apesi butonul "Multumesc!".

Cadouri:
- 5000$ (un cadou bun)
- viata pe jumatate (un cadou rau)
- AWP Magnum Sniper (un cadou bun)
- bomba sinucigasa (un cadou rau)
- set de grenade (un cadou bun)
- ramai fara arme, doar cu un cutit (un cadou rau)

CVAR-uri:
amx_tag "[XMAS] (DEFAULT) - aici setezi chat tag-ul default pentru mesaje.

Resurse: https://gofile.io/?c=lWYVXZ
amx_xmas_gifts.sma | Afiseaza codul
/*
	AMX XMAS GIFTS 1.0
	(C) BUNNY. 2019 - 2020

	Fisierul este unul de tip free si redistribuirea contra unei sume de bani
	respectiv nerespectarea drepturilor de autor este strict interzisa!
*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <engine>

// Informatii generale despre plugin
new const PLUGIN[] = "AMX XMAS GIFTS";
new const VERSION[] = "1.0";
new const AUTHOR[] = "BUNNY.";

// O folosim mai des
#define fm_writecoord(%1)	engfunc(EngFunc_WriteCoord, %1)

// Variabilele pentru o functionare corecta
new const fm_gift_model[] = "models/amx_xmas_gifts/w_gift.mdl";
new const fm_class_gift[] = "amx_xmas_gifts";

new Float:fm_maxs[3] = {13.0, 13.0, 35.0};
new Float:fm_mins[3] = {-13.0, -13.0, 0.0};

new fm_color[3], fm_spritecolor, fm_spriteexplode, fm_spritesnow, fm_maxplayers;
new cvar_tag;

public plugin_precache()
{
	// Initializam descarcarea resurselor prin fakemeta
	fm_spritecolor = engfunc(EngFunc_PrecacheModel, "sprites/shockwave.spr");
	fm_spriteexplode = engfunc(EngFunc_PrecacheModel, "sprites/zerogxplode.spr");
	fm_spritesnow = engfunc(EngFunc_PrecacheModel, "sprites/snowflakes.spr");

	// Modelul cadoului trebuie descarcat de asemenea
	engfunc(EngFunc_PrecacheModel, fm_gift_model);
}

public plugin_init()
{
	// Inregistram pluginul
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_cvar("amx_xmas_gifts", VERSION, FCVAR_SERVER|FCVAR_SPONLY);

	// CVAR pentru tag-ul din chat
	cvar_tag = register_cvar("amx_tag", "[XMAS]");

	// Stocam numarul maxim de jucatori
	fm_maxplayers = get_maxplayers();

	// Inregistram Ham Forward-ul unde totul se intampla
	RegisterHam(Ham_Killed, "player", "fw_PlayerKill_Post", 1);

	// Inregistram touch-ul corespunzator entitatii
	register_touch(fm_class_gift, "player", "fw_entity_touch");
}

public fw_entity_touch(fm_ent, a)
{
	if(!is_valid_ent(fm_ent) || !(1 <= a <= fm_maxplayers) || !is_user_alive(a))
		return;

	// Oferim bonusurile
	fm_gift_touch(a);

	// Stergem cadoul
	remove_entity(fm_ent);
}

public fm_gift_touch(id)
{
	new fm_result = random_num(1, 6);

	switch(fm_result)
	{
		case 1:
		{
			cs_set_user_money(id, cs_get_user_money(id) + 5000);
			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 5000$");
		}

		case 2:
		{
			set_user_health(id, get_user_health(id) / 2);
			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 Viata iti este redusa la jumatate.");
		}

		case 3:
		{
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, CSW_AWP, 90);
			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 AWP Magnum Sniper.");
		}

		case 4:
		{
			new Float:fm_origin[3];
			entity_get_vector(id, EV_VEC_origin, fm_origin);

			// Creem explozia
			fm_create_explosion(fm_origin);

			// Fulgi de zapada
			fm_create_snowexplosion(fm_origin);

			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 o bomba sinucigasa.");
		}

		case 5:
		{
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_smokegrenade");

			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 Grenade Set");
		}

		case 6:
		{
			strip_user_weapons(id);
			give_item(id, "weapon_knife");

			fm_print_chat(id, "^x01Ti-au fost furate toate armele!");
		}
	}
}

public fw_PlayerKilled_Post(a, b)
{
	// Daca nu este un kill valid nu punem nici un cadou!
	if(!(1 <= a <= fm_maxplayers) || !is_user_connected(a) || !is_user_connected(b) || !is_user_alive(b) || a == b)
		return;

	// Setam culoarea beamcylinderului in functie de echipa
	switch(get_user_team(a))
	{
		case 1:
		{		
			fm_color[0] = 255;
			fm_color[1] = 0;
			fm_color[2] = 0;
		}

		case 2:
		{
			fm_color[0] = 0;
			fm_color[1] = 127;
			fm_color[2] = 255;
		}
	}

	// Facem o explozie de fulgi de zapada
	new Float:fm_origin[3];
	entity_get_vector(a, EV_VEC_origin, fm_origin);
	fm_create_snowexplosion(fm_origin);

	// Initializam cadoul
	fm_create_gift(fm_origin);
}

public fm_create_snowexplosion(const Float:fm_origin[3])
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_SPRITETRAIL);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2]);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2] + random_float(40.0, 60.0));
	write_short(fm_spritesnow);
	write_byte(random_num(40, 60));
	write_byte(random_num(10, 15));
	write_byte(random_num(5, 10));
	write_byte(random_num(40, 55));
	write_byte(random_num(15, 15));
	message_end();
}

public fm_create_gift(const Float:fm_origin[3])
{
	// Creem cadoul
	new fm_ent = create_entity("info_target");

	// Daca entitatea nu este una valida nu se va intampla nimic
	if(!is_valid_ent(fm_ent))
		return;

	// Setari generale
	entity_set_string(fm_ent, EV_SZ_classname, fm_class_gift);
	entity_set_origin(fm_ent, fm_origin);
	entity_set_model(fm_ent, fm_gift_model);
	entity_set_int(fm_ent, EV_INT_movetype, MOVETYPE_NONE);
	entity_set_int(fm_ent, EV_INT_solid, SOLID_BBOX);
	entity_set_size(fm_ent, fm_mins, fm_maxs);

	// Punem cadoul pe harta
	drop_to_floor(fm_ent);

	// Adaugam niste efecte
	fm_create_effects(fm_origin);
}

public fm_create_effects(const Float:fm_origin[3])
{
	// Medium Ring
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BEAMCYLINDER);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2]);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2] + 400.0);
	write_short(fm_spritecolor);
	write_byte(0);
	write_byte(0);
	write_byte(4);
	write_byte(60);
	write_byte(0);
	write_byte(fm_color[0]);
	write_byte(fm_color[1]);
	write_byte(fm_color[2]);
	write_byte(200);
	write_byte(0);
	message_end();

	// Medium Ring
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BEAMCYLINDER);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2]);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2] + 700.0);
	write_short(fm_spritecolor);
	write_byte(0);	
	write_byte(0);
	write_byte(4);
	write_byte(110);
	write_byte(0);
	write_byte(fm_color[0]);
	write_byte(fm_color[1]);
	write_byte(fm_color[2]);
	write_byte(200);
	write_byte(0);
	message_end();
}

public fm_create_explosion(const Float:fm_origin[3])
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_EXPLOSION);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2]);
	write_short(fm_spriteexplode);
	write_byte(30);
	write_byte(15);
	write_byte(0);
	message_end();
}

stock fm_print_chat(const id, msg[], any:...)
{
	static fm_msg[191];
	vformat(fm_msg, charsmax(fm_msg), msg, 3);

	static fm_saytext;
	if(!fm_saytext)
		fm_saytext = get_user_msgid("SayText");

	new fm_tag[32], fm_finalmsg[128];
	get_pcvar_string(cvar_tag, fm_tag, charsmax(fm_tag));
	formatex(fm_finalmsg, charsmax(fm_finalmsg), "%s %s", fm_tag, fm_msg);

	message_begin(MSG_ONE_UNRELIABLE, fm_saytext, _, id);
	write_byte(id);
	write_string(fm_finalmsg);
	message_end();
}
Last edited by L E V I N on 21 Nov 2019, 16:57, edited 1 time in total.
Reason: ce ai dat tu nu e ce a cerut el
Kirito89
Membru, skill 0
Membru, skill 0
Posts: 6
Joined: 02 Dec 2019, 19:14
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0

10 Dec 2019, 19:39

BUNNY. wrote:
21 Nov 2019, 15:17
Salut, mi-am facut timp pentru ati rezolva cererea. Nu uita, daca ti-am fost de folos sa apesi butonul "Multumesc!".

Cadouri:
- 5000$ (un cadou bun)
- viata pe jumatate (un cadou rau)
- AWP Magnum Sniper (un cadou bun)
- bomba sinucigasa (un cadou rau)
- set de grenade (un cadou bun)
- ramai fara arme, doar cu un cutit (un cadou rau)

CVAR-uri:
amx_tag "[XMAS] (DEFAULT) - aici setezi chat tag-ul default pentru mesaje.

Resurse: https://gofile.io/?c=lWYVXZ
amx_xmas_gifts.sma | Afiseaza codul
/*
	AMX XMAS GIFTS 1.0
	(C) BUNNY. 2019 - 2020

	Fisierul este unul de tip free si redistribuirea contra unei sume de bani
	respectiv nerespectarea drepturilor de autor este strict interzisa!
*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <engine>

// Informatii generale despre plugin
new const PLUGIN[] = "AMX XMAS GIFTS";
new const VERSION[] = "1.0";
new const AUTHOR[] = "BUNNY.";

// O folosim mai des
#define fm_writecoord(%1)	engfunc(EngFunc_WriteCoord, %1)

// Variabilele pentru o functionare corecta
new const fm_gift_model[] = "models/amx_xmas_gifts/w_gift.mdl";
new const fm_class_gift[] = "amx_xmas_gifts";

new Float:fm_maxs[3] = {13.0, 13.0, 35.0};
new Float:fm_mins[3] = {-13.0, -13.0, 0.0};

new fm_color[3], fm_spritecolor, fm_spriteexplode, fm_spritesnow, fm_maxplayers;
new cvar_tag;

public plugin_precache()
{
	// Initializam descarcarea resurselor prin fakemeta
	fm_spritecolor = engfunc(EngFunc_PrecacheModel, "sprites/shockwave.spr");
	fm_spriteexplode = engfunc(EngFunc_PrecacheModel, "sprites/zerogxplode.spr");
	fm_spritesnow = engfunc(EngFunc_PrecacheModel, "sprites/snowflakes.spr");

	// Modelul cadoului trebuie descarcat de asemenea
	engfunc(EngFunc_PrecacheModel, fm_gift_model);
}

public plugin_init()
{
	// Inregistram pluginul
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_cvar("amx_xmas_gifts", VERSION, FCVAR_SERVER|FCVAR_SPONLY);

	// CVAR pentru tag-ul din chat
	cvar_tag = register_cvar("amx_tag", "[XMAS]");

	// Stocam numarul maxim de jucatori
	fm_maxplayers = get_maxplayers();

	// Inregistram Ham Forward-ul unde totul se intampla
	RegisterHam(Ham_Killed, "player", "fw_PlayerKill_Post", 1);

	// Inregistram touch-ul corespunzator entitatii
	register_touch(fm_class_gift, "player", "fw_entity_touch");
}

public fw_entity_touch(fm_ent, a)
{
	if(!is_valid_ent(fm_ent) || !(1 <= a <= fm_maxplayers) || !is_user_alive(a))
		return;

	// Oferim bonusurile
	fm_gift_touch(a);

	// Stergem cadoul
	remove_entity(fm_ent);
}

public fm_gift_touch(id)
{
	new fm_result = random_num(1, 6);

	switch(fm_result)
	{
		case 1:
		{
			cs_set_user_money(id, cs_get_user_money(id) + 5000);
			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 5000$");
		}

		case 2:
		{
			set_user_health(id, get_user_health(id) / 2);
			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 Viata iti este redusa la jumatate.");
		}

		case 3:
		{
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, CSW_AWP, 90);
			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 AWP Magnum Sniper.");
		}

		case 4:
		{
			new Float:fm_origin[3];
			entity_get_vector(id, EV_VEC_origin, fm_origin);

			// Creem explozia
			fm_create_explosion(fm_origin);

			// Fulgi de zapada
			fm_create_snowexplosion(fm_origin);

			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 o bomba sinucigasa.");
		}

		case 5:
		{
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_smokegrenade");

			fm_print_chat(id, "^x01Ai gasit in acest cadou^x03 Grenade Set");
		}

		case 6:
		{
			strip_user_weapons(id);
			give_item(id, "weapon_knife");

			fm_print_chat(id, "^x01Ti-au fost furate toate armele!");
		}
	}
}

public fw_PlayerKilled_Post(a, b)
{
	// Daca nu este un kill valid nu punem nici un cadou!
	if(!(1 <= a <= fm_maxplayers) || !is_user_connected(a) || !is_user_connected(b) || !is_user_alive(b) || a == b)
		return;

	// Setam culoarea beamcylinderului in functie de echipa
	switch(get_user_team(a))
	{
		case 1:
		{		
			fm_color[0] = 255;
			fm_color[1] = 0;
			fm_color[2] = 0;
		}

		case 2:
		{
			fm_color[0] = 0;
			fm_color[1] = 127;
			fm_color[2] = 255;
		}
	}

	// Facem o explozie de fulgi de zapada
	new Float:fm_origin[3];
	entity_get_vector(a, EV_VEC_origin, fm_origin);
	fm_create_snowexplosion(fm_origin);

	// Initializam cadoul
	fm_create_gift(fm_origin);
}

public fm_create_snowexplosion(const Float:fm_origin[3])
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_SPRITETRAIL);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2]);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2] + random_float(40.0, 60.0));
	write_short(fm_spritesnow);
	write_byte(random_num(40, 60));
	write_byte(random_num(10, 15));
	write_byte(random_num(5, 10));
	write_byte(random_num(40, 55));
	write_byte(random_num(15, 15));
	message_end();
}

public fm_create_gift(const Float:fm_origin[3])
{
	// Creem cadoul
	new fm_ent = create_entity("info_target");

	// Daca entitatea nu este una valida nu se va intampla nimic
	if(!is_valid_ent(fm_ent))
		return;

	// Setari generale
	entity_set_string(fm_ent, EV_SZ_classname, fm_class_gift);
	entity_set_origin(fm_ent, fm_origin);
	entity_set_model(fm_ent, fm_gift_model);
	entity_set_int(fm_ent, EV_INT_movetype, MOVETYPE_NONE);
	entity_set_int(fm_ent, EV_INT_solid, SOLID_BBOX);
	entity_set_size(fm_ent, fm_mins, fm_maxs);

	// Punem cadoul pe harta
	drop_to_floor(fm_ent);

	// Adaugam niste efecte
	fm_create_effects(fm_origin);
}

public fm_create_effects(const Float:fm_origin[3])
{
	// Medium Ring
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BEAMCYLINDER);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2]);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2] + 400.0);
	write_short(fm_spritecolor);
	write_byte(0);
	write_byte(0);
	write_byte(4);
	write_byte(60);
	write_byte(0);
	write_byte(fm_color[0]);
	write_byte(fm_color[1]);
	write_byte(fm_color[2]);
	write_byte(200);
	write_byte(0);
	message_end();

	// Medium Ring
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BEAMCYLINDER);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2]);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2] + 700.0);
	write_short(fm_spritecolor);
	write_byte(0);	
	write_byte(0);
	write_byte(4);
	write_byte(110);
	write_byte(0);
	write_byte(fm_color[0]);
	write_byte(fm_color[1]);
	write_byte(fm_color[2]);
	write_byte(200);
	write_byte(0);
	message_end();
}

public fm_create_explosion(const Float:fm_origin[3])
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_EXPLOSION);
	fm_writecoord(fm_origin[0]);
	fm_writecoord(fm_origin[1]);
	fm_writecoord(fm_origin[2]);
	write_short(fm_spriteexplode);
	write_byte(30);
	write_byte(15);
	write_byte(0);
	message_end();
}

stock fm_print_chat(const id, msg[], any:...)
{
	static fm_msg[191];
	vformat(fm_msg, charsmax(fm_msg), msg, 3);

	static fm_saytext;
	if(!fm_saytext)
		fm_saytext = get_user_msgid("SayText");

	new fm_tag[32], fm_finalmsg[128];
	get_pcvar_string(cvar_tag, fm_tag, charsmax(fm_tag));
	formatex(fm_finalmsg, charsmax(fm_finalmsg), "%s %s", fm_tag, fm_msg);

	message_begin(MSG_ONE_UNRELIABLE, fm_saytext, _, id);
	write_byte(id);
	write_string(fm_finalmsg);
	message_end();
}
E tepar .. doar ce m-a ars pe mine , i-am trimis 25 de euro in vodafone , cum i-a primit offline pe whatsapp , sau mi-a dat block . Membru din 2015 aici .... e clar , nu conteaza vechime etc , forumul asta e plin de copii tepari . pentru 100 de lei in ***.
Last edited by L E V I N on 11 Dec 2019, 18:50, edited 1 time in total.
Reason: fă-i topic special, nu mai da reply la fiecare post de-al lui...
Post Reply

Return to “Cereri”

  • Information