⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🌐 www.furiazm.com ⏰ 7/24 aktif Yönetim 💬 Discord.gg/furiaclancs 💰Ücretsiz Adminlik/Vip alımı 🌟 Türkiye’nin yeni en gelişmiş Zombie Plague sunucusu
Sponsor Görsel 2
SponsorSponsor

Weapon Kısıtlama

Weapon Kısıtlama
Merhaba iyi forumlar 16vs16 maçlarda en iyi flash ve sg kullanan bir kişiye weapon üzerinden veriyoruz. bazen unuttuklari icin 1 dakika altı veriyorlar. Örnegin 1.25 e kadar weapon kullanabilir(kısıtlama) gibi bir eklenti mevcut mudur?
RE: Weapon Kısıtlama
Merhaba konu tam olarak anlamadığım için yazıyorum. Raound süresi için kısıtlama istiyorsunuz yani raound süresi 1.25 kala belli bir silahların yasaklamasını mı istiyorsunuz ?
Discord: sinanpyr
RE: Weapon Kısıtlama
(18-08-2025, 23:11)alperenhoktan46 Adlı Kullanıcıdan Alıntı: Merhaba konu tam olarak anlamadığım için yazıyorum. Raound süresi için kısıtlama istiyorsunuz yani raound süresi 1.25 kala belli bir silahların yasaklamasını mı istiyorsunuz ?
hocam weapon ile en iyi fb ve sg kullanana verıyoruz fakat bazen unutuyorlar vermeyi el sonuna dogru verıyorlar bunun weapon komudunu kısıtlama gıbı bı sansımız varmı
RE: Weapon Kısıtlama
(19-08-2025, 14:45)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı:
(18-08-2025, 23:11)alperenhoktan46 Adlı Kullanıcıdan Alıntı: Merhaba konu tam olarak anlamadığım için yazıyorum. Raound süresi için kısıtlama istiyorsunuz yani raound süresi 1.25 kala belli bir silahların yasaklamasını mı istiyorsunuz ?
hocam weapon ile en iyi fb ve sg kullanana verıyoruz fakat bazen unutuyorlar vermeyi el sonuna dogru verıyorlar bunun weapon komudunu kısıtlama gıbı bı sansımız varmı
eklentinizi atarsanız yardımcı olabiliriz
RE: Weapon Kısıtlama
Merhabalarr
(19-08-2025, 14:45)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı: hocam weapon ile en iyi fb ve sg kullanana verıyoruz fakat bazen unutuyorlar vermeyi el sonuna dogru verıyorlar bunun weapon komudunu kısıtlama gıbı bı sansımız varmı
eklentinizi atarsanız yardımcı olabiliriz
bunun eklentısı yok hocam weapon komuduyla verıyoruz 1 er adet admin komudunu kısıtlama gelmesı lazım her sanıye almaması adına.
RE: Weapon Kısıtlama
Anladığım kadarıyla elinize bir eklenti yok. En iyi oyunculara el ile amx_weapon nick 84/85 (veya /weapon nick 84,85) şeklinde sg ve fb veriliyor adminleriniz tarafından. Ancak bazen unutulduğu için adminler raunt ortasında veriyor. Doğru mu anladım? Eğer öyleyse bence bunu otomatik olarak raunt başında veren bir eklenti kurmalısınız. Forumda mevcut. Böylece hem adminlerinizi onların arada sırada unutacağı bir sorumluluktan kurtarmış olursunuz hem de hata payı olmaz kafanız bu konuda rahat olur.
Advanced Plug-in & Animated Model Tasarımı
RE: Weapon Kısıtlama
(19-08-2025, 15:14)fernpasha Adlı Kullanıcıdan Alıntı: Anladığım kadarıyla elinize bir eklenti yok. En iyi oyunculara el ile amx_weapon nick 84/85 (veya /weapon nick 84,85) şeklinde sg ve fb veriliyor adminleriniz tarafından. Ancak bazen unutulduğu için adminler raunt ortasında veriyor. Doğru mu anladım? Eğer öyleyse bence bunu otomatik olarak raunt başında veren bir eklenti kurmalısınız. Forumda mevcut. Böylece hem adminlerinizi onların arada sırada unutacağı bir sorumluluktan kurtarmış olursunuz hem de hata payı olmaz kafanız bu konuda rahat olur.
evet dogrudur hocam takım bırıncılerıne fb ve sg verıyore fakat ben bunu ıstemıyorum bırıncıler ıyı kullanmadıgı ıcın weapona yonelıyoruz.
RE: Weapon Kısıtlama
Aşağıdaki eklentiyi deneyin.

