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

LSR

Üye
Yönetici
Administrator
16 Tem 2016
166
19
18
59 | Tekirdağ
Oyuncu Menüsü yapılırken basit menüde önemsemediğimiz menüdeki seçenek bilgisini kullanacağız. Buna geçmeden önce basit menüdeki her şeyi
anladığınızdan emin olun. Direkt Menü oluşmasından başlayacağım

JavaScript:
#include <amxmodx>

public OyuncuMenusu(pPlayer) {
    //Öncelikle menü ve menü değeri oluşturmalıyız.
    new iMenu = menu_create("Oyuncu Menüsü", "OyuncuMenusu_handler");

    //Bütün oyuncuları algılatmak için bir döngüye ihtiyacımız var. Bu döngüyü for ile yapacağız.
    // İlk seçeneğe 1 yazıyoruz çünkü oyuncu değeri 1den başlıyor, 32ye kadar devam ediyor.
    // İkinci seçeneğe oyuncu değerinin 32 den küçük veya eşit olup olmadığını algılatıyoruz.
    // Üçüncü seçeneğe algılatmamızın sonuna gelene kadar oyuncu değerini artırıyoruz.
    for(new id = 1; id <= MaxClients; id++) {
        // Oyundaysa --> is_user_connected
         // Oyundaysa ve ölüyse --> is_user_connected && !is_user_alive
         // Oyundaysa ve yaşıyorsa --> is_user_alive
         if(is_user_connected(id)) {
            //fmt komutunun amacı bir yazıya değer vermemizi sağlıyor.
            //Örneğin bir oyuncunun ismini almak için %n kullanıyoruz. formatex komutunun benzeridir.
            //Burada ilk fmtde oyuncunun adını, ikinci fmtde oyuncunun userid sini algılatıyoruz.
            menu_additem(iMenu, fmt("%n", id), fmt("%i", id));
            // menu_additem
            // Üçüncü değer bu seçeneğin bilgisi (oyuncunun useridsi)
        }
    }

    //Son olarak menüyü gösterelim.
    menu_display(pPlayer, iMenu);
}

public OyuncuMenusu_handler(pPlayer, iMenu, iItem) {
     //Öncelikle iItem ile oyuncunun menüden çıkıp çıkmadığını algılatıp, menüden çıktıysa fonksiyonu bitirmeliyiz.
     if(iItem == MENU_EXIT) {
         menu_destroy(iMenu);
         return PLUGIN_HANDLED;
     }

     //Burada menünün değerini çekmek için birkaç değer oluşturacağız.
     new szData[6], iKey;
     //Burada ise bilgiyi çekeceğiz.
     menu_item_getinfo(iMenu, iItem, _, szData, charsmax(szData));

     //Verdiğimiz userid bilgisini burada iKey değerine aktarıyoruz. Tabii ki değer sayı olacağı için str_to_num kullanacağız.
     //Her oyuncu sunucuya girerken (1 ile 32) arasında bir sayı alır. Bu sayıya göre işlem yapılır.
     //iKey değerini yukarda algılattık. Yukarıdakini silip burada da algılatabilirsiniz. (Aynı işlem)
     iKey = str_to_num(szData);

     //Oyuncunun kontrolünü burada da yapacağız.
     // Oyundaysa --> is_user_connected
     // Oyundaysa ve ölüyse --> is_user_connected && !is_user_alive
     // Oyundaysa ve yaşıyorsa --> is_user_alive
     if(is_user_connected(id)) {
         //Burada oyuncuya işlem yapılır
     }

     //Ve menü yok edilir.
     menu_destroy(iMenu);
     return PLUGIN_HANDLED;
}
 
  • Beğen
Tepkiler: emresudo