Raised This Month: $51 Target: $400
 12% 

Afk semiclip


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Saint Sinner
Senior Member
Join Date: Feb 2016
Old 03-11-2016 , 22:14   Afk semiclip
Reply With Quote #1

I want to get semiclip to afk ... I want to enable semiclip and disable after player move

set_user_godmode( id );
set_pev( id , pev_solid, SOLID_NOT)

and

set_user_godmode( id , 1 );
set_pev( id , pev_solid, SOLID_SLIDEBOX);

Code:
#include <amxmodx>
#include <fun>

#define VERSION "1.1"

#define MIN_AFK_TIME    30 /* I use this incase stupid admins accidentally set mp_afktime to something silly. */
#define WARNING_TIME    15 /* Start warning the user this many seconds before they are about to be kicked. */
#define CHECK_FREQ  5 /* This is also the warning message frequency. */

new g_afktime[33];
new g_was_afk[33];

new g_oldangles[33][3];
new bool:g_spawned[33] = { true, ... };

new g_spirte_id;

public plugin_init()
{
    register_plugin( "AFK Kicker", VERSION, "Cheesy Peteza" );
    register_cvar( "afk_version", VERSION, FCVAR_SERVER | FCVAR_EXTDLL | FCVAR_SPONLY );

    register_cvar( "mp_afktime", "90" ); /* Kick people AFK longer than this time */
    register_cvar( "mp_afkminplayers", "8" ); /* Only kick AFKs when there is atleast this many players on the server */
    set_task( float( CHECK_FREQ ), "checkPlayers", _, _, _, "b" );
    register_event( "ResetHUD", "playerSpawned", "be" );
}

public checkPlayers()
{
    for ( new id = 1; id <= get_maxplayers(); id++ )
    {
        if ( is_user_alive( id ) && is_user_connected( id ) && !is_user_bot( id ) && !is_user_hltv( id ) && g_spawned[id] )
        {
            new newangle[3];
            get_user_origin( id, newangle );

            if ( newangle[0] == g_oldangles[id][0] && newangle[1] == g_oldangles[id][1] && newangle[2] == g_oldangles[id][2] )
            {
                g_afktime[id] += CHECK_FREQ;
                check_afktime( id );
            }
            else
            {
                g_oldangles[id][0]  = newangle[0];
                g_oldangles[id][1]  = newangle[1];
                g_oldangles[id][2]  = newangle[2];
                g_afktime[id]      = 0;

                if ( g_was_afk[id] )
                {
                    new name[32];
                    get_user_name( id, name, 31 );

                    set_user_godmode( id );
                    remove_sprite( id );
                    g_was_afk[id] = 0;
                    client_print( 0, print_chat, "[AFK Kicker] %s is NOT in godmode state for STOP being AFK.", name );
                }
            }
        }
    }
    return(PLUGIN_HANDLED);
}

check_afktime( id )
{
    new numplayers  = get_playersnum();
    new minplayers  = get_cvar_num( "mp_afkminplayers" );

    if ( numplayers >= minplayers )
    {
        new maxafktime = get_cvar_num( "mp_afktime" );

        if ( maxafktime < MIN_AFK_TIME )
        {
            log_amx( "cvar mp_afktime %i is too low. Minimum value is %i.", maxafktime, MIN_AFK_TIME );
            maxafktime = MIN_AFK_TIME;
            set_cvar_num( "mp_afktime", MIN_AFK_TIME );
        }

        if ( maxafktime - WARNING_TIME <= g_afktime[id] < maxafktime )
        {
            new timeleft = maxafktime - g_afktime[id];
            client_print( id, print_chat, "[AFK Kicker] You have %i seconds to move or you get godmode for being AFK", timeleft );
        }
        else if ( g_afktime[id] > maxafktime )
        {
            if ( !g_was_afk[id] )
            {
                new name[32];
                get_user_name( id, name, 31 );
                client_print( 0, print_chat, "[AFK Kicker] %s is in godmode state for being AFK longer than %i seconds", name, maxafktime );
                set_user_godmode( id, 1 );
                attach_sprite( id );
                g_was_afk[id] = 1;
            }
        }
    }
}

public plugin_precache()
{
    g_spirte_id = precache_model( "sprites/afk_sprite.spr" );
}

stock remove_sprite( user_id )
{
    if ( !is_user_connected( user_id ) )
    {
        return;
    }

    message_begin( MSG_ALL, SVC_TEMPENTITY );
    write_byte( TE_KILLPLAYERATTACHMENTS );
    write_byte( user_id );
    message_end();
}

stock attach_sprite( user_id )
{
    if ( !is_user_connected( user_id ) )
    {
        return;
    }

    message_begin( MSG_ALL, SVC_TEMPENTITY );
    write_byte( TE_PLAYERATTACHMENT );
    write_byte( user_id );
    write_coord( 60 );
    write_short( g_spirte_id );
    write_short( 9000 );
    message_end();
}

public client_connect( id )
{
    g_afktime[id] = 0;
    return(PLUGIN_HANDLED);
}

public client_putinserver( id )
{
    g_afktime[id] = 0;
    return(PLUGIN_HANDLED);
}

public playerSpawned( id )
{
    g_spawned[id] = false;
    new sid[1];
    sid[0] = id;
    set_task( 0.75, "delayedSpawn", _, sid, 1 ); /* Give the player time to drop to the floor when spawning */
    return(PLUGIN_HANDLED);
}

public delayedSpawn( sid[] )
{
    get_user_origin( sid[0], g_oldangles[sid[0]] );
    g_spawned[sid[0]] = true;
    return(PLUGIN_HANDLED);
}

Last edited by Saint Sinner; 03-11-2016 at 22:14.
Saint Sinner is offline
raizo11
BANNED
Join Date: Dec 2013
Location: https://t.me/pump_upp
Old 03-12-2016 , 08:41   Re: Afk semiclip
Reply With Quote #2

Code:
#include <fakemeta>
Code:
new plr_solid[33];
Code:
set_user_godmode( id );
plr_solid[id] = SOLID_SLIDEBOX;
set_pev(id, pev_solid, SOLID_SLIDEBOX);
Code:
plr_solid[id] = SOLID_NOT;
set_pev(id, pev_solid, SOLID_NOT);
set_user_godmode( id, 1 );
raizo11 is offline
Send a message via ICQ to raizo11 Send a message via AIM to raizo11 Send a message via MSN to raizo11 Send a message via Yahoo to raizo11 Send a message via Skype™ to raizo11
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 04:51.


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