Kullanım: 
- /fbsg yazan Sorumlu seçilir. 
- /fbsg0 yazan ADMIN_RCON'lu admin sorumluluğu sıfırlayabilir.
- /fbsg yazan kişinin her raunt başında önüne bir menü gelir. Ayarları kaydet dedikten sonra hem ayarlar kaydolur hem de seçilen ayarlara göre seçilen kişilere bomba verilir.

COMPILED & TESTED ON CSDURAGI

Test edip geri dönüş sağlarsınız.

İyi forumlar.

PHP Kod:
#define USE_REAPI 1

#include <amxmodx>
#include <amxmisc>
#include <nvault>

#if USE_REAPI
  #include <reapi>
#else
  #include <hamsandwich>
  #include <cstrike>
  #include <fun>
#endif

#define PLUGIN_NAME    "FB-SG Bomba Sorumlusu"
#define PLUGIN_VER     "1.0.5"
#define PLUGIN_AUTH    "fernpasha"

//#define ADMIN_FLAG     ADMIN_RESERVATION
#define ADMIN_FORCE    ADMIN_CVAR

#define CHAT_TAG       "^4[Evlad-i Osmanli]^1"

#define NVAULT_NAME    "fbsg_ayar"
#define NVAULT_PREFIX  "fbsg"

new g_iMaxPlayers;
new 
g_iSorumlu;
new 
bool:g_bSorumluAktif;
new 
g_szMap[32];
new 
g_hVault;

new 
g_szSavedTAuth[35];
new 
g_szSavedCTAuth[35];
new 
g_iSavedSG;
new 
g_iSavedFB;

new 
g_szDraftTAuth[35];
new 
g_szDraftCTAuth[35];
new 
g_iDraftSG;
new 
g_iDraftFB;

#if !defined client_print_color
    enum { print_team_default = 0 };

    stock client_print_color(const id, const dummy, const fmt[], any:...)
    {
        static msg[191];
        vformat(msg, charsmax(msg), fmt, 4);

        static g_msgSayText;
        if (!g_msgSayText) g_msgSayText = get_user_msgid("SayText");

        if (id > 0 && is_user_connected(id))
        {
            message_begin(MSG_ONE, g_msgSayText, _, id);
            write_byte(id);
            write_string(msg);
            message_end();
        }
        else
        {
            new i, maxp = get_maxplayers();
            for (i = 1; i <= maxp; i++)
            {
                if (!is_user_connected(i)) continue;
                message_begin(MSG_ONE, g_msgSayText, _, i);
                write_byte(i);
                write_string(msg);
                message_end();
            }
        }
    }
#endif

stock cprint(const id, const fmt[], any:...)
{
    static msg[191];
    vformat(msg, charsmax(msg), fmt, 3);

    static out[191];
    formatex(out, charsmax(out), "%s %s", CHAT_TAG, msg);

    static g_msgSayText;
    if (!g_msgSayText) g_msgSayText = get_user_msgid("SayText");

    if (id > 0 && is_user_connected(id))
    {
        message_begin(MSG_ONE, g_msgSayText, _, id);
        write_byte(id);
        write_string(out);
        message_end();
    }
    else
    {
        new i, maxp = get_maxplayers();
        for (i = 1; i <= maxp; i++)
        {
            if (!is_user_connected(i)) continue;
            message_begin(MSG_ONE, g_msgSayText, _, i);
            write_byte(i);
            write_string(out);
            message_end();
        }
    }
}

public 
plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VER, PLUGIN_AUTH);

    g_iMaxPlayers = get_maxplayers();
    get_mapname(g_szMap, charsmax(g_szMap));

    register_clcmd("say /fbsg",  "cmd_fbsg");
    register_clcmd("say_team /fbsg",  "cmd_fbsg");
    register_clcmd("say /fbsg0", "cmd_fbsg0");
    register_clcmd("say_team /fbsg0", "cmd_fbsg0");

    register_event("HLTV", "evt_round_start", "a", "1=0", "2=0");
    register_event("ResetHUD", "evt_spawned", "be");

    g_hVault = nvault_open(NVAULT_NAME);

    g_iSorumlu = 0;
    g_bSorumluAktif = false;

    nv_ayar_yukle();
    kopyala_kayitli_to_draft();
}

