GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Yardım Talepleri => Konuyu başlatan: doqu10 - 07 Mayıs 2025, 21:55:02

Başlık: fonksiyonların farklları
Gönderen: doqu10 - 07 Mayıs 2025, 21:55:02
Arkadaşlar pawnda function, stock function, public function arasındaki farklarda timerda vs kullanırken public kullanmamız gerekiyor onu biliyorum. Ama bunun dışında farkları nedir ve hangisini kullanmak daha mantıklıdır?
Başlık: Ynt: fonksiyonların farklları
Gönderen: Backup - 07 Mayıs 2025, 23:18:08
public dediğimiz fonksiyonlar derlenir ve compfiler bunun varlığından haberdardır ancak stock fonksiyonlar çağırılmadığı sürece derlenmez bunun en basit testini bir stock fonksiyon yazıp içinde şu kodu yazıp deneyebilirsin

PAWN Kodu: Seç
stock Test(){
SendClientMesage(0, -1, "Hatalı kullanım");
}

Eğer herhangi bir yerde Test(); değimi ile çağırırsan pawn compfile olmaz ve hata verir.

Özetle public fonksiyonlar compfile anında derlenir ve rame yazılır. Stock fonksiyonlar ise kullanıldığı an rame yazılır kullanılmazsa herhangi bir yer kaplamaz. İsterseniz sadece binlerce stocklardan oluşturan boyutu 1Gb den fazla bir .pwn oluştur, stockları hiçbir yerde çağırmazsan ve bu pwn yi derlersen 0kb civarında bir .amx dosyan olur :) Nur topu gibi :)




Başlık: Ynt: fonksiyonların farklları
Gönderen: doqu10 - 08 Mayıs 2025, 00:18:23
Alıntı yapılan: Backup - 07 Mayıs 2025, 23:18:08
public dediğimiz fonksiyonlar derlenir ve compfiler bunun varlığından haberdardır ancak stock fonksiyonlar çağırılmadığı sürece derlenmez bunun en basit testini bir stock fonksiyon yazıp içinde şu kodu yazıp deneyebilirsin

PAWN Kodu: Seç
stock Test(){
SendClientMesage(0, -1, "Hatalı kullanım");
}

Eğer herhangi bir yerde Test(); değimi ile çağırırsan pawn compfile olmaz ve hata verir.

Özetle public fonksiyonlar compfile anında derlenir ve rame yazılır. Stock fonksiyonlar ise kullanıldığı an rame yazılır kullanılmazsa herhangi bir yer kaplamaz. İsterseniz sadece binlerce stocklardan oluşturan boyutu 1Gb den fazla bir .pwn oluştur, stockları hiçbir yerde çağırmazsan ve bu pwn yi derlersen 0kb civarında bir .amx dosyan olur :) Nur topu gibi :)





:D yani timer içinde vs kullanmayacaksam stock olarak kullanmam daha mı mantıklı olur?
Başlık: Ynt: fonksiyonların farklları
Gönderen: inmz - 08 Mayıs 2025, 00:46:33
Pawn dilinde public ile tanımlanan fonksiyonlar betiğin dışından (sunucudan veya zamanlayıcılardan) çağrılabilen giriş noktalarıdır. bu fonksiyonlar her zaman derlenir ve değer döndürmelidir. öte yandan stock anahtarıyla tanımlanan fonksiyonlar yalnızca kullanıldıklarında derlemeye dahil edilir, kullanılmayan stock fonksiyonlar derleyici tarafından atılabildiği için bellekten tasarruf sağlar.

PAWN Kodu: Seç
public OnGameModeInit()
{
    print("bir seyler");
}

forward anahtar kelimesi henüz tanımlanmamış bir fonksiyonun imzasını derleyiciye bildirir. bu, fonksiyonun gövdesinin farklı bir betikte olabileceği veya geri çağrı (callback) olarak tanımlanabileceği durumlarda kullanılır. forward bildirimi yalnızca prototip sağlar; fonksiyonun gerçek uygulaması genellikle public anahtar sözcüğü ile tanımlanan gövdede yer almalıdır.

PAWN Kodu: Seç
forward OnPlayerPoop(playerid);
public OnPlayerPoop(playerid)
{
    SendClientMessage(playerid, -1, "u pooped!");
}

public veya stock olmadan bildirilen fonksiyonlar, Pawn dilinde betik içinde global olarak tanımlanan normal fonksiyonlardır. bu fonksiyonlar normal bir şekilde çağrılabilir ancak forward bildirimi gerekmez. zamanlayıcılarda ve uzak çağrılarda kullanılamazlar; yani sadece tanımlandıkları betik içinde dahili işlev görürler.

