Raised This Month: $ Target: $400
 0% 

AFK problem


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
FiFiX
Senior Member
Join Date: May 2008
Location: Poland
Old 12-24-2009 , 06:28   AFK problem
Reply With Quote #1

Hello, I've got problem, coz this plugin shouldn't transfer terrorist but it does...
Can anyone help me?
Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fakemeta_util>

#define OFFSET_TEAM    114

#define PLUGIN "AFK to Spectator"
#define VERSION "1.1"
#define AUTHOR "bugsy/fifka"

new Float:g_fOrigin[33][3];
new g_Immunity[33];
new g_AFKPoints[33];

new g_pEnabled;
new g_pAFKTime;
new g_pAllowImmunity;
new g_pImmunityFlag;

enum CsTeams
{
CS_TEAM_UNASSIGNED = 0,
CS_TEAM_T = 1,
CS_TEAM_CT = 2,
CS_TEAM_SPECTATOR = 3
}; 

new g_FreezeTime;

new g_MsgTeamInfo;

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
    register_logevent("logevent_round_start", 2, "1=Round_Start");

    
    g_pEnabled = register_cvar( "afkspec_enabled" , "1" );
    g_pAFKTime = register_cvar( "afkspec_time" , "60" );
    g_pAllowImmunity = register_cvar( "afkspec_allowimmunity" , "1" );
    g_pImmunityFlag = register_cvar("afkspec_immunityflag" , "a" );
    
    set_task( 1.0, "CheckAFK", _, _, _, "b");
    
    g_MsgTeamInfo = get_user_msgid("TeamInfo");
}

public client_putinserver(id)
{
    new szImmunityFlag[2];
    
    g_fOrigin[id][0] = 0.0;
    g_fOrigin[id][1] = 0.0;
    g_fOrigin[id][2] = 0.0;
    
    g_AFKPoints[id] = 0;
    
    get_pcvar_string( g_pImmunityFlag, szImmunityFlag , 1);
    g_Immunity[id] = get_user_flags(id) & read_flags(szImmunityFlag);
}

//================================
//=====Freezetime events=====
//================================
public event_new_round()
{
    g_FreezeTime = 1;
}

public logevent_round_start()
{
    g_FreezeTime = 0;
}

public CheckAFK()
{
    if ( g_FreezeTime || !get_pcvar_num(g_pEnabled) )
        return PLUGIN_HANDLED;
        
    new iPlayers[32];
    new iPlayersNum;
    new iPlayer;
    new Float:fOrigin[3];
    
    get_players ( iPlayers, iPlayersNum , "ac" );
    
    for ( new i ; i < iPlayersNum ; i++ )
    {
        iPlayer = iPlayers[i];
        
        //Do not count player as AFK if:
        //    - Player is terrorist
        //    - Allow immunity is enabled and player has immunity
        if ((get_user_team(iPlayer) == 1) || (( get_pcvar_num(g_pAllowImmunity) && g_Immunity[iPlayer])))
        {
            continue;
        }
        
        pev( iPlayer , pev_origin , fOrigin );
        
        //Compare players origin to origin from the last check, if the same then the player has not moved.
        if ( (g_fOrigin[iPlayer][0] == fOrigin[0]) && (g_fOrigin[iPlayer][1] == fOrigin[1]) ) 
        {
            //Add points (equivalent to seconds since our interval is 1 second.
            g_AFKPoints[iPlayer]++;
                        
            if ( g_AFKPoints[iPlayer] >= (get_pcvar_num(g_pAFKTime)) )
            {
                
                new szName[33];
                get_user_name ( iPlayer , szName , 32 );
                client_print ( 0 , print_chat , "* %s was moved to spectator for being AFK" , szName );
                
                fm_set_spectator( iPlayer );
            }
        }
        else
        {
            g_AFKPoints[iPlayer] = 0;
        }
        
        g_fOrigin[iPlayer][0] = fOrigin[0];
        g_fOrigin[iPlayer][1] = fOrigin[1];
        g_fOrigin[iPlayer][2] = fOrigin[2];
    }
    
    return PLUGIN_HANDLED;
}

public fm_set_spectator(id )
{
    user_kill(id)
    set_pdata_int( id, OFFSET_TEAM , 3 );
    dllfunc( DLLFunc_ClientUserInfoChanged, id, engfunc( EngFunc_GetInfoKeyBuffer, id ) );
    emessage_begin( MSG_BROADCAST, g_MsgTeamInfo );
    ewrite_byte( id );
    ewrite_string( "SPECTATOR" );
    emessage_end();
}
FiFiX is offline
Send a message via Skype™ to FiFiX
 



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 04:12.


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