Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1
45.144.155.113:27015
de_dust2
Играчи: 30/32
de_dust2
Counter-Strike 1.6
VIP
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16
Counter-Strike 1.6
VIP
93.123.16.4:27022 Cs-PlovdiV.com - Aim Attack aim_aztec 0/16

Add function for reset score in AFK Slay

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
lantimilan
Извън линия
Foreigner
Foreigner
Мнения: 424
Регистриран на: 29 Ное 2017, 22:49
Се отблагодари: 31 пъти
Получена благодарност: 3 пъти

Add function for reset score in AFK Slay

Мнение от lantimilan » 14 Май 2020, 10:29

Hello im using one AFK Menager from bugsy i tell him one thing to make when kill player dont stay negative score i mean -1 , or -2 this form but to resetscore all time he dead player : like this :
set_user_frags(id, 0)
cs_set_user_deaths(id, 0)

Код за потвърждение: Избери целия код

#include <amxmodx> 
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

new const Version[] = "0.6";

#define MAX_PLAYERS 32

const ButtonBits = ( IN_FORWARD | IN_BACK | IN_MOVELEFT | IN_MOVERIGHT | IN_JUMP | IN_DUCK | IN_USE | IN_ATTACK | IN_ATTACK2 | IN_SCORE );

enum PlayerData
{
    Float:DistanceTraveled,
    LastMoveTime,
    LastPositionChange,
    SlayCount
}

new g_pdData[ MAX_PLAYERS + 1 ][ PlayerData ] , Float:g_fLastOrigin[ MAX_PLAYERS + 1 ][ 3 ];  
new g_iSysTime , bool:g_bInRound;
new g_pSlayTime , g_pSlayMode , g_pSpecSlays , g_pVerboseMode , g_pDistanceThreshold , g_pFreezeTime;

public plugin_init()  
{  
    register_plugin( "AFK Slay" , Version , "bugsy" );

    g_pSlayTime = register_cvar( "as_slaytime" , "30" );
    g_pSlayMode = register_cvar( "as_slaymode" , "2" );
    g_pSpecSlays = register_cvar( "as_spectatorslays" , "5" );
    g_pVerboseMode = register_cvar( "as_verbosemode" , "1" );
    g_pDistanceThreshold = register_cvar( "as_distancethreshold" , "100000" );
    
    g_pFreezeTime = get_cvar_pointer( "mp_freezetime" );
    
    RegisterHam( Ham_Spawn , "player" , "HamSpawn_Post" , true );
    register_forward( FM_CmdStart , "CmdStart" );
    register_logevent( "RoundStart" , 2 , "1=Round_Start" );
    register_logevent( "RoundEnd" , 2 , "1=Round_End" );
    
    set_task( 1.0 , "CheckAFK" , .flags="b" );
}  

public client_connect( id )
{
    g_pdData[ id ][ SlayCount ] = 0;
}

public HamSpawn_Post( iPlayer )
{
    if ( is_user_alive( iPlayer ) )
    {
        pev( iPlayer , pev_origin , g_fLastOrigin[ iPlayer ] );
        g_pdData[ iPlayer ][ DistanceTraveled ] = 0.0;
        
        g_pdData[ iPlayer ][ LastMoveTime ] = g_iSysTime + ( g_bInRound ? 0 : get_pcvar_num( g_pFreezeTime ) );
        g_pdData[ iPlayer ][ LastPositionChange ] = g_pdData[ iPlayer ][ LastMoveTime ];
    }
}

public RoundStart()
{
    g_bInRound = true;
}

public RoundEnd()
{
    g_bInRound = false;
}

public CmdStart( id , handle , seed )
{
    static Float:fOrigin[ 3 ];
    
    if ( g_bInRound && ( get_uc( handle , UC_Buttons ) & ButtonBits ) )
    {
        if ( g_fLastOrigin[ id ][ 0 ] )
        {
            pev( id , pev_origin , fOrigin );
            
            if ( ( g_fLastOrigin[ id ][ 0 ] != fOrigin[ 0 ] ) || ( g_fLastOrigin[ id ][ 1 ] != fOrigin[ 1 ] ) )
            {
                g_pdData[ id ][ LastPositionChange ] = get_systime();
            }
            
            g_pdData[ id ][ DistanceTraveled ] += get_distance_f( g_fLastOrigin[ id ] , fOrigin );
        }
        
        g_pdData[ id ][ LastMoveTime ] = g_iSysTime;
        g_pdData[ id ][ SlayCount ] = 0;
    }
}  

