⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🇹🇷 TR Lokasyon | 🛡️ Gelişmiş DDoS Koruması | ⚡ Düşük Ping | 🎧 Kesintisiz TS3 | Hostlar
Sponsor Görsel 2
SponsorSponsor

[REAPI] - AFK ve AFKMenu Slay Eklentisi

Konu

#1
Eklenti Adı: Afk Slay Eklentisi
Eklenti Yapımcısı: Anonim
Eklenti Açıklaması;
Bu eklenti, özellikle Pro Public, CS2 Mod, Valorant Mod gibi sunucularda AFK olan oyuncuların frag kaybı yaşamadan otomatik olarak slaylanmasını sağlar. Aktif oynayan oyuncular ise /afk komutuyla AFK moduna geçerek sigara ve yemek molalarında sunucuda kalabilirler. Ayrıca, adminler /afkmenu komutuyla istedikleri oyuncuları AFK moduna alabilir veya çıkartabilirler. Bu sayede oyun içinde aktiflik korunur ve dengesiz AFK durumlarının önüne geçilir.

- Eklenti Hakkındaki Resimler, Videolar -
-

İndirme;
.smaAfkMenu.sma(Dosya Boyutu: 16 KB | İndirme Sayısı: 54)
Stand Back Warrior's   | ip: cs.sbwpro.com | ts3: ts3.sbwpro.com
Cevapla
#2
Konunuz şablona uyarlandıktan sonra onaylanmıştır, teşekkürler.
Steam:Tıkla • Discord: lynchk
Cevapla
Cevapla
Cevapla
#5
çok aranılan bir eklentiydi, teşekkürler.
Cevapla
#6
otomatik olarak slaylanmıyor. player kendisini /afk yazınca afk moduna geçiyor. ayrıca /afkmenu çalışmıyor kodları buraya bırakıyorum düzeltebilen varmı

Kod:
#include <amxmodx>
#include <reapi>

#define MAX_AFK_WARNING 3  //Oyuncunun kac uyarı hakki oldugunu ayarlar.

new const PLUGIN[] = "AFK Kontrol";
new const VERSION[] = "1.0";
new const AUTHOR[] = "Anonim";
new abuzerelsonunubekle;
new bool:g_LastRound;
new const TAG[] = "SBW";

//new Time, afk_oto;
new  abuzerafk[MAX_CLIENTS+1] = 0, bool:abuzerbuafk[MAX_CLIENTS+1] = false,afk,karisti;
new Float: Player_Origin[33][3],bool:izle[MAX_CLIENTS+1];
new kd[MAX_CLIENTS+1][2];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    //Time = register_cvar("afk_slay", "15.0");
    //bind_pcvar_num(create_cvar("afk_oto_kontrol","0"),afk_oto)
    
    RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post = false);
    RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", .post = true);
    RegisterHookChain(RG_CSGameRules_RestartRound, "RG_CSGameRules_RestartRound_Post", .post = true);
    RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", .post = true);
    RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "CPlayer_HasRestrictItem_Pre", .post = false);
    
    register_logevent("abuzer_elbasi", 2, "1=Round_Start")
    register_clcmd("amx_karistir", "abuzer");
    register_clcmd("amx_kafk", "abuzerafkx");
    register_clcmd("say !karistir", "abuzer");
    abuzerelsonunubekle = register_cvar("tim_elsonunubekle","1")
    register_clcmd( "say /afk", "degistir" );
    register_clcmd( "say_team /afk", "degistir" );
    register_clcmd( "amx_izle", "izlex" );
    register_clcmd("amx_afkmenu", "abuzer_afkmenu")
    register_clcmd("say", "HookSay");
    register_clcmd("say_team", "HookSay");
    register_clcmd("owneryerac","yeracowner");
    register_clcmd("amx_yerac", "yer_ac");
}

public RG_RoundEnd_Post()
{
    if(g_LastRound) set_task(3.5, "karistir");
    else set_task(3.0, "karistirxx");
    if(karisti != 0) karisti -= 1;
}

public RG_CSGameRules_RestartRound_Post()
{
    if(get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i))
                continue;
            
            kd[i][0] = 0;
            kd[i][1] = 0;
        }
    }
}

public CPlayer_HasRestrictItem_Pre(id, ItemID:iItem, ItemRestType:iType)
{
    if(iType != ITEM_TYPE_BUYING)
    {
        return HC_CONTINUE;
    }

    if(abuzerbuafk[id]){
        abuzerbuafk[id]=false;
        abuzerafk[id] = 0;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Afk Modun Otomatik Olarak ^4Pasif ^3Yapildi.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,float(kd[id][0]));
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        afk -= 1;
        set_entvar(id, var_flags, get_entvar(id, var_flags) & ~FL_FROZEN);
        kd[id][0] = 0;
        kd[id][1] = 0;
        message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id);
        write_short(1<<10);
        write_short(1<<10);
        write_short(1<<10);
        write_byte(0);      // red
        write_byte(0);      // green
        write_byte(0);      // blue
        write_byte(0);    // alpha
        message_end();
    }

    return HC_CONTINUE;
}

@CBasePlayer_Killed(const victim, const attacker)
{
    if(is_user_alive(victim) && !is_user_bot(victim) && get_member(victim,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(victim, "weapon_c4") && Origin_Control(victim)){
        rg_transfer_c4(victim, 0);
    }
    set_entvar(victim, var_flags, get_entvar(victim, var_flags) & ~FL_FROZEN);
    #pragma unused attacker
    remove_task(victim);
}

public client_putinserver(id)
{
    abuzerbuafk[id] = false;
    abuzerafk[id] = 0;
    izle[id] = false
    kd[id][0] = 0;
    kd[id][1] = 0;
}

public yeracowner(){
    if(afk > 0){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i) || !abuzerbuafk[i] || get_user_flags(i) & ADMIN_IMMUNITY || get_member(i,m_iTeam) == TEAM_SPECTATOR)
                continue;
            
            server_cmd("kick #%d ^"Sv Doluydu Afk Kicklenerek Yer Acildi.!^"",get_user_userid(i));
            server_cmd("echo Atilan Kisi %n",i);
            break;
        }
    }
}

public yer_ac(id){
    if(get_user_flags(id) & ADMIN_BAN && afk > 1){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i) || !abuzerbuafk[i] || get_user_flags(i) & ADMIN_RESERVATION || get_member(i,m_iTeam) == TEAM_SPECTATOR)
                continue;
            
            server_cmd("kick #%d ^"Sv Doluydu Afk Kicklenerek Yer Acildi.!^"",get_user_userid(i));
            client_print_color(0,0,"^4*^3 %n^1 Afk'di Yer Acmak Icin Kicklendi.^3 Atan:^1 [^4%n^1]",i,id);
            break;
        }
    }
}

