haliskilic

Kullanıcı Tag Listesi

Sayfa 1/3 123 SonSon
24 sonuçtan 1 ile 10 arası
Like Tree8Likes

Konu: AmxModX Ayrıntılı Menü Dersi

  1. #1
    Nemesis* akcaliberkk - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Jun 2012
    Yer
    İstanbul
    Mesajlar
    2,026
    Bahsedildi
    104 Mesaj
    Etiketlenmiş
    9 Konu
    Tecrübe Puanı
    10

    Standart AmxModX Ayrıntılı Menü Dersi

    Bu derste amxmodx programlamanın en son çıkmış menü sistemine ait tüm özellikleri öğrenebilirsiniz.


    Tüm Menü Fonksiyonları, [ newmenus.inc ]



    menu_create(const title[], const handler[], ml=0)

    Açıklama:
    Bu fonksiyon menü yaratmak için kullanılır.

    1. Parametre:
    Menünün başlığı

    Türü "string"
    Buraya yazdığınız başlık, menü açıldığında, menünün en üstünde görünür.

    2. Parametre: Menünün işletici fonksiyonu

    Türü "string"
    Menüler genel olarak 3 fonksiyondan oluşur.

    A. Menünün Oluşturulduğu Kısım (menu_create fonksiyonunu kullandığımız kısım)
    B. Menüyü İşlettiğimiz Kısım ( Menüde bir tuşa basıldığı zaman çalışacak olan fonksiyon)
    C. Menünün geriçağrımı (callback) ( Bu kısım zorunlu değil ancak gelişmiş menülerde kullanılıyor ve bu derste de anlatılacak)

    İkinci parametreye B kısmı fonksiyonu yazıyoruz.

    3. Parametre: Bir işe yaramıyormuş. Biz sadece ilk iki parametreyi yazıcaz, üçüncü bir parametre girmenize gerek yok.

    Return: Bu fonksiyon yaratılan menünün indexine döner.

    Yani, bir değişken yaratıp bu fonksiyonu değişkene atarsak, bu değişken menümüzün indexi olacak. Ve bu menü indexi, diğer menü fonksiyonlarında menüyü ayarlamak için kullanılacak. Bu indexi diğer fonksiyonlarda menu olarak göstereceğiz.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_additem(menu, const name[], const info[]="", paccess=0, callback=-1)

    Açıklama:
    Bu fonksiyon yaratılmış bir menüye seçenek eklemek için kullanılır.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: Seçeneğin ismi

    Türü "string"
    Buraya girdiğiniz isim, menüde başlığın altında eklenme sırasına göre liste şeklinde görünür.

    3. Parametre: Seçenekle ilgili ekstra bilgi

    Türü "string"
    Buraya herhangi bir şey yazabiliriz. Buraya yazılan bilgi menüde görünmez. Bilgiyi yazarken seçenek sırasına göre numaralar yazarsak, işletici fonksiyonda, seçilen seçeneği kolayca ayırt edebiliriz. Örneklerde daha iyi anlaşılacaktır.

    4. Parametre: Seçeneğe erişim yetkisi

    Türü "integer"
    Seçeneğe sadece belirli yetkideki kullanıcıların erişebilmesini istiyorsanız bu parametreye ilgili yetkiyi yazarsınız. Örneğin ADMIN_BAN yazarsanız sadece "d" yetkisine sahip kişiler bu seçeneğe basabilir. Herkesin kullanabilmesi için 0 yazın.

    5. Parametre: Geriçağrım fonksiyonunun indexi.

    Türü "integer"
    Seçeneğe bağlamak istediğiniz geriçağrım fonksiyonunu buraya girin. Geriçağrımı anlattığım zaman daha iyi anlaşılacaktır.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_setprop(menu, prop, ...)

    Açıklama:
    Bu fonksiyon yaratılmış bir menünün özelliklerini değiştirir.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: Değiştirilecek özellik

    Türü "integer"
    Buraya girdiğiniz özelliği, üçüncü parametrede değiştirirsiniz.

    MPROP_PERPAGE: Bir sayfadaki maksimum seçenek sayısı (standart = 7) (parametre türü = integer)
    MPROP_BACKNAME: Menünün "Geri" tuşunun ismi. ( standart = Geri veya Back )
    (parametre türü = string )
    MPROP_NEXTNAME:
    Menünün "İleri" tuşunun ismi. ( standart = Ileri veya Next ) (parametre türü = string )
    MPROP_EXITNAME:
    Menünün "Çıkış" tuşunun ismi. ( standart = Cikis veya Exit) ( parametre türü = string )
    MPROP_TITLE: Menünün başlığı ( Gereksiz, zaten menu_create fonksiyonu başlığı ayarlıyor )
    ( parametre türü = string )
    MPROP_EXIT: Çıkış tuşunun işlevi ( standart = MEXIT_ALL ) ( parametre türü = integer )

    MPROP_EXIT parametreleri:

    MEXIT_ALL: Menüyü kapatır
    MEXIT_NEVER: Menüyü kapatma tuşunu kaldırır. Menü kapanmaz.

    3. Parametre: Değiştirilecek özelliğin yeni değeri

    Türü "integer/string"
    2. Parametrede belirtilen özelliğin yeni değerini buraya gireriz.

    Return: Bu fonksiyon, işlem başarılı olursa 1'e, başarısız olursa 0'a döner.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_display(id, menu,
    page=0)

    Açıklama:
    Bu fonksiyon yaratılmış bir menüyü, belirtilen oyuncuya görüntüler.

    1. Parametre:
    Oyuncu indexi

    Türü "integer"

    2. Parametre: Menü indexi

    Türü "integer"

    3. Parametre: Gösterilecek sayfa

    Türü "integer"
    0 = İlk Sayfa
    1 = 2. Sayfa
    ...

    Boş bırakılırsa page=0 olduğundan otomatik 0 olarak kabul eder.
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_destroy(menu)

    Açıklama:
    Bu fonksiyon yaratılmış bir menüyü yok eder.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_item_getinfo(
    menu, item, &access, info[], infolen, name[]="", namelen=0, &callback)

    Açıklama:
    Bu fonksiyon belirtilen seçeneğin indexinden seçeneğe ait bilgileri toplamayı sağlar.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: .Seçeneğin indexi

    Türü "integer"
    Program buraya girdiğiniz indexi kullanarak ilgili seçeneğin bilgilerini toplar.

    3. Parametre: Seçeneğin erişim yetkisi

    Türü "integer"
    Erişim yetkisi, buraya yazdığınız değişkende depolanır.

    4. Parametre: Seçeneğin ekstra bilgileri

    Türü "string"
    Seçeneğe ait ekstra bilgi, buraya yazdığınız değişkende depolanır.

    5. Parametre: 4. Parametredeki değişkenin uzunluğu

    Türü "integer"
    Örneğin: szData[6] ise buraya 5 yazılır. Veya charsmax(szData) yazabilirsiniz.

    6. Parametre: Seçeneğin ismi

    Türü "string"
    Seçeneğin ismi, buraya yazdığınız değişkende depolanır.

    7. Parametre: 6. Parametredeki değişkenin uzunluğu

    Türü "integer"

    8. Parametre: Seçeneğin geriçağrım fonksiyonu

    Türü "integer"
    Seçeneğin geriçağrım fonksiyonunun indexi, buraya yazılan değişkende depolanır.

    Return: Bu fonksiyon, işlem başarılı olursa 1'e, başarısız olursa 0'a döner.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_pages(
    menu)

    Açıklama:
    Bu fonksiyon belirtilen menünün kaç sayfadan oluştuğunu verir.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    Return: Bu fonksiyonun değeri, menünün toplam sayfa sayısına döner.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_items(
    menu)

    Açıklama:
    Bu fonksiyon belirtilen menünün kaç adet seçenekten oluştuğunu verir.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    Return: Bu fonksiyonun değeri, menünün toplam seçenek sayısına döner.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_find_id(
    menu, page, key)

    Açıklama:
    Bu fonksiyon belirtilen sayfada, belirtilen tuştaki seçeneğin indexini verir.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: Sayfa numarası

    Türü "integer"

    3. Parametre: Tuş

    Türü "integer"

    Return: Belirtilen adresteki seçeneğin indexine döner.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_item_setname(
    menu, item, const name[])

    Açıklama:
    Bu fonksiyon belirtilen seçeneğin görünen ismini değiştirir.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: .Seçeneğin indexi

    Türü "integer"

    3. Parametre: Seçeneğin yeni ismi

    Türü "string"

    Return: Bu fonksiyon, işlem başarılı olursa 1'e, başarısız olursa 0'a döner.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_item_setcmd(
    menu, item, const info[])

    Açıklama:
    Bu fonksiyon belirtilen seçeneğin ekstra bilgi değerini değiştirir.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: .Seçeneğin indexi

    Türü "integer"

    3. Parametre: Seçeneğin yeni bilgisi

    Türü "string"

    Return: Bu fonksiyon, işlem başarılı olursa 1'e, başarısız olursa 0'a döner.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_addblank(
    menu, slot=1)

    Açıklama:
    Bu fonksiyon belirtilen menüde iki seçenek arasına bir satır boşluk bırakmaya yarar.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: Boşluk bırakma metodu

    Türü "integer"
    1 = Boşluk bırakır ve seçenekleri numaralandırırken 1 numara kaydırarak numaralandırır. Örneğin:

    5. Seçenek 5
    // BOŞLUK
    7. Seçenek 6

    0 = Boşluk bırakır ve seçenekleri numaralandırırken, numara sırasını bozmaz. Örneğin:

    5. Seçenek 5
    // BOŞLUK
    6. Seçenek 6

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_addtext(
    menu, const text[], slot=1)

    Açıklama:
    Bu fonksiyon belirtilen menüde numarasız bir yazı ekler. Seçeneklerden bağımsızdır. Seçilemez.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: Görünecek yazı

    Türü "string"

    3. Parametre: Yazı yazdırma metodu
    1 = Yazı ekler ve seçenekleri numaralandırırken 1 numara kaydırarak numaralandırır. Örneğin:

    5. Seçenek 5
    Örnek Yazı
    7. Seçenek 6

    0 = Yazı ekler ve seçenekleri numaralandırırken, numara sırasını bozmaz. Örneğin:

    5. Seçenek 5
    Örnek Yazı
    6. Seçenek 6

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_cancel(
    player)

    Açıklama:
    Bu fonksiyon belirtilen oyuncuya zorla MENU_EXIT seçtirir. Menü görüntülenmeye devam eder ancak seçim yaptığında işlemez.

    1. Parametre:
    Oyuncu indexi

    Türü "integer"

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_makecallback(
    const function[])

    Açıklama:
    Bu fonksiyon bir menü geriçağrım işleticisi yaratır.

    1. Parametre:
    Fonksiyon ismi

    Türü "string"

    Return: Bu fonksiyon, yaratılan geriçağrım fonksiyonunun indexine döner.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    menu_item_setcall(
    menu, item, callback = -1)

    Açıklama:
    Bu fonksiyon belirtilen seçeneğin geriçağrım işleticisini ayarlar.

    1. Parametre:
    Menünün indexi

    Türü "integer"

    2. Parametre: Seçeneğin indexi

    Türü "integer"

    3. Parametre: Geriçağrım fonksiyonunun bağlı olduğu değişken

    Türü "integer"

    Return: Bu fonksiyon, işlem başarılı olursa 1'e, başarısız olursa 0'a döner.
    Örnekler:

    Menüler local (yerel) ve global (küresel) olmak üzere ikiye ayrılır. Local menüler; tek kullanımlık, sadece kullanılacağı an yaratılan ve hemen kullanılıp yok edilen menülerdir. Global menüler ise plugin_init veya plugin_cfg forwardında bir defa olmak üzere yaratılır, tekrar tekrar yaratılmadan defalarca kez kullanılabilir.

    Örnekleri sırayla okumanız önerilir. Bir örnekte anlatılan, sonraki örneklerde anlatılmayacaktır.

    Local Menüler

    Basit Menü


    PHP- Kodu:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <fun>

    public plugin_init() {
        
    // Menümüzün açılması için konsola komut kaydettik.
        
    register_clcmd("MenuAc","MenuFunc")
        
    // Bu gerekli değil ancak yaratılmış bir menü nasıl açılır örnek olması açısından ekledim.
    }
    // A kısmı olarak anlattığımız, menünün oluşturulma fonksiyonunu yaratıyoruz.
    public MenuFunc(id) {
        
        
    // Menümüzü yaratmak için menu_create kullanıyoruz.
        // En başta belirttiğimiz gibi, menu_create fonksiyonu, yaratılan menünün indexine döner demiştik.
        // Öyleyse bu indexi, diğer fonksiyonlarda kullanabilmek için menu olarak yarattığımız değişkende depoluyoruz.
        // Not: Fonksiyonların parametrelerini ayrı ayrı açıklamayacağım. Yukarıda tüm fonksiyonları anlattım zaten.
        
    new menu menu_create("\r Silah Menusu","MenuHandler")
        
        
    // Menümüzü yarattık. Şimdi seçeneklerimizi eklemeliyiz.
        
    menu_additem(menu,"AK47",  "",ADMIN_BAN)
        
    menu_additem(menu,"M4A1",  "",ADMIN_BAN)
        
    menu_additem(menu,"DEAGLE","",ADMIN_BAN)
        
        
    // Seçenekler de eklendi. Şimdi sıra menünün özelliklerini ayarlamakta;
        // Exit tuşuna basıldığında menümüzün kapanmasını istiyoruz. Bu durumda özelliği bu şekilde ayarlıyoruz.
        
    menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
        
    // Not: Bu ayar default olarak zaten MEXIT_ALL dır. Bu yüzden bunu tekrar yazmak gereksiz. Sadece örnek olması açısından ekledim.
        
        // Menümüzün her şeyini ayarladık. Şimdi bu menüyü, fonksiyonu çalıştıran kişiye gösteriyoruz.
        // Not: Eğer zaten ilk sayfayı göstericekseniz, menu_display(id,menu) yazmanız yeterli. Örnek olsun diye ekledim.
        
    menu_display(id,menu,0)
    }
    // Ve B kısmı olarak anlattığımız bölüm. Yani menüde bir tuşa basıldığında işleyecek olan fonksiyon. Bu kısım menüyü işletir.
    public MenuHandle(idmenuitem) {
        
    // item = seçilen seçeneğin indexi demiştik. Seçilen seçeneğin indexinden yola çıkarak oyuncuya silah vereceğiz.
        // seçenek indexleri 0 dan başlar. Yani birinci seçeneğin indexi 0 dır. İkinci seçeneğin 1, üçüncününki 2 şeklinde gider.
        
    switch(item) {
            case 
    MENU_EXIT:{
                
    // Eğer çıkış tuşuna basılmış ise, seçenek indexi MENU_EXIT olur.
                
    client_print(id,print_chat,"Cikis Tusuna Bastiniz")
            }
            case 
    0: {
                
    give_item(id,"weapon_ak47")
                
    client_print(id,print_chat,"AK47 Aldiniz")
            }
            case 
    1: {
                
    give_item(id,"weapon_m4a1")
                
    client_print(id,print_chat,"M4A1 Aldiniz")
            }
            case 
    2: {
                
    give_item(id,"weapon_deagle")
                
    client_print(id,print_chat,"DEAGLE Aldiniz")
            }
        }
        
    // Kişiye seçimine ait silahı verdik. Şimdi yarattığımız menüyü yok etme zamanı.
        
    menu_destroy(menu)
        return 
    PLUGIN_HANDLED

    Oyuncu Menüsü

    PHP- Kodu:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <hamsandwich>

    public plugin_init() {
        
    register_clcmd("amx_revivemenu","MenuFunc")
    }
    public 
    MenuFunc(id) {
        new 
    menu menu_create("\r Canlandirmak Istediginiz Oyuncuyu Secin","MenuHandle")
        
        
    // Oyunda olan oyuncuları buluyoruz.
        
    new players[32],inum;
        
    get_players(players,inum)
        
        
        
    // Birkaç değişken de döngü içinde kullanmak için
        /**
         *  Static değikenlerin, new ile yaratılanlarından farkı; her yeni değer atandığında yeninden yıkılıp yapılmamalarıdır. Basit bir örnekle: 
         
         *  New ile yaratmış olsaydık: döngü içinde tempid tekrar tekrar yaratılacaktı. 
         *  Static ile yaratırsak, döngü boyunca sadece değeri değiştirilecek.
         
         *  Kafa karıştırıcı buluyorsanız, bilmeseniz de olur. Sadece bu tür yerlerde bu şekilde kullanımının daha uygun olduğunu bilin yeterli.
        **/ 
        
    static tempidname[32], szID[6];
        
        for( new 
    inum i++ ) {
            
    // yazım kolaylığı açısından indexi değişkene bağlıyoruz.
            
    tempid players[i];
            
    // Eğer kişi canlı ise bu indexi atlıyoruz. Böylece zaten canlı olan kişiler menüde görünmeyecek.
            
    if(is_user_alive(tempid)) continue;
            
            
    // Seçenek ismi = kişinin ismi olucak. Bu yüzden ismi bulduruyoruz.
            // Seçenek bilgisi = kişinin indexi olucak. Böylece menü işleticide direk indexden kişiyi canlandırıcaz.
            // Fakat seçenek bilgisi başta belirttiğimiz gibi string olmak zorunda. Bu yüzden önce stringe çeviriyoruz.
            
    get_user_nametempidname31)
            
    num_to_strtempidszID5)
            
            
    // Seçeneği ekliyoruz
            
    menu_additemmenunameszIDADMIN_SLAY )
        }
        
        
    menu_display(idmenu)
    }
    public 
    MenuHandle(idmenuitem) {
        
    // Eğer çıkışa basmışsa menüyü yok et.
        
    if(item == MENU_EXIT) {
            
    menu_destroy(menu)
            return 
    PLUGIN_HANDLED
        
    }
        
        
    // Basılan seçenek hakkında seçenek indexinden, seçeneğin diğer bilgilerini buldurmak için menu_item_getinfo kullandığımızı en başta göstermiştik
        // Şimdi bu fonksiyon için gereken değişkenleri yaratıyoruz.
        
    new szID[6], name[32];
        new 
    accesscallback;
        
    menu_item_getinfomenuitemaccessszID5name31callback)
        
        
    // Seçeneğin indexinden, seçeneğin bilgisini ( info[] ) bulduk. Bu bilgiyi kişinin indexi olarak kaydetmiştik
        // Şimdi stringi fonksiyonlarda kullanmak için integer'a çeviriyoruz.
        
        
    new Uid str_to_num(szID);
        
        
    // Eğer kişi oyundaysa ve hala ölüyse kişiyi canlandır.
        
    if(is_user_connected(Uid) && !is_user_alive(Uid)) {
            
    ExecuteHamB(Ham_CS_RoundRespawn,Uid)
        }
        
        
    menu_destroy(menu)
        return 
    PLUGIN_HANDLED
        

    Oylama Menüsü

    PHP- Kodu:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "New Plug-In"
    #define VERSION "1.0"
    #define AUTHOR "author"

    new oylar[2]; // Oy sayılarını depolayacak olan değişken
    new szSecenekler[2][32]; // Oylanan seceneklerin isimlerini depolayacak olan değişken
    new bool:oylama_var// Oylama olup olmadığını gösteren değişken

    public plugin_init() {
        
    register_concmd("amx_vote","cmdVote",ADMIN_VOTE,"<1.secenek> <2.secenek>")
    }
    public 
    cmdVote(id,level,cid) {
        if(!
    cmd_access(id,level,cid,3)) return PLUGIN_HANDLED
        
        
    // Eğer oylama varsa, çağrıyı durdur.
        
    if(oylama_var) {
            
    console_print(id,"Zaten Bir Oylama Var")
            return 
    PLUGIN_HANDLED
        
    }
        
    // Tüm değişkenleri sıfırla. Önceki oylamadan kalanlar sıfırlanmalı.
        
    oylar[0] = 0;
        
    oylar[1] = 0;
        
    szSecenekler[0][0] = 0;
        
    szSecenekler[1][0] = 0;
        
    // Oylama başladığı için bu değişken true
        
    oylama_var true;
        
        
    // Konsolda girilen komutun parametrelerini oku.
        
    new arg1[32],arg2[32];
        
    read_argv(1,arg1,31)
        
    read_argv(2,arg2,31)
        
    // Seçenekleri değişkende depola
        
    copy(szSecenekler[0],31,arg1)
        
    copy(szSecenekler[1],31,arg2)
        
        
    // Oylama menüsünü yarat
        
    new menu menu_create("\r Oylama:\y Birini Secin","MenuHandle")
        
    // Oylanacak seçenekleri ekle
        
    menu_additem(menuarg1"")
        
    menu_additem(menuarg2"")
        
    // Çıkış tuşunu kaldıralım. Böylece herkes oy kullanmak zorunda olsun.
        
    menu_setprop(menu,MPROP_EXIT,MEXIT_NEVER)
        
        
    // Herkese menüyü gösterelim
        
    new players[32],inum;
        
    get_players(players,inum)
        for(new 
    ii<inumi++) {
            
    menu_display(players[i],menu)
        }
        
    // 15 saniye sonra oylama bitsin ve sonuç açıklansın
        
    set_task(15.0,"OylamaBitir",menu)
        return 
    PLUGIN_HANDLED
    }
    public 
    MenuHandle(idmenuitem) {
        
    // Eğer oylama bitmiş ise, girilen seçenekler geçersiz kabul edilsin.
        
    if(!oylama_var) return PLUGIN_HANDLED
        
    // Oylanan seçeneğin indexine +1 oy.
        
    oylar[item]++;
        
    // Not: Burada sakın menu_destroy kullanmayın. Yoksa ilk oy kullanandan sonra herkesde menü kapanır.
        
    return PLUGIN_HANDLED
    }
    public 
    OylamaBitir(menu) {
        
    // Oylamayı kapatalım
        
    oylama_var false;
        
    // Karşılaştırmalar
        
    if(oylar[0] > oylar[1]) {
            
    client_print(0,print_chat,"[Oylama Bitti] Kazanan Secenek: %s",szSecenekler[0])
        }
        else if( 
    oylar[0] < oylar[1]) {
            
    client_print(0,print_chat,"[Oylama Bitti] Kazanan Secenek: %s",szSecenekler[1])
        }
        else {
            
    client_print(0,print_chat,"[Oylama Bitti] Iki Secenek Esit Oy Aldi")
        }
        
    // Ve menüyü yok edelim.
        
    menu_destroy(menu)
        return 
    PLUGIN_HANDLED
        

    Alt Menü

    PHP- Kodu:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "New Plug-In"
    #define VERSION "1.0"
    #define AUTHOR "author"


    public plugin_init() {
        
    register_plugin(PLUGINVERSIONAUTHOR)
        
        
    register_clcmd("MenuAc","AnaMenu")
    }
    public 
    AnaMenu(id) {
        new 
    menu menu_create("\r Ana Menu","AnaMenuHandle")
        
        
    menu_additem(menu"Secenek 1","")
        
    menu_additem(menu"Alt Menu","")
        
        
    menu_display(id,menu)
        return 
    PLUGIN_HANDLED
    }
    public 
    AnaMenuHandle(idmenuitem) {
        switch(
    item) {
            case 
    0: {
                
    // Secenek 1'e basıldı.
            
    }
            case 
    1: {
                
    // Alt Menü Fonksiyonunu çalıştıralım
                
    AltMenu(id);
            }
        }
        
    menu_destroy(menu)
        return 
    PLUGIN_HANDLED
    }
    public 
    AltMenu(id) {
        new 
    menu menu_create("\r Alt Menu","AltMenuHandle")
        
        
    menu_additem(menu"Alt Secenek 1","")
        
    menu_additem(menu"Alt Secenek 2","")
        
        
    // Çıkış tuşunun ismini "Geri" yapalım. Böylece bu tuşa basıldığında, kişi ana menüye geri döneceğini anlasın.
        
    menu_setprop(menu,MPROP_EXITNAME,"Geri")
        
    menu_display(id,menu)
    }
    public 
    AltMenuHandle(idmenuitem) {
        switch(
    item) {
            case 
    0: {
                
    // Alt Secenek 1 e basıldı
            
    }
            case 
    1: {
                
    // Alt Secenek 2 ye basıldı
            
    }
            case 
    MENU_EXIT: {
                
    // Çıkışa basıldı. Yani "Geri" yazan tuşa basıldı.
                // Öyleyse ana menüye geri dönelim
                
    AnaMenu(id)
            }
        }
        
    menu_destroy(menu)
        return 
    PLUGIN_HANDLED

    Birden Çok Menüye Bir İşletici Bağlamak

    PHP- Kodu:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "New Plug-In"
    #define VERSION "1.0"
    #define AUTHOR "author"


    public plugin_init() {
        
    register_clcmd("MenuAc","AnaMenu")
    }
    public 
    AnaMenu(id) {
        
        new 
    menu menu_create("\r Ana Menu","GlobalHandle")
        
        
    // Menü işleticisinde basılan tuş ana menünün mü alt menünün mü ayırt etmek için seçenek bilgisi kısmına
        // Burada "a" diğer menüde "b" yazalım.
        
    menu_additem(menu"Secenek 1","a")
        
    menu_additem(menu"Secenek 2","a")
        
    menu_additem(menu"Alt Menu","a")
        
        
    menu_display(id,menu)
    }
    public 
    AltMenu(id) {
        
    // Menü işleticisi, Ana menü işleticisiyle aynı.
        
    new menu menu_create("\r Alt Menu","GlobalHandle")
        
        
    menu_additem(menu"Secenek 1","b")
        
    menu_additem(menu"Secenek 2","b")
        
        
    menu_display(id,menu)
    }
    public 
    GlobalHandle(idmenuitem) {
        if(
    item == MENU_EXIT) {
            
    menu_destroy(menu)
            return 
    PLUGIN_HANDLED
        
    }
        
    // Hangi menünün tuşuna basıldığını öğrenmek için, seçenek bilgisi almamız gerek.
        
    new data[6],name[32];
        new 
    accesscallback;
        
    menu_item_getinfo(menu,item,access,data,5,name,31,callback)
        
        
    // Seçenek bilgisinin ilk karakterine göre switch alalım.
        
    switch(data[0]) {
            case 
    'a': {
                
    // Ana Menü seçeneğidir.
                
    switch(item) {
                    case 
    0:{
                        
    // Seçenek 1 e basıldı
                    
    }
                    case 
    1:{
                        
    // Seçenek 2 ye basıldı
                    
    }
                    case 
    2:{
                        
    // Alt Menu ye basıldı
                        
    AltMenu(id)
                    }
                }
            }
            case 
    'b': {
                
    // Alt Menü seçeneğidir.
                
    switch(item) {
                    case 
    0:{
                        
    // Seçenek 1 e basıldı
                    
    }
                    case 
    1:{
                        
    // Seçenek 2 ye basıldı
                    
    }
                }
                
    // İlgili tuşa ait fonksiyonlar işletildikten sonra AnaMenu ye geri dönelim.
                
    AnaMenu(id)
            }
        }
        
    menu_destroy(menu)
        return 
    PLUGIN_HANDLED


    Geriçağrım ( Callback )

    Öncelikle biraz geriçağrımın ne olduğunu anlatayım. Geriçağrım, menüdeki seçenekleri belirli kurallar çerçevesinde devre dışı bırakmak veya aktif etmek için kullanılır. Örneğin devre dışı bırakılmış bir seçenek, menüde sönük renkte (yarı saydam beyaz) görünür ve hiçbir şekilde basılamaz.

    PHP- Kodu:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <hamsandwich>

    new gMenuCallBack// Geriçağrım fonksiyonunu tutacak değişken.
    public plugin_init() {
        
        
    register_clcmd("amx_revivemenu","MenuFunc")
        
        
    // Geriçağrım fonksiyonu yarattık. Daha sonra istediğimiz seçeneğe bu geriçağrımı göstericez
        // Böylece o seçeneğin aktifliği bu fonksiyonun sonucuna göre belirlenicek.
        
    gMenuCallBack menu_makecallback("MenuCallBack")
        
    }
    public 
    MenuFunc(id) {
        
    // Normal oyuncu menüsü yaratıyoruz.
        
    new menu menu_create("\r Oyuncu Secin","MenuHandle")
        
        new 
    players[32],inum;
        
    get_players(players,inum)
        
        static 
    tempidname[32], szID[6];
        for(new 
    ii<inum i++) {
            
    tempid players[i];
            
    get_user_name(tempid,name,31)
            
    num_to_str(tempid,szID,5)
            
    // Seçeneği geriçağrım fonksiyonuna bağladık. Bundan sonra geriçağrım ne derse, seçenek onu yapıcak.
            
    menu_additem(menunameszIDADMIN_SLAYgMenuCallBack)
        }
        
    menu_display(id,menu)
        return 
    PLUGIN_HANDLED
    }
    public 
    MenuHandle(idmenuitem) {
        
    // İşletici kısmında bir değişiklik yok.
        
    if(item == MENU_EXIT) {
            
    menu_destroy(menu)
            return 
    PLUGIN_HANDLED
        
    }
        
        new 
    szID[6], name[32];
        new 
    accesscallback;
        
    menu_item_getinfo(menuitemaccessszID5name31callback)
        
        new 
    Uid str_to_num(szID);
        
        if(
    is_user_connected(Uid) && !is_user_alive(Uid)) {
            
    ExecuteHamB(Ham_CS_RoundRespawn,Uid)
        }
        
    menu_destroy(menu)
        return 
    PLUGIN_HANDLED
    }
    public 
    MenuCallBack(idmenuitem) {
        
    // Basılan seçeneğin özelliklerini toplayalım
        
    new szID[6], name[32];
        new 
    accesscallback;
        
    menu_item_getinfo(menuitemaccessszID5name31callback)
        
        new 
    Uid str_to_num(szID);
        
        
    // Eğer seçenekteki kişi canlı ise, seçenek deaktif olsun. Yani basılamasın ve rengi soluk görünsün.
        
    if(is_user_alive(Uid)) return ITEM_DISABLED
        
    // Eğer canlı değilse seçeneğe dokunma. 
        
        // Not: Eğer ITEM_ENABLED dersek, kişinin erişim yetkisi olmasa bile seçeneği aktif ettiğimizden dolayı herkes basabilir.
        // Bu yüzden seçeneğe dokunma diyoruz :) 
        
    return ITEM_IGNORE

    Global Menü

    PHP- Kodu:
    #include <amxmodx>
    #include <amxmisc>

    new gMenu// Global menümüzün indexini bu değişkende depolayacağız
    public plugin_init() {
        
    register_clcmd("MenuAc","MenuShow")
        
    // Menüyü pluginler yüklenirken yaratalım
        
    gMenu menu_create("\r Global Menu","MenuHandle")
        
        
    menu_additem(gMenu"Secenek 1","")
        
    menu_additem(gMenu"Secenek 2","")
        
    menu_additem(gMenu"Secenek 3","")
    }
    public 
    MenuHandle(idmenuitem) {
        switch(
    item) {
            case 
    0: {
                
    // Secenek 1 e basıldı
            
    }
            case 
    1: {
                
    // Secenek 2 ye basıldı
            
    }
            case 
    2: {
                
    // Secenek 3 e basıldı
            
    }
        }
        return 
    PLUGIN_HANDLED
    }
    public 
    MenuShow(id) {
        
    // İsteyene menüyü gösterelim
        
    menu_display(idgMenu)
    }
    // NOT: Eğer herhangi bir yerde menu_destroy kullanırsak, kimse bir daha bu menüyü açamaz. Menü silinir. 
    Ekstra Notlar:

    --> Menüyü renklendirirken kullanabileceğiniz renk kodları:

    \r - Kırmızı
    \y - Sarı
    \w - Beyaz
    \d - Deaktif rengi / yarı saydam beyaz

    --> Yazıları sağa dayalı yapmak için:

    \R

    --> Bir menü, eğer hiç seçenek eklenmemiş ise kendini göstermeyecektir.

    --> Global menüler, local menüler gibi tekrar tekrar yaratıp, yok etme gerektirmez. Bu yüzden performansı daha yüksektir. Daha az CPU tüketir.

    --> 10 Seçenek birden göstermek ve Geri, İleri, Çıkış tuşlarını kaldırmak için:

    menu_setprop(menu, MPROP_PERPAGE, 0)
    Konu akcaliberkk tarafından (28-06-13 Saat 23:19 ) değiştirilmiştir.

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


    PHP- Kodu:
    new const STEAM_ID[] = "STEAM_0:1:105764111"
    new const STEAM_NICK[] = "Nemesis*"
    new const ILETISIM[] = "destek_596 - Skype" 

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.



    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


    Ücretli eklenti yapılır. ( Jail ile ilgili hiçbir eklenti yapmıyorum. )
    Plugin yazmak isteyenlere yardımcı olabilirim.
    Skype adresimden ulaşabilirsiniz:
    destek_596


  2. #2
    JacKSparrowS - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    May 2013
    Yer
    İstanbul
    Mesajlar
    496
    Bahsedildi
    0 Mesaj
    Etiketlenmiş
    0 Konu
    Tecrübe Puanı
    4

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    Ellerine Sağlık Kolun Kopmuyormu yaw
    CFG İle İlgili Sorularınızı Sorabilirsiniz

  3. #3
    Nemesis* akcaliberkk - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Jun 2012
    Yer
    İstanbul
    Mesajlar
    2,026
    Bahsedildi
    104 Mesaj
    Etiketlenmiş
    9 Konu
    Tecrübe Puanı
    10

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    2 Günde yaptım

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


    PHP- Kodu:
    new const STEAM_ID[] = "STEAM_0:1:105764111"
    new const STEAM_NICK[] = "Nemesis*"
    new const ILETISIM[] = "destek_596 - Skype" 

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.



    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


    Ücretli eklenti yapılır. ( Jail ile ilgili hiçbir eklenti yapmıyorum. )
    Plugin yazmak isteyenlere yardımcı olabilirim.
    Skype adresimden ulaşabilirsiniz:
    destek_596


  4. #4
    JacKSparrowS - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    May 2013
    Yer
    İstanbul
    Mesajlar
    496
    Bahsedildi
    0 Mesaj
    Etiketlenmiş
    0 Konu
    Tecrübe Puanı
    4

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    Plugin Kodlamayı Hiçmi Hiç Beceremem Bende
    CFG İle İlgili Sorularınızı Sorabilirsiniz

  5. #5
    Furkan Dize - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Jan 2012
    Yer
    İstanbul
    Mesajlar
    537
    Bahsedildi
    11 Mesaj
    Etiketlenmiş
    0 Konu
    Tecrübe Puanı
    6

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    Öncelikle teşekkür ediyorum, emeğine sağlık. Senide yordum tarzı cümleler kurmayacağım çünkü anladığım kadarıyla pawnla uğraşmak senin de hoşuna gidiyor ) Teşekkürler tekrardan
    akcaliberkk likes this.
    [ OSMANLI IMP # F-TIPI JAILBREAK ]
    [ İMAN AHLAK ADALET ]

    [ Pit10 ]

    -facebook-
    [
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
    ]
    [
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
    ]

    -diğer sosyal ağlarımız-
    [
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
    ]
    [
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
    ]
    [
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
    ]
    [
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
    ]



  6. #6
    Nemesis* akcaliberkk - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Jun 2012
    Yer
    İstanbul
    Mesajlar
    2,026
    Bahsedildi
    104 Mesaj
    Etiketlenmiş
    9 Konu
    Tecrübe Puanı
    10

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    Rica ederim
    JacKSparrowS likes this.

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


    PHP- Kodu:
    new const STEAM_ID[] = "STEAM_0:1:105764111"
    new const STEAM_NICK[] = "Nemesis*"
    new const ILETISIM[] = "destek_596 - Skype" 

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.



    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


    Ücretli eklenti yapılır. ( Jail ile ilgili hiçbir eklenti yapmıyorum. )
    Plugin yazmak isteyenlere yardımcı olabilirim.
    Skype adresimden ulaşabilirsiniz:
    destek_596


  7. #7
    smt287 - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Dec 2011
    Yer
    Bursa
    Mesajlar
    1,373
    Bahsedildi
    1 Mesaj
    Etiketlenmiş
    0 Konu
    Tecrübe Puanı
    7

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    Gerçekten güzel bence sabitlenmesi gerek
    Skype Adresim | clone2877 |

    |
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
    |

    |

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
    |


  8. #8
    JacKSparrowS - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    May 2013
    Yer
    İstanbul
    Mesajlar
    496
    Bahsedildi
    0 Mesaj
    Etiketlenmiş
    0 Konu
    Tecrübe Puanı
    4

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    Yetkim Olsaydı Derdimki Konu Kendimce Sabite Alınmıştır
    CFG İle İlgili Sorularınızı Sorabilirsiniz

  9. #9
    Pikachu - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Mar 2013
    Yer
    Istanbul
    Mesajlar
    331
    Bahsedildi
    7 Mesaj
    Etiketlenmiş
    0 Konu
    Tecrübe Puanı
    4

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    Pluginle ilgili okuduğum en bilgilendirici konuydu, özellikle hakkında çoğu şeyi bilmediğim menü konusu da açıklığa kavuştu benim için, çok teşekkür ederim
    uhcakiP
    Özel Plugin Kodlanır!

    Steam_ID = STEAM_0:0:54912140
    Steam_Nick = Ragnar Lothbrok

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

  10. #10
    kApO - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Feb 2013
    Yer
    İstanbul
    Mesajlar
    269
    Bahsedildi
    10 Mesaj
    Etiketlenmiş
    3 Konu
    Tecrübe Puanı
    5

    Standart Cevap: AmxModX Ayrıntılı Menü Dersi

    Eline emeğine sağlık kardeşim.
    Anlatamıyorsan yaz, Yazamıyorsan anlat. Her ikisini de beceremiyorsan sadece sus.

    PHP- Kodu:
      chat_color(id,SKYPE,"  kApO.1905 " )    
         
    chat_color(id,HOTMAIL,"  
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
     " 
    )      
               
    chat_color(id,STEAM," herge1 "  
    Hedef büyük , hayırlısıyla.
    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Sayfa 1/3 123 SonSon

Benzer Konular

  1. [Ayrıntılı Sınıf Rmf]
    By carbon3180 in forum VHE RMF Paylaşımı
    Cevaplar: 101
    Son Mesaj: 25-01-17, 20:53
  2. Amxmodx İnstaller 1.8.1
    By NiCoMeDiA in forum [Linux|Win] Cs 1.6 Server Kurulum - Ayarları
    Cevaplar: 186
    Son Mesaj: 22-01-17, 21:58

Bu Konudaki Etiketler

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok
  •  

Content Relevant URLs by vBSEO 3.6.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94