/*
Plugin zostal stowrzony dla graj24.eu DR
Jest on zrobiony na podstawie afk kiss.
Standardowy czas odswiezania to 5sek.
Cvary:
terro_tislay 30 - Po jakim czasie ma zabic TT
ct_tikick 40 - Po jakim czasie ma wywalic CT
ct_kickinfo 0/1 - Czy ma pokazywac ostrzezenie
All Rights Reserved.
*/
#include <amxmodx>
#define CO_ILE 5
new g_last[33][3];
new g_spawn[33][3]
new g_time[33];
new bool:g_spawned[33];
public plugin_init() {
register_plugin("DR AFK", "1.1", "byQQ");
register_cvar("terro_tislay", "30");
register_cvar("ct_tikick", "40");
register_cvar("ct_kickinfo", "1");
register_event("ResetHUD", "playerSpawned", "be");
set_task(float(CO_ILE), "SprawdzAFK", _, _, _, "b");
}
public client_connect(id)
{
g_time[id] = 0;
g_spawned[id] = false;
}
public playerSpawned(id)
{
g_spawned[id] = true;
get_user_origin(id, g_last[id], 3);
get_user_origin(id, g_spawn[id]);
}
public SprawdzAFK()
{
new players[32], num, id;
new tslay, ctkick, playerpos[3], playerview[3];
get_players(players, num, "ac");
tslay = get_cvar_num("terro_tislay");
ctkick = get_cvar_num("ct_tikick");
for(new i = 0; i < num; i++)
{
id = players[i];
get_user_origin(id, playerview, 3);
get_user_origin(id, playerpos);
if(g_spawned[id])
{
if(playerview[0] == g_last[id][0] && playerview[1] == g_last[id][1] && playerview[2] == g_last[id][2] ||
(playerpos[0] == g_spawn[id][0] && playerpos[1] == g_spawn[id][1] && playerpos[2] == g_spawn[id][2]))
{
g_time[id] += CO_ILE;
if(get_user_team(id) == 1 && g_time[id] >= tslay)
slay(id);
else if(g_time[id] >= ctkick && !immu(id))
{
kick(id, ctkick);
info(id, ctkick);
}
} else g_time[id] = 0;
}
g_last[id][0] = playerview[0];
g_last[id][1] = playerview[1];
g_last[id][2] = playerview[2];
}
}
slay(id)
{
user_silentkill(id);
client_print(0, print_chat, "[DR AFK] Terrorysta zostal zabity za brak checi do gry.");
}
kick(id, czas)
{
new name[33];
get_user_name(id, name, 32);
client_print(0, print_chat, "[DR AFK] %s byl AFK przez %d sekund i zostal wykopany.", name, czas);
server_cmd("kick #%d ^"Zostales wywalony bo byles AFK %d sek.^"", get_user_userid(id), czas)
}
info(id, czas)
{
if(get_cvar_num("ct_kickinfo") && g_time[id] >= czas/2 && g_time[id] != czas)
client_print(id, print_chat, "[DR AFK] Rusz sie, za %d sek. zostaniesz wywalony.", czas-g_time[id]);
}
bool:immu(id) return (get_user_flags(id) & ADMIN_IMMUNITY) ? true : false;
Dodać kolor chat: [DR AFK] nick czas - zielony reszta standard.
Tak aby zabijał TT tylko gdy w ogóle się nie ruszył(Na początku nowej rundy po 30 sek) a gdy się ruszy u później będzie "afczył" już go nie zabijało.
W razie jakichkolwiek pytań proszę pisać.
Jeśli coś takiego jest w ogóle nie do wykonania proszę o wywalenie opcji zabijania TT.
Ref.
Ref.
Użytkownik GaddY edytował ten post 01.10.2011 09:16