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

Awp Sınırlama Eklentisi İstek

Konu

#1
Herkese Selamlar. 

Cs 1.6 serverimde maç sırasında v.b zamanlarda takımlardaki awp sayısından şikayet alıyorum bunun için çok eklenti denedim hiçbirisi çalışmıyor 

istediğim eklenti belirlediğimiz awp sayısı dışında ct = 5 T = 5 olarak ayarlarsak 5. kişiden sonra awp alamayacak yada aldığında elinden yere düşecek şekilde olması gerekiyor 

eklentiyi ufak bi cvar komutuyla kullanabilirsek çok güzel olur "amx_cvar max_awp" gibi bir komut gerekli bulduğum eklentilerde mesela cvar ayarından 4 awp sınırı koyunca 

ct= 4 awp alıyor T takımındaki oyuncular alamıyor bu tür hatalar olmaz ise çok mutlu olurum saygılar. 
#2
https://www.webailesi.com/konu-reapi-awp-almayi-sinirlama-14857
Bu eklentiyi denediniz mi ?
#3
(25-05-2021, 19:19)suriyelikene Adlı Kullanıcıdan Alıntı: https://www.webailesi.com/konu-reapi-awp-almayi-sinirlama-14857
Bu eklentiyi denediniz mi ?
Evet Denedim amxx olarak yükledim ancak cvar komutu çalışmıyor 
#4
Harfleri kalınlaştırmanıza gerek yok, zaten okunabiliyor Gülümse
sma olarak yükledikten sonra oyun içi cvar ayarıyla oynama yapıp dener misin ?
Hata tam olarak nerede ?
Ben denemiştim bu eklentiyi.
#5
(25-05-2021, 19:20)onur9173 Adlı Kullanıcıdan Alıntı:
(25-05-2021, 19:19)suriyelikene Adlı Kullanıcıdan Alıntı: https://www.webailesi.com/konu-reapi-awp-almayi-sinirlama-14857
Bu eklentiyi denediniz mi ?
Evet Denedim amxx olarak yükledim ancak cvar komutu çalışmıyor 

Merhaba, bu eklentiyide kendinize göre ayarlayıp denermisiniz.
.smasniperlimit.sma(Dosya Boyutu: 26,48 KB | İndirme Sayısı: 33)
#6
(25-05-2021, 19:25)suriyelikene Adlı Kullanıcıdan Alıntı: Harfleri kalınlaştırmanıza gerek yok, zaten okunabiliyor Gülümse
sma olarak yükledikten sonra oyun içi cvar ayarıyla oynama yapıp dener misin ?
Hata tam olarak nerede ?
Ben denemiştim bu eklentiyi.
Pro oyun'da sma dosyasını yüklemiyor amxx çevirmek gerekiyor

çevirirken bu hatayı veriyor : Your plugin failed to compile! Read the errors below:

(25-05-2021, 19:28)Grinin 50 Tonu Adlı Kullanıcıdan Alıntı:
(25-05-2021, 19:20)onur9173 Adlı Kullanıcıdan Alıntı: Evet Denedim amxx olarak yükledim ancak cvar komutu çalışmıyor 

Merhaba, bu eklentiyide kendinize göre ayarlayıp denermisiniz.
bunu kullandım çalıştı ancak yine sorun yaşadık sorun :  mesela T takımı 0 . Ct Takımı 2 . olduğunda ct takımına awp aldırtmıyor engelliyor
Son Düzenleme: 25-05-2021, 19:32, Düzenleyen: Areeeessss.
#7
Dediğiniz pluginlerin 2 side sorunsuz çalışmakta. Siz nerede kurmayı deniyor sunuz ?
#8
eklentiyi kurarken aldığınız hataları buraya atar mısınız?
[EKPkingTR] Since 2016 [Katil Sözlük] [Emperor4231]
#9
(25-05-2021, 19:53)Grinin 50 Tonu Adlı Kullanıcıdan Alıntı: Dediğiniz pluginlerin 2 side sorunsuz çalışmakta. Siz nerede kurmayı deniyor sunuz ?
Pro oyun Sunucusunda Kuruyorum

(25-05-2021, 19:56)Emperor4231 Adlı Kullanıcıdan Alıntı: eklentiyi kurarken aldığınız hataları buraya atar mısınız?
net bi hata göstergesi almıyorum sma dosyasını olduğu gibi kopyalayıp amxx dosyasına dönüştürüyorum ama derleme hatası diyor ilk atılan eklenti içinde amxx dosyasına dönüştürüp amxmodx > plugins içine atıyorum sonra amxmodx > config > plugins.ini içine girip en alt satıra awp_sinir.amxx olarak yazıyorum map değiştiriyorum amx_cvar max_awp_in_round adlı cvar komutu işlemiyor

Kod:
/* AMX Mod X script.
*
* Drop AWP with Team Limit and Win limit v1.6 (CS & CS:CZ)
* By SuicideDog & MattOG/DaSoul & KWo
*
* Modded orignal from JustinHoMi
*
*Up-To Version 0.5: SuicideDog & JustinHoMi
*******************************************
*
*
* VERSION: 1.0: MattOG
**********************
*
* Combined all 3 plugins (g3sg1/sg550/awp limit) into one.
* Added seperate commands to control Auto's and Awps. (different limits/rounds)
* Fixed bug with old-style menu's still being able to buy guns. (Credit to bAnTAi, I used his Y.A.S.C. plugin to help with the code).
*
* I didn't make it stop bots:
* 1. All bots come with built in weapon restrictions.
* 2. Bots tend not to be AWP whores  ;)
*
*
* VERSION 1.1: MattOG
*********************
* Changed Maxawps/autos and winspreads to cvars to enable on-the-fly changing, and to allow changes to be set in server/amxx/map configs.
*
*
* VERSION: 1.2: MattOG
**********************
*
* Minor bug fix where old style menu's couldn't buy at all. (Thanks to Olie for pointing it out).
*
*
* VERSION: 1.3: SuicideDog/DaSoul
**********************
*
* Added DaSoul's code to allow it to work with PTB correctly
*
* VERSION: 1.4: KWo
**********************
*
* Little bug fixes causing Run Time Errors etc...
* Blocking pickup limited weapon
* Bots are affected by this plugin, too but it doesn't prevent them from buying (they drop limited weapons after buying)
* Optimized usage of cvars by using pcvar functions.
*
**********************
*
* VERSION: 1.5: KWo
*
* Added support for team balancing (if someone has an awp or auto sniper and get switched alive to the opposite team)
*
**********************
*
* VERSION: 1.52: KWo
*
* Added min_players setting (cvar) to allow awps/autos if at least min_players amount in each team is reached
*
**********************
*
* VERSION: 1.53: KWo
*
* Fixed bug with not counting properly awps and autos when droping weapon by engine (i.e. while buying a new weapon)
* Fixed bug with displaying unnecessary message about awps/autos limitation
* Fixed bug with player blocking from pickup awp/autos when only one of them was really limited by cvars
*
**********************
*
* VERSION: 1.60: KWo
*
* Many functions re-written to fix the stack error problem
*
**********************
* CVARS:
***********
*
* max_awps <xx> - Maximum Awps Allowed
* max_autos <xx> - Maximum Autos Allowed
* winspread_awp <xx> - When This Many Rounds Ahead, No Awps Allowed
* winspread_auto <xx> - When This Many Rounds Ahead, No Autos Allowed
* min_players <xx> - Below this amount of players in team, awp/auto are completly restricted (no matter of max_awps and max_autos)
* autolimit <1/0> - 1 = Restrict Auto, 0 = Don't
* awplimit <1/0> - 1 = Restrict Awp, 0 = Don't
* checkrebuy <1/0> - 1 = Prevent Rebuy Command, 0 = Don't
*
* TIPS:
*     To ALWAYS restrict to X number of awps/autos set winspread_awp/auto to 0 and max_awps/autos to however many awps/autos
*       To ONLY restrict after X number of rounds ahead, set max_awps/autos to 20 and winspread_awp/autos to however many rounds
*
* KNOWN BUG/ISSUES:
************
* Updating the CVARS in game will only take effect after the following round has finished.
* Bots can buy limitted weapon, but they drop it immediatelly after buying. They cannot pickup dropped limited weapons
* (like human players), so it's not a big issue.
*
* TO DO:
********
* Dunno, you tell me  ;)  Possibly will look at that following round thing, though it isn't too much hassle so I may not bother. You Decide.
*
*/

#include <amxmodx>
#include <fakemeta>

#pragma dynamic 8192

new const PLUGINNAME[] = "AWP/AUTO Limit (Team/Win)"
new const VERSION[] = "1.60"
new const AUTHOR[] = "SD/MG/DS/KWo"

new plist[33] = { 0, ... }   // 0 = no awp; 1 = carrying awp
new plist2[33] = {0, ... }   // 0 = no auto; 1 = carrying auto
new awp_count[3]         // 1 = T; 2 = CT
new auto_count[3]        // 1 = T; 2 = CT
new ctscore = 0
new tscore = 0 
new gl_maxplayers

/* PCvars */
new pv_awplimit
new pv_max_awps
new pv_winspread_awp
new pv_autolimit
new pv_max_autos
new pv_winspread_auto
new pv_checkrebuy
new pv_minplayers

/* handles restricting the menu */
public menu_awp(id,key)
{
    if (get_pcvar_num(pv_awplimit) != 1) return PLUGIN_CONTINUE
    
    new team = get_user_team(id)
    new winspread_awp = get_pcvar_num(pv_winspread_awp)
    new min_players = get_pcvar_num(pv_minplayers)
    new team1_num, team2_num, score_dif
    new players[32]

    get_players(players,team1_num,"e","TERRORIST")
    get_players(players,team2_num,"e","CT")

    if ((team1_num < min_players) || (team2_num < min_players))
    {
        engclient_cmd(id,"menuselect","10")
        client_print(id,print_center,"Not enough people in one team to allow AWP's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
        return PLUGIN_HANDLED
    }

    if (winspread_awp)
    {
        if (team == 2)
            score_dif = ctscore - tscore
        else if (team == 1)
            score_dif = tscore - ctscore

        if (score_dif >= winspread_awp)
        {    
            engclient_cmd(id,"menuselect","10")
            client_print(id,print_center,"You are on the winning team and cannot use AWP's (ScDif:%d, WsAWP:%d).", score_dif, winspread_awp)
            return PLUGIN_HANDLED
        }
    }

    if (awp_count[team] >= get_pcvar_num(pv_max_awps))
    {
        engclient_cmd(id,"menuselect","10")
        client_print(id,print_center,"Too many people on your team have AWP's (%d/%d).", awp_count[team], get_pcvar_num(pv_max_awps))
        return PLUGIN_HANDLED
    }

    return PLUGIN_CONTINUE
}

/* handles restricting the menu */
public menu_auto(id,key)
{
    if (get_pcvar_num(pv_autolimit) != 1) return PLUGIN_CONTINUE

    new team = get_user_team(id)
    new winspread_auto = get_pcvar_num(pv_winspread_auto)
    new min_players = get_pcvar_num(pv_minplayers)
    new team1_num, team2_num, score_dif
    new players[32]

    get_players(players,team1_num,"e","TERRORIST")
    get_players(players,team2_num,"e","CT")

    if ((team1_num < min_players) || (team2_num < min_players))
    {
        engclient_cmd(id,"menuselect","10")
        client_print(id,print_center,"Not enough people in one team to allow AUTO's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
        return PLUGIN_HANDLED
    }

    if (winspread_auto)
    {
        if (team == 2)
            score_dif = ctscore - tscore
        else if (team == 1)
            score_dif = tscore - ctscore

        if (score_dif >= winspread_auto)
        {
            engclient_cmd(id,"menuselect","10")
            client_print(id,print_center,"You are on the winning team and cannot use AUTO's (ScDif:%d, WsAuto:%d).", score_dif, winspread_auto)
            return PLUGIN_HANDLED
        }
    }

    if (auto_count[team] >= get_pcvar_num(pv_max_autos))
    {
        engclient_cmd(id,"menuselect","10")
        client_print(id,print_center,"Too many people on your team have AUTO's (%d/%d).", auto_count[team], get_pcvar_num(pv_max_autos))
        return PLUGIN_HANDLED
    }

    return PLUGIN_CONTINUE
}

/* handles if they script the AWP buy*/
public cmdawp(id)
{
    if (get_pcvar_num(pv_awplimit) != 1) return PLUGIN_CONTINUE

    new team = get_user_team(id)

    if ((team < 1) || (team > 2)) return PLUGIN_CONTINUE

    new winspread_awp = get_pcvar_num(pv_winspread_awp)
    new name[32]
    get_user_name(id,name,31)
    new min_players = get_pcvar_num(pv_minplayers)
    new team1_num, team2_num, score_dif
    new players[32]

    get_players(players,team1_num,"e","TERRORIST")
    get_players(players,team2_num,"e","CT")

    if ((team1_num < min_players) || (team2_num < min_players))
    {
        client_print(id,print_center,"Not enough people in one team to allow AWP's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
        return PLUGIN_HANDLED
    }

    if (winspread_awp)
    {
        if (team == 2)
            score_dif = ctscore - tscore
        else if (team == 1)
            score_dif = tscore - ctscore

        if (score_dif >= winspread_awp)
        {
            client_print(id,print_center,"You are on the winning team and cannot use AWP's (ScDif:%d, WsAWP:%d).", score_dif, winspread_awp)
            return PLUGIN_HANDLED
        }
    }

    if (awp_count[team] >= get_pcvar_num(pv_max_awps))
    {
        client_print(id,print_center,"Too many people on your team have AWP's (%d/%d).", awp_count[team], get_pcvar_num(pv_max_awps))
        return PLUGIN_HANDLED
    }
    
    return PLUGIN_CONTINUE
}

/* handles if they script the AUTO buy*/
public cmdauto(id)
{
    if (get_pcvar_num(pv_autolimit) != 1) return PLUGIN_CONTINUE

    new team = get_user_team(id)
    new winspread_auto = get_pcvar_num(pv_winspread_auto)
    new min_players = get_pcvar_num(pv_minplayers)
    new team1_num, team2_num, score_dif
    new players[32]

    get_players(players,team1_num,"e","TERRORIST")
    get_players(players,team2_num,"e","CT")

    if ((team1_num < min_players) || (team2_num < min_players))
    {
        client_print(id,print_center,"Not enough people in one team to allow AUTO's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
        return PLUGIN_HANDLED
    }

    if (winspread_auto)
    {
        if (team == 2)
            score_dif = ctscore - tscore
        else if (team == 1)
            score_dif = tscore - ctscore

        if (score_dif >= winspread_auto)
        {
            client_print(id,print_center,"You are on the winning team and cannot use AUTO's (ScDif:%d, WsAuto:%d).", score_dif, winspread_auto)
            return PLUGIN_HANDLED
        }
    }

    if (auto_count[team] >= get_pcvar_num(pv_max_autos))
    {
        client_print(id,print_center,"Too many people on your team have AUTO's (%d/%d).", auto_count[team], get_pcvar_num(pv_max_autos))
        return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}


/* handles when a player drops his weapon */
public handle_drop_weapon(id)
{
    if (!is_user_connected(id))
        return PLUGIN_CONTINUE
    
    new tmp1,tmp2
    new curweapon = get_user_weapon(id,tmp1,tmp2)
    new team = get_user_team(id)

/* handles when a player drops their awp */    
    if (curweapon == CSW_AWP)
    {
        if ((plist[id]==1) && (awp_count[team] > 0))
            awp_count[team]--
        plist[id] = 0            
        return PLUGIN_CONTINUE
    }
/* handles when a player drops his auto */
    else if ((curweapon == CSW_SG550) || (curweapon == CSW_G3SG1))
    {
        if ((plist2[id]==1) && (auto_count[team] > 0))
            auto_count[team]--
        plist2[id] = 0
        return PLUGIN_CONTINUE
    }
    return PLUGIN_CONTINUE
}

public handle_pickup_weapon(id)
{
    if (!is_user_connected(id) || !pev_valid(id))
        return PLUGIN_CONTINUE

    new team = get_user_team(id)
    new wpflags = pev(id, pev_weapons)

    new bool:awp_exists = false
    new bool:auto1_exists = false
    new bool:auto2_exists = false
    
    if (wpflags & (1 << CSW_AWP))
        awp_exists = true
    if (wpflags & (1 << CSW_SG550))
        auto1_exists = true
    if (wpflags & (1 << CSW_G3SG1))
        auto2_exists = true

    if ((!awp_exists) && (plist[id] == 1))
    {
        plist[id] = 0
        if (awp_count[team] > 0)
            awp_count[team]--
    }
    else if ((awp_exists) && (plist[id] != 1))
    {
        handle_pickup_awp(id)
    }

    if ((!auto1_exists) && (!auto2_exists) && (plist2[id] == 1))
    {
        plist2[id] = 0
        if (auto_count[team] > 0)
            auto_count[team]--
    }
    else if ((auto1_exists) && (plist2[id] != 1))
    {
        handle_pickup_sg550(id)
    }
    else if ((auto2_exists) && (plist2[id] != 1))
    {
        handle_pickup_g3sg1(id)
    }

    return PLUGIN_CONTINUE
}

/* handles when a player picks up an awp */
public handle_pickup_awp(id)
{
    new team = get_user_team(id)
    new winspread_awp = get_pcvar_num(pv_winspread_awp)
    new name[32]
    get_user_name(id,name,31)
    new min_players = get_pcvar_num(pv_minplayers)
    new team1_num, team2_num, score_dif
    new players[32]

    get_players(players,team1_num,"e","TERRORIST")
    get_players(players,team2_num,"e","CT")

    if (get_pcvar_num(pv_awplimit) == 1)
    {
        if ((team1_num < min_players) || (team2_num < min_players))
        {
            set_task(0.5, "drop_awp", id)
            client_print(id,print_center,"Not enough people in one team to allow AWP's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
            return
        }

        if (winspread_awp)
        {
            if (team == 2)
                score_dif = ctscore - tscore
            else if (team == 1)
                score_dif = tscore - ctscore

            if (score_dif >= winspread_awp)
            {
                client_print(id,print_center,"You are on the winning team and cannot use AWP's (ScDif:%d, WsAWP:%d).", score_dif, winspread_awp)
                set_task(0.5, "drop_awp", id)
                return
            }
        }

        if (awp_count[team] >= get_pcvar_num(pv_max_awps))
        {
            client_print(id,print_center,"Too many people on your team have AWP's (%d/%d).", awp_count[team], get_pcvar_num(pv_max_awps))
            set_task(0.5, "drop_awp", id)
            return
        }
    }
    
    if (plist[id] != 1)
    {
        plist[id] = 1
        awp_count[team]++
//        client_print(id,print_chat,"You have bought or picked-up an awp. There is %d awps in Your team.", awp_count[team])
//        log_message("The player %s bought or picked-up an awp. There is %d awps in his team %d.", name, awp_count[team], team)
    }
}

public drop_awp(id)
{
    new team, wpflags
    if (is_user_alive(id))
    {
        wpflags = pev(id, pev_weapons)
        if (wpflags & (1 << CSW_AWP))
        {
            engclient_cmd(id, "drop", "weapon_awp")

            if (plist[id] == 1)
            {
                team = get_user_team(id)
                if (awp_count[team] > 0)
                    awp_count[team]--
                plist[id] = 0
            }
        }
    }
}

/* handles when a player picks up a g3sg1 */
public handle_pickup_g3sg1(id)
{
    new team = get_user_team(id)
    new winspread_auto = get_pcvar_num(pv_winspread_auto)
    new min_players = get_pcvar_num(pv_minplayers)
    new team1_num, team2_num, score_dif
    new players[32]

    get_players(players,team1_num,"e","TERRORIST")
    get_players(players,team2_num,"e","CT")

    if (get_pcvar_num(pv_autolimit) == 1)
    {
        if ((team1_num < min_players) || (team2_num < min_players))
        {
            client_print(id,print_center,"Not enough people in one team to allow AUTO's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
            set_task(0.5, "drop_g3sg1", id)
            return
        }

        if (winspread_auto)
        {
            if (team == 2)
                score_dif = ctscore - tscore
            else if (team == 1)
                score_dif = tscore - ctscore

            if (score_dif >= winspread_auto)
            {
                client_print(id,print_center,"You are on the winning team and cannot use AUTO's (ScDif:%d, WsAuto:%d).", score_dif, winspread_auto)
                set_task(0.5, "drop_g3sg1", id)
                return
            }
        }

        if (auto_count[team] >= get_pcvar_num(pv_max_autos))
        {
            client_print(id,print_center,"Too many people on your team have AUTO's (%d/%d).", auto_count[team], get_pcvar_num(pv_max_autos))
            set_task(0.5, "drop_g3sg1", id)
            return
        }
    }
    
    if (plist2[id] != 1)
    {
        plist2[id] = 1
        auto_count[team]++
    }
}

public drop_g3sg1(id)
{
    new team, wpflags
    if (is_user_alive(id))
    {
        wpflags = pev(id, pev_weapons)
        if (wpflags & (1 << CSW_G3SG1))
        {
            engclient_cmd(id, "drop", "weapon_g3sg1")

            if (plist2[id] == 1)
            {
                team = get_user_team(id)
                if (auto_count[team] > 0)
                    auto_count[team]--
                plist2[id] = 0
            }
        }
    }
}

/* handles when a player picks up a sg550 */
public handle_pickup_sg550(id)
{
    new team = get_user_team(id)
    new winspread_auto = get_pcvar_num(pv_winspread_auto)
    new min_players = get_pcvar_num(pv_minplayers)
    new team1_num, team2_num, score_dif
    new players[32]

    get_players(players,team1_num,"e","TERRORIST")
    get_players(players,team2_num,"e","CT")

    if (get_pcvar_num(pv_autolimit) == 1)
    {
        if ((team1_num < min_players) || (team2_num < min_players))
        {
            client_print(id,print_center,"Not enough people in one team to allow AUTO's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
            set_task(0.5, "drop_sg550", id)
            return
        }

        if (winspread_auto)
        {
            if (team == 2)
                score_dif = ctscore - tscore
            else if (team == 1)
                score_dif = tscore - ctscore

            if (score_dif >= winspread_auto)
            {
                client_print(id,print_center,"You are on the winning team and cannot use AUTO's (ScDif:%d, WsAuto:%d).", score_dif, winspread_auto)
                set_task(0.5, "drop_sg550", id)
                return
            }
        }


        if (auto_count[team] >= get_pcvar_num(pv_max_autos))
        {
            client_print(id,print_center,"Too many people on your team have AUTO's (%d/%d).", auto_count[team], get_pcvar_num(pv_max_autos))
            set_task(0.5, "drop_sg550", id)
            return
        }
    }
    
    if (plist2[id] != 1)
    {
        plist2[id] = 1
        auto_count[team]++
    }
}

public drop_sg550(id)
{
    new team, wpflags
    if (is_user_alive(id))
    {
        wpflags = pev(id, pev_weapons)
        if (wpflags & (1 << CSW_SG550))
        {
            engclient_cmd(id, "drop", "weapon_sg550")

            if (plist2[id] == 1)
            {
                team = get_user_team(id)
                if (auto_count[team] > 0)
                    auto_count[team]--
                plist2[id] = 0
            }
        }
    }
}

/* removes awp and auto when player dies */
public handle_death()
{
    if ((get_pcvar_num(pv_awplimit) != 1) && (get_pcvar_num(pv_autolimit) != 1))
        return PLUGIN_CONTINUE
 
    new idx = read_data(2)
    if ((idx < 1) || (idx > gl_maxplayers))
        return PLUGIN_CONTINUE

    if (plist[idx] == 1)
    {
        new team = get_user_team(idx)
        if (awp_count[team] > 0)
            awp_count[team]--
        plist[idx] = 0
    }

    if (plist2[idx] == 1)
    {
        new team = get_user_team(idx)
        if (auto_count[team] > 0)
            auto_count[team]--
        plist2[idx] = 0
    }

    return PLUGIN_CONTINUE
}

/* clear vars when player connects */
public client_connect(id)
{
    if ((id > 0) && (id <= gl_maxplayers))
    {
        plist[id] = 0
        plist2[id] = 0
    }
    return PLUGIN_CONTINUE
}

/* clear vars when player disconnects */
public client_disconnect(id)
{
    new team
    if ((id > 0) && (id <= gl_maxplayers))
    {
        if (plist[id] == 1)
        {
            team = get_user_team(id)
            if (awp_count[team] > 0)
                awp_count[team]--
        }
        if (plist2[id] == 1)
        {
            team = get_user_team(id)
            if (auto_count[team] > 0)
                auto_count[team]--
        }    
        plist[id] = 0
        plist2[id] = 0
    }
    return PLUGIN_CONTINUE
}

public team_score()
{
    if ((get_pcvar_num(pv_awplimit) != 1) && (get_pcvar_num(pv_autolimit) != 1))
        return PLUGIN_CONTINUE

    new team[32]
    read_data(1,team,32)

    if (equal(team,"CT"))
    {
        ctscore = read_data(2)
    }
    else if (equal(team,"TERRORIST"))
    {
        tscore = read_data(2)
    }
    return PLUGIN_CONTINUE
}

public check_winning_team(id)
{
    if ((get_pcvar_num(pv_awplimit) != 1) && (get_pcvar_num(pv_autolimit) != 1)) return PLUGIN_CONTINUE
    if ((id < 1) || (id > gl_maxplayers)) return PLUGIN_CONTINUE
    if (!is_user_alive(id)) return PLUGIN_CONTINUE

    new team = get_user_team(id)
    new winspread_awp = get_pcvar_num(pv_winspread_awp)
    new winspread_auto = get_pcvar_num(pv_winspread_auto)
    new wpflags, score_dif

    if (plist[id] == 1)
    {        
        if (winspread_awp)
        {
            if (team == 2)
                score_dif = ctscore - tscore
            else if (team == 1)
                score_dif = tscore - ctscore

            if (score_dif >= winspread_awp)
            {
                client_print(id,print_center,"You are on the winning team and cannot use AWP's (ScDif:%d, WsAWP:%d).", score_dif, winspread_awp)

                engclient_cmd(id, "drop", "weapon_awp")
                plist[id] = 0
                if (awp_count[team] > 0)
                    awp_count[team]--
            }
        }
    }
    if (plist2[id] == 1)
    {
        if (winspread_auto)
        {
            if (team == 2)
                score_dif = ctscore - tscore
            else if (team == 1)
                score_dif = tscore - ctscore

            if (score_dif >= winspread_auto)
            {
                client_print(id,print_center,"You are on the winning team and cannot use AUTO's (ScDif:%d, WsAuto:%d).", score_dif, winspread_auto)
                wpflags = pev(id, pev_weapons)
                if (wpflags & (1 << CSW_SG550))
                {
                    engclient_cmd(id, "drop", "weapon_sg550")
                    plist2[id] = 0
                    if (auto_count[team] > 0)
                        auto_count[team]--
                }
                if (wpflags & (1 << CSW_G3SG1))
                {
                    engclient_cmd(id, "drop", "weapon_g3sg1")
                    plist2[id] = 0
                    if (auto_count[team] > 0)
                        auto_count[team]--
                }
            }
        }
    }
    return PLUGIN_CONTINUE
}

/*
* 1 = T's: AWP Key 4, AUTOSNIPER Key 5
* 2 = CT's: AWP Key 5, AUTOSNIPER Key 4
*/
public via_me(id,key)
{
    new team = get_user_team(id)

    if ((team==1 && key==5) || (team==2 && key==4))
        menu_auto(id, key)
    if ((team==1 && key==4) || (team==2 && key==5))
        menu_awp(id, key)

    return PLUGIN_CONTINUE
}

public check_rebuy(id)
{
    if (get_pcvar_num(pv_checkrebuy) != 1) return PLUGIN_CONTINUE
    client_print(id,print_center,"Sorry Rebuy command is blocked on this server")

    return PLUGIN_HANDLED
}

public total_snipers()
{
    new players[32], numPlayerCount, idxPlayer, id, wpflags

    // 1 = T; 2 = CT
    awp_count[1] = 0
    auto_count[1] = 0

    get_players(players, numPlayerCount,"he","TERRORIST")
    for(idxPlayer = 0; idxPlayer < numPlayerCount; idxPlayer++)
    {
        id = players[idxPlayer]

        if (!is_user_alive(id)) continue
        if (!pev_valid(id)) continue
        
        wpflags = pev(id, pev_weapons)
        
        plist[id] = 0
        plist2[id] = 0
        
        if (wpflags & (1 << CSW_AWP))
        {
            plist[id] = 1
            awp_count[1]++
        }
        if ((wpflags & (1 << CSW_SG550)) || (wpflags & (1 << CSW_G3SG1)))
        {
            plist2[id] = 1
            auto_count[1]++
        }
    }

    awp_count[2] = 0
    auto_count[2] = 0
    
    get_players(players, numPlayerCount,"he","CT")
    for(idxPlayer = 0; idxPlayer < numPlayerCount; idxPlayer++)
    {
        id = players[idxPlayer]

        if (!is_user_alive(id)) continue
        if (!pev_valid(id)) continue

        plist[id] = 0
        plist2[id] = 0
        
        if (wpflags & (1 << CSW_AWP))
        {
            plist[id] = 1
            awp_count[2]++
        }
        if ((wpflags & (1 << CSW_SG550)) || (wpflags & (1 << CSW_G3SG1)))
        {
            plist2[id] = 1
            auto_count[2]++
        }
    }
}

public round_start()
{
    total_snipers() 
}

public hook_touch(ptr, ptd)
{
    static ptrClass[32]
    static ptdClass[32]
    static ptrModel[128]
    static team
    static min_players
    static team1_num, team2_num, score_dif
    static players[32]
    static winspread_awp
    static winspread_auto
    static wpflags

    if ((get_pcvar_num(pv_awplimit) != 1) && (get_pcvar_num(pv_autolimit) != 1))
        return PLUGIN_CONTINUE

    if (ptd > gl_maxplayers || ptd < 1 || ptr < 1 )
        return PLUGIN_CONTINUE
        
    if ( (!pev_valid(ptr)) || (!pev_valid(ptd)) )
        return PLUGIN_CONTINUE

    if (!is_user_connected(ptd))
        return PLUGIN_CONTINUE

    pev(ptr, pev_classname, ptrClass, 31)
    pev(ptr, pev_model, ptrModel, 127)
    pev(ptd, pev_classname, ptdClass, 31)
    
    if ((!equal(ptrClass, "weaponbox")) && (!equal(ptrClass, "armoury_entity"))
        && (!equal(ptrClass, "csdmw_",6)))
        return PLUGIN_CONTINUE

    if (equal(ptdClass, "player"))
    {
        team = get_user_team(ptd)
        min_players = get_pcvar_num(pv_minplayers)
        get_players(players,team1_num,"e","TERRORIST")
        get_players(players,team2_num,"e","CT")
        wpflags = pev(ptd, pev_weapons)

        if ((equal(ptrModel, "models/w_awp.mdl")) && (get_pcvar_num(pv_awplimit) == 1))
        {            
            if (!(wpflags & (1 << CSW_AWP)))
            {
                if ((team1_num < min_players) || (team2_num < min_players))
                {
                    client_print(ptd,print_center,"Not enough people in one team to allow AWP's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
                    return FMRES_SUPERCEDE
                }

                if (awp_count[team] >= get_pcvar_num(pv_max_awps))
                {
                    client_print(ptd,print_center,"Too many people on your team have AWP's (%d/%d).", awp_count[team], get_pcvar_num(pv_max_awps))
                    return FMRES_SUPERCEDE
                }

                winspread_awp = get_pcvar_num(pv_winspread_awp)
                if (winspread_awp)
                {
                    score_dif = 0
                    if (team == 2)
                        score_dif = ctscore - tscore
                    else if (team == 1)
                        score_dif = tscore - ctscore

                    if (score_dif >= winspread_awp)
                    {
                        client_print(ptd,print_center,"You are on the winning team and cannot use AWP's (ScDif:%d, WsAWP:%d).", score_dif, winspread_awp)
                        return FMRES_SUPERCEDE
                    }
                }
            }
            return PLUGIN_CONTINUE
        }
        
        if (((equal(ptrModel, "models/w_g3sg1.mdl")) || (equal(ptrModel, "models/w_sg550.mdl")))
            && (get_pcvar_num(pv_autolimit) == 1))
        {
            if (!(wpflags & (1 << CSW_SG550)) && !(wpflags & (1 << CSW_SG550)))
            {
                if ((team1_num < min_players) || (team2_num < min_players))
                {
                    client_print(ptd,print_center,"Not enough people in one team to allow AUTO's (Ts:%d, CTs:%d, MIN:%d).", team1_num, team2_num, min_players)
                    return FMRES_SUPERCEDE
                }

                if (auto_count[team] >= get_pcvar_num(pv_max_autos))
                {
                    client_print(ptd,print_center,"Too many people on your team have AUTO's (%d/%d).", auto_count[team], get_pcvar_num(pv_max_autos))
                    return FMRES_SUPERCEDE
                }

                winspread_auto = get_pcvar_num(pv_winspread_auto)
                if (winspread_auto)
                {
                    score_dif = 0
                    if (team == 2)
                        score_dif = ctscore - tscore
                    else if (team == 1)
                        score_dif = tscore - ctscore

                    if (score_dif >= winspread_auto)
                    {
                        client_print(ptd,print_center,"You are on the winning team and cannot use AUTO's (ScDif:%d, WsAuto:%d).", score_dif, winspread_auto)
                        return FMRES_SUPERCEDE
                    }
                }
            }
            return PLUGIN_CONTINUE
        }
    }    
    return PLUGIN_CONTINUE
}

public team_assign()
{
    new id = read_data(1)
    if ((id < 1) || (id > gl_maxplayers))
        return PLUGIN_CONTINUE
    if (!is_user_connected(id) || !is_user_alive(id) || (!plist[id] && !plist2[id]))
        return PLUGIN_CONTINUE

    total_snipers()

    return PLUGIN_CONTINUE
}

public plugin_init()
{
    register_plugin(PLUGINNAME,VERSION,AUTHOR)
    register_menucmd(-31,(1<<4),"via_me" )                                    //  T: AWP, CT: Sig SG-550 Sniper       - VGUI
    register_menucmd(-31,(1<<5),"via_me" )                                    // CT: AWP, T:  H&K G3SG-1 Sniper Rifle - VGUI
    register_menucmd(register_menuid("BuyRifle",1),(1<<4),"via_me" )          //  T: AWP, CT: Sig SG-550 Sniper       - STANDARD
    register_menucmd(register_menuid("BuyRifle",1),(1<<5),"via_me" )          // CT: AWP, T:  H&K G3SG-1 Sniper Rifle - STANDARD
    register_clcmd("drop","handle_drop_weapon")

    register_clcmd("awp","cmdawp")
    register_clcmd("magnum","cmdawp")
    register_clcmd("g3sg1","cmdauto")
    register_clcmd("d3au1","cmdauto")
    register_clcmd("sg550","cmdauto")
    register_clcmd("krieg550","cmdauto")
    register_clcmd("rebuy","check_rebuy")

    pv_awplimit = register_cvar("awplimit","1")
    pv_autolimit = register_cvar("autolimit","1")
    pv_checkrebuy = register_cvar("checkrebuy","1")
    pv_max_awps = register_cvar("max_awps","2")
    pv_max_autos = register_cvar("max_autos","1")
    pv_minplayers = register_cvar("min_players","5")
    pv_winspread_awp = register_cvar("winspread_awp","3")
    pv_winspread_auto = register_cvar("winspread_auto","2")

    register_event("TeamScore", "team_score", "a")
    register_event("TeamInfo","team_assign","a")
    register_event("WeapPickup","handle_pickup_weapon","b")
    register_event("DeathMsg","handle_death","a")

    register_event("ResetHUD","check_winning_team","be")

    register_logevent("round_start", 2, "1=Round_Start")
    register_forward(FM_Touch, "hook_touch")
    gl_maxplayers = get_maxplayers()
}


Attığım Eklentide Oto Awp ve ve Ct yada T takımı ondeyse awp limitini kaldırabilirmiyiz peki yada bunun cvar kodlarıyla yapılan birşey ise cvar komutları bunlar

max_awps <xx> - Maximum Awps Allowed
* max_autos <xx> - Maximum Autos Allowed
* winspread_awp <xx> - When This Many Rounds Ahead, No Awps Allowed
* winspread_auto <xx> - When This Many Rounds Ahead, No Autos Allowed
* min_players <xx> - Below this amount of players in team, awp / auto are completly restricted (no matter of max_awps and max_autos)
* autolimit <1/0> - 1 = Restrict Auto, 0 = Don't
* awplimit <1/0> - 1 = Restrict Awp, 0 = Don't
* checkrebuy <1/0> - 1 = Prevent Rebuy Command, 0 = Don't
Son Düzenleme: 26-05-2021, 14:01, Düzenleyen: Areeeessss.
#10
İstek konusu, @Grinin 50 Tonu adlı kullanıcı tarafından 2 gün içinde çözülmüştür.
İsteği çözdüğü için Grinin 50 Tonu Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
Grinin 50 Tonu Adlı kullanıcı sizin dışınızda toplam 3 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
Task