Sari la conținut

[Plugin] VIP Clasic 1.7 - NEW VERSION


Shadows Adi

Postări Recomandate

  • Scripters

Update

Am inlaturat bulletdamage-ul. Serverul primea crash de la aceasata functie. O sa o reimplementez cand am timp.

  • Like 1
Link spre comentariu
Distribuie pe alte site-uri

  • 2 săptămâni mai târziu...
  • Scripters

Update Versiunea 1.6 - Am rezolvat un bug la VIP Free ( ramanea VIP free si dupa orele respective ).

                                      - Am rezolvat un bug la armele VIP.

Editat de Shadows Adi
Link spre comentariu
Distribuie pe alte site-uri

  • 2 săptămâni mai târziu...
  • 1 lună mai târziu...
La 03.06.2020 la 14:37, Shadows Adi a spus:

Update: 1.5 - Am adaugat mesajul "VIP" in scoreboard.

- Am adaugat cvar-uri pentru inceperea VIP-ului Free cat si pentru terminarea acestuia.

- Am adaugat suport si pentru versiuni AmxModX mai mari decat 1.8.2.

- Am adaugat comanda "/vips" pentru a vedea VIP-urile Active.

- Am adaugat bullet damage prin care jucatorii VIP pot vedea damage-ul dat in timp real (orice tip de damage: fata in fata / prin perete ).

- Acum hartile pe care doriti sa fie dezactivat VIP-ul se adauga in fisierul VIP/vip_maps.ini.

- Am rezolvat un bug la meniu ( credite Bigfoot pentru descoperirea bug-ului ).

Ma poti ajuta cu instalarea acestui plugin contra cost? Mersi!

Link spre comentariu
Distribuie pe alte site-uri

  • 2 săptămâni mai târziu...
6 hours ago, notAlamA said:

Am activat si eu acest plugin,dar intampin ceva probleme cum ar fi cand scri /vips nu iti apare nimic.

Il gasesti pe teamspeak pe Adi si te ajuta acolo sau daca va e mai usor aici

Link spre comentariu
Distribuie pe alte site-uri

  • 2 săptămâni mai târziu...
new path[ 64 ];
	get_localinfo( "amxx_configsdir", path, charsmax( path ) );
	formatex( path, charsmax( path ), "%s/VIP/vip_maps.ini", path);
	
	new file = fopen( path, "r+" );
	
	if( !file_exists( path ) )
	{
		write_file( path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
		write_file( path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^nawp_bycastor" );
		write_file( path, "; NOTA:^n Pentru a ignora anumite harti, adaugati ^";^" in fata hartii" );
	}
	
	new mapname[ 32 ];
	get_mapname( mapname, charsmax( mapname ) );
	
	new text[ 121 ], maptext[ 32 ];
	while( !feof( file ) )
	{
		fgets( file, text, charsmax( text ) );
		trim( text );
		
		if( text[ 0 ] == ';' || !strlen( text ) ) 
		{
			continue; 
		}
		
		parse( text, maptext, charsmax( maptext ) );
		
		if( equal( maptext, mapname) )
		{
			//********* AICI STERGETI "//" DIN FATA PENTRU DEBUG. *********//
			//log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext ); 
			g_bMapBanned = 1;
			break;
		}
		
	}
	fclose( file );
}

-> asta trebuie trecut in plugin_cfg/precache. Adica sa privim logica, inregistrezi tot si initializezi pluginul apoi dai check map? papa memorie chestia asta.

 

	if( IsVipHour( get_pcvar_num( pCvars [ VipFreeStart ] ), get_pcvar_num( pCvars [ VIpFreeEnd ] ) ) )
		set_pcvar_string( pCvars [ VipFree ], "1" );
	else
		set_pcvar_string( pCvars [ VipFree ], "0" );

foloseste switch pe case true si false

color_chat(id, "^3| ^4%s ^3| ^1Death-urile tale sunt deja ^4 0^3!", Tag );

e o prostie sa tot formetezi un text, fa-i direct din stock...

new final_msg[128]; formatex(final_msg, charsmax(final_msg), "%s %s", Tag, msg_output);

	if( item == MENU_EXIT || !is_user_alive( id ) || !is_user_connected(id))
		menu_destroy( menu );
		
	if(!is_user_alive(id) || !is_user_connected(id))
		return PLUGIN_HANDLED;

nu era necesar de 2 ori.

if(get_user_team( id ) == 1 )
		{
			if( is_user_alive( id ) )
				color_chat( 0, "!y(Terrorist) !g%s!team %s!y: %s", szPrefix, szName, szMessage );
				
			else if( !is_user_alive( id ) )
				color_chat( 0, "!y*DEAD* (Terrorist) !g%s!team %s!y: %s", szPrefix, szName, szMessage );
		}
		if(get_user_team( id ) == 2 )
		{
			if( is_user_alive( id ) )
				color_chat( 0, "!y(Counter-Terrorist) !g%s!team %s!y: %s", szPrefix, szName, szMessage );
				
			else if( !is_user_alive( id ) )
				color_chat( 0, "!y*DEAD* (Counter-Terrorist) !g%s!team %s!y: %s", szPrefix, szName, szMessage );
		}

din nou, foloseste switch

cam atat la prima vedere, corecteaza-ti micile erori..

si nu uita ca in ham spawn sa verifici daca userul e valid, poate fi si o entitate si vei primi index out of bounds sau crash.

success.

Link spre comentariu
Distribuie pe alte site-uri

  • Scripters
Acum 6 minute, LondoN eXtream a spus:

-> asta trebuie trecut in plugin_cfg/precache. Adica sa privim logica, inregistrezi tot si initializezi pluginul apoi dai check map? pa memorie chestia asta.

nu i-am facut profile ca sa vad daca asa este, deci nu am un raspuns bazat.

 

Acum 16 minute, LondoN eXtream a spus:

 


	if( IsVipHour( get_pcvar_num( pCvars [ VipFreeStart ] ), get_pcvar_num( pCvars [ VIpFreeEnd ] ) ) )
		set_pcvar_string( pCvars [ VipFree ], "1" );
	else
		set_pcvar_string( pCvars [ VipFree ], "0" );

foloseste switch pe case true si false

o sa folosesc operatorul conditionat, nu am mai optimizat unele parti =)))

 

