CS 1.6 yeni oyuncu gelince specten 1 kişi çıkarma plugini

Konu

#1
Merhaba, aşağıda bulunan afkları spec atma plugini mevcut. İstediğim sunucu 31 kişi olduktan sonra biri girmek isterse ve specte adam var ise specten 1 kişiyi kickleyip onun yerine gelen kişiyi alması. specte hiç adam yok ise zaten gelen kişi 32. olacak ve sunucu aktif 32 kişi olacak. Şimdiden teşekkür ediyorum.
.sma CG_afk.sma (Dosya Boyutu: 1,98 KB | İndirme Sayısı: 2)
#2
(14-09-2024, 15:31)berkay371 Adlı Kullanıcıdan Alıntı: Merhaba, aşağıda bulunan afkları spec atma plugini mevcut. İstediğim sunucu 31 kişi olduktan sonra biri girmek isterse ve specte adam var ise specten 1 kişiyi kickleyip onun yerine gelen kişiyi alması. specte hiç adam yok ise zaten gelen kişi 32. olacak ve sunucu aktif 32 kişi olacak. Şimdiden teşekkür ediyorum.
Kod:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>

#define TIME 30.0
#define TIME2 26.0
#define MAX_PLAYERS 32

new Float:player_origin[33][3];
new killhak[33];

public plugin_init()
{
    RegisterHam(Ham_Spawn, "player", "e_Spawn", 1);
    register_logevent("eRS", 2, "1=Round_Start");
    register_event("PlayerConnect", "player_connect", "a");
}

public client_connect(id)
{
    killhak[id] = 0;
}

public client_disconnected(id)
{
    killhak[id] = 0;
}

public e_Spawn(id)
{
    remove_task(id);
    if (is_user_alive(id))
    {
        set_task(0.8, "get_spawn", id);
    }
    return HAM_IGNORED;
}

public eRS()
{
    set_task(TIME2, "sayazi");
}

public sayazi()
{
    renkli_yazi(0, "!gKLAN ADI: !tUzun sure hareket etmeyen oyuncular otomatik oldurulecektir.");
}

public get_spawn(id)
{
    pev(id, pev_origin, player_origin[id]);
    set_task(TIME, "check_afk", id);
}

public check_afk(id)
{
    if (is_user_alive(id))
    {
        if (same_origin(id))
        {
            ++killhak[id];
            user_kill(id);
            new name[33];
            get_user_name(id, name, 32);
            if (killhak[id] >= 3)
            {
                cs_set_user_team(id, CS_TEAM_SPECTATOR);
                renkli_yazi(0, "!gKLAN ADI: !g%s !tuzun sure afk kaldigi icin !gSPECE atilmistir.!t.", name);
            }
        }
    }
}

public same_origin(id)
{
    new Float:origin[3];
    pev(id, pev_origin, origin);
    for (new i = 0; i < 3; i++)
        if (origin[i] != player_origin[id][i])
            return 0;
    return 1;
}

public player_connect()
{
    new players[MAX_PLAYERS], num, id;
    get_players(players, num);

    if (num >= 31)
    {
        new spec_players[MAX_PLAYERS], spec_num;
        get_players(spec_players, spec_num, "b");

        if (spec_num > 0)
        {
            // Spec'ten rastgele bir oyuncuyu seç ve kickle
            id = spec_players[random(spec_num)];
            new name[32];
            get_user_name(id, name, 31);
            server_cmd("kick #%d ^"Server dolu, yeni oyuncuya yer acmak icin kicklendiniz.^"", get_user_userid(id));
            renkli_yazi(0, "!gKLAN ADI: !g%s !tspecten kicklendi ve yeni oyuncuya yer acildi.!t", name);
        }
        else
        {
            // Spec'te kimse yoksa, yeni gelen oyuncu 32. oyuncu olacak
            renkli_yazi(0, "!gKLAN ADI: !tServer dolu (32/32).");
        }
    }
}

stock renkli_yazi(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
   
    replace_all(msg, 190, "!n", "^x01");
    replace_all(msg, 190, "!g", "^x04");
    replace_all(msg, 190, "!t", "^x03");
   
    if (id) players[0] = id; else get_players(players, count, "ch");
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}

#3
@berkay371 konunuz cozulduyse bildirmeyi unutmayiniz.
MODEL TASARIMI SİLAH TASARIMI SPREY TASARIMI EKLENTİ İŞLERİ MOD KURULUMU İÇİN DİSCORD:okan5705 veya Ts3:flexekip
#4
İstek konusu, @` White* adlı kullanıcı tarafından 4 gün içinde çözülmüştür.
İsteği çözdüğü için ` White* Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
` White* Adlı kullanıcı sizin dışınızda toplam 5 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

Benzer Konular

Kayıt Ol