public client_disconnected(id)
{
    if(is_user_alive(id) && !is_user_bot(id) && get_member(id,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(id, "weapon_c4")){
        rg_transfer_c4(id, 0);
    }
    
    remove_task(id);
    if(abuzerbuafk[id]){
        abuzerbuafk[id] = false
        if(afk > 0) afk -= 1;
    }
    kd[id][0] = 0;
    kd[id][1] = 0;
}

public CBasePlayer_Spawn(id)
{
    remove_task(id);
    
    if(izle[id]){
        user_silentkill(id);
        if(get_entvar(id, var_frags) < 0) set_entvar(id,var_frags,0);
        if(get_member(id, m_iDeaths) > get_entvar(id, var_frags)) set_member(id,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
    }
    
    /*if(kd[id][0] != 0 && kd[id][1] != 0){
        set_entvar(id,var_frags,kd[id][0]);
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        kd[id][0] = 0;
        kd[id][1] = 0;
    }*/
    
    set_task(0.4, "Get_Spawn", id);
}

public abuzer_elbasi(){
    set_task(5.0, "abuzer1");
}
public abuzer1(){
    new id
    for(id = 0; id <= MAX_CLIENTS+1; id++)
    {
        if(is_user_alive(id)) {
            if(abuzerbuafk[id]){                
                user_silentkill(id);
                if(get_entvar(id, var_frags) < 0) set_entvar(id,var_frags,0);
                if(get_member(id, m_iDeaths) > get_entvar(id, var_frags)) set_member(id,m_iDeaths,0);
                message_begin(MSG_ALL, 85);
                write_byte(id);
                write_short(0);
                write_short(0);
                write_short(0);
                write_short(0);
                message_end();
            }       
        }
    }
}   

public Get_Spawn(id)
{
    if(is_user_alive(id)) get_entvar(id, var_origin, Player_Origin[id]);
    else return;
    
    if(abuzerbuafk[id])
    {
        if(!is_user_bot(id) && get_member(id,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(id, "weapon_c4")){
            rg_transfer_c4(id, 0);
        }
        set_entvar(id, var_flags, get_entvar(id, var_flags) | FL_FROZEN);
        if(get_user_flags(id) & ADMIN_USER || ~get_user_flags(id) & ADMIN_LEVEL_E){
            client_print_color(id,print_team_grey,"^4[ SBW ]^1:^3 AFK Moddasin.^4 /afk^1 yazarak^3 AFK Moda^4 girip^1 cikabilirsin.! Skorun:^4 %i^3 -^4 %i",kd[id][0],kd[id][1]);
        }
        message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id);
        write_short(1<<15);
        write_short(1<<13);
        write_short(1<<15);
        write_byte(random_num(0,255));      // red
        write_byte(random_num(0,255));      // green
        write_byte(random_num(0,255));      // blue
        write_byte(170);        // alpha
        message_end();
    }else{
        if(get_user_flags(id) & ADMIN_BAN_TEMP){
            get_entvar(id, var_origin, Player_Origin[id]);
            set_task(10.0, "Check_AFK", id);
        }
    }
}

public Check_AFK(id)
{
    if(is_user_alive(id) && Origin_Control(id))
    {
        if(abuzerafk[id] == 0){
            kd[id][0] = floatround(get_entvar(id, var_frags));
            kd[id][1] = get_member(id, m_iDeaths);
        }
        if(abuzerafk[id] < MAX_AFK_WARNING){
            user_silentkill(id);
            //set_entvar(id,var_frags,0);
            //set_member(id,m_iDeaths,0);
            message_begin(MSG_ALL, 85);
            write_byte(id);
            write_short(0);
            write_short(0);
            write_short(0);
            write_short(0);
            message_end();
            if(kd[id][1] == 1) kd[id][1] = 0;
            abuzerafk[id]++;
            client_print_color(id, id, "^1[^3 %s ^1] ^3Hareket etmiyorsun! Otomatik AFK Modu Icin Uyari: ^4%i/%i^1 Skorun:^4 %i^3 -^4 %i", TAG,abuzerafk[id], MAX_AFK_WARNING,kd[id][0],kd[id][1]);
        }
        else
        {
            user_silentkill(id);
            //set_entvar(id,var_frags,0);
            //set_member(id,m_iDeaths,0);
            message_begin(MSG_ALL, 85);
            write_byte(id);
            write_short(0);
            write_short(0);
            write_short(0);
            write_short(0);
            message_end();
            abuzerbuafk[id] = true;
            afk += 1;
            //client_print_color(0, 0, "^1[^3 %s ^1] ^4%n ^3AFK Oldugu Tespit Edildi Ve Otomatik AFK Moduna Gecirildi.Her El Oldurulecek.", TAG, id);
            client_print_color(id, id, "^1[^3 %s ^1] ^3Otomatik AFK Modu Aktif. Artik El Basi Olduruleceksin.^4 [ /afk ]^1 Skorun:^4 %i^3 -^4 %i", TAG,kd[id][0],kd[id][1]);
        }
    }   
}

public Origin_Control(id)
{
    new Float: Origin[3];
    get_entvar(id, var_origin, Origin);

    for(new i; i < 3; i++)
    {
        if(Origin[i] != Player_Origin[id][i])
        {
            return 0;
        }
    }
    
    return 1;
}

public degistir(id)
{
    if(abuzerbuafk[id]){
        abuzerbuafk[id]=false;
        abuzerafk[id] = 0;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Afk Modunu ^4Pasif ^3Yaptin.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,float(kd[id][0]));
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        afk -= 1;
        set_entvar(id, var_flags, get_entvar(id, var_flags) & ~FL_FROZEN);
        kd[id][0] = 0;
        kd[id][1] = 0;
    }
    else
    {
        abuzerbuafk[id]=true;
        kd[id][0] = floatround(get_entvar(id, var_frags));
        kd[id][1] = get_member(id, m_iDeaths);
        client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modunu ^4Aktif ^3Yaptin.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,0);
        set_member(id,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
        afk += 1;
        if(is_user_alive(id)) set_entvar(id, var_flags, get_entvar(id, var_flags) | FL_FROZEN);
    }
    return PLUGIN_HANDLED;
}

public izlex(id)
{
    if(~get_user_flags(id) & ADMIN_RESERVATION) return PLUGIN_HANDLED;
    if(izle[id]){
        izle[id]=false;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Izle Modunu ^4Pasif ^3Yaptin.",TAG);
    }
    else
    {
        izle[id]=true;
        client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Izle Modunu ^4Aktif ^3Yaptin.",TAG);
    }
    return PLUGIN_HANDLED;
}

public HookSay(id)
{
    if(abuzerbuafk[id])
    {
        if(~get_user_flags(id) & ADMIN_BAN)
        {
            client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modunda Oldugunuz Icin Say'dan Yazamazsiniz.",TAG);
            client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modundadan Cikmak Icin ^4/afk ^3Yaz^1 veya^3 El Basi Ekipman^4 Satin Al.",TAG);
            return PLUGIN_HANDLED;
        }else client_print(id, print_center, "AFK Modundasin. /afk Yazarak Cikabilirsin.");
    }
    
    return PLUGIN_CONTINUE;
}


public abuzer_afkmenu(id)
{
    if(get_user_flags(id) & ADMIN_SLAY)
    {
        build_menu(id)
    }
    return PLUGIN_HANDLED
}

stock build_menu(id, page = 0)
{
    new menu = menu_create(fmt("-- StandBackWarrior's AFK Menu --\r Afk Sayisi:\y [%i]\d",afk), "menu_handler")
    
    new players[32], num, cmd[5], itemtxt[60]
    
    get_players(players, num)
    for (new i = 0; i < num; i++)
    {
        if(!is_user_connected(players[i]) || is_user_bot(players[i]))   continue;
        
        num_to_str(players[i],cmd,charsmax(cmd));
        
        formatex(itemtxt, 59, "%s%n %s", get_user_flags(players[i]) & ADMIN_USER ? "":" \r»\w ", players[i], abuzerbuafk[players[i]] ? "\r[ON]":"\y[OFF]")
        
        menu_additem(menu, itemtxt, cmd)
    }
    
    menu_display(id, menu, page)
}

public menu_handler(id, menu, item)
{
    if(item == MENU_EXIT){
        menu_destroy(menu)
        return ;
    }
    
    static cmd[5], callback, access, pid
    menu_item_getinfo(menu, item, access, cmd, 4, _, _, callback)
    
    pid = str_to_num(cmd)
    
    if (!is_user_connected(pid))
    {
        return;    
    }
    
    if(!abuzerbuafk[pid])
    {
        client_print_color(pid,print_team_red,"^1[^3 %s ^1]^4 %n ^3AFK Modunuzu ^4Aktif ^3Olarak Degistirdi.",TAG,id);
        client_print_color(id,print_team_red,"^1[^3 %s ^1]^4 %n ^3AFK Modu ^4Aktif ^3Olarak Degistirildi.",TAG,pid);
        abuzerbuafk[pid] = true;
        kd[pid][0] = floatround(get_entvar(pid, var_frags));
        kd[pid][1] = get_member(pid, m_iDeaths);
        set_entvar(pid,var_frags,0);
        set_member(pid,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(pid);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
        afk += 1;
        
    }
    else
    {
        client_print_color(pid,print_team_grey,"^1[^3 %s ^1]^n %n ^3AFK Modunuzu ^4Pasif ^3Olarak Degistirdi.",TAG,id);
        client_print_color(id,print_team_grey,"^1[^3 %s ^1]^n %n ^3AFK Modu ^4Pasif ^3Olarak Degistirildi.",TAG,pid);
        abuzerbuafk[pid] = false;
        abuzerafk[pid] = 0;
        set_entvar(pid,var_frags,float(kd[pid][0]));
        set_member(pid,m_iDeaths,kd[pid][1]);
        message_begin(MSG_ALL, 85);
        write_byte(pid);
        write_short(kd[pid][0]);
        write_short(kd[pid][1]);
        write_short(0);
        write_short(get_user_team(pid));
        message_end();
        afk -= 1;
    }
    
    menu_destroy(menu)
    
    build_menu(id, item / 7)
}

/////////////////////
public karistir(){
    server_cmd("amx_tbws");
    karisti = 3;
    set_task(1.0,"karistirxx");
}
public karistirxx(){
    if(get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0)
            return PLUGIN_HANDLED;
    
    new afkte=0,afkct=0;
    for(new i=1; i<=MAX_CLIENTS; i++){
        if(!is_user_connected(i) || is_user_bot(i))
            continue;
        
        if(afk > 0 && abuzerbuafk[i]){
            if(afkct>afkte)
            {
                rg_set_user_team(i, TEAM_TERRORIST),afkte++;
            }
            else if(afkte>afkct)
            {
                rg_set_user_team(i, TEAM_CT),afkct++;
            }
            else
            {
                switch(random_num(1, 2))
                {
                    case 1: rg_set_user_team(i, TEAM_TERRORIST),afkte++;
                    case 2: rg_set_user_team(i, TEAM_CT),afkct++;
                }
            }
        }
        g_LastRound = false;
    }
    return PLUGIN_HANDLED;
}

public abuzerafkx(id){
    if(afk <= 1 || get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0)
        return PLUGIN_HANDLED;
    
    new afkte=0,afkct=0;
    for(new i=1; i<=MAX_CLIENTS; i++) {
        if(!is_user_connected(i) || is_user_bot(i) || !abuzerbuafk[i])
            continue;
        
        switch(get_user_team(i))
        {
            case 1: afkte++;
            case 2: afkct++;
        }
        
        if(afkte > afkct+1 || afkct > afkte+1){
            if(afkct>afkte)
            {
                rg_set_user_team(i, TEAM_TERRORIST),afkte++;
            }
            else if(afkte>afkct)
            {
                rg_set_user_team(i, TEAM_CT),afkct++;
            }
            else
            {
                switch(random_num(1, 2))
                {
                    case 1: rg_set_user_team(i, TEAM_TERRORIST),afkte++;
                    case 2: rg_set_user_team(i, TEAM_CT),afkct++;
                }
            }
        }
    }
    return PLUGIN_HANDLED;
}

public abuzer(id){
    if(get_user_flags(id) & ADMIN_BAN){
        if(!(get_member_game(m_iNumCTWins) + get_member_game(m_iNumTerroristWins) > 2)){
            client_print_color(id,id,"^4[ %s ]^1 Ilk^3 3 Round^1 Gecmeden^4 Karistirilamaz.!", TAG);
            return PLUGIN_HANDLED;
        }
        if(karisti > 0){
            client_print_color(id,id,"^4[ %s ]^1 Son Karistirilmanin Ustunden^3 3 Round^1 Gecmeden Tekrar^4 Karistirilamaz.!^3Kalan: %i Round", TAG, karisti);
            return PLUGIN_HANDLED;
        }
        new bestm = menu_create(fmt("\y Takimlari Karistir\d Onaylama Ekrani"), "takim_karistir_func");

        menu_additem(bestm, "\r Onayla ve Takimlari Karistir!");
        menu_additem(bestm, " Vazgec^n");
        
        menu_setprop(bestm, MPROP_EXITNAME, "\rCikis");
        menu_display(id, bestm);
        return PLUGIN_HANDLED;
    }
    else
    {
        client_print_color(id,id,"^4[ %s ] ^1Yetkiniz Yeterli Degil.",TAG);
    }
    return PLUGIN_HANDLED;
}

public takim_karistir_func(const id, const iMenu, const iItem){
    if(iItem == MENU_EXIT) { menu_destroy(iMenu); return PLUGIN_HANDLED; }
    
    switch(iItem)
    {
        case 0:
        {
            if(get_pcvar_num(abuzerelsonunubekle) == 1){
                g_LastRound = true;
                
                client_print_color(0,0,"^4[ %s ] ^3%n ^1adli yetkili takim karistirma sistemini aktif etti.",TAG,id);
                client_print_color(0,0,"^4[ %s ] ^1el sonu oyuncular esit sekilde takimlara transfer edilecek.",TAG);
            }else{
                set_task(3.0, "karistir");
            }
        }
        case 1: client_cmd(id,"slot10");
    }
    
    menu_destroy(iMenu);
    return PLUGIN_HANDLED;
}

Son Düzenleme: 10-10-2025, 01:32, Düzenleyen: izmirlisecici.
Cevapla
#7
(10-10-2025, 01:31)izmirlisecici Adlı Kullanıcıdan Alıntı: otomatik olarak slaylanmıyor. player kendisini /afk yazınca afk moduna geçiyor. ayrıca /afkmenu çalışmıyor kodları buraya bırakıyorum düzeltebilen varmı

Kod:
#include <amxmodx>
#include <reapi>

#define MAX_AFK_WARNING 3  //Oyuncunun kac uyarı hakki oldugunu ayarlar.

new const PLUGIN[] = "AFK Kontrol";
new const VERSION[] = "1.0";
new const AUTHOR[] = "Anonim";
new abuzerelsonunubekle;
new bool:g_LastRound;
new const TAG[] = "SBW";

//new Time, afk_oto;
new  abuzerafk[MAX_CLIENTS+1] = 0, bool:abuzerbuafk[MAX_CLIENTS+1] = false,afk,karisti;
new Float: Player_Origin[33][3],bool:izle[MAX_CLIENTS+1];
new kd[MAX_CLIENTS+1][2];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    //Time = register_cvar("afk_slay", "15.0");
    //bind_pcvar_num(create_cvar("afk_oto_kontrol","0"),afk_oto)
    
    RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post = false);
    RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", .post = true);
    RegisterHookChain(RG_CSGameRules_RestartRound, "RG_CSGameRules_RestartRound_Post", .post = true);
    RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", .post = true);
    RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "CPlayer_HasRestrictItem_Pre", .post = false);
    
    register_logevent("abuzer_elbasi", 2, "1=Round_Start")
    register_clcmd("amx_karistir", "abuzer");
    register_clcmd("amx_kafk", "abuzerafkx");
    register_clcmd("say !karistir", "abuzer");
    abuzerelsonunubekle = register_cvar("tim_elsonunubekle","1")
    register_clcmd( "say /afk", "degistir" );
    register_clcmd( "say_team /afk", "degistir" );
    register_clcmd( "amx_izle", "izlex" );
    register_clcmd("amx_afkmenu", "abuzer_afkmenu")
    register_clcmd("say", "HookSay");
    register_clcmd("say_team", "HookSay");
    register_clcmd("owneryerac","yeracowner");
    register_clcmd("amx_yerac", "yer_ac");
}

public RG_RoundEnd_Post()
{
    if(g_LastRound) set_task(3.5, "karistir");
    else set_task(3.0, "karistirxx");
    if(karisti != 0) karisti -= 1;
}

public RG_CSGameRules_RestartRound_Post()
{
    if(get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i))
                continue;
            
            kd[i][0] = 0;
            kd[i][1] = 0;
        }
    }
}

public CPlayer_HasRestrictItem_Pre(id, ItemID:iItem, ItemRestType:iType)
{
    if(iType != ITEM_TYPE_BUYING)
    {
        return HC_CONTINUE;
    }

    if(abuzerbuafk[id]){
        abuzerbuafk[id]=false;
        abuzerafk[id] = 0;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Afk Modun Otomatik Olarak ^4Pasif ^3Yapildi.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,float(kd[id][0]));
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        afk -= 1;
        set_entvar(id, var_flags, get_entvar(id, var_flags) & ~FL_FROZEN);
        kd[id][0] = 0;
        kd[id][1] = 0;
        message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id);
        write_short(1<<10);
        write_short(1<<10);
        write_short(1<<10);
        write_byte(0);      // red
        write_byte(0);      // green
        write_byte(0);      // blue
        write_byte(0);    // alpha
        message_end();
    }

    return HC_CONTINUE;
}

