Ir al contenido
  • Crear una cuenta

[ APORTE ] ScreenFade Round


Sky^^

Posts recomendados

Hola, como ya estoy casi retirado, voy a dejar algunas cosas que armé en todo este tiempo.

FUNCIÓN: Este plugin cuenta el número de rondas y detecta si la ronda fue ganada por T o CT o si la ronda fue empate. Manda un print y un screenfade dependiendo del equipo que ganó o si fue empate.

CÓDIGO:  

/* ========================================================================= */

#include <amxmodx>

new const _Plugin[ ][ ] = { "ScreenFade Round", "1.0.1", "Sky" };
new const _Prefix[ ] = "[ SKY ]";

/* ========================================================================= */

new gCountRound, gTScore, gCScore;
new g_Message_ScreenFade;

const UNIT_SECOND = (1<<12);
const FFADE_IN = 0x0000;

/* ========================================================================= */

public plugin_init( )
{
	register_plugin( _Plugin[ 0 ], _Plugin[ 1 ], _Plugin[ 2 ] );

	register_event( "HLTV","event_NewRound","a","1=0","2=0" );
	register_event( "SendAudio", "event_WinTerrorist", "a", "2&%!MRAD_terwin" );
	register_event( "SendAudio", "event_WinPolices", "a", "2&%!MRAD_ctwin" );
	register_event( "SendAudio", "event_RoundDraw","a","2&%!MRAD_rounddraw"  ); 
	register_event( "TextMsg","event_GameRestart","a","2&#Game_w" );

	register_logevent( "event_GameCommencing",2,"1=Game_Commencing" );
	register_logevent( "event_WinPolices", 6, "3=Target_Saved" );
	register_logevent( "event_WinTerrorist", 6, "3=Target_Bombed" );
	
	g_Message_ScreenFade = get_user_msgid( "ScreenFade" );

	set_task( 1.0, "ShowScoreHud", _, _, _, "b" );
}

/* ========================================================================= */

public event_GameCommencing( )
{
	gCountRound = 0;
	gTScore = 0;
	gCScore = 0;
}
public event_NewRound( ) ++gCountRound;
public event_GameRestart( )
{
	if( gCountRound > 0 )
	{
		gCountRound = 0;
		gTScore = 0;
		gCScore = 0;
	}
}

public event_WinTerrorist( )
{
	set_Msg( 0, 1 );
	++gTScore;
	
	return PLUGIN_HANDLED;
}
public event_WinPolices( )
{
	set_Msg( 0, 2 );
	++gCScore;
	
	return PLUGIN_HANDLED;
}
public event_RoundDraw( )
{
	set_Msg( 0, 3 );
	
	return PLUGIN_HANDLED;
}

/* ========================================================================= */

public ShowScoreHud( )
{
	static RandomR, RandomG, RandomB;
	RandomR = random_num( 0, 100 ); RandomG = random_num( 0, 200 ); RandomB = random_num( 0 , 255 );

	set_hudmessage( RandomR, RandomG, RandomB, -1.0, 0.0, 0, 0.5, 2.0, 0.08, 2.0, true );
	show_hudmessage( 0,"Terroristas: %d | Policías: %d^nRondas: %d", gTScore, gCScore, gCountRound );
}

public set_Msg( id, type )
{
	switch( type )
	{
		case 1:
		{
			client_print( id, print_chat, "%s La ronda %d fue ganada por los Terroristas.", _Prefix, gCountRound );
		
			message_begin( MSG_ONE_UNRELIABLE, g_Message_ScreenFade, _, id );
			write_short( ( UNIT_SECOND ) * 2 );
			write_short( 0 );
			write_short( FFADE_IN );
			write_byte( 255 ); // color rojo
			write_byte( 0 ); // color verde
			write_byte( 0 ); // color azul
			write_byte( 255 );
			message_end( ); 
		}
		case 2:
		{
			client_print( id, print_chat, "%s La ronda %d fue ganada por los Policias.", _Prefix, gCountRound );
		
			message_begin( MSG_ONE_UNRELIABLE, g_Message_ScreenFade, _, id );
			write_short( ( UNIT_SECOND ) * 2 );
			write_short( 0 );
			write_short( FFADE_IN );
			write_byte( 0 ); // color rojo
			write_byte( 68 ); // color verde
			write_byte( 255 ); // color azul
			write_byte( 255 );
			message_end( ); 
		}
		case 3: client_print( id, print_chat, "%s La ronda %d fue empatada.", _Prefix, gCountRound );
	}
}

