Sari la conținut

[Plugin] VIP Clasic 1.7 - NEW VERSION


Postări Recomandate

  • Scripters
Postat

Update

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

  • Like 1
Postat

imediat raspund

 

Postat

ar da bine si parasuta la acesta + defuse kit la ct

  • 2 săptămâni mai târziu...
  • Scripters
Postat (editat)

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
  • 2 săptămâni mai târziu...
  • 1 lună mai târziu...
  • LCS PREMIUM
Postat
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!

Postat

Este foarte simplu de adeugat, intra pe canalul de suport tehnic ts3 in cel mai rau caz... totusi repet.. este simplu

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

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

  • Like 1
Postat
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

Postat
Just now, Spp^^ said:

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

 

  • Like 1
  • 2 săptămâni mai târziu...
Postat
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.

  • Scripters
Postat
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.

Postat
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.

 

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