⭐🚀 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

Konu

#1
Merhaba 
kullandığımız afk eklentisinde değişiklik için yardımınızı rica edeceğim şimdiden teşekkürler iyi forumlar dilerim.

suanki eklentide 15 saniyede slay atıp 3 el sonra afk moduna alıp ekranı kırmızı yapıyor.


bizim istediğimiz 25 saniye sonra slay atsın 3 el sonra afk moduna almasın. 
7 elden sonra admin dahil herkese kick atsın AFK kaldigin icin kicklendin. yazsin 

buarada Oyuncu istediginde /afk yazıp afk moduna gecebilsin. Afk modundayken de kick atsin ama onun süresi olur heralde onu tam bilemedim

https://www.webailesi.com/ds-afkmenusu-17676.sma
Son Düzenleme: 15-01-2026, 14:30, Düzenleyen: ReckLesS.
#2
Dener misiniz ? 

Güncellenmiş ;

https://www.webailesi.com/ds-afkmenusu-17685.sma

PHP Kod:
rre_afkslaysure 30      // 30 saniye hareket etmezse öldür
rre_afkkickcount 5      // 5 kez AFK kalırsa kickle
rre_afkmoduyari 60      // Her 60 saniyede uyar
rre_afkmodkick 900      // 15 dakika sonra kickle 
✦ Discord: Osmanbnm ✦
Son Düzenleme: 15-01-2026, 16:30, Düzenleyen: osmanbnm.
#3
(15-01-2026, 14:42)osmanbnm Adlı Kullanıcıdan Alıntı: Dener misiniz ? 

https://www.webailesi.com/ds-afkmenusu-17677.sma

PHP Kod:
re_afkslaysure "25"      // Kaç saniye sonra slay atacak
re_afkkickcount "7"      // Kaç slay sonra kick atacak  
re_afkmoduyari "30"      // AFK mod uyarı aralığı (saniye)
re_afkmodkick "300"      // AFK modunda kaç saniye sonra kick atacak (300 = 5 dakika) 
eline sağlık kardeşim olmuş fakat; 

slay süresi hala 15 saniye onu 25 saniye olarak düzeltirmisin
birde diğer oyuncuların afk uyarılarınıda say'da goruyoruz her oyuncu kendi ekranında gorsun 
[ReckLesS] AFK Uyari: 1/7 - Hareket etmezseniz kickleneceksiniz!
[ReckLesS] Scorpion! AFK oldugu icin olduruldu. (1/7)
[ReckLesS] FortuNe AFK oldugu icin olduruldu. (1/7)

birde afk modundayken 300 saniye sonra kick değil de 10 dakika sonra kick olarak yaparmısın saydada 10 dakika sonra kickeleneceksiniz yazsın 
saydan afk moduna gecmek için /afk yazincada uyari sesi eklermisin mümkünse tabi
#4
ses default oyunun sesi olarak ayarlı kendin de değiştirebilirsin sadece afk kalan oyuncu duyacaktır. mesajlarıda aynı şekilde süreyi 25 yapmak için cvar'ı amxmodx ayarlarına yazabilirsin.
https://www.webailesi.com/ds-afkmenusu-17679.sma
valo.serahor.com 95.173.173.12 - 95.173.173.105 - discord.gg/serahor Ts3 : rgjb
Son Düzenleme: 15-01-2026, 15:25, Düzenleyen: Heil Spax.Son Düzenleme: 15-01-2026, 15:25, Düzenleyen: Heil Spax.
#5
test ettim ama slay süresi olan25 saniye ve kick süresi olan 300 saniye değişmiyor nedense
#6
(15-01-2026, 15:37)ReckLesS Adlı Kullanıcıdan Alıntı: test ettim ama slay süresi olan25 saniye ve kick süresi olan 300 saniye değişmiyor nedense

sunucu özel cvar ayarlarını kontrol edin . Diger eklentinin çalışmadığına emin olun.

