plugin askhanar bomb event

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
User avatar
shut.theart
Membru, skill +3
Membru, skill +3
Posts: 1230
Joined: 10 Aug 2012, 13:04
Detinator Steam: Da
Has thanked: 52 times
Been thanked: 20 times
Contact:

13 Oct 2013, 22:03

| Afiseaza codul
#include <amxmodx>
#include <csx>

#pragma semicolon 1


#define PLUGIN "FMU Bomb Events"
#define VERSION "1.0"

#define C4_TASK		112233

new const g_szBombPlantedSounds[ ][ ] =
{
	"BMBplant.mp3"
	
};

new const g_iRed[ ] =
{
	0,
	125,
	255
};

new const g_iGreen[ ] =
{
	255,
	125,
	10
};

new const g_iBlue[ ] =
{
	255,
	0,
	0
};

new gCvarOn;
new gCvarSound;
new gCvarDropped;
new gCvarPicked;

new g_C4Timer, g_iColor = 0, g_iSound = 0;
new g_pMpC4Timer;
new g_TextMsg;

new gSyncHudMessage;

public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "Askhanar" );
	
	gCvarOn = register_cvar( "fmu_be_on", "1" );
	gCvarSound = register_cvar( "fmu_be_sound", "1" );
	gCvarDropped = register_cvar( "fmu_be_dropped", "1" );
	gCvarPicked = register_cvar( "fmu_be_picked", "1" );
	
	
	register_event( "ResetHUD", "ev_ResetHUD", "be" );
	register_event( "SendAudio", "TeamWonOrRoundDraw", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin", "2&%!MRAD_rounddraw" );
	
	register_logevent( "le_RoundStart", 2, "1=Round_Start");
	register_logevent( "le_RoundEnd", 2, "1=Round_End");
	register_logevent( "le_RoundEnd", 2, "1&Restart_Round_");
	
	
	g_pMpC4Timer = get_cvar_pointer( "mp_c4timer" );
	
	g_TextMsg = get_user_msgid( "TextMsg" );
	register_message( g_TextMsg, "Hook_TextMessages" );

	gSyncHudMessage = CreateHudSyncObj(  );
}

public bomb_planted( ) 
{
	if( get_pcvar_num( gCvarOn ) == 0 )
		return;
		
	if( get_pcvar_num( gCvarSound ) > 0 )
	{
		client_cmd( 0, "stopsound" );
		client_cmd( 0, "mp3 play ^"sound/furious_sound/%s^"", g_szBombPlantedSounds[ g_iSound ] );
		
		g_iSound++;
		if( g_iSound >= 1 )	g_iSound = 0;
	}
	
	g_C4Timer = get_pcvar_num( g_pMpC4Timer ) - 1;
	
	set_task(1.0, "ShowTimeUntilExplosion", C4_TASK, "", 0, "b" );
}

public ShowTimeUntilExplosion(  )
{
	if( g_C4Timer > 0 )
	{
		if ( g_C4Timer > 20 )
			g_iColor = 0;
		else if ( g_C4Timer > 10 )
			g_iColor = 1;
		else if ( g_C4Timer <= 10 )
			g_iColor = 2;
			
		set_hudmessage( g_iRed[ g_iColor ], g_iGreen[ g_iColor ], g_iBlue[ g_iColor ], -1.0, 0.83, 0, 1.0, 1.0, 0.01, 0.01, -1 );
		ShowSyncHudMsg( 0, gSyncHudMessage, "Bomba explodeaza in: %i secund%s!", g_C4Timer, g_C4Timer == 1 ? "a" : "e" );
		g_C4Timer--;
	}

	else 
		remove_task( C4_TASK );
		
}

