Raised This Month: $ Target: $400
 0% 

AMXX1.55 + AFK_MANAGER


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
jimmy_cr
Member
Join Date: Sep 2004
Old 08-26-2005 , 06:10   Re:
Reply With Quote #2

should this change help is this correctly written or not


Code:
/* AMX Mod script. * * [AFK_MANAGER] AFK Plugin for AMXMOD ([email protected]) * * This file is provided as is (no warranties). * */ /* put in amx.cfg: * *  enable / disable afk checking when bomb is planted or when hostages are grabbed 0=off 1=on (default 1) *  amx_afkonobj < value > * *  enable / disable afk checking on round end or when player is killed  0=off 1=on (default 1) *  amx_afkcheck  < value > * *  rounds before idler is kicked (default 2) *  amx_afkrounds < value > * *    enable / disable afk resetting if a player was afk but came back 0=off 1=on (default 1) *    amx_resetafk < value > * */ #include <amxmodx> new afk_pos[33][3] new afk_count[33] new Float:t_respawn[33] new user_money[33] public plugin_init() {     register_plugin("AFK MANAGER","1.0","outkast134 ([email protected])")     register_cvar("amx_afkonobj","1")     register_cvar("amx_afkcheck","1")     register_cvar("amx_afkrounds","2")     register_cvar("amx_resetafk","1")     register_event("RoundTime","round_start", "bc")     register_event("SendAudio", "user_plbomb", "ac", "2&%!MRAD_BOMBPL")     register_event("SendAudio","round_end","ac","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")     register_event("TextMsg","map_restart","ac","2&#Game_C","2&#Game_w")     register_event("DeathMsg","client_death","a")     register_event("DeathMsg","reset_player","a")     register_event("DeathMsg","check_lastman","a")     register_event("Money","user_touchhost","b","2=1")     register_event("ResetHUD","plr_respawn","b") } public client_connect(id){     afk_pos[id][0] = 0     afk_pos[id][1] = 0     afk_pos[id][2] = 0     afk_count[id] = 0     return PLUGIN_CONTINUE } public client_disconnect(id){     afk_pos[id][0] = 0     afk_pos[id][1] = 0     afk_pos[id][2] = 0     afk_count[id] = 0     return PLUGIN_CONTINUE } // resets afk counts when map is restarted public map_restart() {     if (get_cvar_num("amx_afkcheck") == 1) {         for(new a = 1; a < get_maxplayers() + 1; ++a) {             afk_count[a] = 0         }     }     return PLUGIN_CONTINUE } //gets clients coordinates to use with checking for afk later public round_start() {     new roundtime = floatround(get_cvar_float("mp_roundtime") * 60.0)     if (get_cvar_num("amx_afkcheck") == 1 && roundtime == read_data(1)) {         new origin[3]         for(new a = 1; a < get_maxplayers() + 1; ++a) {             get_user_origin(a,origin,0)             afk_pos[a][0] = origin[0]             afk_pos[a][1] = origin[1]             afk_pos[a][2] = origin[2]         }     }     return PLUGIN_CONTINUE } // resets a clients afk count if they were afk but are not anymore public reset_player() {     if (get_cvar_num("amx_afkcheck") == 1 && get_cvar_num("amx_resetafk") == 1) {         new killer, victim         killer = read_data(1)         victim = read_data(2)         //make sure there is no worldspawn and that the user didnt kill himself         if (killer != victim && killer) {             if (afk_count[killer] > 0) {                 //if player gets a kill hes not afk anymore and his count starts over                 afk_count[killer] = 0             }         }     }     return PLUGIN_CONTINUE } //checks for afks at rounds end public round_end() {     if (get_cvar_num("amx_afkcheck") == 1) {         for(new a = 1; a < get_maxplayers() + 1; ++a) {             // only check the alive players             if (is_user_alive(a)) {                 new afk_max = get_cvar_num("amx_afkrounds")                 new origin[3], authid[32], name[32]                 get_user_origin(a,origin,0)                 //compare coords with spawn ones                 if (origin[0] == afk_pos[a][0] && origin[1] == afk_pos[a][1] && origin[2] != 0) {                     afk_count[a]++                     // if user has been afk for X rounds straight we will kick them                     if (afk_count[a] >= afk_max) {                         client_cmd(a,"echo [AFK MANAGER] Kicked due to idling.;disconnect")                         get_user_authid(a,authid,31)                         get_user_name(a,name,31)                         //log_message("[AFK MANAGER] %s<%s> kicked due to idling",name,authid)                         client_print(0,print_chat,"[AFK MANAGER] %s was kicked being afk too much.",name)                     } else {                         get_user_name(a,name,31)                         //slay the afk player and count it                         user_kill(a,1)                         client_print(0,print_chat,"[AFK MANAGER] %s was slayed for being AFK.",name)                     }                 }             }         }     }     return PLUGIN_CONTINUE } // checks to see if player was afk at spawn when killed public client_death() {     if (get_cvar_num("amx_afkcheck") == 1) {         new killer, victim, killerteam, victimteam         killer = read_data(1)         victim = read_data(2)         killerteam = get_user_team(killer)         victimteam = get_user_team(victim)         if (killerteam == victimteam)             return PLUGIN_HANDLED         //make sure that the victim did not kill himself and that it was not a worldspawn         if (killer != victim && killer){             new afk_max = get_cvar_num("amx_afkrounds")             new origin[3], authid[32], name[32]             get_user_origin(victim,origin,0)             //compare coords with spawn ones             if ( (origin[0] > afk_pos[victim][0] - 10 && origin[0] < afk_pos[victim][0] + 10) &&                    (origin[1] > afk_pos[victim][1] - 10 && origin[1] < afk_pos[victim][1] + 10) &&                      (origin[2] != 0) ) {                 afk_count[victim]++                 // if user has been afk for X rounds straight we will kick them                 if (afk_count[victim] >= afk_max) {                     client_cmd(victim,"echo [AFK MANAGER] Kicked due to idling.;disconnect")                     get_user_authid(victim,authid,31)                     get_user_name(victim,name,31)                     //log_message("[AFK MANAGER] %s<%s> kicked due to idling",name,authid)                     client_print(0,print_chat,"[AFK MANAGER] %s was kicked being afk too much.",name)                 } else {                     get_user_name(victim,name,31)                     client_print(0,print_chat,"[AFK MANAGER] %s was AFK.",name)                 }             }         }     }     return PLUGIN_CONTINUE } //checks to make sure that the last man standing on a team isn't afk public check_lastman() {     new team     new tnum = 0     new ctnum = 0     new ct_id     new t_id     for(new a = 1; a < get_maxplayers() + 1; ++a) {         if (is_user_alive(a)) {             team = get_user_team(a)             if (team == 1) {                 t_id = a                 tnum++             }             if (team == 2) {                 ct_id = a                 ctnum++             }         }     }     if (tnum > 1 && ctnum > 1) {         return PLUGIN_HANDLED     }     if (tnum == 1 && ctnum > 1 && t_id != 0) {         new afk_max = get_cvar_num("amx_afkrounds")         new origin[3], authid[32], name[32]         get_user_origin(t_id,origin,0)         //compare coords with spawn ones         if (origin[0] == afk_pos[t_id][0] && origin[1] == afk_pos[t_id][1] && origin[2] != 0) {             afk_count[t_id]++             // if user has been afk for X rounds straight we will kick them             if (afk_count[t_id] >= afk_max) {                 client_cmd(t_id,"echo [AFK MANAGER] Kicked due to idling.;disconnect")                 get_user_authid(t_id,authid,31)                 get_user_name(t_id,name,31)                 //log_message("[AFK MANAGER] %s<%s> kicked due to idling",name,authid)                 client_print(0,print_chat,"[AFK MANAGER] %s was kicked being afk too much.",name)             } else {                 get_user_name(t_id,name,31)                 user_kill(t_id,1)                 client_print(0,print_chat,"[AFK MANAGER] %s was slayed for being AFK.",name)             }         }     }     if (ctnum == 1 && tnum > 1 && ct_id != 0) {         new afk_max = get_cvar_num("amx_afkrounds")         new origin[3], authid[32], name[32]         get_user_origin(ct_id,origin,0)         //compare coords with spawn ones         if (origin[0] == afk_pos[ct_id][0] && origin[1] == afk_pos[ct_id][1] && origin[2] != 0) {             afk_count[ct_id]++             // if user has been afk for X rounds straight we will kick them             if (afk_count[ct_id] >= afk_max) {                 client_cmd(ct_id,"echo [AFK MANAGER] Kicked due to idling.;disconnect")                 get_user_authid(ct_id,authid,31)                 get_user_name(ct_id,name,31)                 //log_message("[AFK MANAGER] %s<%s> kicked due to idling",name,authid)                 client_print(0,print_chat,"[AFK MANAGER] %s was kicked being afk too much.",name)             } else {                 get_user_name(ct_id,name,31)                 user_kill(ct_id,1)                 client_print(0,print_chat,"[AFK MANAGER] %s was slayed for being AFK.",name)             }         }     }     return PLUGIN_CONTINUE } //checks for afks when a player grabs hostages public user_touchhost(id) {     new mapname[4]     get_mapname(mapname,3)     if (!equali(mapname,"cs_",3))         return PLUGIN_CONTINUE     if (get_cvar_num("amx_afkonobj") == 1) {         new money = read_data(1)         //when a player touches a hostage his money increases by incs of 150         if ((money - user_money[id] == 150) && (t_respawn[id] < get_gametime()) ) {             for(new a = 1; a < get_maxplayers() + 1; ++a) {                 //only check alive players for afk                 if(is_user_alive(a)) {                     new afk_max = get_cvar_num("amx_afkrounds")                     new origin[3], authid[32], name[32]                     get_user_origin(a,origin,0)                     //compare coords with spawn ones                     if (origin[0] == afk_pos[a][0] && origin[1] == afk_pos[a][1] && origin[2] != 0) {                         afk_count[a]++                         // if user has been afk for X rounds straight we will kick them                         if (afk_count[a] >= afk_max) {                             client_cmd(a,"echo [AFK MANAGER] Kicked due to idling.;disconnect")                             get_user_authid(a,authid,31)                             get_user_name(a,name,31)                             //log_message("[AFK MANAGER] %s<%s> kicked due to idling",name,authid)                             client_print(0,print_chat,"[AFK MANAGER] %s was kicked being afk too much.",name)                         } else {                             get_user_name(a,name,31)                             user_kill(a,1)                             client_print(0,print_chat,"[AFK MANAGER] %s was slayed for being AFK.",name)                         }                     }                 }             }         }         //update users money         user_money[id] = money     }     return PLUGIN_CONTINUE } //checks for afks when a player plants the bomb public user_plbomb() {     new mapname[4]     get_mapname(mapname,3)     if (!equali(mapname,"de_",3))         return PLUGIN_CONTINUE     if (get_cvar_num("amx_afkonobj") == 1) {         for(new a = 1; a < get_maxplayers() + 1; ++a) {             //only check alive players for afk             if(is_user_alive(a)){                 new afk_max = get_cvar_num("amx_afkrounds")                 new origin[3], authid[32], name[32]                 get_user_origin(a,origin,0)                 //compare coords with spawn ones                 if (origin[0] == afk_pos[a][0] && origin[1] == afk_pos[a][1] && origin[2] != 0) {                     afk_count[a]++                     // if user has been afk for X rounds straight we will kick them                     if (afk_count[a] >= afk_max) {                         client_cmd(a,"echo [AFK MANAGER] Kicked due to idling.;disconnect")                         get_user_authid(a,authid,31)                         get_user_name(a,name,31)                         //log_message("[AFK MANAGER] %s<%s> kicked due to idling",name,authid)                         client_print(0,print_chat,"[AFK MANAGER] %s was kicked being afk too much.",name)                     } else {                         get_user_name(a,name,31)                         user_kill(a,1)                         client_print(0,print_chat,"[AFK MANAGER] %s was slayed for being AFK.",name)                     }                 }             }         }     }     return PLUGIN_CONTINUE } //helper function for user_hosttouch public plr_respawn(id) {     t_respawn[id] = get_gametime() + 15.0 }

changed:
public plugin_init()
public user_touchhost(id)
public user_plbomb()

or just simple change "public plugin_init()" :

Code:
    new mapname[4]     get_mapname(mapname,3)     if (equali(mapname,"de_",3))         register_event("SendAudio", "user_plbomb", "ac", "2&%!MRAD_BOMBPL")     if (equali(mapname,"cs_",3))         register_event("Money","user_touchhost","b","2=1")
jimmy_cr is offline
Send a message via ICQ to jimmy_cr
 



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 14:24.


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