"amxx plugins"  ile çalışan eklentileri denetleyin

Link güncellendi.
✦ Discord: Osmanbnm ✦
Son Düzenleme: 15-01-2026, 16:31, Düzenleyen: osmanbnm.
#7
Kod:
#include <amxmodx>
#include <reapi>

#pragma semicolon 1

new const AdminYetki = ADMIN_KICK;

new const serverTag[] = "ReckLesS";
new const sprite_icon[] = "sprites/saveme.spr";

enum (+= 100){
    TASK_ORIGIN = 2708,
    TASK_SLAY,
    TASK_AFKMODE,
    TASK_BILGI,
    TASK_BLIND,
    TASK_MANUAL_KICK // New task for manual AFK kick timer
};

new bool:isAfk[MAX_CLIENTS+1],AfkValue[MAX_CLIENTS+1],Float:iPlayerOrigin[MAX_CLIENTS+1][3],iCvars[4];
new g_iSpriteIcon; // Handle for the sprite

public plugin_init(){
    register_plugin("Afk Menu","1.2","suriyelikene"); // Erra1881 update

    register_clcmd("say /afkmenu","@afkmenusu");
    register_clcmd("say /afk","@clcmd_afk");
    register_clcmd("say","@Hook_Say");
    register_clcmd("say_team","@Hook_Say");

    RegisterHookChain(RG_CBasePlayer_Spawn, "@IsSpawn", .post = true);
    RegisterHookChain(RG_CBasePlayer_Killed, "@PlayerKill", .post = true);

    register_event("SpecHealth2","@Spectating","bd");

    bind_pcvar_num(create_cvar("re_afkslaysure", "25"), iCvars[0]); // Changed default to 25
    bind_pcvar_num(create_cvar("re_afkslayuyari", "7"), iCvars[1]); // Changed default usage to Kick Round Limit
    bind_pcvar_num(create_cvar("re_afkmoduyari", "15"), iCvars[2]);
    bind_pcvar_num(create_cvar("re_afk_manual_kick_time", "300"), iCvars[3]); // New cvar for manual AFK kick time
}

public plugin_precache() {
    g_iSpriteIcon = precache_model(sprite_icon);
}

public plugin_natives(){
    register_native("is_user_afk", "@NTV_GetAfk");
}
@NTV_GetAfk() {
    new iPlayer = get_param(1);
    return isAfk[iPlayer] ? 1:0;
}
public client_putinserver(iPlayer){
    isAfk[iPlayer]=false;
    AfkValue[iPlayer]=0;
}
public client_disconnected(iPlayer){
    if(task_exists(iPlayer + TASK_ORIGIN)) remove_task(iPlayer+TASK_ORIGIN);
    if(task_exists(iPlayer + TASK_SLAY)) remove_task(iPlayer+TASK_SLAY);
    if(task_exists(iPlayer + TASK_AFKMODE)) remove_task(iPlayer+TASK_AFKMODE);
    if(task_exists(iPlayer + TASK_BILGI)) remove_task(iPlayer+TASK_BILGI);
    if(task_exists(iPlayer + TASK_BLIND)) remove_task(iPlayer+TASK_BLIND);
    if(task_exists(iPlayer + TASK_MANUAL_KICK)) remove_task(iPlayer+TASK_MANUAL_KICK);
    @RemoveIcon(iPlayer);
}

