Pawno Hataları ve Çözümleri

Pawno Hataları ve Çözümleri

Pawnoda kodlama yaparken hata yaparsanız compile ekranında yaptığınız hataları uyarı veya hata şeklinde size bildirir. Bunların anlamlarını ve çözümlerini yazının devamında öğrenebilirsiniz.

#01 - Undefined Symbol "Tanıtılan Değer"

Bahsedilen değerin tanıtılmamış olduğunu söylüyor. Modun başına new Tanıtılan Değer; şeklinde tanımını yaparsanız çözülecektir.

#02 - Cannot read from file: "Eksik Include İsmi"

Include'ın okunamadığını söylüyor. Bunu Pawno > Includes kısmından kontrol edebilirsiniz.

#03 - error 030: compound statement not closed at the end of file

Açtığınız parantezin kapatılmadığını söylüyor. Örneğin aşağıdaki kodu inceleyelim.

public OnPlayerConnect(playerid)
{
return 1;


Yukarıda return değerinin altında } yok, yani parantez kapatılmamış. Hemen altına } koyarak düzeltebilirsiniz. Size hatanın sonunda hatanın başladığı satırı da verecektir. Burada detaylı bir inceleme yapmalısınız.

#04 - error 010: invalid function or declaration

Geçersiz fonksiyon veya işlem olduğunu söylüyor. Verilen satırdaki kodu düzenleyerek bu sorunu gidebilirsiniz.

#05 - symbol already defined: "Tanıtılan Değer"

Tanıtılan değerin birden fazla kez tanıtıldığını söylüyor. Birisini silerek bu sorunu giderebilirsiniz.

#06 - error 036: empty statement

Zaten var olan noktalı virgülün yanına bir tane daha koyarsnaız karşınıza çıkar. Örnek olarak aşağıdaki kodu inceleyelim.

public OnPlayerConnect(playerid)
{

SendClientMessage(playerid, -1, "Mesaj");;
return 1;

}

Yukarıda görüldüğü üzere iki tane noktalı virgül kullanılmış. Bir tanesini silerek bu hatayı giderebilirsiniz.

 #07 - error 054: unmatched closing brace ("}") 

Açılmamış parantezi kapattığınızda karşınıza çıkar. Örnek olarak aşağıdaki kodu inceleyelim.

public OnPlayerConnect(playerid)
{

if(IsPlayerAdmin(playerid))
printf("SA:MP Destek blogunun kurucusu giris yapti.");
}
return 1;

}

Yukarıda görüldüğü üzere açılmamış olan parantezi kapattık. Sonuç olarak bu hata ile karşılaştık. Kodu aşağıdaki şekilde düzenleyerek hatayı giderebiliriz.

public OnPlayerConnect(playerid)
{

if(IsPlayerAdmin(playerid))
{ // Parantezi açtık.
printf("SA:MP Destek blogunun kurucusu giris yapti.");
}
return 1;

}

#08 - error 001: expected token: ";", but found "}"

Belirtilen satırda kodun sonuna noktalı virgül koymadığımız zaman karşımıza çıkar. Örnek olarak aşağıdaki kodu inceleyelim.

public OnPlayerSpawn(playerid)
{

SendClientMessage(playerid, -1, "Mesaj") // Noktalı virgül ile kapatmadık.
return 1;
}

Yukarıda SendClientMessage fonksiyonunu noktalı virgül koymayıp sonlandırmadığımız için bu hata ile karşılaştık. Sonuna noktalı virgül koyup fonksiyonu sonlandırarak bu sorunu giderebilirsiniz.

#09 -  error 001: expected token: "#endif", but found "-end of file-"

#if ile açılan değerin #endif ile sonlandırılmadığını söylüyor. Örneğin #if defined FILTERSCRIPT ile bir if değeri açtık ve #endif ile sonlandırmadık. Burada ya ifi silerek bu hatayı gidereceğiz ya da #endif ile sonlandıracağız.

#10 -  error 025: function heading differs from prototype

Fonksiyonun yanlış veya eksik yazıldığını söylüyor. Örneğin bir publici forward ile tanıtırken playerid değerini yazmayı unuttuk, işte o zaman karşımıza bu hata çıkar. Daha detaylı anlatmak açısından aşağıdaki kodu inceleyelim.

forward Aezakmi();
public Aezakmi(playerid)
{
SetPlayerWantedLevel(playerid, 0);
return 1;
}


Yukarıdaki public ile bir playerid değeri tanıttık. Fakat forward da playerid değerini almadık. Bu yüzden eksik tanıtmış olduk. Sonuç olarak forwarda publicde olduğu gibi playerid değeri ekleyerek bu sorunu giderebiliriz.

forward Aezakmi(playerid);
public Aezakmi(playerid)
{
SetPlayerWantedLevel(playerid, 0);
return 1;
}


#11 - Pawno çalışmayı durdurdu

Bu hatanın bir diğer ismi baba hatadır. Yok, halk içinde bilinmiyor. Ben koydum adını. Hataların babası oluyor bu.

Bu hata ile karşılaşmamızın sebebi pawnonun 26'dan fazla hata vermesi. Sebepleri ise şunlar olabilir:

  • Kapatmayı unuttuğunuz bir parantez olabilir.
  • Çok fazla sağ tarafa gitmiş olabilirsiniz.
Bu hatayı giderebilmek için detaylı bir inceleme yapmanız veya yol yakınken, eğer pawnoyu kapatmamışsanız, kodlar hala sıcak ise ctrl+z yardımıyla yaptığınız şeyleri geri alabilirsiniz. Böylece eklediğiniz son şeyleri hatırlamıyorsanız bütün değişiklikleri geri alıp her yaptığınız değişiklikte compile ederek hatanın neyden kaynaklandığını tespit edebilirsiniz.

Her ekleme yaptıktan sonra compile yaparsanız bu hatayla karşılaşma olasılığınız da düşer.

#12 - Failed set data for "" hatası

Bu hata pawnoyu açarken karşımıza çıkıyor. Bunu düzeltmek için pawno klasörüne girip settings.ini dosyasını açıyoruz ve FileAccos değerini 0 olarak değiştiriyoruz. Yani, FileAccos=0 olacak.

#13 - Error 029: invalid expression, assumed zero

Değişken veya fonksiyonun tam olarak yazılmadığını söylüyor. Mesela bir değişken tanıtıyoruz ve bir parantez açıyoruz, fakat onu kapatmıyoruz ve compile ediyoruz. Bunun sonucunda karşımıza bu hata çıkıyor. Örnekler ile anlatmak gerekirse:

new Hesoyam[MAX_PLAYERS;

Yukarıda açtığımız parantezi kapatmadık, bu yüzden de hatayla karşılaştık. Hemen aşağıdaki şekilde düzelterek paratezi kapatalım.

new Hesoyam[MAX_PLAYERS];

#14 - warning 201: redefinition of constant/macro

Bu diğerlerinden farklı oluyor. Bu bir hata değil, bu bir uyarıdır. Birden fazla kez aynı şey için define kullandığınızı söylüyor. Birisini silerek bu uyarıyı yok edebilirsiniz.


Yorum Gönder

0 Yorumlar