Prosił bym o dodanie do tego pluginu http://amxx.pl/topic...6-ultimate-afk/możliwości wybrania która drużyna ma być sprawdzana a dokładniej żeby plugin nie wywalał gracza z tt ponieważ posiadam serwer DR i przy ustawieniu aby zabijało gracza na respie wcześniej rundy by się szybko kończyły jeśli gracz był by afk a ustawiając aby to był większy czas to gdy afk pozostaje gracz ct trwa to wieczność.
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
- Nie możesz napisać tematu
- Zaloguj się, aby dodać odpowiedź
#2 IntelCom
Napisano 05.03.2015 18:41
Sprawdź
// U-AFK [Ultimate AFK]
// Aut(h)or : HuberTM
// Version 1.9f
// Thanks : AFK-KISS author's (bomb drop public)
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <colorchat>
#include <fun>
#define PLUGIN "Ultimate AFK"
#define VERSION "2.0" // version
#define AUTHOR "HubertTM" // aut(h)or nie zmieniaj
#define TAG "U-AFK" // TAG, ktory wyswietla sie przy wszystkich wiadomosciach pluginu
new bool:bAfkSpawn[33];
new TimeAFK[33];
new TimeSpect[33];
new Chance[33];
new bool:PlayerAFK[33];
new bombcarrier
new bool:freezetime = false;
new Float:ile_freezetime;
new cKick, pKick, cTimeAFK, pTimeAFK, cTimeSpect, pTimeSpect, cSay, pSay, cShoot, pShoot, cAdmin, pAdmin, cWarn, pWarn, cPlayernum, pPlayernum
new cKillSpawn, pKillSpawn, cTimeKillSpawn, pTimeKillSpawn, cChance, pChance, cBombDropTime, pBombDropTime, cCheckSpawn, pCheckSpawn, cPlayersInfoAFK, pPlayersInfoAFK
public plugin_end()
remove_task(490);
new debug2[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Killed, "player", "player_killed", 1);
RegisterHam(Ham_Spawn, "player", "player_spawn", 1);
///
register_clcmd("say_team", "player_say");
register_clcmd("say", "player_say");
///
///
register_clcmd("buy", "PlayerBoughtItem");
register_clcmd("rebuy", "PlayerBoughtItem");
register_clcmd("autobuy", "PlayerBoughtItem");
register_clcmd("glock", "PlayerBoughtItem");
register_clcmd("usp", "PlayerBoughtItem");
register_clcmd("p228", "PlayerBoughtItem");
register_clcmd("deagle", "PlayerBoughtItem");
register_clcmd("elites", "PlayerBoughtItem");
register_clcmd("fn57", "PlayerBoughtItem");
register_clcmd("m3", "PlayerBoughtItem");
register_clcmd("autoshotgun", "PlayerBoughtItem");
register_clcmd("mac10", "PlayerBoughtItem");
register_clcmd("tmp", "PlayerBoughtItem");
register_clcmd("mp5", "PlayerBoughtItem");
register_clcmd("ump45", "PlayerBoughtItem");
register_clcmd("p90", "PlayerBoughtItem");
register_clcmd("galil", "PlayerBoughtItem");
register_clcmd("ak47", "PlayerBoughtItem");
register_clcmd("scout", "PlayerBoughtItem");
register_clcmd("sg552", "PlayerBoughtItem");
register_clcmd("awp", "PlayerBoughtItem");
register_clcmd("g3sg1", "PlayerBoughtItem");
register_clcmd("famas", "PlayerBoughtItem");
register_clcmd("m4a1", "PlayerBoughtItem");
register_clcmd("bullpup", "PlayerBoughtItem");
register_clcmd("sg550", "PlayerBoughtItem");
register_clcmd("m249", "PlayerBoughtItem");
register_clcmd("shield", "PlayerBoughtItem");
register_clcmd("hegren", "PlayerBoughtItem");
register_clcmd("sgren", "PlayerBoughtItem");
register_clcmd("flash", "PlayerBoughtItem");
register_clcmd("drop", "PlayerBoughtItem2");
register_clcmd("debugguj", "WlaczDebug");
///
register_logevent("bomb_events", 3, "1=triggered", "2=Spawned_With_The_Bomb", "2=Dropped_The_Bomb", "2=Got_The_Bomb", "2=Planted_The_Bomb");
register_event("CurWeapon","Change_Weapon","be", "1=1");
ile_freezetime = get_cvar_float("mp_freezetime");
if(ile_freezetime > 1){
freezetime = true;
register_event("TextMsg", "RoundRestart", "a", "2&#Game_w");
register_event("HLTV", "PreRoundStart", "a", "1=0", "2=0");
register_logevent("RoundEnd", 2, "1=Round_End");
register_logevent("RoundRestart", 2, "0=World triggered", "1=Game_Commencing");
register_logevent("PostRoundStart", 2, "0=World triggered", "1=Round_Start");
}
//
set_task(25.0, "CheckPlayersAFK", 490,_,_,"b");
//
register_dictionary("ultimateafk.txt");
cKick = register_cvar("afk_mode", "0");
// 1 - kick
// najpierw przerzuca do spect'a, jak siedzi dlugo na spectie to dopiero go kicka
cTimeAFK = register_cvar("afk_timeafk", "40");
// jezeli 0 - to nie kickuje/nie przenosi z druzyny [jezeli chcesz, np. zeby tylko plugin na spect dzialal]
// ile sec mozna byc afk w druzynynie
cTimeSpect = register_cvar("afk_timespect", "300");
// ile sec mozna byc afk na spect'cie
// 0 = nie kickuje ze specta
cSay = register_cvar("afk_saychangeafk", "2");
// czy pisanie na say wplywa na afk [czyli jak napiszemy cos to uznaje nas, za grajacych graczy, przydatne jak ktos duzo gada malo gra :D]
// 0 - nie
// 1- tylko w druzynach TT oraz CT
// 2 - wszedzie [spect, TT, CT] [zalecane]
cShoot = register_cvar("afk_shootchangeafk", "1");
// czy strzal bronia, lub jej zmiana wplywa na afk
//1- tak, czyli jak ktos strzeli to go nie kicknie [zalecane]
//0 - ignoruje strzaly
cAdmin = register_cvar("afk_adminafk", "0");
// czy kickowac/przerzucac adminow
// 0 - bedzie kickowalo/przerzucalo adminow i graczy
// 1 - kickuje/przerzuca tylko graczy, admini maja spokoj
// 2 - kickuje/przerzuca graczy i adminow, ale nie kickuje adminow z immunitetem. [[domyslnie]
cWarn = register_cvar("afk_warn", "1");
// ostrzegac gracza ze jest afk? [na chacie]
// 0 - nie
// 1 - tak [domyslnie]
cPlayernum = register_cvar("afk_minplayers", "1");
// od ilu graczy dziala U-AFK
// zalecane od 4 w gore.
cCheckSpawn = register_cvar("afk_checkspawn", "1");
// czy ma sprawdzac czy gracz jest afk na respie (kiedy sie odrodzisz, to pobiera kamere, i pozycje gracza, i [jak cvar na 1 jest] za 15 sec sprawdza czy jest ta sama, jesli tak to [dalej cvary]
// 1 - wlacza
// 0 - wylacza sprawdzanie na respie
cTimeKillSpawn = register_cvar("afk_timekillspawn", "15");
//Jezeli gracz nie rusza sie na respie przez tyle sekund, oznacza to, ze jest afk, i mozna go np. zabic [cvar nizej] lub liczyc mu szanse [2 cvary nizej]
cKillSpawn = register_cvar("afk_killspawn", "1");
// czy zabijac gracza na respie ktory jest X czasu afk [cvar wyzej]
// 1 - zabijaj
// 0 - nie zabijaj, ale pokaz komunikat, ze gracz jest AFK.
cChance = register_cvar("afk_killspawnchance", "3");
//jezeli zostanie zabity przez U-AFK razy to zostanie wywalony, bo nie gra.
// zalecane 3 w gore.
// uwaga 0 nie wylacza !
cBombDropTime = register_cvar("afk_bombdroptime", "25");
// po jakim czasie AFK ma wyrzucic bombe graczowi na ziemie
// 0 - wylacza
cPlayersInfoAFK = register_cvar("afk_playersinfoafk", "1");
// czy pojawiac sie info na chacie TT AFK : x CT AFK : x
// 1 - tak
// 0 - nie
new configsDir[64]
get_configsdir(configsDir, 63)
server_cmd("exec %s/ultimateafk.cfg", configsDir)
server_exec()
}
public WlaczDebug(id)
debug2[id] = !debug2[id];
public plugin_cfg(){
pKick = get_pcvar_num(cKick);
pTimeAFK = get_pcvar_num(cTimeAFK);
pTimeSpect = get_pcvar_num(cTimeSpect);
pSay = get_pcvar_num(cSay);
pShoot = get_pcvar_num(cShoot);
pAdmin = get_pcvar_num(cAdmin);
pWarn = get_pcvar_num(cWarn);
pPlayernum = get_pcvar_num(cPlayernum);
pTimeKillSpawn = get_pcvar_num(cTimeKillSpawn);
pKillSpawn = get_pcvar_num(cKillSpawn);
pChance = get_pcvar_num(cChance);
pBombDropTime = get_pcvar_num(cBombDropTime);
pCheckSpawn = get_pcvar_num(cCheckSpawn);
pPlayersInfoAFK = get_pcvar_num(cPlayersInfoAFK);
}
public client_connect(id)
{
TimeAFK[id] = 0;
set_task(1.0, "CheckPlayer", id+732, _, _, "b");
TimeSpect[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
bAfkSpawn[id] = false;
remove_task(id+839);
debug2[id] = 0;
}
public client_disconnect(id)
{
TimeAFK[id] = 0;
remove_task(id+732);
TimeSpect[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
bAfkSpawn[id] = false;
remove_task(id+839);
}
public CheckPlayer(id){
id-=732
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
if(get_playersnum() < pPlayernum)
return PLUGIN_CONTINUE;
if(is_user_bot(id))
return PLUGIN_CONTINUE;
if(is_user_hltv(id))
return PLUGIN_CONTINUE;
if(get_user_flags(id) & ADMIN_BAN && pAdmin == 1)
return PLUGIN_CONTINUE;
if(get_user_flags(id) & ADMIN_IMMUNITY && pAdmin == 2)
return PLUGIN_CONTINUE;
if(get_user_team(id) == 1)
return PLUGIN_CONTINUE;
static oldpangle[33][3], oldporigin[33][3];
new pangle[33][3], porigin[33][3];
pev(id,pev_v_angle, pangle[id])
pev(id,pev_origin, porigin[id]);
if(debug2[id])
client_print(id, 3, "TIME TEAM AFK: %d. TIME SPECT AFK: %d AFK SPAWN: %s CHANCE: %d/%d", TimeAFK[id], TimeSpect[id], PlayerAFK[id]?"yes":"no", Chance[id], pChance)
if((get_user_team(id) == 3 || get_user_team(id) == 0) && pTimeSpect){
TimeSpect[id]++;
TimeAFK[id] = 0;
if(pWarn){
new TimeS = pTimeSpect
if(TimeS - TimeSpect[id] == 15)
if(pTimeSpect)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_CHANGE_TEAM", TAG);
TimeS = pTimeSpect
if(TimeS - TimeSpect[id] == 7)
if(pTimeSpect)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_CHANGE_TEAM2", TAG);
}
}
else
TimeSpect[id] = 0;
if((get_user_team(id) == 2) && is_user_alive(id) && pTimeAFK){
if(freezetime)
return PLUGIN_CONTINUE;
new Float:speed[33][3]
pev(id,pev_velocity,speed[id])
TimeAFK[id]++;
if(get_user_maxspeed(id) == 0.1)
{
if(!bAfkSpawn[id])
Chance[id] = 0;
TimeAFK[id] = 0;
PlayerAFK[id] = false;
}
if(oldpangle[id][0] != pangle[id][0]
|| oldpangle[id][1] != pangle[id][1]
|| oldporigin[id][0] != porigin[id][0]
|| oldporigin[id][1] != porigin[id][1]
|| oldporigin[id][2] != porigin[id][2]
|| speed[id][0] != 0
|| speed[id][1] != 0
|| speed[id][2] != 0
|| pev(id,pev_button) != 0){
if(!bAfkSpawn[id])
Chance[id] = 0;
TimeAFK[id] = 0;
PlayerAFK[id] = false;
}
if(bombcarrier == id && pBombDropTime && TimeAFK[id] >= pBombDropTime){
client_cmd(id,"use weapon_c4");
client_cmd(id, "drop");
remove_task(id+222);
set_task(1.0, "UstawJeszczeRaz", id+222);
bombcarrier = 0;
ColorChat(0, RED,"%L",LANG_SERVER,"MSG_BOMB",TAG);
}
if(pWarn){
new pTimeA = pTimeAFK
if(pTimeA - TimeAFK[id] == 15)
if(pKick && pTimeAFK)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_KICK",TAG);
else
if(pTimeAFK)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_SPECT",TAG);
pTimeA = pTimeAFK
if(pTimeA - TimeAFK[id] == 7)
if(pKick && pTimeAFK)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_KICK2",TAG);
else
if(pTimeAFK)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_SPECT2",TAG);
}
}
oldpangle[id] = pangle[id];
oldporigin[id] = porigin[id];
if((is_user_alive(id) && TimeAFK[id] >= pTimeAFK && pTimeAFK) || (!is_user_alive(id) && TimeSpect[id] >= pTimeSpect && pTimeSpect)){
kickPlayer(id);
return PLUGIN_CONTINUE;
}
if(bAfkSpawn[id] && is_user_alive(id) && TimeAFK[id] < pTimeKillSpawn && pCheckSpawn && pWarn && pTimeAFK){
new liczba_pcvara = pTimeKillSpawn
if(liczba_pcvara - TimeAFK[id] == 7)
{
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_REACTION",TAG);
}
}
if(bAfkSpawn[id] && is_user_alive(id) && TimeAFK[id] >= pTimeKillSpawn && pCheckSpawn && !PlayerAFK[id] && pTimeAFK){
if(pKillSpawn){
++Chance[id];
user_kill(id, 1);
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_SPAWN_KILL", TAG, Chance[id], pChance);
}
else
{
new name[32]
get_user_name(id, name, 32)
ColorChat(0, RED,"%L",LANG_SERVER, "MSG_PLAYER_AFK", TAG, name);
PlayerAFK[id] = true;
}
if(Chance[id] >= pChance)
{
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_PLAYER_CHANCE",TAG,Chance[id],pChance);
Chance[id] = 0;
kickPlayer(id);
}
}
return PLUGIN_CONTINUE;
}
public player_killed(id, attacker, shouldgib){
if(is_user_connected(id)){
TimeAFK[id] = 0;
TimeSpect[id] = 0;
if(bombcarrier == id)
bombcarrier = 0;
}
if(id != attacker && is_user_alive(attacker)){
TimeAFK[attacker] = 0;
Chance[attacker] = 0;
PlayerAFK[attacker] = false;
}
CheckPlayersAFK()
}
/* Post Spawn */
public player_spawn(id){
TimeAFK[id] = 0;
remove_task(id+839);
PlayerAFK[id] = false;
bAfkSpawn[id] = true;
new Float:pCheckPostion = pTimeKillSpawn + 3.0
if(freezetime)
pCheckPostion += ile_freezetime;
set_task(pCheckPostion, "CheckPostion", id+839);
}
public CheckPostion(id){
id-=839
bAfkSpawn[id] = false
}
public Change_Weapon(id){
if(!is_user_alive(id) || !pShoot)
return PLUGIN_CONTINUE;
TimeAFK[id] = 0;
if(!bAfkSpawn[id])
Chance[id] = 0;
PlayerAFK[id] = false
return PLUGIN_CONTINUE;
}
public kickPlayer(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
new name[32]
get_user_name(id, name, 32);
switch(get_user_team(id)){
case 0: {
if(is_user_connected(id) && pTimeSpect){
client_print(id, print_console, "%L",LANG_PLAYER,"MSG_KICK_SPECT",TAG, pTimeSpect);
ColorChat(0, RED,"%L",LANG_SERVER, "MSG_KICK_PLAYER",TAG, name);
server_cmd("kick ^"%s^" ^"AFK - Check Console.^"",name)
}
}
case 1..2: {
if(pKick){
if(is_user_connected(id)){
client_print(id, print_console, "%L",LANG_PLAYER,"MSG_CONSOLE", pTimeAFK);
ColorChat(0, RED,"%L",LANG_SERVER,"MSG_KICK3",TAG, name, pTimeAFK);
server_cmd("kick ^"%s^" ^"AFK - Check Console^"",name)
}
}
else
{
if(is_user_connected(id)){
ColorChat(0, RED,"%L",LANG_SERVER, "MSG_NEW_TEAM",TAG, name, pTimeAFK);
TimeAFK[id] = 0;
TimeSpect[id] = 0;
if(is_user_alive(id))
user_silentkill(id);
engclient_cmd(id, "jointeam", "6");
}
}
}
case 3: {
if(is_user_connected(id) && pTimeSpect){
client_print(id, print_console, "%L",LANG_PLAYER,"MSG_KICK_SPECT",TAG, pTimeSpect);
ColorChat(0, RED,"%L",LANG_SERVER, "MSG_KICK_PLAYER",TAG, name);
server_cmd("kick ^"%s^" ^"AFK - Check Console.^"",name)
}
}
}
return PLUGIN_CONTINUE;
}
public player_say(id){
if(!pSay)
return PLUGIN_CONTINUE;
if(pSay == 1 && (get_user_team(id) == 1 || get_user_team(id) == 2)){
TimeAFK[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
}
else
if(pSay == 2){
TimeAFK[id] = 0;
Chance[id] = 0;
TimeSpect[id] = 0;
PlayerAFK[id] = false;
}
return PLUGIN_CONTINUE;
}
// Przerobiony kod z AFK-KISS
public bomb_events() {
new arg0[64], action[64], name[33], userid, bid
read_logargv(0,arg0,63)
read_logargv(2,action,63)
parse_loguser(arg0,name,32,userid)
bid = find_player("k",userid)
if (equal(action,"Spawned_With_The_Bomb")) {
bombcarrier = bid;
} else if (equal(action,"Dropped_The_Bomb")) {
bombcarrier = 0;
} else if (equal(action,"Got_The_Bomb")) {
bombcarrier = bid;
} else if (equal(action, "Planted_The_Bomb")) {
bombcarrier = 0;
}
return PLUGIN_HANDLED
}
public CheckPlayersAFK(){
if(!pPlayersInfoAFK)
return;
new TTAFK = 0, CTAFK = 0
static Float:lastsend;
if(get_gametime() - lastsend < 13.3)
return;
for(new i=1;i<33;i++){
if(is_user_alive(i) && (PlayerAFK[i] || TimeAFK[i] > 20)){
switch(get_user_team(i)){
case 1: TTAFK++
case 2: CTAFK++
}
}
}
if(TTAFK || CTAFK)
ColorChat(0, RED,"[%s]^x04 AFK CT: %d AFK TT: %d.",TAG, CTAFK, TTAFK);
lastsend = get_gametime();
}
public PlayerBoughtItem(id)
if(is_user_alive(id)){
TimeAFK[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
}
public PlayerBoughtItem2(id)
if(is_user_alive(id) /*&& bombcarrier != id*/){
TimeAFK[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
}
public RoundRestart()
{
freezetime = true;
for(new i=1; i<33; i++){
TimeAFK[i] = 0;
remove_task(i+222);
}
}
public RoundEnd()
{
freezetime = true;
ile_freezetime = get_cvar_float("mp_freezetime");
for(new i=1; i<33; i++){
remove_task(i+222);
TimeAFK[i] = 0;
}
}
public PreRoundStart()
{
freezetime = true;
}
public PostRoundStart()
{
freezetime = false;
}
public UstawJeszczeRaz(id)
{
id-=222;
if(!freezetime)
TimeAFK[id] = pBombDropTime;
}
Użytkownik IntelCom edytował ten post 05.03.2015 18:45
#4 _leo___
Napisano 21.03.2015 00:15
Może napisze prościej chciałbym aby plugin działał tylko dla ct.
Znalazłem takie coś tylko nie wiem gdzie to dodać http://amxx.pl/dokum...s-get-user-team
// U-AFK [Ultimate AFK]
// Aut(h)or : HuberTM
// Version 1.9f
// Thanks : AFK-KISS author's (bomb drop public)
#include
#include
#include
#include
#include
#include
#define PLUGIN "Ultimate AFK"
#define VERSION "2.0" // version
#define AUTHOR "HubertTM" // aut(h)or nie zmieniaj :)
#define TAG "U-AFK" // TAG, ktory wyswietla sie przy wszystkich wiadomosciach pluginu
new bool:bAfkSpawn[33];
new TimeAFK[33];
new TimeSpect[33];
new Chance[33];
new bool:PlayerAFK[33];
new bombcarrier
new bool:freezetime = false;
new Float:ile_freezetime;
new cKick, pKick, cTimeAFK, pTimeAFK, cTimeSpect, pTimeSpect, cSay, pSay, cShoot, pShoot, cAdmin, pAdmin, cWarn, pWarn, cPlayernum, pPlayernum
new cKillSpawn, pKillSpawn, cTimeKillSpawn, pTimeKillSpawn, cChance, pChance, cBombDropTime, pBombDropTime, cCheckSpawn, pCheckSpawn, cPlayersInfoAFK, pPlayersInfoAFK
public plugin_end()
remove_task(490);
new debug2[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Killed, "player", "player_killed", 1);
RegisterHam(Ham_Spawn, "player", "player_spawn", 1);
///
register_clcmd("say_team", "player_say");
register_clcmd("say", "player_say");
///
///
register_clcmd("buy", "PlayerBoughtItem");
register_clcmd("rebuy", "PlayerBoughtItem");
register_clcmd("autobuy", "PlayerBoughtItem");
register_clcmd("glock", "PlayerBoughtItem");
register_clcmd("usp", "PlayerBoughtItem");
register_clcmd("p228", "PlayerBoughtItem");
register_clcmd("deagle", "PlayerBoughtItem");
register_clcmd("elites", "PlayerBoughtItem");
register_clcmd("fn57", "PlayerBoughtItem");
register_clcmd("m3", "PlayerBoughtItem");
register_clcmd("autoshotgun", "PlayerBoughtItem");
register_clcmd("mac10", "PlayerBoughtItem");
register_clcmd("tmp", "PlayerBoughtItem");
register_clcmd("mp5", "PlayerBoughtItem");
register_clcmd("ump45", "PlayerBoughtItem");
register_clcmd("p90", "PlayerBoughtItem");
register_clcmd("galil", "PlayerBoughtItem");
register_clcmd("ak47", "PlayerBoughtItem");
register_clcmd("scout", "PlayerBoughtItem");
register_clcmd("sg552", "PlayerBoughtItem");
register_clcmd("awp", "PlayerBoughtItem");
register_clcmd("g3sg1", "PlayerBoughtItem");
register_clcmd("famas", "PlayerBoughtItem");
register_clcmd("m4a1", "PlayerBoughtItem");
register_clcmd("bullpup", "PlayerBoughtItem");
register_clcmd("sg550", "PlayerBoughtItem");
register_clcmd("m249", "PlayerBoughtItem");
register_clcmd("shield", "PlayerBoughtItem");
register_clcmd("hegren", "PlayerBoughtItem");
register_clcmd("sgren", "PlayerBoughtItem");
register_clcmd("flash", "PlayerBoughtItem");
register_clcmd("drop", "PlayerBoughtItem2");
register_clcmd("debugguj", "WlaczDebug");
///
register_logevent("bomb_events", 3, "1=triggered", "2=Spawned_With_The_Bomb", "2=Dropped_The_Bomb", "2=Got_The_Bomb", "2=Planted_The_Bomb");
register_event("CurWeapon","Change_Weapon","be", "1=1");
ile_freezetime = get_cvar_float("mp_freezetime");
if(ile_freezetime > 1){
freezetime = true;
register_event("TextMsg", "RoundRestart", "a", "2&#Game_w");
register_event("HLTV", "PreRoundStart", "a", "1=0", "2=0");
register_logevent("RoundEnd", 2, "1=Round_End");
register_logevent("RoundRestart", 2, "0=World triggered", "1=Game_Commencing");
register_logevent("PostRoundStart", 2, "0=World triggered", "1=Round_Start");
}
//
set_task(25.0, "CheckPlayersAFK", 490,_,_,"b");
//
register_dictionary("ultimateafk.txt");
cKick = register_cvar("afk_mode", "0");
// 1 - kick
// najpierw przerzuca do spect'a, jak siedzi dlugo [cvar] na spectie to dopiero go kicka
cTimeAFK = register_cvar("afk_timeafk", "40");
// jezeli 0 - to nie kickuje/nie przenosi z druzyny [jezeli chcesz, np. zeby tylko plugin na spect dzialal]
// ile sec mozna byc afk w druzynynie
cTimeSpect = register_cvar("afk_timespect", "300");
// ile sec mozna byc afk na spect'cie
// 0 = nie kickuje ze specta
cSay = register_cvar("afk_saychangeafk", "2");
// czy pisanie na say wplywa na afk [czyli jak napiszemy cos to uznaje nas, za grajacych graczy, przydatne jak ktos duzo gada malo gra :D]
// 0 - nie
// 1- tylko w druzynach TT oraz CT
// 2 - wszedzie [spect, TT, CT] [zalecane]
cShoot = register_cvar("afk_shootchangeafk", "1");
// czy strzal bronia, lub jej zmiana wplywa na afk
//1- tak, czyli jak ktos strzeli to go nie kicknie [zalecane]
//0 - ignoruje strzaly
cAdmin = register_cvar("afk_adminafk", "0");
// czy kickowac/przerzucac adminow
// 0 - bedzie kickowalo/przerzucalo adminow i graczy
// 1 - kickuje/przerzuca tylko graczy, admini maja spokoj
// 2 - kickuje/przerzuca graczy i adminow, ale nie kickuje adminow z immunitetem. [[domyslnie]
cWarn = register_cvar("afk_warn", "1");
// ostrzegac gracza ze jest afk? [na chacie]
// 0 - nie
// 1 - tak [domyslnie]
cPlayernum = register_cvar("afk_minplayers", "1");
// od ilu graczy dziala U-AFK
// zalecane od 4 w gore.
cCheckSpawn = register_cvar("afk_checkspawn", "1");
// czy ma sprawdzac czy gracz jest afk na respie (kiedy sie odrodzisz, to pobiera kamere, i pozycje gracza, i [jak cvar na 1 jest] za 15 sec sprawdza czy jest ta sama, jesli tak to [dalej cvary]
// 1 - wlacza
// 0 - wylacza sprawdzanie na respie
cTimeKillSpawn = register_cvar("afk_timekillspawn", "15");
//Jezeli gracz nie rusza sie na respie przez tyle sekund, oznacza to, ze jest afk, i mozna go np. zabic [cvar nizej] lub liczyc mu szanse [2 cvary nizej]
cKillSpawn = register_cvar("afk_killspawn", "1");
// czy zabijac gracza na respie ktory jest X czasu afk [cvar wyzej]
// 1 - zabijaj
// 0 - nie zabijaj, ale pokaz komunikat, ze gracz jest AFK.
cChance = register_cvar("afk_killspawnchance", "3");
//jezeli zostanie zabity przez U-AFK [CVAR] razy to zostanie wywalony, bo nie gra.
// zalecane 3 w gore.
// uwaga 0 nie wylacza !
cBombDropTime = register_cvar("afk_bombdroptime", "25");
// po jakim czasie AFK ma wyrzucic bombe graczowi na ziemie
// 0 - wylacza
cPlayersInfoAFK = register_cvar("afk_playersinfoafk", "1");
// czy pojawiac sie info na chacie TT AFK : x CT AFK : x
// 1 - tak
// 0 - nie
new configsDir[64]
get_configsdir(configsDir, 63)
server_cmd("exec %s/ultimateafk.cfg", configsDir)
server_exec()
}
public WlaczDebug(id)
debug2[id] = !debug2[id];
public plugin_cfg(){
pKick = get_pcvar_num(cKick);
pTimeAFK = get_pcvar_num(cTimeAFK);
pTimeSpect = get_pcvar_num(cTimeSpect);
pSay = get_pcvar_num(cSay);
pShoot = get_pcvar_num(cShoot);
pAdmin = get_pcvar_num(cAdmin);
pWarn = get_pcvar_num(cWarn);
pPlayernum = get_pcvar_num(cPlayernum);
pTimeKillSpawn = get_pcvar_num(cTimeKillSpawn);
pKillSpawn = get_pcvar_num(cKillSpawn);
pChance = get_pcvar_num(cChance);
pBombDropTime = get_pcvar_num(cBombDropTime);
pCheckSpawn = get_pcvar_num(cCheckSpawn);
pPlayersInfoAFK = get_pcvar_num(cPlayersInfoAFK);
}
public client_connect(id)
{
TimeAFK[id] = 0;
set_task(1.0, "CheckPlayer", id+732, _, _, "b");
TimeSpect[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
bAfkSpawn[id] = false;
remove_task(id+839);
debug2[id] = 0;
}
public client_disconnect(id)
{
TimeAFK[id] = 0;
remove_task(id+732);
TimeSpect[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
bAfkSpawn[id] = false;
remove_task(id+839);
}
public CheckPlayer(id){
id-=732
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
if(get_playersnum() < pPlayernum)
return PLUGIN_CONTINUE;
if(is_user_bot(id))
return PLUGIN_CONTINUE;
if(is_user_hltv(id))
return PLUGIN_CONTINUE;
if(get_user_flags(id) & ADMIN_BAN && pAdmin == 1)
return PLUGIN_CONTINUE;
if(get_user_flags(id) & ADMIN_IMMUNITY && pAdmin == 2)
return PLUGIN_CONTINUE;
static oldpangle[33][3], oldporigin[33][3];
new pangle[33][3], porigin[33][3];
pev(id,pev_v_angle, pangle[id])
pev(id,pev_origin, porigin[id]);
if(debug2[id])
client_print(id, 3, "TIME TEAM AFK: %d. TIME SPECT AFK: %d AFK SPAWN: %s CHANCE: %d/%d", TimeAFK[id], TimeSpect[id], PlayerAFK[id]?"yes":"no", Chance[id], pChance)
if((get_user_team(id) == 3 || get_user_team(id) == 0) && pTimeSpect){
TimeSpect[id]++;
TimeAFK[id] = 0;
if(pWarn){
new TimeS = pTimeSpect
if(TimeS - TimeSpect[id] == 15)
if(pTimeSpect)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_CHANGE_TEAM", TAG);
TimeS = pTimeSpect
if(TimeS - TimeSpect[id] == 7)
if(pTimeSpect)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_CHANGE_TEAM2", TAG);
}
}
else
TimeSpect[id] = 0;
if((get_user_team(id) == 1 || get_user_team(id) == 2) && is_user_alive(id) && pTimeAFK){
if(freezetime)
return PLUGIN_CONTINUE;
new Float:speed[33][3]
pev(id,pev_velocity,speed[id])
TimeAFK[id]++;
if(get_user_maxspeed(id) == 0.1)
{
if(!bAfkSpawn[id])
Chance[id] = 0;
TimeAFK[id] = 0;
PlayerAFK[id] = false;
}
if(oldpangle[id][0] != pangle[id][0]
|| oldpangle[id][1] != pangle[id][1]
|| oldporigin[id][0] != porigin[id][0]
|| oldporigin[id][1] != porigin[id][1]
|| oldporigin[id][2] != porigin[id][2]
|| speed[id][0] != 0
|| speed[id][1] != 0
|| speed[id][2] != 0
|| pev(id,pev_button) != 0){
if(!bAfkSpawn[id])
Chance[id] = 0;
TimeAFK[id] = 0;
PlayerAFK[id] = false;
}
if(bombcarrier == id && pBombDropTime && TimeAFK[id] >= pBombDropTime){
client_cmd(id,"use weapon_c4");
client_cmd(id, "drop");
remove_task(id+222);
set_task(1.0, "UstawJeszczeRaz", id+222);
bombcarrier = 0;
ColorChat(0, RED,"%L",LANG_SERVER,"MSG_BOMB",TAG);
}
if(pWarn){
new pTimeA = pTimeAFK
if(pTimeA - TimeAFK[id] == 15)
if(pKick && pTimeAFK)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_KICK",TAG);
else
if(pTimeAFK)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_SPECT",TAG);
pTimeA = pTimeAFK
if(pTimeA - TimeAFK[id] == 7)
if(pKick && pTimeAFK)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_KICK2",TAG);
else
if(pTimeAFK)
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_SPECT2",TAG);
}
}
oldpangle[id] = pangle[id];
oldporigin[id] = porigin[id];
if((is_user_alive(id) && TimeAFK[id] >= pTimeAFK && pTimeAFK) || (!is_user_alive(id) && TimeSpect[id] >= pTimeSpect && pTimeSpect)){
kickPlayer(id);
return PLUGIN_CONTINUE;
}
if(bAfkSpawn[id] && is_user_alive(id) && TimeAFK[id] < pTimeKillSpawn && pCheckSpawn && pWarn && pTimeAFK){
new liczba_pcvara = pTimeKillSpawn
if(liczba_pcvara - TimeAFK[id] == 7)
{
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_REACTION",TAG);
}
}
if(bAfkSpawn[id] && is_user_alive(id) && TimeAFK[id] >= pTimeKillSpawn && pCheckSpawn && !PlayerAFK[id] && pTimeAFK){
if(pKillSpawn){
++Chance[id];
user_kill(id, 1);
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_SPAWN_KILL", TAG, Chance[id], pChance);
}
else
{
new name[32]
get_user_name(id, name, 32)
ColorChat(0, RED,"%L",LANG_SERVER, "MSG_PLAYER_AFK", TAG, name);
PlayerAFK[id] = true;
}
if(Chance[id] >= pChance)
{
ColorChat(id, RED,"%L",LANG_PLAYER,"MSG_PLAYER_CHANCE",TAG,Chance[id],pChance);
Chance[id] = 0;
kickPlayer(id);
}
}
return PLUGIN_CONTINUE;
}
public player_killed(id, attacker, shouldgib){
if(is_user_connected(id)){
TimeAFK[id] = 0;
TimeSpect[id] = 0;
if(bombcarrier == id)
bombcarrier = 0;
}
if(id != attacker && is_user_alive(attacker)){
TimeAFK[attacker] = 0;
Chance[attacker] = 0;
PlayerAFK[attacker] = false;
}
CheckPlayersAFK()
}
/* Post Spawn */
public player_spawn(id){
TimeAFK[id] = 0;
remove_task(id+839);
PlayerAFK[id] = false;
bAfkSpawn[id] = true;
new Float:pCheckPostion = pTimeKillSpawn + 3.0
if(freezetime)
pCheckPostion += ile_freezetime;
set_task(pCheckPostion, "CheckPostion", id+839);
}
public CheckPostion(id){
id-=839
bAfkSpawn[id] = false
}
public Change_Weapon(id){
if(!is_user_alive(id) || !pShoot)
return PLUGIN_CONTINUE;
TimeAFK[id] = 0;
if(!bAfkSpawn[id])
Chance[id] = 0;
PlayerAFK[id] = false
return PLUGIN_CONTINUE;
}
public kickPlayer(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
new name[32]
get_user_name(id, name, 32);
switch(get_user_team(id)){
case 0: {
if(is_user_connected(id) && pTimeSpect){
client_print(id, print_console, "%L",LANG_PLAYER,"MSG_KICK_SPECT",TAG, pTimeSpect);
ColorChat(0, RED,"%L",LANG_SERVER, "MSG_KICK_PLAYER",TAG, name);
server_cmd("kick ^"%s^" ^"AFK - Check Console.^"",name)
}
}
case 1..2: {
if(pKick){
if(is_user_connected(id)){
client_print(id, print_console, "%L",LANG_PLAYER,"MSG_CONSOLE", pTimeAFK);
ColorChat(0, RED,"%L",LANG_SERVER,"MSG_KICK3",TAG, name, pTimeAFK);
server_cmd("kick ^"%s^" ^"AFK - Check Console^"",name)
}
}
else
{
if(is_user_connected(id)){
ColorChat(0, RED,"%L",LANG_SERVER, "MSG_NEW_TEAM",TAG, name, pTimeAFK);
TimeAFK[id] = 0;
TimeSpect[id] = 0;
if(is_user_alive(id))
user_silentkill(id);
engclient_cmd(id, "jointeam", "6");
}
}
}
case 3: {
if(is_user_connected(id) && pTimeSpect){
client_print(id, print_console, "%L",LANG_PLAYER,"MSG_KICK_SPECT",TAG, pTimeSpect);
ColorChat(0, RED,"%L",LANG_SERVER, "MSG_KICK_PLAYER",TAG, name);
server_cmd("kick ^"%s^" ^"AFK - Check Console.^"",name)
}
}
}
return PLUGIN_CONTINUE;
}
public player_say(id){
if(!pSay)
return PLUGIN_CONTINUE;
if(pSay == 1 && (get_user_team(id) == 1 || get_user_team(id) == 2)){
TimeAFK[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
}
else
if(pSay == 2){
TimeAFK[id] = 0;
Chance[id] = 0;
TimeSpect[id] = 0;
PlayerAFK[id] = false;
}
return PLUGIN_CONTINUE;
}
// Przerobiony kod z AFK-KISS
public bomb_events() {
new arg0[64], action[64], name[33], userid, bid
read_logargv(0,arg0,63)
read_logargv(2,action,63)
parse_loguser(arg0,name,32,userid)
bid = find_player("k",userid)
if (equal(action,"Spawned_With_The_Bomb")) {
bombcarrier = bid;
} else if (equal(action,"Dropped_The_Bomb")) {
bombcarrier = 0;
} else if (equal(action,"Got_The_Bomb")) {
bombcarrier = bid;
} else if (equal(action, "Planted_The_Bomb")) {
bombcarrier = 0;
}
return PLUGIN_HANDLED
}
public CheckPlayersAFK(){
if(!pPlayersInfoAFK)
return;
new TTAFK = 0, CTAFK = 0
static Float:lastsend;
if(get_gametime() - lastsend < 13.3)
return;
for(new i=1;i<33;i++){
if(is_user_alive(i) && (PlayerAFK[i] || TimeAFK[i] > 20)){
switch(get_user_team(i)){
case 1: TTAFK++
case 2: CTAFK++
}
}
}
if(TTAFK || CTAFK)
ColorChat(0, RED,"[%s]^x04 AFK CT: %d AFK TT: %d.",TAG, CTAFK, TTAFK);
lastsend = get_gametime();
}
public PlayerBoughtItem(id)
if(is_user_alive(id)){
TimeAFK[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
}
public PlayerBoughtItem2(id)
if(is_user_alive(id) /*&& bombcarrier != id*/){
TimeAFK[id] = 0;
Chance[id] = 0;
PlayerAFK[id] = false;
}
public RoundRestart()
{
freezetime = true;
for(new i=1; i<33; i++){
TimeAFK[i] = 0;
remove_task(i+222);
}
}
public RoundEnd()
{
freezetime = true;
ile_freezetime = get_cvar_float("mp_freezetime");
for(new i=1; i<33; i++){
remove_task(i+222);
TimeAFK[i] = 0;
}
}
public PreRoundStart()
{
freezetime = true;
}
public PostRoundStart()
{
freezetime = false;
}
public UstawJeszczeRaz(id)
{
id-=222;
if(!freezetime)
TimeAFK[id] = pBombDropTime;
}
Również z jednym lub większą ilością słów kluczowych: modyfikacja
Inny
Dodanie Broni do PaintBallNapisany przez One ShooT, 05.02.2024 inny, modyfikacja |
|
||||
Modyfikacja
prośba o przerobienie pluginuprośba Napisany przez bili, 06.02.2021 modyfikacja |
|
||||
Modyfikacja
Prośba o dodanie modelu do vipa z generatoraNapisany przez Vanilla, 01.02.2021 modyfikacja |
|
||||
Modyfikacja
Plugin na przenikanie/spadochron pod komendąNapisany przez Polonez, 22.01.2021 modyfikacja |
|
||||
|
[ROZWIĄZANE] Modyfikacja pluginuNapisany przez _.-*`PaniQ*-._, 11.01.2021 modyfikacja |
|
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych