Raised This Month: $ Target: $400
 0% 

RoundStartEvent - help


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Ax3l
Member
Join Date: Nov 2009
Old 07-18-2012 , 18:47   RoundStartEvent - help
Reply With Quote #1

I have a vip plugin , with menu , and all of things

But i have a problem , function

Code:
register_logevent( "RoundStartEvent" , 2 , "1=Round_Start" );

public RoundStartEvent( )
{
	new Players[ 32 ] , count;
	get_players( Players , count , "ch" );
	
	for( new i; i < count; i++ )
	{
		AlreadyUsed[ i ] = false;
	}
}
I understood is not so good .
I mean , i want to use 1 option from /vipmenu in 1 round .
And sometimes i don't use /vipmenu in 1 round but it say i used it ... so -> BUG



Here come my question : is good if i replace roundstartevent with :

Code:
RegisterHam( Ham_Spawn , "player" , "SpawnPlayer" , 1 );

public SpawnPlayer( iPlayer )
{
	AlreadyUsed[ iPlayer ] = false;
}
Or should i stick with RoundStartEvent ?
__________________
Ax3l is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 07-18-2012 , 18:56   Re: RoundStartEvent - help
Reply With Quote #2

Spawn should be ok.
But you can use new round.
Problem with roud start is that people can't use stuff during freezetime if bool has been set on previous round.

register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")

PHP Code:
public Event_HLTV_New_Round()
{
    
arrayset(AlreadyUsedfalsesizeof(AlreadyUsed))

__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Ax3l
Member
Join Date: Nov 2009
Old 07-18-2012 , 19:00   Re: RoundStartEvent - help
Reply With Quote #3

If ConnorMcLeod say so , i will use new round . Thank you
__________________
Ax3l is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 07-18-2012 , 19:01   Re: RoundStartEvent - help
Reply With Quote #4

Quote:
Originally Posted by Ax3l View Post
And sometimes i don't use /vipmenu in 1 round but it say i used it ... so -> BUG
Seems that there is another problem somewhere in your code then.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Ax3l
Member
Join Date: Nov 2009
Old 07-18-2012 , 19:05   Re: RoundStartEvent - help
Reply With Quote #5

This is all plugin

Code:
new bool: AlreadyUsed[ 33 ];

new g_iSayText;

public plugin_init( )
{
	register_clcmd( "say /vipmenu" , "CmdVIP" );
	
	register_event( "HLTV" , "NewRound" , "a" , "1=0" , "2=0" );
	
	g_iSayText = get_user_msgid( "SayText" );
}

public NewRound( )
{
	arrayset( AlreadyUsed , false , sizeof( AlreadyUsed ) );
}

public CmdVIP( iPlayer )
{
	if( get_user_flags( iPlayer ) & ADMIN_LEVEL_H )
	{
		if( !AlreadyUsed[ iPlayer ] )
		{
			new Menu = menu_create( "VIP Menu" , "VIPMenu" );
			
			menu_additem( Menu , "GoDMoDe" , "1" );
			menu_additem( Menu , "NoClip" , "2" );
			menu_additem( Menu , "HeaLth" , "3" );
			menu_additem( Menu , "MoNeY" , "4" );
			menu_additem( Menu , "XP" , "5" );
			menu_additem( Menu , "ReSPaWn" , "6" );
			
			menu_display( iPlayer , Menu , 0 );
			
			AlreadyUsed[ iPlayer ] = true;
		}
		
		else
		{
			TE_SayText( iPlayer , "^x03 Ai folosit deja meniul de VIP runda asta" );
		}
	}
	
	else
	{
		TE_SayText( iPlayer , "^x03 Nu ai acces la aceasta comanda" );
	}
}

public VIPMenu( iPlayer , Menu , Item )
{
	if( Item == MENU_EXIT )
	{
		menu_destroy( Menu );
		
		return PLUGIN_HANDLED;
	}
	
	switch( Item )
	{
		case 0 : GoDMoDe( iPlayer );
		case 1 : NoClip( iPlayer );
		case 2 : HeaLth( iPlayer );
		case 3 : MoNeY( iPlayer );
		case 4 : XP( iPlayer );
		case 5 : ReSPaWn( iPlayer );
	}
	
	return PLUGIN_HANDLED;
}

public GoDMoDe( iPlayer )
{
	set_user_godmode( iPlayer , 1 );
	
	TE_SayText( iPlayer , "^x03 Ai folosit comanda de^x04 VIP GoDMoDe^x03 . Pentru 5 secunde esti invincibil" );
	
	set_task( 2.0 , "GoDMoDeOff" , iPlayer );
}

public GoDMoDeOff( iPlayer )
	set_user_godmode( iPlayer , 0 );

public NoClip( iPlayer )
{
	set_user_noclip( iPlayer , 1 );
	
	TE_SayText( iPlayer , "^x03 Ai folosit comanda de^x04 VIP NoClip^x03 . Pentru 5 secunde poti trece prin pereti" );
	
	set_task( 5.0 , "NoClipOff" , iPlayer );
}

public NoClipOff( iPlayer )
	set_user_noclip( iPlayer , 0 );

public HeaLth( iPlayer )
{
	set_user_health( iPlayer , get_user_health( iPlayer ) + 50 );
	cs_set_user_armor( iPlayer , get_user_armor( iPlayer ) + 100 , CS_ARMOR_VESTHELM );
	set_user_footsteps( iPlayer , 1 );
	
	TE_SayText( iPlayer , "^x03 Ai folosit comanda de^x04 VIP HeaLth^x03 . Ai primit +50 HP" );
}

public MoNeY( iPlayer )
{
	cs_set_user_money( iPlayer , 16000 );
	
	TE_SayText( iPlayer , "^x03 Ai folosit comanda de^x04 VIP MoNeY^x03 . Ai primit 16.000 $" );
}

public XP( iPlayer )
{
	new Nume[ 32];
	get_user_name( iPlayer , Nume , 31 );
	
	server_cmd( "amx_givexp %s 2500" , Nume );
}

public ReSPaWn( iPlayer )
{
	new iSansa = random( 100 );
	
	if( iSansa <= 20 && !is_user_alive( iPlayer ) )
	{
		ExecuteHamB( Ham_CS_RoundRespawn , iPlayer );
		
		TE_SayText( iPlayer , "^x03 Ai folosit comanda de^x04 VIP ReSPaWn . Ai primit ReSPaWn" );
	}
	
	else
	{
		TE_SayText( iPlayer , "^x03 Astazi nu ai noroc . Nu ai primit ReSPaWn" );
	}
}

TE_SayText( iReceiver , szMessage[ ] , any: ... )
{
	static szBuffer[ 192 ];
	vformat( szBuffer , 191 , szMessage , 3 );
	
	if( iReceiver )
		message_begin( MSG_ONE_UNRELIABLE , g_iSayText , _ , iReceiver ) , write_byte( iReceiver ) , write_string( szBuffer ) , message_end( );
	
	else
	{
		static iPlayers[ 32 ] , iNum , i;
		get_players( iPlayers , iNum , "ch" );
		
		for( i = 0; i < iNum; i++ )
			message_begin( MSG_ONE_UNRELIABLE , g_iSayText , _ , iPlayers[ i ] ) , write_byte( iPlayers[ i ] ) , write_string( szBuffer ) , message_end( );
	}
}
__________________
Ax3l is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 07-18-2012 , 19:26   Re: RoundStartEvent - help
Reply With Quote #6

Don't set bool in CmdVIP but in VIPMenu, so if player press exit or if menu disappear because of another menu or whatever, bool won't be set to true.

PHP Code:
public CmdVIPiPlayer )
{
    if( 
get_user_flagsiPlayer ) & ADMIN_LEVEL_H )
    {
        if( !
AlreadyUsediPlayer ] )
        {
            new 
Menu menu_create"VIP Menu" "VIPMenu" );
            
            
menu_additemMenu "GoDMoDe" "1" );
            