public Hook_TextMessages( iMsgId, iMsgDest, id )
{
	if( get_pcvar_num( gCvarOn ) == 0 )
		return PLUGIN_CONTINUE;
    
	static szMsg[ 64 ];
	get_msg_arg_string( 2, szMsg, sizeof ( szMsg ) - 1 );
	
	new iDropped = get_pcvar_num( gCvarDropped );
	if( iDropped && equal( szMsg, "#Game_bomb_drop" ) )
	{
		set_hudmessage( 255, 0, 0, -1.0, 0.16, 0, 0.0, 3.5, 0.1, 0.1, -1 );
		ShowSyncHudMsg( 0, gSyncHudMessage, "Furienii au pierdut bomba !" );
		return PLUGIN_HANDLED;
	}
	
	new iPicked = get_pcvar_num( gCvarPicked );
	if( iPicked  && equal( szMsg, "#Game_bomb_pickup" ) || iPicked  && equal( szMsg, "#Got_bomb" ) )
	{
		set_hudmessage( 255, 0, 0, -1.0, 0.16, 0, 0.0, 3.5, 0.1, 0.1, -1 );
		ShowSyncHudMsg( 0, gSyncHudMessage, "Furienii au recuperat bomba!" );
		return PLUGIN_HANDLED;
	}
		
	return PLUGIN_CONTINUE;
}

public ev_ResetHUD( )
{
	g_C4Timer = 0;
}

public TeamWonOrRoundDraw( )
{
	RemoveTimerTask( );
}

public le_RoundStart( )
{
	RemoveTimerTask( );
}

public le_RoundEnd()
{
	RemoveTimerTask( );
}

public plugin_end()
{
	RemoveTimerTask( );
}

public RemoveTimerTask( )
{
	if( get_pcvar_num( gCvarOn ) == 0 )
		return;
		
	g_C4Timer = -1;
	remove_task( C4_TASK );
}

public plugin_precache() 
{
	new szSound[ 64 ];
	for( new i = 0; i < 2; i++ )
	{
		formatex( szSound, sizeof ( szSound ) -1, "sound/furious_sound/%s", g_szBombPlantedSounds[ i ] );
		precache_generic( szSound );
	}
	
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3081\\ f0\\ fs16 \n\\ par }
*/
mi-a dat errorile astea:
| Afiseaza codul
L 10/13/2013 - 21:58:40: [AMXX] Displaying debug trace (plugin "bmbplant.amxx")
L 10/13/2013 - 21:58:40: [AMXX] Run time error 4: index out of bounds 
L 10/13/2013 - 21:58:40: [AMXX]    [0] bmbplant.sma::plugin_precache (line 182)
poate cineva sa le scoata?
sau poate are alt plugin?

RoyalServer
User avatar
Rap^
Membru, skill +2
Membru, skill +2
Posts: 621
Joined: 01 Oct 2011, 00:25
Detinator Steam: Da
Reputatie: Fost Scripter eXtreamCS
Fost Super moderator
Location: Bucuresti
Has thanked: 16 times
Been thanked: 156 times

13 Oct 2013, 23:25

| Afiseaza codul
[code]#include <amxmodx>
#include <csx>

#pragma semicolon 1


#define PLUGIN "FMU Bomb Events"
#define VERSION "1.0"

#define C4_TASK		112233

new const g_szBombPlantedSounds[ ] = "BMBplant.mp3";

new const g_iRed[ ] =
{
	0,
	125,
	255
};

new const g_iGreen[ ] =
{
	255,
	125,
	10
};

new const g_iBlue[ ] =
{
	255,
	0,
	0
};

new gCvarOn;
new gCvarSound;
new gCvarDropped;
new gCvarPicked;

new g_C4Timer, g_iColor = 0, g_iSound = 0;
new g_pMpC4Timer;
new g_TextMsg;

new gSyncHudMessage;

public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "Askhanar" );
	
	gCvarOn = register_cvar( "fmu_be_on", "1" );
	gCvarSound = register_cvar( "fmu_be_sound", "1" );
	gCvarDropped = register_cvar( "fmu_be_dropped", "1" );
	gCvarPicked = register_cvar( "fmu_be_picked", "1" );
	
	
	register_event( "ResetHUD", "ev_ResetHUD", "be" );
	register_event( "SendAudio", "TeamWonOrRoundDraw", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin", "2&%!MRAD_rounddraw" );
	
	register_logevent( "le_RoundStart", 2, "1=Round_Start");
	register_logevent( "le_RoundEnd", 2, "1=Round_End");
	register_logevent( "le_RoundEnd", 2, "1&Restart_Round_");
	
	
	g_pMpC4Timer = get_cvar_pointer( "mp_c4timer" );
	
	g_TextMsg = get_user_msgid( "TextMsg" );
	register_message( g_TextMsg, "Hook_TextMessages" );

	gSyncHudMessage = CreateHudSyncObj(  );
}

