Bu program eklentiyi daha rahat ve doğru kodlayabilmemizi, düzenleyebilmemizi ve amxx e çevirmemizi sağlar. Bunları not belgesinde açarak da yapabilirsiniz. Siteden de amxx e çevirebilirsiniz. Ama bu programda amxx e çevirirken eğer eklentide hata var ise hatayı gösterme özelliği vardır. Böylelikle hataları daha kolay düzeltebilirsiniz.
Sma Dosyası Nasıl Amxx Dosyasına Çevirebilir :
Kurduğunuz programı açınız. Üstte bulunan Tools a tıklıyoruz ve gelen seçeneklerden Settings e tıklıyoruz. Önümüze programın ayarları geliyor. Solda bulunan seçeneklerden Compile Settings e tıklıyoruz. En üstteki boşluğun sağındaki noktalara basıyoruz (...) Daha sonra indirmiş olduğunuz klasöre girip compiler klasörünün içindeki amxx.exe yi seçiyoruz ve OK diyerek kayıt ediyoruz. Daha sonra eklenti açık değilse program ile açıyoruz. Sol üstte bulunan yeşil üçgene basarak eklentiyi çeviriyoruz. Eklentide hata çıkarsa, hatalı satırı gösteriyor. Eğer eklentide hata yok ise, otomatik sma nın olduğu yere amxx dosyasını gönderiyor.
Eklentinin derlendiğini anlamak için aşağıda Done. yazısını görmemiz gerekir.
Reapi Kodlayabilir Miyim :
Reapi kütüphaneleri eklendiği için reapi kodlayabilirsiniz. Eksik kütüphane hatası alırsanız compiler/include
içine atabilirsiniz.
Programdaki 4 Kolaylık Nedir :
Yukarıda gördüğünüz resim bir önceki versiyona aittir. Buna ek olarak bir adet daha seçenek eklenmiştir.
1) Renkli Yazi (stock) :
Hala birçok kişi ColorChat veya renksiz client_print kullanmakta. Gereksiz bir şekilde yeni messageler oluşturarak mesaj göndermek yerine 1.8.3
versiyonun bize verdiği komutu kullanmak daha iyi olacağı için ekledim. !g !t !n komutları ile mesajlarınızı renklendirebilirsiniz.
!g Yeşil !t Takım Rengi (CT de mavi - T de kırmızı - Specte gri) !n sarı demektir.
Kullanım :
Kod:
client_printc(id, "!tKirmizi - Mavi !gYesil !nSari !tRengi !gKullaniyorum!n.")
Genelde ctmenü ve jbmenu lerde sorun çıkartıyor. Gömülü birini göm dediğin zaman yerin altına gömülüyor ve bugta kalıyor.
Bu komutu kullanarak gömülü olan kişileri ve gömülü olmayan kişileri algılayabilirsiniz. Gömülü olan kişilerde bu stock true, gömülü olmayanlarda false olacaktır. Bu komutu bir yerlerde sıkışan kişiler içinde kullanabilirsiniz. Buna tıkladığınızda 2 kere aynı komut çıkacaktır. Biri reapi ile biri fakemeta ile yapılmıştır. Eklentide hangisini kullanıyorsanız onu kullanabilirsiniz.
Kullanım :
Kod:
public soyle(id)
{
if(Stuck(id))
{
client_printc(id, "!n[!tCSDuragi.com!n] !gSen Gomulusun yada bugta kalmissin.")
}
else
{
client_printc(id, "!n[!tCSDuragi.com!n] !gSen Gomulu ve bugta degilsin.")
}
}
İsmindende belli olduğu gibi size bir boş menü hazırladım. Eğer eklenti yazarlığına yeni başladıysanız veya bir menüyü yazmaya üşeniyorsanız kullanabilirsiniz.
7 Seçenekli sorunsuz bir boş menü.
Kod:
public bosmenu(id)
{
new menu = menu_create("Menu Ismi", "bosmenu_handler");
menu_additem(menu, "Menu Secenek 1", "1");
menu_additem(menu, "Menu Secenek 2", "2");
menu_additem(menu, "Menu Secenek 3", "3");
menu_additem(menu, "Menu Secenek 4", "4");
menu_additem(menu, "Menu Secenek 5", "5");
menu_additem(menu, "Menu Secenek 6", "6");
menu_additem(menu, "Menu Secenek 7", "7");
menu_setprop(menu, MPROP_EXITNAME, "Cikis");
menu_display(id, menu);
}
public bosmenu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], menu_access, menu_callback;
menu_item_getinfo(menu, item, menu_access, data, charsmax(data), _, _, menu _callback);
new key = str_to_num(data);
switch(key)
{
case 1: {
//Menu secenek 1 i secince olacaklar;
}
case 2: {
//Menu secenek 2 i secince olacaklar;
}
case 3: {
//Menu secenek 3 u secince olacaklar;
}
case 4: {
//Menu secenek 4 u secince olacaklar;
}
case 5: {
//Menu secenek 5 i secince olacaklar;
}
case 6: {
//Menu secenek 6 yi secince olacaklar;
}
case 7: {
//Menu secenek 7 yi secince olacaklar;
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Dosya okuma işleminde birçok kişi hâlâ read_file komutu kullanıyor. Bu komut Amx Mod X geliştiricileri tarafından desteklenmiyor.
Bu yüzden size yardım sağlaması için fopen komutlarıyla dosya okuma ekledim. Olayı kavradıktan sonra size çok basit geleceğinden eminim.
Kod:
//Dosyadaki dizeler bu sayiyi gecerse hata verir eklenti calismaz o yuzden
//Kendinize gore deger giriniz.
#define MAX_OKUNACAKLAR 50
new icindekilerinismi[MAX_OKUNACAKLAR];
new icindekilerinsayisi;
public dosya_oku()
{
new komutdosyasi[250];
get_localinfo("amxx_configsdir", komutdosyasi, charsmax(komutdosyasi));
format(komutdosyasi, charsmax(komutdosyasi), "%s/%s", komutdosyasi, dosya_adi);
new file = fopen(komutdosyasi, "rt");
if(file)
{
while(!feof(file))
{
fgets(file, data, charsmax(data));
trim(data);
if(equal(data, " ")) //Dosyadaki gereksiz bosluk satirlarini siler.
{
replace_all(data, charsmax(data), " ","");
}
if(data[0] == ';' || !data[0]) // Dosyadaki bos ve pasiflestirilmis satirlari bosverir.
{
continue;
}
icindekilerinsayisi++; //icindekilerin sayisini alir
icindekilerinismi[icindekilerinsayisi] = data; // icindeki sayilari alacaksaniz str_to_num(data) olarak degistiriniz.
}
fclose(file);
}
else
{
set_fail_state("Couldn't read from a file"); //Dosyadan okunamadi hatasi
//Bu sorunu sunucuda gorurseniz bilin ki dosya yoktur. Dosyayi ekleyin sorun duzelir.
}
}
Warning hataları ve çözümleri :
Kod:
... .sma(31): warning 217: loose indentation
31. rakamdaki uyumsuzluğu düzelttim.
Kod:
... .sma(31): warning 204: symbol is assigned a value that is never used: PurposeLess
new PurposeLess yazan yeri bulup PurposeLess i kaldırdım. Eklentideki tüm PurposeLess leri temizledim sorun çözüldü.
Kod:
... .sma(31): warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected
bu hata ile karşılaşırsınız. Çözümü çok basittir. public client_disconnect(id) olan yeri buluyoruz ve
disconnect olan yeri disconnected olarak değiştiriyoruz. Sorun çözülmüştür.
Kod:
Ve warningleri çok olduğu için yazamadığım "dhudmessage"
içinde bulunmaktadır. Yani fazladan bu include u tanıtmanıza hiçbir gerek yoktur. Tanıttığınız an hata alırsınız.
En basit çözümü eklentideki #include <dhudmessage> yazısını kaldırmaktır.
Çok warning hatası bulunmakta hepsini yazamayacağım fakat sorunun olduğu yeri çevirmeye çalışırsanız sorunun çözümünü bulabilirsiniz.
Ayrıca hatada no longer exists in AMXX. Do not use. böyle bir yazı var ise anlamı bu kod eskidir.
İngilizcesi iyi olan anlıyor zaten yazıda Amxx de uzun zamandır kullanılmıyor kullanmayın diyor. Yeni komutu arayın ve onu kullanın.
-----------------------------------------------
Program Tema Sahibi :
Fatih ~ EjderYa
Amx Studio İndirme Yeri :
-----------------------------------------------