@clcmd_afk(const iPlayer){
    if(isAfk[iPlayer]){
        isAfk[iPlayer]=false;
        AfkValue[iPlayer]=0;
        @bBlindStop(iPlayer);
        @AfkHudMesaggeOff(iPlayer);
        remove_task(iPlayer+TASK_BILGI);
        remove_task(iPlayer+TASK_BLIND);
        remove_task(iPlayer+TASK_MANUAL_KICK);
        @RemoveIcon(iPlayer);
        client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4An itibariyle ^1Afk modundan ciktin. ^4Bol fraglar dileriz.",serverTag);
    }
    else {
        isAfk[iPlayer]=true;
        @afk_oldur(iPlayer);
        @bBlind(iPlayer,2.0);
        @AfkHudMesagge(iPlayer);
        @ShowIcon(iPlayer);
        set_task(float(iCvars[2]), "@AfkModuBilgilendir", iPlayer+TASK_BILGI, .flags = "b");
        
        // Start kick timer for manual AFK
        if(iCvars[3] > 0) {
            set_task(float(iCvars[3]), "@ManualAfkKick", iPlayer+TASK_MANUAL_KICK);
        }
        
        client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4An itibariyle ^1Afk moduna gectin.",serverTag);
    }
}

@ManualAfkKick(const iTaskim) {
    new iPlayer = iTaskim - TASK_MANUAL_KICK;
    if(!is_user_connected(iPlayer)) return;
    
    server_cmd("kick #%d ^"AFK modunda cok uzun sure kaldigin icin kicklendin.^"", get_user_userid(iPlayer));
}