@CBasePlayer_Killed(const victim, const attacker)
{
    if(is_user_alive(victim) && !is_user_bot(victim) && get_member(victim,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(victim, "weapon_c4") && Origin_Control(victim)){
        rg_transfer_c4(victim, 0);
    }
    set_entvar(victim, var_flags, get_entvar(victim, var_flags) & ~FL_FROZEN);
    #pragma unused attacker
    remove_task(victim);
}

public client_putinserver(id)
{
    abuzerbuafk[id] = false;
    abuzerafk[id] = 0;
    izle[id] = false
    kd[id][0] = 0;
    kd[id][1] = 0;
}

public yeracowner(){
    if(afk > 0){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i) || !abuzerbuafk[i] || get_user_flags(i) & ADMIN_IMMUNITY || get_member(i,m_iTeam) == TEAM_SPECTATOR)
                continue;
            
            server_cmd("kick #%d ^"Sv Doluydu Afk Kicklenerek Yer Acildi.!^"",get_user_userid(i));
            server_cmd("echo Atilan Kisi %n",i);
            break;
        }
    }
}

public yer_ac(id){
    if(get_user_flags(id) & ADMIN_BAN && afk > 1){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i) || !abuzerbuafk[i] || get_user_flags(i) & ADMIN_RESERVATION || get_member(i,m_iTeam) == TEAM_SPECTATOR)
                continue;
            
            server_cmd("kick #%d ^"Sv Doluydu Afk Kicklenerek Yer Acildi.!^"",get_user_userid(i));
            client_print_color(0,0,"^4*^3 %n^1 Afk'di Yer Acmak Icin Kicklendi.^3 Atan:^1 [^4%n^1]",i,id);
            break;
        }
    }
}