Acum 17 minute, LondoN eXtream a spus:

 


color_chat(id, "^3| ^4%s ^3| ^1Death-urile tale sunt deja ^4 0^3!", Tag );

e o prostie sa tot formetezi un text, fa-i direct din stock...

new final_msg[128]; formatex(final_msg, charsmax(final_msg), "%s %s", Tag, msg_output);

nu are sens ceea ce spui, dar oricum cand o sa am timp o sa-l fac cu ajutorul unui dictionar ca sa formatez intregul text

 

Acum 21 minute, LondoN eXtream a spus:

 


	if( item == MENU_EXIT || !is_user_alive( id ) || !is_user_connected(id))
		menu_destroy( menu );
		
	if(!is_user_alive(id) || !is_user_connected(id))
		return PLUGIN_HANDLED;

nu era necesar de 2 ori.

 

dap, ai dreptate, am uitat de aia =))))

 

Acum 22 minute, LondoN eXtream a spus:

 


if(get_user_team( id ) == 1 )
		{
			if( is_user_alive( id ) )
				color_chat( 0, "!y(Terrorist) !g%s!team %s!y: %s", szPrefix, szName, szMessage );
				
			else if( !is_user_alive( id ) )
				color_chat( 0, "!y*DEAD* (Terrorist) !g%s!team %s!y: %s", szPrefix, szName, szMessage );
		}
		if(get_user_team( id ) == 2 )
		{
			if( is_user_alive( id ) )
				color_chat( 0, "!y(Counter-Terrorist) !g%s!team %s!y: %s", szPrefix, szName, szMessage );
				
			else if( !is_user_alive( id ) )
				color_chat( 0, "!y*DEAD* (Counter-Terrorist) !g%s!team %s!y: %s", szPrefix, szName, szMessage );
		}

din nou, foloseste switch

da, chiar ar fi mai bine sa fac pe cazuri, scutesc compiler-ul de munca in plus

 

Acum 24 minute, LondoN eXtream a spus:

si nu uita ca in ham spawn sa verifici daca userul e valid, poate fi si o entitate si vei primi index out of bounds sau crash.

success.

Se verifica deja daca jucatorul este in viata, deci este ok. In counter strike 1.6, functia virtuala Ham_Spawn este apelata doar in cazul jucatorilor.

Merci pentru feedback.

Link spre comentariu
Distribuie pe alte site-uri

2 minutes ago, Shadows Adi said:

nu i-am facut profile ca sa vad daca asa este, deci nu am un raspuns bazat.

 

o sa folosesc operatorul conditionat, nu am mai optimizat unele parti =)))

 

nu are sens ceea ce spui, dar oricum cand o sa am timp o sa-l fac cu ajutorul unui dictionar ca sa formatez intregul text

 

dap, ai dreptate, am uitat de aia =))))

 

da, chiar ar fi mai bine sa fac pe cazuri, scutesc compiler-ul de munca in plus

 

Se verifica deja daca jucatorul este in viata, deci este ok. In counter strike 1.6, functia virtuala Ham_Spawn este apelata doar in cazul jucatorilor.

Merci pentru feedback.

Ham_Spawn se executa asupra tuturor entitatilor ce primesc spawn (jucatori, cutii, gaini, arme etc etc).

if(1 <= id <= get_maxplayers()) ca se verifici daca jucatorul se incadreaza in randul jucatorilor.

 

Link spre comentariu
Distribuie pe alte site-uri

Vizitator
Acest topic este acum închis pentru alte răspunsuri.
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Termeni de Utilizare & Politică Intimitate