Basit Menü Nasıl Yapılır?

LSR

Üye
Yönetici
Administrator
16 Tem 2016
166
19
18
59 | Tekirdağ
Basit bir menü oluştururken herkes eski tarzda komutlar kullanır. Bunun için bir örnekle size nasıl yazılması gerektiğini göstereceğim

JavaScript:
#include <amxmodx>

public plugin_init() {
    //...

    register_clcmd("say /menuyegiris", "MenuyeGiris");
    //Bu zorunlu değil, bir çeşit menüye giriş sistemi.
}

//Menüye giriş işlevi menüyü oluşturacaktır.
public MenuyeGiris(pPlayer) {
    //Öncelikle menü ve menü değeri oluşturmalıyız.
    new iMenu = menu_create("Menu basligi", "MenuyeGiris_handler");
    // menu_create
    // Birinci değer menünün başlığı.
    // İkinci değer menü kullanıldığında ne olacağını belirleyen işleve giriş.

    //Sonradan menüye değer ekleyeceğiz
    menu_additem(iMenu, "Secenek 1")
    menu_additem(iMenu, "Secenek 2");
    menu_additem(iMenu, "Senecek 3", "", 0, ADMIN_ADMIN);
    // menu_additem
    // Birinci değer oluşturduğumuz menünün değeri
    // İkinci değer menüde gözükecek olan seçenek
    // Üçüncü değer bu seçeneğin bilgisi
    // Dördüncü değer bu seçeneği kullanabilecek admin yetkisi
    // Beşinci değer etkinleştirmek/devre dışı bırakmak için geri çağırmadır. Geri çağırma kullanma pek kullanılmadığı için burayı atlayacağım.

    //Menünün özelliklerini değiştirebiliriz.
    menu_setprop(iMenu, MPROP_EXITNAME, "Çıkış");
    // menu_setprop
    // Birinci değer oluşturduğumuz menünün değeri
    // İkinci değer modifiye edeceğimiz yer (amxconst.inc kütüphanesinde bulabilirsiniz)
    // Üçüncü değer modifiye ettiğimiz şey (Burada exit yazısını Çıkış yaptık.Siz istediğiniz şeyi değiştirebilirsiniz)
    // MPROP_EXIT için MPROP_ALL varsayılandır. Kullanılmaya gerek yoktur.

    //Son olarak menüyü gösterelim.
    menu_display(pPlayer, iMenu);
    // menu_display
    // Birinci değer menüyü gösterdiğimiz kişi (0 yazarak herkese gösteremezsiniz, döngü gerekiyor)
    // İkinci değer oluşturduğumuz menünün değeri
    // Üçüncü değer göstereceğimiz sayfa (varsayılan ilk sayfa olduğu için gerek yok)
    // Dördüncü değer menünün kullanılma süresi (varsayılan sınırsız)
}

//Menüyü gösterdik, şimdi menüde neler olacağını ayarlayacağız.
public MenuyeGiris_handler(pPlayer, iMenu, iItem) {
    //iItem komutu bize hangi seçeneğin seçildiğini açıklıyor. Fakat 1 den değil 0 dan başlıyor
    switch(iItem) {
        case 0: {
            client_print_color(0, 0, "BİRİNCİ SEÇENEĞE BASTIM.");

            //Menüye devam ettirmek istemediğimiz zaman önce menüyü yok etmemiz gerekiyor. Basit bir örnek.
            menu_destroy(iMenu);
            return PLUGIN_HANDLED;
        }
        case 1: {
            client_print_color(0, 0, "İKİNCİ SEÇENEĞE BASTIM");
        }
        case 2: {
            client_print_color(0, 0, "ÜÇÜNCÜ SEÇENEĞE BASTIM ADMİNİM");
        }
        //Bu zorunlu değil sadece MENU_EXIT ile menüden çıktığını algılatabiliyorsunuz.
        case MENU_EXIT: {
            client_print_color(0, 0, "MENÜDEN ÇIKTIM");
        }
    }

    //En son olarak menüyü yok edip bu fonksiyonu bitiriyoruz.
    menu_destroy(iMenu);
    return PLUGIN_HANDLED;
}
 
  • Beğen
Tepkiler: emresudo