public client_disconnected(id)
{
    if(is_user_alive(id) && !is_user_bot(id) && get_member(id,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(id, "weapon_c4")){
        rg_transfer_c4(id, 0);
    }
    
    remove_task(id);
    if(abuzerbuafk[id]){
        abuzerbuafk[id] = false
        if(afk > 0) afk -= 1;
    }
    kd[id][0] = 0;
    kd[id][1] = 0;
}

public CBasePlayer_Spawn(id)
{
    remove_task(id);
    
    if(izle[id]){
        user_silentkill(id);
        if(get_entvar(id, var_frags) < 0) set_entvar(id,var_frags,0);
        if(get_member(id, m_iDeaths) > get_entvar(id, var_frags)) set_member(id,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
    }
    
    /*if(kd[id][0] != 0 && kd[id][1] != 0){
        set_entvar(id,var_frags,kd[id][0]);
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        kd[id][0] = 0;
        kd[id][1] = 0;
    }*/
    
    set_task(0.4, "Get_Spawn", id);
}

public abuzer_elbasi(){
    set_task(5.0, "abuzer1");
}
public abuzer1(){
    new id
    for(id = 0; id <= MAX_CLIENTS+1; id++)
    {
        if(is_user_alive(id)) {
            if(abuzerbuafk[id]){                
                user_silentkill(id);
                if(get_entvar(id, var_frags) < 0) set_entvar(id,var_frags,0);
                if(get_member(id, m_iDeaths) > get_entvar(id, var_frags)) set_member(id,m_iDeaths,0);
                message_begin(MSG_ALL, 85);
                write_byte(id);
                write_short(0);
                write_short(0);
                write_short(0);
                write_short(0);
                message_end();
            }      
        }
    }
}  

public Get_Spawn(id)
{
    if(is_user_alive(id)) get_entvar(id, var_origin, Player_Origin[id]);
    else return;
    
    if(abuzerbuafk[id])
    {
        if(!is_user_bot(id) && get_member(id,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(id, "weapon_c4")){
            rg_transfer_c4(id, 0);
        }
        set_entvar(id, var_flags, get_entvar(id, var_flags) | FL_FROZEN);
        if(get_user_flags(id) & ADMIN_USER || ~get_user_flags(id) & ADMIN_LEVEL_E){
            client_print_color(id,print_team_grey,"^4[ SBW ]^1:^3 AFK Moddasin.^4 /afk^1 yazarak^3 AFK Moda^4 girip^1 cikabilirsin.! Skorun:^4 %i^3 -^4 %i",kd[id][0],kd[id][1]);
        }
        message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id);
        write_short(1<<15);
        write_short(1<<13);
        write_short(1<<15);
        write_byte(random_num(0,255));      // red
        write_byte(random_num(0,255));      // green
        write_byte(random_num(0,255));      // blue
        write_byte(170);        // alpha
        message_end();
    }else{
        if(get_user_flags(id) & ADMIN_BAN_TEMP){
            get_entvar(id, var_origin, Player_Origin[id]);
            set_task(10.0, "Check_AFK", id);
        }
    }
}

public Check_AFK(id)
{
    if(is_user_alive(id) && Origin_Control(id))
    {
        if(abuzerafk[id] == 0){
            kd[id][0] = floatround(get_entvar(id, var_frags));
            kd[id][1] = get_member(id, m_iDeaths);
        }
        if(abuzerafk[id] < MAX_AFK_WARNING){
            user_silentkill(id);
            //set_entvar(id,var_frags,0);
            //set_member(id,m_iDeaths,0);
            message_begin(MSG_ALL, 85);
            write_byte(id);
            write_short(0);
            write_short(0);
            write_short(0);
            write_short(0);
            message_end();
            if(kd[id][1] == 1) kd[id][1] = 0;
            abuzerafk[id]++;
            client_print_color(id, id, "^1[^3 %s ^1] ^3Hareket etmiyorsun! Otomatik AFK Modu Icin Uyari: ^4%i/%i^1 Skorun:^4 %i^3 -^4 %i", TAG,abuzerafk[id], MAX_AFK_WARNING,kd[id][0],kd[id][1]);
        }
        else
        {
            user_silentkill(id);
            //set_entvar(id,var_frags,0);
            //set_member(id,m_iDeaths,0);
            message_begin(MSG_ALL, 85);
            write_byte(id);
            write_short(0);
            write_short(0);
            write_short(0);
            write_short(0);
            message_end();
            abuzerbuafk[id] = true;
            afk += 1;
            //client_print_color(0, 0, "^1[^3 %s ^1] ^4%n ^3AFK Oldugu Tespit Edildi Ve Otomatik AFK Moduna Gecirildi.Her El Oldurulecek.", TAG, id);
            client_print_color(id, id, "^1[^3 %s ^1] ^3Otomatik AFK Modu Aktif. Artik El Basi Olduruleceksin.^4 [ /afk ]^1 Skorun:^4 %i^3 -^4 %i", TAG,kd[id][0],kd[id][1]);
        }
    }  
}

public Origin_Control(id)
{
    new Float: Origin[3];
    get_entvar(id, var_origin, Origin);

    for(new i; i < 3; i++)
    {
        if(Origin[i] != Player_Origin[id][i])
        {
            return 0;
        }
    }
    
    return 1;
}

public degistir(id)
{
    if(abuzerbuafk[id]){
        abuzerbuafk[id]=false;
        abuzerafk[id] = 0;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Afk Modunu ^4Pasif ^3Yaptin.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,float(kd[id][0]));
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        afk -= 1;
        set_entvar(id, var_flags, get_entvar(id, var_flags) & ~FL_FROZEN);
        kd[id][0] = 0;
        kd[id][1] = 0;
    }
    else
    {
        abuzerbuafk[id]=true;
        kd[id][0] = floatround(get_entvar(id, var_frags));
        kd[id][1] = get_member(id, m_iDeaths);
        client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modunu ^4Aktif ^3Yaptin.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,0);
        set_member(id,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
        afk += 1;
        if(is_user_alive(id)) set_entvar(id, var_flags, get_entvar(id, var_flags) | FL_FROZEN);
    }
    return PLUGIN_HANDLED;
}

public izlex(id)
{
    if(~get_user_flags(id) & ADMIN_RESERVATION) return PLUGIN_HANDLED;
    if(izle[id]){
        izle[id]=false;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Izle Modunu ^4Pasif ^3Yaptin.",TAG);
    }
    else
    {
        izle[id]=true;
        client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Izle Modunu ^4Aktif ^3Yaptin.",TAG);
    }
    return PLUGIN_HANDLED;
}

public HookSay(id)
{
    if(abuzerbuafk[id])
    {
        if(~get_user_flags(id) & ADMIN_BAN)
        {
            client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modunda Oldugunuz Icin Say'dan Yazamazsiniz.",TAG);
            client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modundadan Cikmak Icin ^4/afk ^3Yaz^1 veya^3 El Basi Ekipman^4 Satin Al.",TAG);
            return PLUGIN_HANDLED;
        }else client_print(id, print_center, "AFK Modundasin. /afk Yazarak Cikabilirsin.");
    }
    
    return PLUGIN_CONTINUE;
}


public abuzer_afkmenu(id)
{
    if(get_user_flags(id) & ADMIN_SLAY)
    {
        build_menu(id)
    }
    return PLUGIN_HANDLED
}

stock build_menu(id, page = 0)
{
    new menu = menu_create(fmt("-- StandBackWarrior's AFK Menu --\r Afk Sayisi:\y [%i]\d",afk), "menu_handler")
    
    new players[32], num, cmd[5], itemtxt[60]
    
    get_players(players, num)
    for (new i = 0; i < num; i++)
    {
        if(!is_user_connected(players[i]) || is_user_bot(players[i]))   continue;
        
        num_to_str(players[i],cmd,charsmax(cmd));
        
        formatex(itemtxt, 59, "%s%n %s", get_user_flags(players[i]) & ADMIN_USER ? "":" \r»\w ", players[i], abuzerbuafk[players[i]] ? "\r[ON]":"\y[OFF]")
        
        menu_additem(menu, itemtxt, cmd)
    }
    
    menu_display(id, menu, page)
}

public menu_handler(id, menu, item)
{
    if(item == MENU_EXIT){
        menu_destroy(menu)
        return ;
    }
    
    static cmd[5], callback, access, pid
    menu_item_getinfo(menu, item, access, cmd, 4, _, _, callback)
    
    pid = str_to_num(cmd)
    
    if (!is_user_connected(pid))
    {
        return;    
    }
    
    if(!abuzerbuafk[pid])
    {
        client_print_color(pid,print_team_red,"^1[^3 %s ^1]^4 %n ^3AFK Modunuzu ^4Aktif ^3Olarak Degistirdi.",TAG,id);
        client_print_color(id,print_team_red,"^1[^3 %s ^1]^4 %n ^3AFK Modu ^4Aktif ^3Olarak Degistirildi.",TAG,pid);
        abuzerbuafk[pid] = true;
        kd[pid][0] = floatround(get_entvar(pid, var_frags));
        kd[pid][1] = get_member(pid, m_iDeaths);
        set_entvar(pid,var_frags,0);
        set_member(pid,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(pid);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
        afk += 1;
        
    }
    else
    {
        client_print_color(pid,print_team_grey,"^1[^3 %s ^1]^n %n ^3AFK Modunuzu ^4Pasif ^3Olarak Degistirdi.",TAG,id);
        client_print_color(id,print_team_grey,"^1[^3 %s ^1]^n %n ^3AFK Modu ^4Pasif ^3Olarak Degistirildi.",TAG,pid);
        abuzerbuafk[pid] = false;
        abuzerafk[pid] = 0;
        set_entvar(pid,var_frags,float(kd[pid][0]));
        set_member(pid,m_iDeaths,kd[pid][1]);
        message_begin(MSG_ALL, 85);
        write_byte(pid);
        write_short(kd[pid][0]);
        write_short(kd[pid][1]);
        write_short(0);
        write_short(get_user_team(pid));
        message_end();
        afk -= 1;
    }
    
    menu_destroy(menu)
    
    build_menu(id, item / 7)
}

/////////////////////
public karistir(){
    server_cmd("amx_tbws");
    karisti = 3;
    set_task(1.0,"karistirxx");
}
public karistirxx(){
    if(get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0)
            return PLUGIN_HANDLED;
    
    new afkte=0,afkct=0;
    for(new i=1; i<=MAX_CLIENTS; i++){
        if(!is_user_connected(i) || is_user_bot(i))
            continue;
        
        if(afk > 0 && abuzerbuafk[i]){
            if(afkct>afkte)
            {
                rg_set_user_team(i, TEAM_TERRORIST),afkte++;
            }
            else if(afkte>afkct)
            {
                rg_set_user_team(i, TEAM_CT),afkct++;
            }
            else
            {
                switch(random_num(1, 2))
                {
                    case 1: rg_set_user_team(i, TEAM_TERRORIST),afkte++;
                    case 2: rg_set_user_team(i, TEAM_CT),afkct++;
                }
            }
        }
        g_LastRound = false;
    }
    return PLUGIN_HANDLED;
}

public abuzerafkx(id){
    if(afk <= 1 || get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0)
        return PLUGIN_HANDLED;
    
    new afkte=0,afkct=0;
    for(new i=1; i<=MAX_CLIENTS; i++) {
        if(!is_user_connected(i) || is_user_bot(i) || !abuzerbuafk[i])
            continue;
        
        switch(get_user_team(i))
        {
            case 1: afkte++;
            case 2: afkct++;
        }
        
        if(afkte > afkct+1 || afkct > afkte+1){
            if(afkct>afkte)
            {
                rg_set_user_team(i, TEAM_TERRORIST),afkte++;
            }
            else if(afkte>afkct)
            {
                rg_set_user_team(i, TEAM_CT),afkct++;
            }
            else
            {
                switch(random_num(1, 2))
                {
                    case 1: rg_set_user_team(i, TEAM_TERRORIST),afkte++;
                    case 2: rg_set_user_team(i, TEAM_CT),afkct++;
                }
            }
        }
    }
    return PLUGIN_HANDLED;
}

public abuzer(id){
    if(get_user_flags(id) & ADMIN_BAN){
        if(!(get_member_game(m_iNumCTWins) + get_member_game(m_iNumTerroristWins) > 2)){
            client_print_color(id,id,"^4[ %s ]^1 Ilk^3 3 Round^1 Gecmeden^4 Karistirilamaz.!", TAG);
            return PLUGIN_HANDLED;
        }
        if(karisti > 0){
            client_print_color(id,id,"^4[ %s ]^1 Son Karistirilmanin Ustunden^3 3 Round^1 Gecmeden Tekrar^4 Karistirilamaz.!^3Kalan: %i Round", TAG, karisti);
            return PLUGIN_HANDLED;
        }
        new bestm = menu_create(fmt("\y Takimlari Karistir\d Onaylama Ekrani"), "takim_karistir_func");

        menu_additem(bestm, "\r Onayla ve Takimlari Karistir!");
        menu_additem(bestm, " Vazgec^n");
        
        menu_setprop(bestm, MPROP_EXITNAME, "\rCikis");
        menu_display(id, bestm);
        return PLUGIN_HANDLED;
    }
    else
    {
        client_print_color(id,id,"^4[ %s ] ^1Yetkiniz Yeterli Degil.",TAG);
    }
    return PLUGIN_HANDLED;
}

public takim_karistir_func(const id, const iMenu, const iItem){
    if(iItem == MENU_EXIT) { menu_destroy(iMenu); return PLUGIN_HANDLED; }
    
    switch(iItem)
    {
        case 0:
        {
            if(get_pcvar_num(abuzerelsonunubekle) == 1){
                g_LastRound = true;
                
                client_print_color(0,0,"^4[ %s ] ^3%n ^1adli yetkili takim karistirma sistemini aktif etti.",TAG,id);
                client_print_color(0,0,"^4[ %s ] ^1el sonu oyuncular esit sekilde takimlara transfer edilecek.",TAG);
            }else{
                set_task(3.0, "karistir");
            }
        }
        case 1: client_cmd(id,"slot10");
    }
    
    menu_destroy(iMenu);
    return PLUGIN_HANDLED;
}

Plugin.ini'de üste yazıp öyle deneyin, onun haricinde herhangi bir istek talep için yeni bir konu açarak yardım talep edebilirsiniz.
Stand Back Warrior's   | ip: cs.sbwpro.com | ts3: ts3.sbwpro.com
Cevapla
#8
(10-10-2025, 04:25)Mr.Commander Adlı Kullanıcıdan Alıntı:
(10-10-2025, 01:31)izmirlisecici Adlı Kullanıcıdan Alıntı: otomatik olarak slaylanmıyor. player kendisini /afk yazınca afk moduna geçiyor. ayrıca /afkmenu çalışmıyor kodları buraya bırakıyorum düzeltebilen varmı

Kod:
#include <amxmodx>
#include <reapi>

#define MAX_AFK_WARNING 3  //Oyuncunun kac uyarı hakki oldugunu ayarlar.

new const PLUGIN[] = "AFK Kontrol";
new const VERSION[] = "1.0";
new const AUTHOR[] = "Anonim";
new abuzerelsonunubekle;
new bool:g_LastRound;
new const TAG[] = "SBW";

//new Time, afk_oto;
new  abuzerafk[MAX_CLIENTS+1] = 0, bool:abuzerbuafk[MAX_CLIENTS+1] = false,afk,karisti;
new Float: Player_Origin[33][3],bool:izle[MAX_CLIENTS+1];
new kd[MAX_CLIENTS+1][2];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    //Time = register_cvar("afk_slay", "15.0");
    //bind_pcvar_num(create_cvar("afk_oto_kontrol","0"),afk_oto)
    
    RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post = false);
    RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", .post = true);
    RegisterHookChain(RG_CSGameRules_RestartRound, "RG_CSGameRules_RestartRound_Post", .post = true);
    RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", .post = true);
    RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "CPlayer_HasRestrictItem_Pre", .post = false);
    
    register_logevent("abuzer_elbasi", 2, "1=Round_Start")
    register_clcmd("amx_karistir", "abuzer");
    register_clcmd("amx_kafk", "abuzerafkx");
    register_clcmd("say !karistir", "abuzer");
    abuzerelsonunubekle = register_cvar("tim_elsonunubekle","1")
    register_clcmd( "say /afk", "degistir" );
    register_clcmd( "say_team /afk", "degistir" );
    register_clcmd( "amx_izle", "izlex" );
    register_clcmd("amx_afkmenu", "abuzer_afkmenu")
    register_clcmd("say", "HookSay");
    register_clcmd("say_team", "HookSay");
    register_clcmd("owneryerac","yeracowner");
    register_clcmd("amx_yerac", "yer_ac");
}

