| scripts4ShitznGigglez |
12-27-2010 23:58 |
Re: Hello guys
All admins are immune with this copy.
PHP Code:
/* * BIG tanks to "aNNakin" * Big tanks to "Cheesy Peteza" * 2 Plugins autokick * Strongly Recommandate to FULLY servers */
#include <amxmodx> #include <amxmisc> #include <cstrike>
#define PLUGIN "Anti spec,afk" #define VERSION "9.0" #define AUTHOR "Prior of Sion"
#define ACCESS ADMIN_RESERVATION
#define MIN_AFK_TIME 30 #define WARNING_TIME 15 #define CHECK_FREQ 5
new const g_Reason[] = "No spectators,make a slot request: www.laleagane.ro/forum,RedDevil section"; new const g_Teams[2][32] = { "Terrorist", "Counter-Terrorist" }
new toggle_plugin, toggle_mode, toggle_time, toggle_announce, toggle_evoy; new g_Count[33],g_msgsaytext;
new g_oldangles[33][3] new g_afktime[33] new bool:g_spawned[33] = {true, ...}
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("TeamInfo","event_teaminfo", "a"); toggle_plugin = register_cvar("detectspectators", "1"); toggle_mode = register_cvar("detectspectators_mode", "2"); toggle_time = register_cvar("detectspectators_time", "120"); toggle_evoy = register_cvar("detectspectators_admins", "0"); toggle_announce = register_cvar("detectspectators_announe", "1"); g_msgsaytext = get_user_msgid("SayText");
register_cvar("afk_version", "1.0b", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY) register_cvar("mp_afktime", "90") register_cvar("mp_afkminplayers", "") set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b") register_event("ResetHUD", "playerSpawned", "be") }
public event_teaminfo() { if(get_pcvar_num(toggle_plugin) != 1) return PLUGIN_CONTINUE; new index = read_data(1); new team[ 2 ]; read_data(2, team, sizeof team - 1); if(team[0] == 'S') { if(g_Count[ index ] >= 1) g_Count[ index ] = 0; print(index, "[AFK Kicker] Se nao es admin, so podes tar em spect %d segundos!", get_pcvar_num( toggle_time ) ); set_task(1.0, "count_time", index+123, _, _, "b"); } else { g_Count[ index ] = 0; remove_task( index+123 ); } return PLUGIN_CONTINUE; }
public count_time(task) { new index = task - 123; if( !is_user_connected( index )) return 0; if( ( get_user_flags( index ) & ACCESS ) && get_pcvar_num( toggle_evoy ) == 0) return 0; g_Count[ index ]++; if( get_timer( index ) >= get_pcvar_num( toggle_time )) { switch( get_pcvar_num( toggle_mode ) ) { case 1: { new i = random_num( 1, 2 ); cs_set_user_team( index, i == 1 ? CS_TEAM_T : CS_TEAM_CT ); print( index, "[AFK Kicker] Foste transferido para %s !", i == 1 ? g_Teams[ 0 ] : g_Teams[ 1 ] ); } case 2: { server_cmd( "kick #%d ^"%s^"", get_user_userid( index ), g_Reason ); if( get_pcvar_num( toggle_announce ) == 1 ) print(0, "[AFK Kicker] %s foi kikado por estar mais de %d segundos AFK!", get_pcvar_num( toggle_time ) ); } } remove_task( index+ 123 ); g_Count[ index ] = 0; } return 0; }
public get_timer( index ) return g_Count[ index ];
public client_putinserver( id ) g_Count[ id ] = 0; public client_disconnect( id ) { g_Count[ id ] = 0; remove_task(id+123); }
print( id, const message[], {Float,Sql,Result,_}:... ) { new Buffer[ 128 ],Buffer2[ 128 ]; new players[ 32 ], index, num, i; formatex( Buffer2, sizeof Buffer2 - 1, "%s",message ); vformat( Buffer, sizeof Buffer - 1, Buffer2, 3 ); get_players( players, num, "ch" ); if( id ) { if( !is_user_connected( id )) return 0; message_begin( MSG_ONE, g_msgsaytext, _, id ); write_byte( id ); write_string( Buffer ); message_end(); } else { for( i = 0; i < num;i++ ) { index = players[ i ]; if( !is_user_connected( index )) continue; message_begin( MSG_ONE, g_msgsaytext, _, index ); write_byte( index ); write_string( Buffer ); message_end(); } } return PLUGIN_HANDLED }
public checkPlayers() { for (new i = 1; i <= get_maxplayers(); i++) { if (is_user_alive(i) && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) { new newangle[3] get_user_origin(i, newangle)
if ( newangle[0] == g_oldangles[i][0] && newangle[1] == g_oldangles[i][1] && newangle[2] == g_oldangles[i][2] ) { g_afktime[i] += CHECK_FREQ check_afktime(i) } else { g_oldangles[i][0] = newangle[0] g_oldangles[i][1] = newangle[1] g_oldangles[i][2] = newangle[2] g_afktime[i] = 0 } } } return PLUGIN_HANDLED }
check_afktime(id) { if ( is_user_admin ( id ) ) return 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] Tu tens %i segundos para te mexeres senao vais ser kikado", timeleft) } else if (g_afktime[id] > maxafktime) { new name[32] get_user_name(id, name, 31) client_print(0, print_chat, "[AFK Kicker] %s foi kikado por estar mais de %d segundos AFK!", name, maxafktime) log_amx("%s foi kikado por estar mais de %d segundos AFK!", name, maxafktime) server_cmd("kick #%d ^"[AFK Kicker] Foste kikado por estar mais de %i seconds AFK!^"", get_user_userid(id), maxafktime) } } }
public playerSpawned(id) { g_spawned[id] = false new sid[1] sid[0] = id set_task(0.75, "delayedSpawn",_, sid, 1) return PLUGIN_HANDLED }
public delayedSpawn(sid[]) { get_user_origin(sid[0], g_oldangles[sid[0]]) g_spawned[sid[0]] = true return 1; }
|