public bomb_planted( ) 
{
	if( get_pcvar_num( gCvarOn ) == 0 )
		return;
		
	if( get_pcvar_num( gCvarSound ) > 0 )
	{
		client_cmd( 0, "stopsound" );
		client_cmd( 0, "mp3 play ^"sound/furious_sound/%s^"", g_szBombPlantedSounds[ g_iSound ] );
		
		g_iSound++;
		if( g_iSound >= 1 )	g_iSound = 0;
	}
	
	g_C4Timer = get_pcvar_num( g_pMpC4Timer ) - 1;
	
	set_task(1.0, "ShowTimeUntilExplosion", C4_TASK, "", 0, "b" );
}

public ShowTimeUntilExplosion(  )
{
	if( g_C4Timer > 0 )
	{
		if ( g_C4Timer > 20 )
			g_iColor = 0;
		else if ( g_C4Timer > 10 )
			g_iColor = 1;
		else if ( g_C4Timer <= 10 )
			g_iColor = 2;
			
		set_hudmessage( g_iRed[ g_iColor ], g_iGreen[ g_iColor ], g_iBlue[ g_iColor ], -1.0, 0.83, 0, 1.0, 1.0, 0.01, 0.01, -1 );
		ShowSyncHudMsg( 0, gSyncHudMessage, "Bomba explodeaza in: %i secund%s!", g_C4Timer, g_C4Timer == 1 ? "a" : "e" );
		g_C4Timer--;
	}

	else 
		remove_task( C4_TASK );
		
}

public Hook_TextMessages( iMsgId, iMsgDest, id )
{
	if( get_pcvar_num( gCvarOn ) == 0 )
		return PLUGIN_CONTINUE;
    
	static szMsg[ 64 ];
	get_msg_arg_string( 2, szMsg, sizeof ( szMsg ) - 1 );
	
	new iDropped = get_pcvar_num( gCvarDropped );
	if( iDropped && equal( szMsg, "#Game_bomb_drop" ) )
	{
		set_hudmessage( 255, 0, 0, -1.0, 0.16, 0, 0.0, 3.5, 0.1, 0.1, -1 );
		ShowSyncHudMsg( 0, gSyncHudMessage, "Furienii au pierdut bomba !" );
		return PLUGIN_HANDLED;
	}
	
	new iPicked = get_pcvar_num( gCvarPicked );
	if( iPicked  && equal( szMsg, "#Game_bomb_pickup" ) || iPicked  && equal( szMsg, "#Got_bomb" ) )
	{
		set_hudmessage( 255, 0, 0, -1.0, 0.16, 0, 0.0, 3.5, 0.1, 0.1, -1 );
		ShowSyncHudMsg( 0, gSyncHudMessage, "Furienii au recuperat bomba!" );
		return PLUGIN_HANDLED;
	}
		
	return PLUGIN_CONTINUE;
}

public ev_ResetHUD( )
{
	g_C4Timer = 0;
}

public TeamWonOrRoundDraw( )
{
	RemoveTimerTask( );
}

public le_RoundStart( )
{
	RemoveTimerTask( );
}

public le_RoundEnd()
{
	RemoveTimerTask( );
}

public plugin_end()
{
	RemoveTimerTask( );
}

public RemoveTimerTask( )
{
	if( get_pcvar_num( gCvarOn ) == 0 )
		return;
		
	g_C4Timer = -1;
	remove_task( C4_TASK );
}

public plugin_precache() 
{
	precache_generic( g_szBombPlantedSounds );
}[/code]
Initial pluginul asta era facut pentru 2 sunete.
Tu daca ai scos din ele si ai lasat doar 1, pluginul tot incearca sa "pregateasca" 2 sunete si nu are de unde, de asta iti dadea eroarea aia.
Imagination is more important than knowledge.
Knowledge is limited - Imagination encircles the world.
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 20 guests