public CheckAFK()  
{  
    new iPlayers[ 32 ] , iNum , iPlayer , szName[32 ] , iSlayPos , iSpecPos , iVerbose , iSlayTime;
    static szSlayNames[ 512 ] , szSpecNames[ 512 ];
    
    iVerbose = get_pcvar_num( g_pVerboseMode );
    g_iSysTime = get_systime();
    iSlayTime = get_pcvar_num( g_pSlayTime );
    
    switch ( get_pcvar_num( g_pSlayMode ) )
    {
        case 1: get_players( iPlayers , iNum , "ae" , "TERRORIST" );
        case 2: get_players( iPlayers , iNum , "ae" , "CT" );
        default: get_players( iPlayers , iNum , "a" );
    }
    
    szSlayNames[ 0 ] = EOS;
    szSpecNames[ 0 ] = EOS;
    
    for ( new i = 0 ; i < iNum ; i++ )
    {
        iPlayer = iPlayers[ i ];
        pev( iPlayer , pev_origin , g_fLastOrigin[ iPlayer ] );
        
        if ( g_pdData[ iPlayer ][ LastMoveTime ] )
        {
            if ( 
                ( ( g_iSysTime - g_pdData[ iPlayer ][ LastMoveTime ] ) >= iSlayTime ) || 
                ( ( g_pdData[ iPlayer ][ DistanceTraveled ] < get_pcvar_num( g_pDistanceThreshold ) ) && ( g_iSysTime - g_pdData[ iPlayer ][ LastPositionChange ] ) >= iSlayTime ) )
            {
                user_kill( iPlayer );
                
                if ( iVerbose )
                    get_user_name( iPlayer , szName , charsmax( szName ) );
                
                if ( ++g_pdData[ iPlayer ][ SlayCount ]  >= get_pcvar_num( g_pSpecSlays ) )
                {
                    cs_set_user_team( iPlayer , CS_TEAM_SPECTATOR );
                    
                    if ( iVerbose )
                        iSpecPos += formatex( szSpecNames[ iSpecPos ] , charsmax( szSpecNames ) - iSpecPos , "%s^n" , szName );
                }
                else
                {
                    if ( iVerbose )
                        iSlayPos += formatex( szSlayNames[ iSlayPos ] , charsmax( szSlayNames ) - iSlayPos , "%s^n" , szName );
                }
            }
        }
    }
    
    if ( iVerbose && ( iSlayPos || iSpecPos ) )
    {
        set_hudmessage( 255 , 255 , 255 , 0.05 , 0.3 , 0 , 0.0 , 3.0 );
        show_hudmessage( 0 , "%s%s%s%s" , iSlayPos ? "AFK - Slayed:^n^n" : "" , szSlayNames , iSpecPos ? "AFK - Slayed / Moved to Spec:^n^n" : "" , szSpecNames );
    }
} 

Аватар
OciXCrom
Извън линия
Owner
Owner
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1296 пъти
Обратна връзка:

Add function for reset score in AFK Slay

Мнение от OciXCrom » 14 Май 2020, 14:12

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

new const Version[] = "0.6";

#define MAX_PLAYERS 32

const ButtonBits = ( IN_FORWARD | IN_BACK | IN_MOVELEFT | IN_MOVERIGHT | IN_JUMP | IN_DUCK | IN_USE | IN_ATTACK | IN_ATTACK2 | IN_SCORE );

enum PlayerData
{
	Float:DistanceTraveled,
	LastMoveTime,
	LastPositionChange,
	SlayCount
}

new g_pdData[ MAX_PLAYERS + 1 ][ PlayerData ] , Float:g_fLastOrigin[ MAX_PLAYERS + 1 ][ 3 ];
new g_iSysTime , bool:g_bInRound;
new g_pSlayTime , g_pSlayMode , g_pSpecSlays , g_pVerboseMode , g_pDistanceThreshold , g_pFreezeTime;

public plugin_init()
{
	register_plugin( "AFK Slay" , Version , "bugsy" );

	g_pSlayTime = register_cvar( "as_slaytime" , "30" );
	g_pSlayMode = register_cvar( "as_slaymode" , "2" );
	g_pSpecSlays = register_cvar( "as_spectatorslays" , "5" );
	g_pVerboseMode = register_cvar( "as_verbosemode" , "1" );
	g_pDistanceThreshold = register_cvar( "as_distancethreshold" , "100000" );

	g_pFreezeTime = get_cvar_pointer( "mp_freezetime" );

	RegisterHam( Ham_Spawn , "player" , "HamSpawn_Post" , true );
	register_forward( FM_CmdStart , "CmdStart" );
	register_logevent( "RoundStart" , 2 , "1=Round_Start" );
	register_logevent( "RoundEnd" , 2 , "1=Round_End" );

	set_task( 1.0 , "CheckAFK" , .flags="b" );
}

public client_connect( id )
{
	g_pdData[ id ][ SlayCount ] = 0;
}