public RG_RoundEnd_Post()
{
    if(g_LastRound) set_task(3.5, "karistir");
    else set_task(3.0, "karistirxx");
    if(karisti != 0) karisti -= 1;
}

public RG_CSGameRules_RestartRound_Post()
{
    if(get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i))
                continue;
            
            kd[i][0] = 0;
            kd[i][1] = 0;
        }
    }
}

public CPlayer_HasRestrictItem_Pre(id, ItemID:iItem, ItemRestType:iType)
{
    if(iType != ITEM_TYPE_BUYING)
    {
        return HC_CONTINUE;
    }

    if(abuzerbuafk[id]){
        abuzerbuafk[id]=false;
        abuzerafk[id] = 0;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Afk Modun Otomatik Olarak ^4Pasif ^3Yapildi.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,float(kd[id][0]));
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        afk -= 1;
        set_entvar(id, var_flags, get_entvar(id, var_flags) & ~FL_FROZEN);
        kd[id][0] = 0;
        kd[id][1] = 0;
        message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id);
        write_short(1<<10);
        write_short(1<<10);
        write_short(1<<10);
        write_byte(0);      // red
        write_byte(0);      // green
        write_byte(0);      // blue
        write_byte(0);    // alpha
        message_end();
    }

    return HC_CONTINUE;
}

@CBasePlayer_Killed(const victim, const attacker)
{
    if(is_user_alive(victim) && !is_user_bot(victim) && get_member(victim,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(victim, "weapon_c4") && Origin_Control(victim)){
        rg_transfer_c4(victim, 0);
    }
    set_entvar(victim, var_flags, get_entvar(victim, var_flags) & ~FL_FROZEN);
    #pragma unused attacker
    remove_task(victim);
}

public client_putinserver(id)
{
    abuzerbuafk[id] = false;
    abuzerafk[id] = 0;
    izle[id] = false
    kd[id][0] = 0;
    kd[id][1] = 0;
}

public yeracowner(){
    if(afk > 0){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i) || !abuzerbuafk[i] || get_user_flags(i) & ADMIN_IMMUNITY || get_member(i,m_iTeam) == TEAM_SPECTATOR)
                continue;
            
            server_cmd("kick #%d ^"Sv Doluydu Afk Kicklenerek Yer Acildi.!^"",get_user_userid(i));
            server_cmd("echo Atilan Kisi %n",i);
            break;
        }
    }
}

public yer_ac(id){
    if(get_user_flags(id) & ADMIN_BAN && afk > 1){
        for(new i=1; i <= MaxClients; i++) {
            if(!is_user_connected(i) || !abuzerbuafk[i] || get_user_flags(i) & ADMIN_RESERVATION || get_member(i,m_iTeam) == TEAM_SPECTATOR)
                continue;
            
            server_cmd("kick #%d ^"Sv Doluydu Afk Kicklenerek Yer Acildi.!^"",get_user_userid(i));
            client_print_color(0,0,"^4*^3 %n^1 Afk'di Yer Acmak Icin Kicklendi.^3 Atan:^1 [^4%n^1]",i,id);
            break;
        }
    }
}