menu_additemMenu "NoClip" "2" );
            
menu_additemMenu "HeaLth" "3" );
            
menu_additemMenu "MoNeY" "4" );
            
menu_additemMenu "XP" "5" );
            
menu_additemMenu "ReSPaWn" "6" );
            
            
menu_displayiPlayer Menu );
            
            
AlreadyUsediPlayer ] = true;
        }
        
        else
        {
            
TE_SayTextiPlayer "^x03 Ai folosit deja meniul de VIP runda asta" );
        }
    }
    
    else
    {
        
TE_SayTextiPlayer "^x03 Nu ai acces la aceasta comanda" );
    }
}

public 
VIPMenuiPlayer Menu Item )
{
    if( 
Item == MENU_EXIT )
    {
        
menu_destroyMenu );
        
        return 
PLUGIN_HANDLED;
    }
    
    switch( 
Item )
    {
        case 
GoDMoDeiPlayer );
        case 
NoClipiPlayer );
        case 
HeaLthiPlayer );
        case 
MoNeYiPlayer );
        case 
XPiPlayer );
        case 
ReSPaWniPlayer );
    }
    
    return 
PLUGIN_HANDLED;

->

PHP Code:
public CmdVIPiPlayer )
{
    if( 
get_user_flagsiPlayer ) & ADMIN_LEVEL_H )
    {
        if( !
AlreadyUsediPlayer ] )
        {
            new 
Menu menu_create"VIP Menu" "VIPMenu" );
            
            
menu_additemMenu "GoDMoDe" "1" );
            
menu_additemMenu "NoClip" "2" );
            
menu_additemMenu "HeaLth" "3" );
            
menu_additemMenu "MoNeY" "4" );
            
menu_additemMenu "XP" "5" );
            
menu_additemMenu "ReSPaWn" "6" );
            
            
menu_displayiPlayer Menu );
        }
        
        else
        {
            
TE_SayTextiPlayer "^x03 Ai folosit deja meniul de VIP runda asta" );
        }
    }
    
    else
    {
        
TE_SayTextiPlayer "^x03 Nu ai acces la aceasta comanda" );
    }
}

public 
VIPMenuiPlayer Menu Item )
{
    if( 
Item != MENU_EXIT )
    {
        switch( 
Item )
        {
            case 
GoDMoDeiPlayer );
            case 
NoClipiPlayer );
            case 
HeaLthiPlayer );
            case 
MoNeYiPlayer );
            case 
XPiPlayer );
            case 
ReSPaWniPlayer );
            default : goto 
ExitMenu// who knows :)
        
}
        
AlreadyUsediPlayer ] = true;
    }

ExitMenu:
    
menu_destroyMenu );    
    return 
PLUGIN_HANDLED;

__________________
- tired and retired -

- my plugins -

Last edited by ConnorMcLeod; 07-18-2012 at 19:28.
ConnorMcLeod is offline
Ax3l
Member
Join Date: Nov 2009
Old 07-18-2012 , 19:46   Re: RoundStartEvent - help
Reply With Quote #7

Plugin works great with your "setting" ( new round ) . Thank you very much

Now i will change bool from CmdVIP to VIPMenu

Thanks a lot
__________________
Ax3l is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 22:10.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode