⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🌐 www.furiazm.com ⏰ 7/24 aktif Yönetim 💬 Discord.gg/furiaclancs 💰Ücretsiz Adminlik/Vip alımı 🌟 Türkiye’nin yeni en gelişmiş Zombie Plague sunucusu
Sponsor Görsel 2
SponsorSponsor

Değişken'e Özellik Verme

RE: Değişken'e Özellik verme
Global ve geçici olarak değişkenler vardır. Global değişken herhangi bir fonksiyonun içine yazılmaz. Harita değişene kadar verileri içinde tutar. Fonksiyon içine yazılan değişkenler ise, kod bloğu bitince silinir. Bu değişkenlerin yanlarına gelen [33] gibi sayılar aslında değişkenin kapasitesini(size) gösterir. 1-32 değerleri oyunculara aittir. 0 değeri Console'dur. İstersen o değişkene 50 kapasite ver bir şey değişmez. Fakat optimizasyon açısından bellekte fazla yer kullanılmaması için bu değeri iyi kullanmamız lazım. Yani oyuncular maksimum 32 değeri alıyor. 33 yazdığında maksimum 32, minimum 0 değerini girebilirsin. MAX_CLIENTS+1 yazılmasının nedeni de budur. Sunucunun maksimum client(oyuncu sayısı) sayısını alır, üstüne 1 ekler. Bunu yazmanın nedeni de aslında 32 kişi kapasitesi olmayan sunucular içindir. Yani bellekte gereksiz yer kaplamıyor. Değişkenlere özellik veremezsin. Değişkenler veri tutar.

@"suriyelikene"

Kod:
RegisterHookChain(RG_CBasePlayer_Spawn, "IsSpawn", .post = true);   //public plugin_init kismina bunu yazacagiz

public IsSpawn(id) {
    if(!is_user_alive(id)) return;    //Oyuncu yasamiyorsa durdurduk, aksi takdirde bug olur.
        marketsinir[id]=false;    //Degerimizi false eşitledik.
}

post eğer true ise if(!is_user_alive(id)) sorgusuna gerek yoktur. Post "sonra" demektir. Yani oyuncu doğduktan sonra gerçekleşen kısım. Oyuncu doğduğunda yaşıyor mu yaşamıyor mu diye sorgu yapmanın anlamı yok yani. 

@Enes Fındık 

Fonksiyonlar ile özellik verme oluşturabilirsin. 
Kod:
public can_ver(const id,const can)
{
    set_entvar(id,var_health,Float:get_entvar(id,var_health)+float(can));
}

can_ver(id,50) kullanımı ile oyuncuya 50 can verebilirsin.
Discord: Leeyé#3998
RE: Değişken'e Özellik verme
Arkadaş yeni başladığı için o tarz anlatmak istemedim. Stock oluşturup kafasını da karıştırmak istemedim. Direk reapi kütüphanesi ile de kafasını karıştırmak istemedim fakat ön bilgi olarak reapi ile kullanımını oraya koydum. İlerleyen zamanlarda o şekil anlatacaktım. Yine de anlatım için teşekkürler, @Leeyé
RE: Değişken'e Özellik verme
@Leeyé Hocam diyelim'ki gorev1 de 10 ct öldür jb veya bb parası kazan diye bir şey var onu nasıl yapabiliriz.?

new
gorev1[33]

bunu case kısmına felan nasıl yazmam lazım
RE: Değişken'e Özellik verme
(05-06-2021, 22:44)Enes Fındık Adlı Kullanıcıdan Alıntı: @Leeyé Hocam diyelim'ki gorev1 de 10 ct öldür jb veya bb parası kazan diye bir şey var onu nasıl yapabiliriz.?

new
gorev1[33]

bunu case kısmına felan nasıl yazmam lazım
Menunun tam kodlamasını bilmediğim için kesin bir şey söyleyemem fakat tahmin yürütebilirim. 10 CT öldür 10 TL kazan aslında menude yazan yazıdır. Değişkenle alakası yoktur. Değişkenin orada kullanım amacı muhtemelen "oyuncu görevini tamamlamış mı, tamamlamamış mı ?" sorgusudur. Mesela menulerde gördüysen, eğer oyuncu görevini tamamlamışsa yanında [TAMAMLANDI] yazar. Kullanım amacı budur.
Discord: Leeyé#3998
RE: Değişken'e Özellik verme
@Leeyé hocam ben yetkili menü yaptım kendi kodladığım bi menünün içine adam o yetkili menüyü kullandığı zaman

YetkiliMenu[Kullanıldı] Bunu yazmasını istiyorum nasıl yapabiliriz.
RE: Değişken'e Özellik verme
(05-06-2021, 22:37)suriyelikene Adlı Kullanıcıdan Alıntı: Arkadaş yeni başladığı için o tarz anlatmak istemedim. Stock oluşturup kafasını da karıştırmak istemedim. Direk reapi kütüphanesi ile de kafasını karıştırmak istemedim fakat ön bilgi olarak reapi ile kullanımını oraya koydum. İlerleyen zamanlarda o şekil anlatacaktım. Yine de anlatım için teşekkürler, @Leeyé

Yanlış kullanım yüzünden çok gereksiz kodlar ortaya çıkar. Detayına girince zaten anlaması lazım. Doğru zamanda, doğru şekilde kullanabilmesi için detaylı anlatman lazım.
Discord: Leeyé#3998
RE: Değişken'e Özellik verme
@Leeyé Hocam şu menüye yapıp atarmısın ben sizin yaptınıza bakarak mantığı anlamaya çalışıcam.
.smadenemeyetki.sma(Dosya Boyutu: 10,66 KB | İndirme Sayısı: 1)
RE: Değişken'e Özellik verme
(05-06-2021, 22:49)Enes Fındık Adlı Kullanıcıdan Alıntı: @Leeyé hocam ben yetkili menü yaptım kendi kodladığım bi menünün içine adam o yetkili menüyü kullandığı zaman

YetkiliMenu[Kullanıldı] Bunu yazmasını istiyorum nasıl yapabiliriz.

Bir değişken oluştur. İsmine istediğin şeyi yaz. Ben bu isim üzerinden anlatacağım. MenuSinir[33]

Bu menuyu oluşturduğun kod bloğuna git. İlk satıra

Kod:
if(MenuSinir[id])
{
       return PLUGIN_HANDLED
}

Kodunu ekle.
Bu değişken nasıl true yapılır diye sorarsan, case'deki işlem başarıyıla tamamlanırsa bu değişkeni true yap. MenuSinir[id] = true
Yani can_ver(id,50) kodunu yazdıktan sonra bu kodu ekle. Can verdikten sonra bu değişken true olur. Yani menuyu kullanmış olur.
Discord: Leeyé#3998
RE: Değişken'e Özellik verme
Kod:
new bool:bonus[MAX_CLIENTS+1];

public plugin_init() {
    register_plugin("Eklenti Ismi", "1.0", "bilalgecer47");
    
    RegisterHookChain(RG_CBasePlayer_Spawn, "@CBasePlayer_Spawn_Post", .post = true);
}
@CBasePlayer_Spawn_Post(const id){
    bonus[id] = false;
}
@bonusmenu(const id){
    if(bonus[id]){
        client_print_color(id,id,"^3[^4%s^3] ^3Bonus Menuyu Zaten Kullandin.",tag);
        @anamenu(id);
    }
    else {
        new menu = menu_create(fmt("\r%s \w- \yBonus Menu", tag), "@bonusmenu_devam");
        
        menu_additem(menu, fmt("\r%s \w- \yUser Bonusu \d[2 TL] ", tag), "1");
        menu_additem(menu, fmt("\r%s \w- \ySlot Bonusu \d[5 TL] ", tag), "2");
        menu_additem(menu, fmt("\r%s \w- \yAdmin Bonusu \d[7 TL] ", tag), "3");
        menu_additem(menu, fmt("\r%s \w- \yYonetici Bonusu \d[10 TL] ", tag), "4");
        
        menu_setprop(menu, MPROP_EXITNAME, fmt("\r%s \w- \yCikis", tag));
        menu_setprop(menu,MPROP_NUMBER_COLOR,"\d");
        menu_display(id, menu);
    }
}
@bonusmenu_devam(const id, const menu, const item) {
    if(item == MENU_EXIT || !IsPlayerCanUse(id, true, true)) {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new iData[6], iKey;
    menu_item_getinfo(menu, item, _, iData, charsmax(iData));
    iKey = str_to_num(iData);
    switch(iKey) {
        case 1: {
            para[id]+=2;
            rg_send_audio(id , g_szSounds[SI]);
        }
        case 2: {
            if(get_user_flags(id)&slotbonus){
                para[id]+=5;
                rg_send_audio(id , g_szSounds[SI]);
            }
            else{
                rg_send_audio(id , g_szSounds[NO]);
                @bonusmenu(id);
            }
        }
        case 3: {
            if(get_user_flags(id)&adminbonus){
                para[id]+=7;
                rg_send_audio(id , g_szSounds[SI]);
            }
            else{
                rg_send_audio(id , g_szSounds[NO]);
                @bonusmenu(id);
            }
        }
        case 4: {
            if(get_user_flags(id)&yoneticibonus){
                para[id]+=10;
                rg_send_audio(id , g_szSounds[SI]);
            }
            else{
                rg_send_audio(id , g_szSounds[NO]);
                @bonusmenu(id);
            }
        }
    }
    bonus[id]=true;
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

Forumdaki eklentileri incele.Sorunun cevabını örnekleriyle bulabilirsin.
reCs:Go Rank Menu (%50)
RE: Değişken'e Özellik verme
Kurucu menu kısmını yaptım. Diğerlerine ellemedim.
.smadenemeyetki.sma(Dosya Boyutu: 10,29 KB | İndirme Sayısı: 4)
Discord: Leeyé#3998
Son Düzenleme: 05-06-2021, 23:02, Düzenleyen: Leeyé

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Konuyu Okuyanlar: 1 Ziyaretçi