public client_disconnected(id)
{
    if(is_user_alive(id) && !is_user_bot(id) && get_member(id,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(id, "weapon_c4")){
        rg_transfer_c4(id, 0);
    }
    
    remove_task(id);
    if(abuzerbuafk[id]){
        abuzerbuafk[id] = false
        if(afk > 0) afk -= 1;
    }
    kd[id][0] = 0;
    kd[id][1] = 0;
}

public CBasePlayer_Spawn(id)
{
    remove_task(id);
    
    if(izle[id]){
        user_silentkill(id);
        if(get_entvar(id, var_frags) < 0) set_entvar(id,var_frags,0);
        if(get_member(id, m_iDeaths) > get_entvar(id, var_frags)) set_member(id,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
    }
    
    /*if(kd[id][0] != 0 && kd[id][1] != 0){
        set_entvar(id,var_frags,kd[id][0]);
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        kd[id][0] = 0;
        kd[id][1] = 0;
    }*/
    
    set_task(0.4, "Get_Spawn", id);
}

public abuzer_elbasi(){
    set_task(5.0, "abuzer1");
}
public abuzer1(){
    new id
    for(id = 0; id <= MAX_CLIENTS+1; id++)
    {
        if(is_user_alive(id)) {
            if(abuzerbuafk[id]){                
                user_silentkill(id);
                if(get_entvar(id, var_frags) < 0) set_entvar(id,var_frags,0);
                if(get_member(id, m_iDeaths) > get_entvar(id, var_frags)) set_member(id,m_iDeaths,0);
                message_begin(MSG_ALL, 85);
                write_byte(id);
                write_short(0);
                write_short(0);
                write_short(0);
                write_short(0);
                message_end();
            }      
        }
    }
}  

public Get_Spawn(id)
{
    if(is_user_alive(id)) get_entvar(id, var_origin, Player_Origin[id]);
    else return;
    
    if(abuzerbuafk[id])
    {
        if(!is_user_bot(id) && get_member(id,m_iTeam) == TEAM_TERRORIST && rg_has_item_by_name(id, "weapon_c4")){
            rg_transfer_c4(id, 0);
        }
        set_entvar(id, var_flags, get_entvar(id, var_flags) | FL_FROZEN);
        if(get_user_flags(id) & ADMIN_USER || ~get_user_flags(id) & ADMIN_LEVEL_E){
            client_print_color(id,print_team_grey,"^4[ SBW ]^1:^3 AFK Moddasin.^4 /afk^1 yazarak^3 AFK Moda^4 girip^1 cikabilirsin.! Skorun:^4 %i^3 -^4 %i",kd[id][0],kd[id][1]);
        }
        message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id);
        write_short(1<<15);
        write_short(1<<13);
        write_short(1<<15);
        write_byte(random_num(0,255));      // red
        write_byte(random_num(0,255));      // green
        write_byte(random_num(0,255));      // blue
        write_byte(170);        // alpha
        message_end();
    }else{
        if(get_user_flags(id) & ADMIN_BAN_TEMP){
            get_entvar(id, var_origin, Player_Origin[id]);
            set_task(10.0, "Check_AFK", id);
        }
    }
}

public Check_AFK(id)
{
    if(is_user_alive(id) && Origin_Control(id))
    {
        if(abuzerafk[id] == 0){
            kd[id][0] = floatround(get_entvar(id, var_frags));
            kd[id][1] = get_member(id, m_iDeaths);
        }
        if(abuzerafk[id] < MAX_AFK_WARNING){
            user_silentkill(id);
            //set_entvar(id,var_frags,0);
            //set_member(id,m_iDeaths,0);
            message_begin(MSG_ALL, 85);
            write_byte(id);
            write_short(0);
            write_short(0);
            write_short(0);
            write_short(0);
            message_end();
            if(kd[id][1] == 1) kd[id][1] = 0;
            abuzerafk[id]++;
            client_print_color(id, id, "^1[^3 %s ^1] ^3Hareket etmiyorsun! Otomatik AFK Modu Icin Uyari: ^4%i/%i^1 Skorun:^4 %i^3 -^4 %i", TAG,abuzerafk[id], MAX_AFK_WARNING,kd[id][0],kd[id][1]);
        }
        else
        {
            user_silentkill(id);
            //set_entvar(id,var_frags,0);
            //set_member(id,m_iDeaths,0);
            message_begin(MSG_ALL, 85);
            write_byte(id);
            write_short(0);
            write_short(0);
            write_short(0);
            write_short(0);
            message_end();
            abuzerbuafk[id] = true;
            afk += 1;
            //client_print_color(0, 0, "^1[^3 %s ^1] ^4%n ^3AFK Oldugu Tespit Edildi Ve Otomatik AFK Moduna Gecirildi.Her El Oldurulecek.", TAG, id);
            client_print_color(id, id, "^1[^3 %s ^1] ^3Otomatik AFK Modu Aktif. Artik El Basi Olduruleceksin.^4 [ /afk ]^1 Skorun:^4 %i^3 -^4 %i", TAG,kd[id][0],kd[id][1]);
        }
    }  
}

public Origin_Control(id)
{
    new Float: Origin[3];
    get_entvar(id, var_origin, Origin);

    for(new i; i < 3; i++)
    {
        if(Origin[i] != Player_Origin[id][i])
        {
            return 0;
        }
    }
    
    return 1;
}

public degistir(id)
{
    if(abuzerbuafk[id]){
        abuzerbuafk[id]=false;
        abuzerafk[id] = 0;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Afk Modunu ^4Pasif ^3Yaptin.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,float(kd[id][0]));
        set_member(id,m_iDeaths,kd[id][1]);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(kd[id][0]);
        write_short(kd[id][1]);
        write_short(0);
        write_short(get_user_team(id));
        message_end();
        afk -= 1;
        set_entvar(id, var_flags, get_entvar(id, var_flags) & ~FL_FROZEN);
        kd[id][0] = 0;
        kd[id][1] = 0;
    }
    else
    {
        abuzerbuafk[id]=true;
        kd[id][0] = floatround(get_entvar(id, var_frags));
        kd[id][1] = get_member(id, m_iDeaths);
        client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modunu ^4Aktif ^3Yaptin.^1 Skorun:^4 %i^3 -^4 %i",TAG,kd[id][0],kd[id][1]);
        set_entvar(id,var_frags,0);
        set_member(id,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(id);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
        afk += 1;
        if(is_user_alive(id)) set_entvar(id, var_flags, get_entvar(id, var_flags) | FL_FROZEN);
    }
    return PLUGIN_HANDLED;
}

public izlex(id)
{
    if(~get_user_flags(id) & ADMIN_RESERVATION) return PLUGIN_HANDLED;
    if(izle[id]){
        izle[id]=false;
        client_print_color(id,print_team_red,"^1[^3 %s ^1] ^3Izle Modunu ^4Pasif ^3Yaptin.",TAG);
    }
    else
    {
        izle[id]=true;
        client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Izle Modunu ^4Aktif ^3Yaptin.",TAG);
    }
    return PLUGIN_HANDLED;
}

public HookSay(id)
{
    if(abuzerbuafk[id])
    {
        if(~get_user_flags(id) & ADMIN_BAN)
        {
            client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modunda Oldugunuz Icin Say'dan Yazamazsiniz.",TAG);
            client_print_color(id,print_team_grey,"^1[^3 %s ^1] ^3Afk Modundadan Cikmak Icin ^4/afk ^3Yaz^1 veya^3 El Basi Ekipman^4 Satin Al.",TAG);
            return PLUGIN_HANDLED;
        }else client_print(id, print_center, "AFK Modundasin. /afk Yazarak Cikabilirsin.");
    }
    
    return PLUGIN_CONTINUE;
}


public abuzer_afkmenu(id)
{
    if(get_user_flags(id) & ADMIN_SLAY)
    {
        build_menu(id)
    }
    return PLUGIN_HANDLED
}

stock build_menu(id, page = 0)
{
    new menu = menu_create(fmt("-- StandBackWarrior's AFK Menu --\r Afk Sayisi:\y [%i]\d",afk), "menu_handler")
    
    new players[32], num, cmd[5], itemtxt[60]
    
    get_players(players, num)
    for (new i = 0; i < num; i++)
    {
        if(!is_user_connected(players[i]) || is_user_bot(players[i]))   continue;
        
        num_to_str(players[i],cmd,charsmax(cmd));
        
        formatex(itemtxt, 59, "%s%n %s", get_user_flags(players[i]) & ADMIN_USER ? "":" \r»\w ", players[i], abuzerbuafk[players[i]] ? "\r[ON]":"\y[OFF]")
        
        menu_additem(menu, itemtxt, cmd)
    }
    
    menu_display(id, menu, page)
}

public menu_handler(id, menu, item)
{
    if(item == MENU_EXIT){
        menu_destroy(menu)
        return ;
    }
    
    static cmd[5], callback, access, pid
    menu_item_getinfo(menu, item, access, cmd, 4, _, _, callback)
    
    pid = str_to_num(cmd)
    
    if (!is_user_connected(pid))
    {
        return;    
    }
    
    if(!abuzerbuafk[pid])
    {
        client_print_color(pid,print_team_red,"^1[^3 %s ^1]^4 %n ^3AFK Modunuzu ^4Aktif ^3Olarak Degistirdi.",TAG,id);
        client_print_color(id,print_team_red,"^1[^3 %s ^1]^4 %n ^3AFK Modu ^4Aktif ^3Olarak Degistirildi.",TAG,pid);
        abuzerbuafk[pid] = true;
        kd[pid][0] = floatround(get_entvar(pid, var_frags));
        kd[pid][1] = get_member(pid, m_iDeaths);
        set_entvar(pid,var_frags,0);
        set_member(pid,m_iDeaths,0);
        message_begin(MSG_ALL, 85);
        write_byte(pid);
        write_short(0);
        write_short(0);
        write_short(0);
        write_short(0);
        message_end();
        afk += 1;
        
    }
    else
    {
        client_print_color(pid,print_team_grey,"^1[^3 %s ^1]^n %n ^3AFK Modunuzu ^4Pasif ^3Olarak Degistirdi.",TAG,id);
        client_print_color(id,print_team_grey,"^1[^3 %s ^1]^n %n ^3AFK Modu ^4Pasif ^3Olarak Degistirildi.",TAG,pid);
        abuzerbuafk[pid] = false;
        abuzerafk[pid] = 0;
        set_entvar(pid,var_frags,float(kd[pid][0]));
        set_member(pid,m_iDeaths,kd[pid][1]);
        message_begin(MSG_ALL, 85);
        write_byte(pid);
        write_short(kd[pid][0]);
        write_short(kd[pid][1]);
        write_short(0);
        write_short(get_user_team(pid));
        message_end();
        afk -= 1;
    }
    
    menu_destroy(menu)
    
    build_menu(id, item / 7)
}

/////////////////////
public karistir(){
    server_cmd("amx_tbws");
    karisti = 3;
    set_task(1.0,"karistirxx");
}
public karistirxx(){
    if(get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0)
            return PLUGIN_HANDLED;
    
    new afkte=0,afkct=0;
    for(new i=1; i<=MAX_CLIENTS; i++){
        if(!is_user_connected(i) || is_user_bot(i))
            continue;
        
        if(afk > 0 && abuzerbuafk[i]){
            if(afkct>afkte)
            {
                rg_set_user_team(i, TEAM_TERRORIST),afkte++;
            }
            else if(afkte>afkct)
            {
                rg_set_user_team(i, TEAM_CT),afkct++;
            }
            else
            {
                switch(random_num(1, 2))
                {
                    case 1: rg_set_user_team(i, TEAM_TERRORIST),afkte++;
                    case 2: rg_set_user_team(i, TEAM_CT),afkct++;
                }
            }
        }
        g_LastRound = false;
    }
    return PLUGIN_HANDLED;
}

public abuzerafkx(id){
    if(afk <= 1 || get_member_game(m_iNumCTWins)+get_member_game(m_iNumTerroristWins)==0)
        return PLUGIN_HANDLED;
    
    new afkte=0,afkct=0;
    for(new i=1; i<=MAX_CLIENTS; i++) {
        if(!is_user_connected(i) || is_user_bot(i) || !abuzerbuafk[i])
            continue;
        
        switch(get_user_team(i))
        {
            case 1: afkte++;
            case 2: afkct++;
        }
        
        if(afkte > afkct+1 || afkct > afkte+1){
            if(afkct>afkte)
            {
                rg_set_user_team(i, TEAM_TERRORIST),afkte++;
            }
            else if(afkte>afkct)
            {
                rg_set_user_team(i, TEAM_CT),afkct++;
            }
            else
            {
                switch(random_num(1, 2))
                {
                    case 1: rg_set_user_team(i, TEAM_TERRORIST),afkte++;
                    case 2: rg_set_user_team(i, TEAM_CT),afkct++;
                }
            }
        }
    }
    return PLUGIN_HANDLED;
}

public abuzer(id){
    if(get_user_flags(id) & ADMIN_BAN){
        if(!(get_member_game(m_iNumCTWins) + get_member_game(m_iNumTerroristWins) > 2)){
            client_print_color(id,id,"^4[ %s ]^1 Ilk^3 3 Round^1 Gecmeden^4 Karistirilamaz.!", TAG);
            return PLUGIN_HANDLED;
        }
        if(karisti > 0){
            client_print_color(id,id,"^4[ %s ]^1 Son Karistirilmanin Ustunden^3 3 Round^1 Gecmeden Tekrar^4 Karistirilamaz.!^3Kalan: %i Round", TAG, karisti);
            return PLUGIN_HANDLED;
        }
        new bestm = menu_create(fmt("\y Takimlari Karistir\d Onaylama Ekrani"), "takim_karistir_func");

        menu_additem(bestm, "\r Onayla ve Takimlari Karistir!");
        menu_additem(bestm, " Vazgec^n");
        
        menu_setprop(bestm, MPROP_EXITNAME, "\rCikis");
        menu_display(id, bestm);
        return PLUGIN_HANDLED;
    }
    else
    {
        client_print_color(id,id,"^4[ %s ] ^1Yetkiniz Yeterli Degil.",TAG);
    }
    return PLUGIN_HANDLED;
}

public takim_karistir_func(const id, const iMenu, const iItem){
    if(iItem == MENU_EXIT) { menu_destroy(iMenu); return PLUGIN_HANDLED; }
    
    switch(iItem)
    {
        case 0:
        {
            if(get_pcvar_num(abuzerelsonunubekle) == 1){
                g_LastRound = true;
                
                client_print_color(0,0,"^4[ %s ] ^3%n ^1adli yetkili takim karistirma sistemini aktif etti.",TAG,id);
                client_print_color(0,0,"^4[ %s ] ^1el sonu oyuncular esit sekilde takimlara transfer edilecek.",TAG);
            }else{
                set_task(3.0, "karistir");
            }
        }
        case 1: client_cmd(id,"slot10");
    }
    
    menu_destroy(iMenu);
    return PLUGIN_HANDLED;
}

Plugin.ini'de üste yazıp öyle deneyin, onun haricinde herhangi bir istek talep için yeni bir konu açarak yardım talep edebilirsiniz.
commander yaptım yine olmadı. /afkmenu açılmıyor ve afk kalanı slaylamıyor. sadece /afk yazınca afk oluyor.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da