/* ========================================================================= */

 

Créditos: Gio.

No tengo imágenes por el momento, cuando pueda subo algunas.

 

Si no funciona o tiene algún problema haganmelo saber, si tengo tiempo lo arreglo.

ScreenFadeRound.sma

Editado por Sky^^
Enlace al comentario
Compartir en otros sitios

Buen plugin, bastante prolijidad en las variables.

Por mi parte siempre suelo utilizar switch, aunque como lo hiciste esta perfecto, te dejo una idea por si te interesa para no llamar 2 ifs demas en caso de que el TT sea el que ganó la ronda (?) >_<

public set_Msg( id, type )
{
	switch(type) {
		
		case 1:
		{
			client_print( id, print_chat, "%s La ronda %d fue ganada por los Terroristas.", _Prefix, gCountRound );

			message_begin( MSG_ONE_UNRELIABLE, g_Message_ScreenFade, _, id );
			write_short( ( UNIT_SECOND ) * 2 );
			write_short( 0 );
			write_short( FFADE_IN );
			write_byte( 255 ); // color rojo
			write_byte( 0 ); // color verde
			write_byte( 0 ); // color azul
			write_byte( 255 );
			message_end( ); 
			break;
		}
		case 2:
		{
			client_print( id, print_chat, "%s La ronda %d fue ganada por los Policias.", _Prefix, gCountRound );

			message_begin( MSG_ONE_UNRELIABLE, g_Message_ScreenFade, _, id );
			write_short( ( UNIT_SECOND ) * 2 );
			write_short( 0 );
			write_short( FFADE_IN );
			write_byte( 0 ); // color rojo
			write_byte( 68 ); // color verde
			write_byte( 255 ); // color azul
			write_byte( 255 );
			message_end( ); 
			break;
		}
		case 3: client_print( id, print_chat, "%s La ronda %d fue empatada.", _Prefix, gCountRound );
	}
}
Editado por Gio <3
  • Me gusta 1
Enlace al comentario
Compartir en otros sitios

On 12/9/2017 at 23:30, Gio <3 dijo:

Buen plugin, bastante prolijidad en las variables.

Por mi parte siempre suelo utilizar switch, aunque como lo hiciste esta perfecto, te dejo una idea por si te interesa para no llamar 2 ifs demas en caso de que el TT sea el que ganó la ronda (?) >_<


public set_Msg( id, type )
{
	switch(type) {
		
		case 1:
		{
			client_print( id, print_chat, "%s La ronda %d fue ganada por los Terroristas.", _Prefix, gCountRound );

			message_begin( MSG_ONE_UNRELIABLE, g_Message_ScreenFade, _, id );
			write_short( ( UNIT_SECOND ) * 2 );
			write_short( 0 );
			write_short( FFADE_IN );
			write_byte( 255 ); // color rojo
			write_byte( 0 ); // color verde
			write_byte( 0 ); // color azul
			write_byte( 255 );
			message_end( ); 
			break;
		}
		case 2:
		{
			client_print( id, print_chat, "%s La ronda %d fue ganada por los Policias.", _Prefix, gCountRound );

			message_begin( MSG_ONE_UNRELIABLE, g_Message_ScreenFade, _, id );
			write_short( ( UNIT_SECOND ) * 2 );
			write_short( 0 );
			write_short( FFADE_IN );
			write_byte( 0 ); // color rojo
			write_byte( 68 ); // color verde
			write_byte( 255 ); // color azul
			write_byte( 255 );
			message_end( ); 
			break;
		}
		case 3: client_print( id, print_chat, "%s La ronda %d fue empatada.", _Prefix, gCountRound );
	}
}

 

Gracias, no se me había ocurrido jaja, ahora edito ^^

  • Me gusta 1
Enlace al comentario
Compartir en otros sitios

Invitado
Este tema se encuentra cerrado a nuevas respuestas.
  • Navegando Recientemente   0 miembros

    • No hay usuarios registrados viendo esta página
×
×
  • Crear nuevo...