public 
plugin_end()
{
    if (g_hVault != INVALID_HANDLE)
        nvault_close(g_hVault);
}

stock nv_key(const keyName[], dest[], const len)
{
    formatex(dest, len, "%s|%s|%s", NVAULT_PREFIX, g_szMap, keyName);
}

stock nv_ayar_yukle()
{
    new key[64], val[64];

    nv_key("SG", key, charsmax(key));
    if (nvault_get(g_hVault, key, val, charsmax(val)))
        g_iSavedSG = clamp(str_to_num(val), 0, 1);
    else
        g_iSavedSG = 0;

    nv_key("FB", key, charsmax(key));
    if (nvault_get(g_hVault, key, val, charsmax(val)))
        g_iSavedFB = clamp(str_to_num(val), 0, 2);
    else
        g_iSavedFB = 0;

    nv_key("T_AUTH", key, charsmax(key));
    if (!nvault_get(g_hVault, key, g_szSavedTAuth, charsmax(g_szSavedTAuth)))
        g_szSavedTAuth[0] = '^0';

    nv_key("CT_AUTH", key, charsmax(key));
    if (!nvault_get(g_hVault, key, g_szSavedCTAuth, charsmax(g_szSavedCTAuth)))
        g_szSavedCTAuth[0] = '^0';
}

stock nv_ayar_kaydet()
{
    new key[64], val[64];

    nv_key("SG", key, charsmax(key));
    num_to_str(g_iSavedSG, val, charsmax(val));
    nvault_set(g_hVault, key, val);

    nv_key("FB", key, charsmax(key));
    num_to_str(g_iSavedFB, val, charsmax(val));
    nvault_set(g_hVault, key, val);

    nv_key("T_AUTH", key, charsmax(key));
    nvault_set(g_hVault, key, g_szSavedTAuth);

    nv_key("CT_AUTH", key, charsmax(key));
    nvault_set(g_hVault, key, g_szSavedCTAuth);
}

stock kopyala_kayitli_to_draft()
{
    copy(g_szDraftTAuth, charsmax(g_szDraftTAuth), g_szSavedTAuth);
    copy(g_szDraftCTAuth, charsmax(g_szDraftCTAuth), g_szSavedCTAuth);
    g_iDraftSG = g_iSavedSG;
    g_iDraftFB = g_iSavedFB;
}

stock draft_sifirla()
{
    g_szDraftTAuth[0]  = '^0';
    g_szDraftCTAuth[0] = '^0';
    g_iDraftSG = 0;
    g_iDraftFB = 0;
}

stock oyuncu_authid_al(const id, szAuth[], const len)
{
    if (!is_user_connected(id))
    {
        szAuth[0] = '^0';
        return 0;
    }
    get_user_authid(id, szAuth, len);
    return 1;
}

stock oyuncu_id_by_auth(const szAuth[])
{
    if (!szAuth[0]) return 0;

    new auth[35];
    for (new i = 1; i <= g_iMaxPlayers; i++)
    {
        if (!is_user_connected(i)) continue;
        get_user_authid(i, auth, charsmax(auth));
        if (equal(auth, szAuth))
            return i;
    }
    return 0;
}

stock takim_ismini_al(const id, szTeam[], const len)
{
    #if USE_REAPI
        new TeamName:t = get_member(id, m_iTeam);
        switch (t)
        {
            case TEAM_TERRORIST: copy(szTeam, len, "T");
            case TEAM_CT:        copy(szTeam, len, "CT");
            default:             copy(szTeam, len, "SPEC");
        }
    #else
        new CsTeams:t = cs_get_user_team(id);
        switch (t)
        {
            case CS_TEAM_T:  copy(szTeam, len, "T");
            case CS_TEAM_CT: copy(szTeam, len, "CT");
            default:         copy(szTeam, len, "SPEC");
        }
    #endif
}

public 
cmd_fbsg(const id)
{
    /*if (!(get_user_flags(id) & ADMIN_FLAG))
    {
        cprint(id, "^1Bu komutu kullanmak icin yetkin yok.");
        return PLUGIN_HANDLED;
    }*/

    if (g_bSorumluAktif && is_user_connected(g_iSorumlu))
    {
        if (g_iSorumlu == id)
        {
            cprint(id, "^1Zaten bomba sorumlususun. Menu aciliyor...");
            menuyu_ac(id);
        }
        else
        {
            cprint(id, "^1Bomba sorumlusu zaten var (^3#%d^1).", g_iSorumlu);
        }
        return PLUGIN_HANDLED;
    }

    g_iSorumlu = id;
    g_bSorumluAktif = true;
    kopyala_kayitli_to_draft();

    new team[8]; takim_ismini_al(id, team, charsmax(team));
    cprint(0, "^3%N ^1bomba sorumlusu oldu. (^3Team: %s^1)", id, team);

    menuyu_ac(id);
    return PLUGIN_HANDLED;
}

public 
cmd_fbsg0(const id)
{
    if (!(get_user_flags(id) & ADMIN_FORCE))
    {
        cprint(id, "^1Bu komutu kullanmak icin %s gerekiyor.", ADMIN_FORCE);
        return PLUGIN_HANDLED;
    }

    if (!g_bSorumluAktif || !is_user_connected(g_iSorumlu))
    {
        cprint(id, "^1Aktif bomba sorumlusu yok.");
        return PLUGIN_HANDLED;
    }

    cprint(0, "^3%N ^1mevcut bomba sorumlusunu (^3%N^1) gorevden aldi.", id, g_iSorumlu);
    sorumlulugu_birak_internal(true);
    return PLUGIN_HANDLED;
}

public 
evt_round_start()
{
    if (g_bSorumluAktif && is_user_connected(g_iSorumlu))
    {
        cprint(g_iSorumlu, "^1Yeni raund basladi. Ayarlari kontrol etmen icin menu aciliyor.");
        menuyu_ac(g_iSorumlu);
    }
}

public 
evt_spawned(const id) {}

stock auth_to_name(const szAuth[], outName[], const outLen)
{
    outName[0] = '^0';
    if (!szAuth[0]) return 0;

    new id = oyuncu_id_by_auth(szAuth);
    if (id && is_user_connected(id))
    {
        get_user_name(id, outName, outLen);
        return 1;
    }
    return 0;
}

stock menuyu_ac(const id)
{
    if (!is_user_connected(id)) return;
    if (id != g_iSorumlu || !g_bSorumluAktif) return;

    new selT[32] = "Secilmedi";
    new selCT[32] = "Secilmedi";
    if (g_szDraftTAuth[0])  auth_to_name(g_szDraftTAuth, selT, charsmax(selT));
    if (g_szDraftCTAuth[0]) auth_to_name(g_szDraftCTAuth, selCT, charsmax(selCT));

    new title[64];
    formatex(title, charsmax(title), "Bomba Sorumlusu Menusu");

    new menu = menu_create(title, "menu_handler");

    new line[96];

    formatex(line, charsmax(line), "\rAyarlari kaydet");
    menu_additem(menu, line, "1");

    formatex(line, charsmax(line), "\yT Takimindan oyuncu sec: \r%s", selT);
    menu_additem(menu, line, "2");

    formatex(line, charsmax(line), "\yCT Takimindan oyuncu sec: \r%s", selCT);
    menu_additem(menu, line, "3");

    formatex(line, charsmax(line), "\ySG sayisi sec: \r%d", g_iDraftSG);
    menu_additem(menu, line, "4");

    formatex(line, charsmax(line), "\yFB sayisi sec: \r%d", g_iDraftFB);
    menu_additem(menu, line, "5");

    formatex(line, charsmax(line), "\yAyarlari sifirla");
    menu_additem(menu, line, "6");

    formatex(line, charsmax(line), "\ySorumlulugu birak");
    menu_additem(menu, line, "7");

    formatex(line, charsmax(line), "\rCikis");
    menu_additem(menu, line, "8");

    menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER);
    menu_display(id, menu);
}

public 
menu_handler(const id, const menu, const item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }

    new info[3], name[64], access, callback;
    menu_item_getinfo(menu, item, access, info, charsmax(info), name, charsmax(name), callback);

    new key = str_to_num(info);
    switch (key)
    {
        case 1:
        {
            ayarlari_kaydet_ve_uygula();
            cprint(id, "^1Ayarlar kaydedildi ve uygulandi.");
        }
        case 2:
        {
            menu_destroy(menu);
            oyuncu_menu_ac(id, 1);
            return PLUGIN_HANDLED;
        }
        case 3:
        {
            menu_destroy(menu);
            oyuncu_menu_ac(id, 2);
            return PLUGIN_HANDLED;
        }
        case 4:
        {
            menu_destroy(menu);
            sg_menu_ac(id);
            return PLUGIN_HANDLED;
        }
        case 5:
        {
            menu_destroy(menu);
            fb_menu_ac(id);
            return PLUGIN_HANDLED;
        }
        case 6:
        {
            draft_sifirla();
            cprint(id, "^1Taslak ayarlar sifirlandi.");
            menuyu_ac(id);
        }
        case 7:
        {
            menu_destroy(menu);
            sorumlulugu_birak_internal(false);
            return PLUGIN_HANDLED;
        }
        case 8:
        {
            cprint(id, "^1Menuden cikis yaptin.");
        }
    }

    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

stock oyuncu_menu_ac(const id, const teamPick)
{
    if (!is_user_connected(id)) return;

    new title[64];
    if (teamPick == 1) formatex(title, charsmax(title), "T Takimindan oyuncu sec");
    else               formatex(title, charsmax(title), "CT Takimindan oyuncu sec");

    new menu = menu_create(title, "oyuncu_menu_handler");

    new players[32], pnum, pid;
    if (teamPick == 1)
        get_players(players, pnum, "e", "TERRORIST");
    else
        get_players(players, pnum, "e", "CT");

    new line[96], szAuth[35], info[40];
    for (new i = 0; i < pnum; i++)
    {
        pid = players[i];
        if (!is_user_connected(pid)) continue;

        get_user_authid(pid, szAuth, charsmax(szAuth));

        new pname[32]; get_user_name(pid, pname, charsmax(pname));
        formatex(line, charsmax(line), "%s", pname);

        if (teamPick == 1)
            formatex(info, charsmax(info), "T %s", szAuth);
        else
            formatex(info, charsmax(info), "CT %s", szAuth);

        menu_additem(menu, line, info);
    }

    if (pnum == 0)
        menu_additem(menu, "\dSu anda uygun oyuncu yok", "N 0");

    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu);
}

public 
oyuncu_menu_handler(const id, const menu, const item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu);
        menuyu_ac(id);
        return PLUGIN_HANDLED;
    }

    new info[40], name[64], access, callback;
    menu_item_getinfo(menu, item, access, info, charsmax(info), name, charsmax(name), callback);

    if (info[0] == 'N')
    {
        menu_destroy(menu);
        menuyu_ac(id);
        return PLUGIN_HANDLED;
    }

    new tokenTeam[4], tokenAuth[35];
    parse(info, tokenTeam, charsmax(tokenTeam), tokenAuth, charsmax(tokenAuth));

    new secilenIsim[32] = "-";
    new pid = oyuncu_id_by_auth(tokenAuth);
    if (pid) get_user_name(pid, secilenIsim, charsmax(secilenIsim));

    if (tokenTeam[0] == 'T')
    {
        copy(g_szDraftTAuth, charsmax(g_szDraftTAuth), tokenAuth);
        cprint(id, "^1T icin secilen: ^3%s", secilenIsim);
    }
    else
    {
        copy(g_szDraftCTAuth, charsmax(g_szDraftCTAuth), tokenAuth);
        cprint(id, "^1CT icin secilen: ^3%s", secilenIsim);
    }

    menu_destroy(menu);
    menuyu_ac(id);
    return PLUGIN_HANDLED;
}

stock sg_menu_ac(const id)
{
    new menu = menu_create("SG sayisi sec (0-1)", "sg_menu_handler");
    menu_additem(menu, "0", "0");
    menu_additem(menu, "1", "1");
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu);
}
public 
sg_menu_handler(const id, const menu, const item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu);
        menuyu_ac(id);
        return PLUGIN_HANDLED;
    }

    new info[4], n[32], access, callback;
    menu_item_getinfo(menu, item, access, info, charsmax(info), n, charsmax(n), callback);

    g_iDraftSG = clamp(str_to_num(info), 0, 1);
    cprint(id, "^1SG sayisi taslak: ^3%d", g_iDraftSG);

    menu_destroy(menu);
    menuyu_ac(id);
    return PLUGIN_HANDLED;
}

stock fb_menu_ac(const id)
{
    new menu = menu_create("FB sayisi sec (0-2)", "fb_menu_handler");
    menu_additem(menu, "0", "0");
    menu_additem(menu, "1", "1");
    menu_additem(menu, "2", "2");
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu);
}
public 
fb_menu_handler(const id, const menu, const item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu);
        menuyu_ac(id);
        return PLUGIN_HANDLED;
    }

    new info[4], n[32], access, callback;
    menu_item_getinfo(menu, item, access, info, charsmax(info), n, charsmax(n), callback);

    g_iDraftFB = clamp(str_to_num(info), 0, 2);
    cprint(id, "^1FB sayisi taslak: ^3%d", g_iDraftFB);

    menu_destroy(menu);
    menuyu_ac(id);
    return PLUGIN_HANDLED;
}

stock ayarlari_kaydet_ve_uygula()
{
    copy(g_szSavedTAuth,  charsmax(g_szSavedTAuth),  g_szDraftTAuth);
    copy(g_szSavedCTAuth, charsmax(g_szSavedCTAuth), g_szDraftCTAuth);
    g_iSavedSG = g_iDraftSG;
    g_iSavedFB = g_iDraftFB;

    nv_ayar_kaydet();
    bombalari_uygula_kayitli();

    new nameT[32] = "-", nameCT[32] = "-";
    new idT = oyuncu_id_by_auth(g_szSavedTAuth);
    new idC = oyuncu_id_by_auth(g_szSavedCTAuth);
    if (idT) get_user_name(idT, nameT, charsmax(nameT));
    if (idC) get_user_name(idC, nameCT, charsmax(nameCT));

    cprint(0, "^1Ayarlar kaydedildi: ^3T=%s CT=%s SG=%d FB=%d", nameT, nameCT, g_iSavedSG, g_iSavedFB);

}

stock sorumlulugu_birak_internal(const bool:forced)
{
    if (g_bSorumluAktif && is_user_connected(g_iSorumlu))
    {
        if (forced) cprint(g_iSorumlu, "^1Yonetici tarafindan gorevden alindin.");
        else        cprint(g_iSorumlu, "^1Sorumlulugu biraktin.");
    }
    g_iSorumlu = 0;
    g_bSorumluAktif = false;
    kopyala_kayitli_to_draft();
}

stock bombalari_uygula_kayitli()
{
    if (g_szSavedTAuth[0])
    {
        new tid = oyuncu_id_by_auth(g_szSavedTAuth);
        if (tid) oyn_grenade_set_exact(tid, g_iSavedSG, g_iSavedFB);
    }
    if (g_szSavedCTAuth[0])
    {
        new cid = oyuncu_id_by_auth(g_szSavedCTAuth);
        if (cid) oyn_grenade_set_exact(cid, g_iSavedSG, g_iSavedFB);
    }
}

stock oyn_grenade_set_exact(const id, const sgCount, const fbCount)
{
    if (!is_user_connected(id)) return;

    new sg = clamp(sgCount, 0, 1);
    new fb = clamp(fbCount, 0, 2);

    #if USE_REAPI
        if (sg > 0) rg_give_item(id, "weapon_smokegrenade");
        rg_set_user_bpammo(id, WeaponIdType:CSW_SMOKEGRENADE, _:sg);

        if (fb > 0) rg_give_item(id, "weapon_flashbang");
        rg_set_user_bpammo(id, WeaponIdType:CSW_FLASHBANG,     _:fb);
    #else
        if (sg > 0 && !user_has_weapon(id, CSW_SMOKEGRENADE))
            give_item(id, "weapon_smokegrenade");
        cs_set_user_bpammo(id, CSW_SMOKEGRENADE, sg);

        if (fb > 0 && !user_has_weapon(id, CSW_FLASHBANG))
            give_item(id, "weapon_flashbang");
        cs_set_user_bpammo(id, CSW_FLASHBANG, fb);
    #endif

    cprint(id, "^1SG=%d, FB=%d ayarlandi.", sg, fb);
}

public 
client_disconnected(id)
{
    if (g_bSorumluAktif && id == g_iSorumlu)
    {
        cprint(0, "^3%N ^1sunucudan ayrildi. Bomba sorumlulugu bosaldi.", id);
        sorumlulugu_birak_internal(false);
    }
} 
Advanced Plug-in & Animated Model Tasarımı
RE: Weapon Kısıtlama
bunu bır kereye mahsus mu yoksa her map degısımınde mı olacak hocam
RE: Weapon Kısıtlama
Kayıt ediliyor hocam. Sizin yapmanız gereken sadece maçtan maça bomba verilecek oyuncuları menüden seçmek ve ayarları kaydetmek. Zaten her raunt başı menü /fbsg yazan kişinin önüne otomatik olarak gelecek. Menüde ayarları kaydet dediği an bombaları verecek.
Advanced Plug-in & Animated Model Tasarımı
Son Düzenleme: 20-08-2025, 10:46, Düzenleyen: fernpasha

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Konuyu Okuyanlar: 1 Ziyaretçi
Task