GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Bugün Ne Öğrendim - Öğrendiğiniz Yeni Bilgileri Paylaşın

Başlatan squarepants, 22 Eylül 2021, 16:46:41

« önceki - sonraki »

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

squarepants

GİRİŞ

    Herkese merhabalar, bugün farklı forumlarda görmüş olduğun bir konsepti PAWN > PAWN kodlama adlı kategori sayfasına taşıma girişiminde bulunmak istiyorum. Bu konseptin asıl amacı, belirli bir tarihe bağlı olarak o gün ve o an PAWN Kodlama hakkında edindiğiniz yeni bilgileri konu altında paylaşarak zayıf veya ileri düzey PAWN bilgisi bulunan forum üyelerimizin kendini geliştirmesini sağlamaktır. Bu sayede elde edilen bilgi alışverişi sonucunda herkes kendini geliştirebilme imkanına sahip olacak.

KURALLAR

  • Ne öğrendiğinizi açıklayın, sadece öğrendiğiniz bilgiyi ileti olarak göndermeyin.
  • Göndermiş olduğunuz iletilerin herhangi bir resim, alıntı veya bağlantı adresi içermediğine emin olun.
  • Konudan bağımsız herhangi bir ileti göndermekten kaçının.
  • Paylaşımını yaptığınız bilginin bir başkası tarafından önceden paylaşılmadığına emin olmaya çalışın.

SONUÇ


    Bu konsepti başlatmamın asıl sebebi, PAWN hakkındaki yardım ve öğrenme taktikleri ile ilgili olarak tarafımca birçok kişiden almış olduğum taleplerdir. Bu konu başlığı adı altında bu ve bu tip soruları veya sorunları minimum düzeye indirmek amaçlanmıştır. Bu nedenle bu konseptin birçok forum üyelerimize yardımda bulunacağını umuyorum.

    Herkese iyi forumlar diliyorum.


squarepants

İlk olarak ben başlıyorum. Bugün değişkenlerde stock yapısını kullanarak symbol is never used adlı uyarıdan kaçınılabildiğini öğrendim.

new OyuncuVeri = -1; //symbol is never used
new stock OyuncuVeri = -1; // uyari yok
Son düzenlenme: 22 Eylül 2021, 16:52:03 ThePosition

Holmes

bu konuyu ilk defa görüyorum acikcasi begendim böylelerini görmek :)


Rodeiun

Yararlı, şu aralar uğraşmıyorum ancak çok şey öğrenebileceğimiz/paylaşabileceğimiz bir konu. @Hwang konu sabitlenmeli.


Kripteks

Daha önceden öğrenmiştim, fakat yazayım. Bazı fonksiyonlardaki string değerden önce ! işaretini kullandığınızda byte bazında amx dosyası boyutu küçülür. Sunucu optimizasyonuyla bir alakası yok fakat dosya boyutuna önem verenler için işe yarayabilir.

Eğer string değerin içinde %s %d %i gibi işaretler varsa o string ifadenin başında ! kullanmamalısınız.Aksi halde oyunda bozuk karakterler gözükecektir.

Örnek Kullanım


PAWN Kodu: Seç

// Örnek Kullanım - 1
ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, !"Başlık", !"Bu bir dialog", !"Seç", !"Kapat");

// Örnek Kullanım - 2
new str[256];
format(str, sizeof str, "%s deneme", isim);
ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, str, !"Bu bir dialog", !"Seç", !"Kapat"); // str kısmının başında !str ifadesi kullanılsaydı hatalı olacaktı.

// Örnek Kullanım - 3
SetPVarInt(playerid, !"SayiDegeri", 5);
GetPVarInt(playerid, !"SayiDegeri");

// Örnek Kullanım - 4
SendClientMessage(playerid, -1, !"test");



lazlow


squarepants

