Plugin "m_afk_guard" zle odlicza a...
Ravenek
03.12.2014
Witam.
Chodzi o to ze ten plugin jest bardzo dobry i prosty, taki jaki powinien byc ale jedna rzecz jest w nim zle.
Wyrzuca na spect / kick po X sekundach i tak powinno byc.
Tylko ze ten plugin liczy te np. 30 sekund od nowa co kazda runde, przyklad:
- jestem afk
- po 30s ma mnie wrzucic na spect
- minelo 15 sekund i ktos mnie zabil
- nowa runda
- minelo 15 sekund i nadal liczy do 30
Moje pytanie jest takie, czy umialby ktos go tak przerobic zeby dzialal tak jak np.afkkicker ze:
- jestem afk
- po 30 s ma mnei wyrzucic na spect
- minelo 15 sekund i ktos mnie zabil
- nowa runda
- minelo 15 sekund i zostalem przezucony na spect
Leci + za pomoc.
SMA w zalaczniku.
Attached Files
Edited by Ravenek, 03.12.2014 11:53.
^Szeregowy^ 03.12.2014
Łap nie testowałem
#include <amxmodx>#include <amxmisc>#include <engine>#include <cstrike>#define PLUGIN "m_afk_guard"#define VERSION "0.1"#define AUTHOR "Miczu"new Float: p_time[33]new Float: angle[33]public plugin_init() {register_plugin(PLUGIN, VERSION, AUTHOR)register_cvar("m_afk_kontrol_mode","2") //0 - off//1 - afk time -> kick//2 - afk time -> spec ->afk time 2 ->kickregister_cvar("m_afk_kontrol_time","30")register_cvar("m_afk_kontrol_time2","255")register_think("Afk_Guard","g_think")make_guard()}public make_guard(){new ent = create_entity("info_target")entity_set_string(ent, EV_SZ_classname,"Afk_Guard")entity_set_float(ent,EV_FL_nextthink,halflife_time() + 1.0)}public client_PreThink(id){if(get_user_button(id)!=get_user_oldbutton(id)) p_time[id]=get_gametime()}public g_think(ent){if(get_cvar_num("m_afk_kontrol_mode")){new players[32],numnew time1 = get_cvar_num("m_afk_kontrol_time")new time2 = get_cvar_num("m_afk_kontrol_time2")new mode = get_cvar_num("m_afk_kontrol_mode")get_players(players,num)for(new i=0;i<num;i++){if(!is_user_connected(players[i]) || is_user_bot(players[i]) || is_user_hltv(players[i])) continuenew Float:a[3]entity_get_vector(players[i],EV_VEC_angles,a)if(a[0]!=angle[players[i]]) p_time[players[i]] = get_gametime()angle[players[i]] = a[0]if((p_time[players[i]]+time1)<get_gametime()){if(mode==1) remove_him(players[i])else{if(cs_get_user_team(players[i])!= CS_TEAM_SPECTATOR){if(is_user_alive(players[i])) user_silentkill(players[i])cs_set_user_team(players[i],CS_TEAM_SPECTATOR)}else if((p_time[players[i]]+time1+time2)<get_gametime()){remove_him(players[i])}}}}entity_set_float(ent,EV_FL_nextthink,get_gametime() + 1.0)}else entity_set_float(ent,EV_FL_nextthink,halflife_time() + 10.0)}public remove_him(id){server_cmd("kick #%d ^"Zostalesz wyzucony za AFK!^"", get_user_userid(id))}public client_putinserver(id){p_time[id] = get_gametime()}