PAWN Kodu: Seç
PrintWelcomeMessage(playerid)
{
    SendClientMessage(playerid, -1, "hg knk");
}
Başlık: Ynt: fonksiyonların farklları
Gönderen: doqu10 - 08 Mayıs 2025, 02:39:11
Alıntı yapılan: inmz - 08 Mayıs 2025, 00:46:33
Pawn dilinde public ile tanımlanan fonksiyonlar betiğin dışından (sunucudan veya zamanlayıcılardan) çağrılabilen giriş noktalarıdır. bu fonksiyonlar her zaman derlenir ve değer döndürmelidir. öte yandan stock anahtarıyla tanımlanan fonksiyonlar yalnızca kullanıldıklarında derlemeye dahil edilir, kullanılmayan stock fonksiyonlar derleyici tarafından atılabildiği için bellekten tasarruf sağlar.

PAWN Kodu: Seç
public OnGameModeInit()
{
    print("bir seyler");
}

forward anahtar kelimesi henüz tanımlanmamış bir fonksiyonun imzasını derleyiciye bildirir. bu, fonksiyonun gövdesinin farklı bir betikte olabileceği veya geri çağrı (callback) olarak tanımlanabileceği durumlarda kullanılır. forward bildirimi yalnızca prototip sağlar; fonksiyonun gerçek uygulaması genellikle public anahtar sözcüğü ile tanımlanan gövdede yer almalıdır.

PAWN Kodu: Seç
forward OnPlayerPoop(playerid);
public OnPlayerPoop(playerid)
{
    SendClientMessage(playerid, -1, "u pooped!");
}

public veya stock olmadan bildirilen fonksiyonlar, Pawn dilinde betik içinde global olarak tanımlanan normal fonksiyonlardır. bu fonksiyonlar normal bir şekilde çağrılabilir ancak forward bildirimi gerekmez. zamanlayıcılarda ve uzak çağrılarda kullanılamazlar; yani sadece tanımlandıkları betik içinde dahili işlev görürler.

PAWN Kodu: Seç
PrintWelcomeMessage(playerid)
{
    SendClientMessage(playerid, -1, "hg knk");
}
Teşekkürler güzel bir açıklama olmuş
Başlık: Ynt: fonksiyonların farklları
Gönderen: Backup - 08 Mayıs 2025, 07:39:43
Alıntı yapılan: doqu10 - 08 Mayıs 2025, 00:18:23
Alıntı yapılan: Backup - 07 Mayıs 2025, 23:18:08
public dediğimiz fonksiyonlar derlenir ve compfiler bunun varlığından haberdardır ancak stock fonksiyonlar çağırılmadığı sürece derlenmez bunun en basit testini bir stock fonksiyon yazıp içinde şu kodu yazıp deneyebilirsin

PAWN Kodu: Seç
stock Test(){
SendClientMesage(0, -1, "Hatalı kullanım");
}

Eğer herhangi bir yerde Test(); değimi ile çağırırsan pawn compfile olmaz ve hata verir.

Özetle public fonksiyonlar compfile anında derlenir ve rame yazılır. Stock fonksiyonlar ise kullanıldığı an rame yazılır kullanılmazsa herhangi bir yer kaplamaz. İsterseniz sadece binlerce stocklardan oluşturan boyutu 1Gb den fazla bir .pwn oluştur, stockları hiçbir yerde çağırmazsan ve bu pwn yi derlersen 0kb civarında bir .amx dosyan olur :) Nur topu gibi :)





:D yani timer içinde vs kullanmayacaksam stock olarak kullanmam daha mı mantıklı olur?

Yazdığın algoritmaya göre değişir.
Başlık: Ynt: fonksiyonların farklları
Gönderen: doqu10 - 08 Mayıs 2025, 12:41:42
Alıntı yapılan: Backup - 08 Mayıs 2025, 07:39:43
Alıntı yapılan: doqu10 - 08 Mayıs 2025, 00:18:23
Alıntı yapılan: Backup - 07 Mayıs 2025, 23:18:08
public dediğimiz fonksiyonlar derlenir ve compfiler bunun varlığından haberdardır ancak stock fonksiyonlar çağırılmadığı sürece derlenmez bunun en basit testini bir stock fonksiyon yazıp içinde şu kodu yazıp deneyebilirsin

PAWN Kodu: Seç
stock Test(){
SendClientMesage(0, -1, "Hatalı kullanım");
}

Eğer herhangi bir yerde Test(); değimi ile çağırırsan pawn compfile olmaz ve hata verir.

Özetle public fonksiyonlar compfile anında derlenir ve rame yazılır. Stock fonksiyonlar ise kullanıldığı an rame yazılır kullanılmazsa herhangi bir yer kaplamaz. İsterseniz sadece binlerce stocklardan oluşturan boyutu 1Gb den fazla bir .pwn oluştur, stockları hiçbir yerde çağırmazsan ve bu pwn yi derlersen 0kb civarında bir .amx dosyan olur :) Nur topu gibi :)





:D yani timer içinde vs kullanmayacaksam stock olarak kullanmam daha mı mantıklı olur?

Yazdığın algoritmaya göre değişir.
Teşekkürler