Bugün #pragma dynamic yönergesini kullanarak derleyicinin ihtiyaç duyduğu bellek miktarını ayarlamayı öğrendim. Örneğin derleyici daha fazla belleğe ihtiyaç duyarsa, aşağıdaki mesajı verir:
Header size:           5032 bytes
Code size:            60924 bytes
Data size:           763444 bytes
Stack/heap size:      16384 bytes; estimated max. usage=10122 cells (40488 bytes)
Total requirements:  845784 bytes
Burada yığın boyutunun  16384 byte olduğunu ancak kullanılan bellek miktarının 10122 hücre yani her hücre 4 byte ise 10122 * 4 = 40488 byte olduğu görülebilir. Bu nedenle 10122 hücresinden daha büyük bir tam sayıya ihtiyacımız var. Bu durumda aşağıdaki örneği uygulayabilirsiniz:
#pragma dynamic  10240 // 10122 hücresinden büyük bir tamsayı değeri


squarepants

Bugün #pragma semicolon adlı önişlemci yönergesini kullanarak fonksiyonların sonunda ' ; ' kullanılmasının şart olmadığını, #pragma deprecated adlı önişlemci yönergesini kullanarak, kullanımda olan herhangi bir fonksiyon veya değişkenin kullanımdan kaldırılmasının mümkün olduğunu (Kütüphane veya API geliştiricileri için kullanışlıdır), #pragma ctrlchar adlı önişlemci yönergesini kullanarak kaçış karakteri ' \ ' yerine manuel olarak bir karakter atanabildiğini, #pragma amxlimit adlı önişlemci yönergesini kullanarak derlenmiş komut dosyasının barındırabileceği byte cinsinden maksimum boyutun ayarlanabileceğini öğrendim. Örnek Kullanımlar :
#pragma semicolon 0

main()
{
    print("Merhaba GTAMulti") // ; işleci kullanilmadi - hata yok.
}

new GTAMulti = 2;
 
#pragma deprecated GTAMulti
 
main()
{
    printf("%d", GTAMulti ); // HATA - GTAMulti adli degisken artik kullanimda degil.
}

#pragma ctrlchar '$'
main()
{
   
    print("Merhaba $t$r GTAMulti"); // ' \ ' işleci yerine ' $ ' işleci kullanimda.
}

#pragma amxlimit 1000 // byte cinsinden belirtilen maksimum pozitif tamsayı değeri


TAKTAK26

Alıntı yapılan: ThePosition - 24 Eylül 2021, 16:19:12
Bugün #pragma semicolon adlı önişlemci yönergesini kullanarak fonksiyonların sonunda ' ; ' kullanılmasının şart olmadığını, #pragma deprecated adlı önişlemci yönergesini kullanarak, kullanımda olan herhangi bir fonksiyon veya değişkenin kullanımdan kaldırılmasının mümkün olduğunu (Kütüphane veya API geliştiricileri için kullanışlıdır), #pragma ctrlchar adlı önişlemci yönergesini kullanarak kaçış karakteri ' \ ' yerine manuel olarak bir karakter atanabildiğini, #pragma amxlimit adlı önişlemci yönergesini kullanarak derlenmiş komut dosyasının barındırabileceği byte cinsinden maksimum boyutun ayarlanabileceğini öğrendim. Örnek Kullanımlar :
#pragma semicolon 0

main()
{
    print("Merhaba GTAMulti") // ; işleci kullanilmadi - hata yok.
}

new GTAMulti = 2;
 
#pragma deprecated GTAMulti
 
main()
{
    printf("%d", GTAMulti ); // HATA - GTAMulti adli degisken artik kullanimda degil.
}

#pragma ctrlchar '$'
main()
{
   
    print("Merhaba $t$r GTAMulti"); // ' \ ' işleci yerine ' $ ' işleci kullanimda.
}

#pragma amxlimit 1000 // byte cinsinden belirtilen maksimum pozitif tamsayı değeri
:melek: :melek: :melek:

Kanalize!