@Spectating(const iPlayer){
    set_task(0.1,"@SpecChange",iPlayer+TASK_BLIND, .flags = "b");
}
@SpecChange(const iTaskim){
    new iPlayer = iTaskim - TASK_BLIND;
    if(isAfk[iPlayer]) @bBlind(iPlayer,2.0);
}
@PlayerKill(const pVictim, pAttacker, iGib){
    if(!is_user_connected(pVictim)) return; // Removed pAttacker check as it might be worldspawn

    @RemoveIcon(pVictim); // Remove icon when dead

    if(isAfk[pVictim]) @bBlind(pVictim,2.0);
}
@IsSpawn(const iPlayer) {
    if(get_member(iPlayer, m_bJustConnected)) return;
    if(task_exists(iPlayer + TASK_ORIGIN)) remove_task(iPlayer+TASK_ORIGIN);
    if(task_exists(iPlayer + TASK_SLAY)) remove_task(iPlayer+TASK_SLAY);
    if(task_exists(iPlayer + TASK_AFKMODE)) remove_task(iPlayer+TASK_AFKMODE);
    if(task_exists(iPlayer + TASK_BLIND)) remove_task(iPlayer+TASK_BLIND);
    // Do NOT remove TASK_MANUAL_KICK here, as it should persist across rounds if manually AFK

    if(isAfk[iPlayer]) {
        @bBlind(iPlayer,2.0);
        @ShowIcon(iPlayer);
        set_task(5.0, "@isAfkOldur", iPlayer+TASK_AFKMODE);
    }
    set_task(2.0, "@get_origin", iPlayer+TASK_ORIGIN);
}
@get_origin(const iTaskim) {
    new iPlayer = iTaskim - TASK_ORIGIN;
    if(!is_user_alive(iPlayer)) return;

    get_entvar(iPlayer, var_origin, iPlayerOrigin[iPlayer]);
    set_task(float(iCvars[0]), "@AfkSlay", iPlayer+TASK_SLAY);
}
@AfkSlay(const iTaskim) {
    new iPlayer = iTaskim - TASK_SLAY;
    // If player is already manually AFK, do nothing (manual AFK logic handles itself)
    if(!is_user_alive(iPlayer) || !same_origin(iPlayer) || isAfk[iPlayer]) return;

    // Increment AFK counter
    AfkValue[iPlayer]++;
    
    // Check if they exceeded the kick limit
    if(AfkValue[iPlayer] >= iCvars[1]){
        server_cmd("kick #%d ^"AFK kaldigin icin kicklendin.^"", get_user_userid(iPlayer));
        return;
    }

    // Slay the player
    client_print_color(iPlayer, iPlayer, "^1[^4%s^1] ^3AFK Slay^1:^4 %d/%d",serverTag,AfkValue[iPlayer],iCvars[1]);
    @afk_oldur(iPlayer);
}
@isAfkOldur(const iTaskim){
    new iPlayer = iTaskim - TASK_AFKMODE;
    if(!is_user_alive(iPlayer) || !isAfk[iPlayer]) return;

    client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Afk modun aktif. ^1Moddan cikmak icin ^3say /afk ^1yaziniz.",serverTag);
    @afk_oldur(iPlayer);
}
@afk_oldur(const iPlayer){
    if(!is_user_alive(iPlayer)) return;
    
    @RemoveIcon(iPlayer); // Remove icon when killed
    user_silentkill(iPlayer,1);
    set_member(iPlayer,m_iDeaths, get_member(iPlayer, m_iDeaths) - 1);
    message_begin(MSG_ALL,85);
    write_byte(iPlayer);
    write_short(floatround(get_entvar(iPlayer,var_frags)));write_short(get_member(iPlayer, m_iDeaths));write_short(0);write_short(0);
    message_end();
}
@afkmenusu(const iPlayer){
    if(~get_user_flags(iPlayer) & AdminYetki){
        client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Sayın saygıdeger ^1%n ^4buraya girmen icin yetkin yetersiz",serverTag,iPlayer);
        return;
    }
    new iMenu = menu_create(fmt("\r%s \y--> \wAfk Menusu^n\dSayfa:", serverTag), "@afkmenusu_");

    for(new i=1; i <= MaxClients; i++) {
        if(is_user_connected(i)){
            if(i == iPlayer) continue;
            menu_additem(iMenu,fmt("\y%n %s",i,isAfk[i] ? "\wAktif":""),fmt("%i",i));
        }
    }
    menu_setprop(iMenu, MPROP_BACKNAME,"Önceki Sayfa"),menu_setprop(iMenu, MPROP_NEXTNAME,"Sonraki Sayfa"),menu_setprop(iMenu, MPROP_EXITNAME,"\wKapat");
    menu_display(iPlayer, iMenu);
}
@afkmenusu_(const iPlayer,const iMenu, const iItem) {
    if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED;}

    new iData[6], iKey;
    menu_item_getinfo(iMenu, iItem, _, iData, 5);
    iKey = str_to_num(iData);

    if(is_user_connected(iKey)){
        if(isAfk[iKey]){
            isAfk[iKey]=false;
            AfkValue[iKey]=0;
            @bBlindStop(iKey);
            @AfkHudMesaggeOff(iKey);
            remove_task(iKey+TASK_BILGI);
            remove_task(iKey+TASK_BLIND);
            remove_task(iKey+TASK_MANUAL_KICK);
            @RemoveIcon(iKey);
            client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4%n ^1isimli oyuncu afk modundan cikardin",serverTag,iKey);
            client_print_color(iKey, iKey, "^1[^3%s^1] ^4%n ^1isimli admin tarafindan afk modun deaktif edildi",serverTag,iPlayer);
        }
        else {
            isAfk[iKey]=true;
            @afk_oldur(iKey);
            @bBlind(iKey,2.0);
            @AfkHudMesagge(iKey);
            @ShowIcon(iKey);
            set_task(float(iCvars[2]), "@AfkModuBilgilendir", iKey+TASK_BILGI, .flags = "b");
            if(iCvars[3] > 0) {
                set_task(float(iCvars[3]), "@ManualAfkKick", iKey+TASK_MANUAL_KICK);
            }
            client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4%n ^1isimli oyuncu afk moduna gecirildi",serverTag,iKey);
            client_print_color(iKey, iKey, "^1[^3%s^1] ^4%n ^1isimli admin tarafindan afk moduna gecirildin",serverTag,iPlayer);
        }
        
    }
    else client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Oyuncu oyundan cikmis",serverTag);

    menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@AfkModuBilgilendir(const iTaskim){
    new iPlayer = iTaskim - TASK_BILGI;
    if(!is_user_connected(iPlayer)) return;

    client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Suanda afk modun aktif ^1yazi yazamazsiniz ^3ve ^1dogunca otomatik oldurulursunuz",serverTag);
    client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Afk modundan cikmak icin ^3say /afk ^1yaziniz.",serverTag);
}
@AfkHudMesagge(iPlayer){
    set_dhudmessage(255, 255, 255, -1.0, 0.30, 0, 6.0, 5.0);
    show_dhudmessage(iPlayer, "AFK MODUN AKTIF !");
}
@AfkHudMesaggeOff(iPlayer){
    set_dhudmessage(255, 212, 0, -1.0, 0.30, 0, 6.0, 5.0);
    show_dhudmessage(iPlayer, "ARTIK AFK DEGILSINIZ. IYI EGLENCELER!");
}
@Hook_Say(const iPlayer){
    static message[192];
    read_args(message, 191);
    remove_quotes(message);

    if(message[0] == '/')
        return PLUGIN_CONTINUE;

    if(isAfk[iPlayer])
    {
        client_print_color(iPlayer, iPlayer, "^1[^3%s^1] ^4Afk modun aktif oldugu icin ^3yazi yazamazsiniz.",serverTag);
        return PLUGIN_HANDLED;
    }
    
    return PLUGIN_CONTINUE;
}
@bBlind(const iPlayer, Float:punishPercentage) {
    new blindness = 128 + floatround(128.0 * punishPercentage);
    if(is_user_connected(iPlayer) && 1 <= iPlayer <= MaxClients) {
        message_begin(MSG_ONE,get_user_msgid("ScreenFade"), {0,0,0}, iPlayer);
        write_short((1<<0));
        write_short((1<<0));
        write_short((1<<2));
        write_byte(150);
        write_byte(0);
        write_byte(0);
        write_byte(blindness);
        message_end();
    }
}
@bBlindStop(const iPlayer) {
    if(is_user_connected(iPlayer) && 1 <= iPlayer <= MaxClients) {
        message_begin(MSG_ONE,get_user_msgid("ScreenFade"), {0,0,0}, iPlayer);
        write_short(1<<12);
        write_short(1<<8);
        write_short((1<<1));
        write_byte(0);
        write_byte(0);
        write_byte(0);
        write_byte(255);
        message_end();
    }
}
bool:same_origin(const iPlayer){
    new Float:isOrigin[3];
    get_entvar(iPlayer, var_origin, isOrigin);

    for(new i; i < 3; i++){
        if(isOrigin[i] != iPlayerOrigin[iPlayer][i]){
            return false;
        }
    }
    return true;
}

