You should do something like that :
public fwdPlayerPreThink( id )
if( get_pcvar_num(g_Enabled) && is_user_alive(id) )
new iTarget, iBody;
get_user_aiming( id, iTarget, iBody );
if( is_user_alive(iTarget) && !g_AlreadyZoomed[iTarget] && get_user_team(id) != get_user_team(iTarget) )
if ( CS_SET_FIRST_ZOOM <= cs_get_user_zoom(id) <= CS_SET_SECOND_ZOOM )
Added a check if player is alive and organized in a way you get less extra instructions.
About the duration/holdtime/color more easily, it should be customizable.
About the flag, instead of writing 0, it would be a good idea to do a define like in HLSDK : #define FFADE_IN 0x0000