AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   AFK problem (https://forums.alliedmods.net/showthread.php?t=113183)

FiFiX 12-24-2009 06:28

AFK problem
 
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 12-25-2009 06:24

Re: AFK problem
 
Anyone?


All times are GMT -4. The time now is 04:12.

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