@ShowIcon(iPlayer) {
    if(!is_user_alive(iPlayer)) return;
    
    message_begin(MSG_ALL, SVC_TEMPENTITY);
    write_byte(TE_PLAYERATTACHMENT);
    write_byte(iPlayer);
    write_coord(50); // Vertical offset (approx 50 units above center)
    write_short(g_iSpriteIcon);
    write_short(999); // Life (long enough to last until killed/removed)
    message_end();
}

@RemoveIcon(iPlayer) {
    // TE_PLAYERATTACHMENT cannot be explicitly removed easily without killing the entity or overwriting it.
    // However, since we kill the player shortly after showing it (in manual AFK) or they die naturally, it clears.
    // To force clear, we can try overwriting with a short life or invisible sprite, but usually death handles it.
    // For safety in case they toggle off quickly:
    if(is_user_connected(iPlayer)) {
        message_begin(MSG_ALL, SVC_TEMPENTITY);
        write_byte(TE_KILLPLAYERATTACHMENTS);
        write_byte(iPlayer);
        message_end();
    }
}

Dener misin ?
#8
İstek konusu, @osmanbnm adlı kullanıcı tarafından 2 saat içinde çözülmüştür.
İsteği çözdüğü için osmanbnm Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
osmanbnm Adlı kullanıcı sizin dışınızda toplam 18 kişiye yardım etmiştir.

Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.

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

Yorum yapmak için üye olmanız gerekiyor

ya da