public HamSpawn_Post( iPlayer )
{
	if ( is_user_alive( iPlayer ) )
	{
		pev( iPlayer , pev_origin , g_fLastOrigin[ iPlayer ] );
		g_pdData[ iPlayer ][ DistanceTraveled ] = 0.0;

		g_pdData[ iPlayer ][ LastMoveTime ] = g_iSysTime + ( g_bInRound ? 0 : get_pcvar_num( g_pFreezeTime ) );
		g_pdData[ iPlayer ][ LastPositionChange ] = g_pdData[ iPlayer ][ LastMoveTime ];
	}
}

public RoundStart()
{
	g_bInRound = true;
}

public RoundEnd()
{
	g_bInRound = false;
}

public CmdStart( id , handle , seed )
{
	static Float:fOrigin[ 3 ];

	if ( g_bInRound && ( get_uc( handle , UC_Buttons ) & ButtonBits ) )
	{
		if ( g_fLastOrigin[ id ][ 0 ] )
		{
			pev( id , pev_origin , fOrigin );

			if ( ( g_fLastOrigin[ id ][ 0 ] != fOrigin[ 0 ] ) || ( g_fLastOrigin[ id ][ 1 ] != fOrigin[ 1 ] ) )
			{
				g_pdData[ id ][ LastPositionChange ] = get_systime();
			}

			g_pdData[ id ][ DistanceTraveled ] += get_distance_f( g_fLastOrigin[ id ] , fOrigin );
		}

		g_pdData[ id ][ LastMoveTime ] = g_iSysTime;
		g_pdData[ id ][ SlayCount ] = 0;
	}
}

public CheckAFK()
{
	new iPlayers[ 32 ] , iNum , iPlayer , szName[32 ] , iSlayPos , iSpecPos , iVerbose , iSlayTime;
	static szSlayNames[ 512 ] , szSpecNames[ 512 ];

	iVerbose = get_pcvar_num( g_pVerboseMode );
	g_iSysTime = get_systime();
	iSlayTime = get_pcvar_num( g_pSlayTime );

	switch ( get_pcvar_num( g_pSlayMode ) )
	{
		case 1: get_players( iPlayers , iNum , "ae" , "TERRORIST" );
		case 2: get_players( iPlayers , iNum , "ae" , "CT" );
		default: get_players( iPlayers , iNum , "a" );
	}

	szSlayNames[ 0 ] = EOS;
	szSpecNames[ 0 ] = EOS;

	for ( new i = 0 ; i < iNum ; i++ )
	{
		iPlayer = iPlayers[ i ];
		pev( iPlayer , pev_origin , g_fLastOrigin[ iPlayer ] );

		if ( g_pdData[ iPlayer ][ LastMoveTime ] )
		{
			if (
				( ( g_iSysTime - g_pdData[ iPlayer ][ LastMoveTime ] ) >= iSlayTime ) ||
				( ( g_pdData[ iPlayer ][ DistanceTraveled ] < get_pcvar_num( g_pDistanceThreshold ) ) && ( g_iSysTime - g_pdData[ iPlayer ][ LastPositionChange ] ) >= iSlayTime ) )
			{
				user_kill( iPlayer );
				set_user_frags( iPlayer, 0 );
				cs_set_user_deaths( iPlayer, 0 );

				if ( iVerbose )
					get_user_name( iPlayer , szName , charsmax( szName ) );

				if ( ++g_pdData[ iPlayer ][ SlayCount ]  >= get_pcvar_num( g_pSpecSlays ) )
				{
					cs_set_user_team( iPlayer , CS_TEAM_SPECTATOR );

					if ( iVerbose )
						iSpecPos += formatex( szSpecNames[ iSpecPos ] , charsmax( szSpecNames ) - iSpecPos , "%s^n" , szName );
				}
				else
				{
					if ( iVerbose )
						iSlayPos += formatex( szSlayNames[ iSlayPos ] , charsmax( szSlayNames ) - iSlayPos , "%s^n" , szName );
				}
			}
		}
	}

	if ( iVerbose && ( iSlayPos || iSpecPos ) )
	{
		set_hudmessage( 255 , 255 , 255 , 0.05 , 0.3 , 0 , 0.0 , 3.0 );
		show_hudmessage( 0 , "%s%s%s%s" , iSlayPos ? "AFK - Slayed:^n^n" : "" , szSlayNames , iSpecPos ? "AFK - Slayed / Moved to Spec:^n^n" : "" , szSpecNames );
	}
}

Аватар
lantimilan
Извън линия
Foreigner
Foreigner
Мнения: 424
Регистриран на: 29 Ное 2017, 22:49
Се отблагодари: 31 пъти
Получена благодарност: 3 пъти

Add function for reset score in AFK Slay

Мнение от lantimilan » 15 Май 2020, 09:16

thanks ocixcrom

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта