Konu

#1
Merhaba, Gelişmiş futbol modumuz için bir eklentiye ihtiyacımız var. Aşağıda kod bloğu ve oyun içerisindeki görsel fotoğrafı mevcut olan sisteme, adminlerin say'dan /takim yazarak takım seçmelerinin kapatılıp/açılabileceği bir eklenti istiyoruz(Menünün devre dışı bırakılması veya kapatılması). Ekstra olarak takımlar kapatıldığında say üzerinden Takımların kapalı olduğuna dair bilgilendirici bir mesaj olursa çok iyi olur. Ben biraz denedim tam olarak nerede hata yaptığımı anlayamadım

Kod:
public clcmd_changeteam(id)
{    
    new soccermenu = menu_create("Takim Secimi", "change_menu")
    menu_additem(soccermenu, "Benfica", "1",0)
    menu_additem(soccermenu, "Chelsea","2",0)
    menu_additem(soccermenu, "Spiker Odasi","3",0)
    menu_additem(soccermenu, "Seyirci","4",0)
    menu_addblank(soccermenu,1)
    menu_display(id, soccermenu, 0)        
    return PLUGIN_HANDLED
}


zda0mP8vEni
Son Düzenleme: 07-11-2024, 19:43, Düzenleyen: Eko33.
#2
PHP Kod:
new bool:TakimKapali// Degiskenimiz

register_clcmd("say /takim""TakimAyarla"); // Komutu okutmak icin gerekli

public clcmd_changeteam(id)
{
    
    
if(TakimKapali)
    {
        // Takim secme kapali mi kontrol et

        client_print_color(id,id"Takim secme admin tarafindan kapatildi");
        return PLUGIN_HANDLED
    
}

    new soccermenu menu_create("Takim Secimi""change_menu")
    menu_additem(soccermenu"Benfica""1",0)
    menu_additem(soccermenu"Chelsea","2",0)
    menu_additem(soccermenu"Spiker Odasi","3",0)
    menu_additem(soccermenu"Seyirci","4",0)
    menu_addblank(soccermenu,1)
    menu_display(idsoccermenu0)        
    
return PLUGIN_HANDLED
}

public 
TakimAyarla(const id)
{
    // Yetki kontrolu
    if(get_user_flags(id) & ADMIN_RESERVATION)
    {

        TakimKapali = !TakimKapali// TakimKapali degiskenini onceki degerin tersi yapar (acik-kapali)

        if(TakimKapaliclient_print_color(0,0"%n adli admin takim secmeyi kapatti"id);
        else client_print_color(0,0"%n adli admin takim secmeyi acti"id);
    }
    else
    {
        client_print_color(id,id"Yetkiniz yetersiz");
    }

Uyarlaması size kalmış.
Steam: Tıkla
#3
(07-11-2024, 20:59)Lynchk Adlı Kullanıcıdan Alıntı:
PHP Kod:
new bool:TakimKapali// Degiskenimiz
register_clcmd("say /takim""TakimAyarla"); // Komutu okutmak icin gerekli
public clcmd_changeteam(id)
{
    
    
if(TakimKapali)
    {
        // Takim secme kapali mi kontrol et
        client_print_color(id,id"Takim secme admin tarafindan kapatildi");
        return PLUGIN_HANDLED
    
}
    new soccermenu menu_create("Takim Secimi""change_menu")
    menu_additem(soccermenu"Benfica""1",0)
    menu_additem(soccermenu"Chelsea","2",0)
    menu_additem(soccermenu"Spiker Odasi","3",0)
    menu_additem(soccermenu"Seyirci","4",0)
    menu_addblank(soccermenu,1)
    menu_display(idsoccermenu0)        
    
return PLUGIN_HANDLED
}
public 
TakimAyarla(const id)
{
    // Yetki kontrolu
    if(get_user_flags(id) & ADMIN_RESERVATION)
    {
        TakimKapali = !TakimKapali// TakimKapali degiskenini onceki degerin tersi yapar (acik-kapali)
        if(TakimKapaliclient_print_color(0,0"%n adli admin takim secmeyi kapatti"id);
        else client_print_color(0,0"%n adli admin takim secmeyi acti"id);
    }
    else
    {
        client_print_color(id,id"Yetkiniz yetersiz");
    }

öncelikle teşekkürler, derlerken şöyle bir hata aldım (6893) : error 021: symbol already defined: "register_clcmd"
#4
register_clcmd komutunu plugin_init içerisine girmeniz gerek.
Hala hata alıyorsanız eklentiyi paylaşın.
Steam: Tıkla
#5
(07-11-2024, 21:37)Lynchk Adlı Kullanıcıdan Alıntı: register_clcmd komutunu plugin_init içerisine girmeniz gerek.
Hala hata alıyorsanız eklentiyi paylaşın.
Teşekkürler sorunsuz çalıştı, fakat servere tekrar bağlanınca manuel C-T seçme ekranından seçim yaparak tekrar takımlara girebiliyorlar. Bunun içinde bir düzenleme yapabilir misiniz ? Aynı anda 2 side kapanıp açılsın.
#6
(07-11-2024, 21:43)Eko33 Adlı Kullanıcıdan Alıntı:
(07-11-2024, 21:37)Lynchk Adlı Kullanıcıdan Alıntı: register_clcmd komutunu plugin_init içerisine girmeniz gerek.
Hala hata alıyorsanız eklentiyi paylaşın.
Teşekkürler sorunsuz çalıştı, fakat servere tekrar bağlanınca manuel C-T seçme ekranından seçim yaparak tekrar takımlara girebiliyorlar. Bunun içinde bir düzenleme yapabilir misiniz ? Aynı anda 2 side kapanıp açılsın.
https://www.webailesi.com/konu-takim-degistirmeyi-engelleme-eklentisi-3369
Bunu kurabilirsiniz, takım seçmeyi engeller.Siz kendi eklentinizden değişim sağlayabilirsiniz.
Onun dışında retry atınca takım seçme ekranı çıkmaması için oyuncuyu otomatik takıma atmalısınız;
Kod:
amx_cvar mp_auto_join_team 1
amx_cvar humans_join_team any

Bu kodlar ile otomatik takıma atmayı açabilirsiniz.
Steam: Tıkla
#7
(07-11-2024, 21:45)Lynchk Adlı Kullanıcıdan Alıntı:
(07-11-2024, 21:43)Eko33 Adlı Kullanıcıdan Alıntı: Teşekkürler sorunsuz çalıştı, fakat servere tekrar bağlanınca manuel C-T seçme ekranından seçim yaparak tekrar takımlara girebiliyorlar. Bunun içinde bir düzenleme yapabilir misiniz ? Aynı anda 2 side kapanıp açılsın.
https://www.webailesi.com/konu-takim-degistirmeyi-engelleme-eklentisi-3369
Bunu kurabilirsiniz, takım seçmeyi engeller.Siz kendi eklentinizden değişim sağlayabilirsiniz.
Onun dışında retry atınca takım seçme ekranı çıkmaması için oyuncuyu otomatik takıma atmalısınız;
Kod:
amx_cvar mp_auto_join_team 1
amx_cvar humans_join_team any

Bu kodlar ile otomatik takıma atmayı açabilirsiniz.
yani takım kapalıyken dışardan gelen oyuncuları izleyice atması yeterli.
#8
PHP Kod:
public client_putinserver(id)
{
    // Oyuncu sunucuya baglandiginda takimlar kapaliysa 3 saniye sonra spece atacak
    if(TakimKapali)
    {
        set_task(3.0"SpeceAt"id);
    }
}

public 
SpeceAt(const id)
{
    // Reapi kutuphanesi ile spece atma kodu

    if(is_user_connected(id))
    {
        rg_set_user_team(idTEAM_SPECTATOR);

        client_print_color(id,id"Takimlar admin tarafindan kapali oldugu icin spece atildiniz");
    }

Bu kodları ekleyip deneyebilirsiniz.
Steam: Tıkla
#9
(07-11-2024, 21:53)Lynchk Adlı Kullanıcıdan Alıntı:
PHP Kod:
public client_putinserver(id)
{
    // Oyuncu sunucuya baglandiginda takimlar kapaliysa 3 saniye sonra spece atacak
    if(TakimKapali)
    {
        set_task(3.0"SpeceAt"id);
    }
}

public 
SpeceAt(const id)
{
    // Reapi kutuphanesi ile spece atma kodu

    if(is_user_connected(id))
    {
        rg_set_user_team(idTEAM_SPECTATOR);

        client_print_color(id,id"Takimlar admin tarafindan kapali oldugu icin spece atildiniz");
    }

Bu kodları ekleyip deneyebilirsiniz.
ukeCs Şu hata ile karşılaştım
#10
(07-11-2024, 22:01)Eko33 Adlı Kullanıcıdan Alıntı:
(07-11-2024, 21:53)Lynchk Adlı Kullanıcıdan Alıntı:
PHP Kod:
public client_putinserver(id)
{
    // Oyuncu sunucuya baglandiginda takimlar kapaliysa 3 saniye sonra spece atacak
    if(TakimKapali)
    {
        set_task(3.0"SpeceAt"id);
    }
}

public 
SpeceAt(const id)
{
    // Reapi kutuphanesi ile spece atma kodu

    if(is_user_connected(id))
    {
        rg_set_user_team(idTEAM_SPECTATOR);

        client_print_color(id,id"Takimlar admin tarafindan kapali oldugu icin spece atildiniz");
    }

Bu kodları ekleyip deneyebilirsiniz.
ukeCs Şu hata ile karşılaştım
Zaten client_putinserver publici varmış bu kodu onun içine alın 2 tane tanımlayamazsınız.
Bu kodları değişkeni tanımladığınız yerin altına yazmanız lazım.
Ayrıca en üste #include <reapi> dahil etmeniz lazım.
Steam: Tıkla

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Benzer Konular

Task
Kayıt Ol
Discord Adresimize Katılın