This will make a player drop the awp and print a message to him if he scopes for more than 2 seconds.
Allowed scope seconds set by cvar asl_scopeseconds, default 2.
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
new const Version[] = "0.1";
const Task_Zoom = 123123;
new g_pScopeLimit;
public plugin_init()
{
register_plugin( "AWP Scope Limit" , Version , "bugsy" );
RegisterHam( Ham_Weapon_SecondaryAttack , "weapon_awp" , "AWP_SecondaryAttack_Post" , true );
register_event( "CurWeapon" , "Event_CurWeapon" , "b" , "1=0" , "2=18" );
g_pScopeLimit = register_cvar( "asl_scopeseconds" , "2" );
}
public client_disconnect( id )
{
remove_task( id + Task_Zoom );
}
public AWP_SecondaryAttack_Post( iEntity )
{
new id = pev( iEntity , pev_owner );
if ( cs_get_user_zoom( id ) == 1 )
{
remove_task( id + Task_Zoom );
}
else if ( !task_exists( id + Task_Zoom ) )
{
set_task( get_pcvar_float( g_pScopeLimit ) , "DropAWP" , id + Task_Zoom );
}
}
public Event_CurWeapon( id )
{
remove_task( id + Task_Zoom );
}
public DropAWP( TaskID )
{
new iSeconds = get_pcvar_num( g_pScopeLimit );
TaskID -= Task_Zoom;
engclient_cmd( TaskID , "drop" , "weapon_awp" );
client_print( TaskID , print_chat , "* Do not zoom for more than %d second%s!" , iSeconds , iSeconds > 1 ? "s" : "" );
}
__________________