Jump to content
This Topic
Conéctate para seguir esto  
Sky^^

[ APORTE ] ScreenFade Round

Posts recomendados

3 posts en este tema

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^^

Compartir este post


Enlace al post
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

Compartir este post


Enlace al post
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 ^^

Compartir este post


Enlace al post
Compartir en otros sitios
Invitado
Este tema fue cerrado por un moderador o fue cerrado automáticamente debido a que no tuvo actividad durante los últimos 30 días. Si querés que este tema sea reabierto, podés contactar con algún moderador y solicitarlo.
Conéctate para seguir esto  
    • 0 respuestas
    • 43 visitas
    • 2 respuestas
    • 64 visitas
    • 3 respuestas
    • 141 visitas
    • 0 respuestas
    • 57 visitas
    • 0 respuestas
    • 61 visitas

  • Navegando Recientemente   0 miembros

    No registered users viewing this page.

×