CSPLague
[SCRIPT] Envanterdeki Silahların Şarjörlerini Doldurma - Printable Version

+- CSPLague (https://www.csplague.com)
+-- Forum: CS 1.6 Plugin (Eklenti) Bölümü (https://www.csplague.com/forumdisplay.php?fid=6)
+--- Forum: [KOD] Pawn Script (https://www.csplague.com/forumdisplay.php?fid=82)
+--- Thread: [SCRIPT] Envanterdeki Silahların Şarjörlerini Doldurma (/showthread.php?tid=7748)



[SCRIPT] Envanterdeki Silahların Şarjörlerini Doldurma - akcaliberkk - 10-06-13

Açıklama:

Vereceğim kodları, herhangi bir oyuncunun tüm silahlarının şarjörünü tamamen doldurmak için eklentinizde kısayoldan kullanabiliriniz.
Oyuncunun silahlarını tek tek "if" şartlandırıcısını defalarca kullanarak kontrol edip, uygun silahla eşleştirerek şarjör doldurmak hem performans kaybına hem de yazımın zorlaşmasına sebep olur.
Vereceğim kodlar bu iş için en etkili yöntemdir.

Kodlar:


PHP Code:
new const g_weapons[] =
{
    
CSW_P228,
    
CSW_SCOUT,
    
CSW_XM1014,
    
CSW_MAC10,
    
CSW_AUG,
    
CSW_ELITE,
    
CSW_FIVESEVEN,
    
CSW_UMP45,
    
CSW_SG550,
    
CSW_GALIL,
    
CSW_FAMAS,
    
CSW_USP,
    
CSW_GLOCK18,
    
CSW_AWP,
    
CSW_MP5NAVY,
    
CSW_M249,
    
CSW_M3,
    
CSW_M4A1,
    
CSW_TMP,
    
CSW_G3SG1,
    
CSW_DEAGLE,
    
CSW_SG552,
    
CSW_AK47,
    
CSW_P90
}

new const 
g_max_bp[] =
{
    
52,
    
90,
    
32,
    
100,
    
90,
    
120,
    
100,
    
100,
    
90,
    
90,
    
90,
    
100,
    
120,
    
30,
    
120,
    
200,
    
32,
    
90,
    
120,
    
90,
    
35,
    
90,
    
90,
    
100
}

stock refill_weapons(id) {
    new 
weapons[32],inum;
    
get_user_weapons(id,weapons,inum)
    for(new 
i;i<inum;i++) {
        for(new 
a;sizeof(g_weapons); a++) {
            if(
weapons[i] == g_weapons[a]) {
                
cs_set_user_bpammo(id,weapons,g_max_bp[a])
            }
        }
    }


İlk önce baştaki iki dizi değişkenlerini yaratalım. İlk dizideki herhangi bir silahın satır numarası, aynı silahın ikinci dizideki mermi miktarının satır numarası ile aynı.
Bu olayı anlamak başlarda zor gelebilir. Dizi değişkenlerini anlamayanlar, matematikteki diziler konusuna göz atabilirler. Yazılım, matematikten gelir Smile (fonksiyonlar, iki tabanlı sayılar, diziler vs.)

Daha sonra fonksiyonu yarattık. Fonksiyonun çalışma mantığı;

Oyuncunun tüm silahlarını listele.
Listedeki silahları tek tek başta yarattığımız g_weapons dizisindeki silahlar ile karşılaştır.
Eğer silahlar eşleşiyorsa, g_weapons dizisinde eşleşen silahın satır numarasıyla;
g_max_bp dizisindeki aynı satır numarasına sahip elemanın sayı değeri kadar şarjöre mermi koy.

Eklenti içerisinde;

refill_weapons(id)

şeklinde belirli oyuncunun şarjörünü silahın maksimum kapasitesi kadar doldurabilirsiniz.

id = Oyuncu indexi [1-32]

Bu işlemin en etkili yolu budur.
Umarım bilmeyenlere faydalı olmuştur.
[/i][/i]


Cevap: [SCRIPT] Envanterdeki Silahların Şarjörlerini Doldurma - reationEpic - 20-06-13

Sizmi yazıyorsunuz bunları ?


Cevap: [SCRIPT] Envanterdeki Silahların Şarjörlerini Doldurma - akcaliberkk - 21-06-13

Evet


Cevap: [SCRIPT] Envanterdeki Silahların Şarjörlerini Doldurma - reationEpic - 21-06-13

Bana yardımcı olabilirmisinz ?


Cevap: [SCRIPT] Envanterdeki Silahların Şarjörlerini Doldurma - akcaliberkk - 21-06-13

Amxmodx kodlama yardımı, plugin istek bölümünden yapılıyor.