--------------------------------------------------------------------------------
Useful HowTo's:
script Name script Type Author
DCMD (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. Define DracoBlue (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
Create Properties (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. Gamemode The_Don (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
DJson (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. Define DracoBlue (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
Türkçe Ev Alma Sistemi :
Alıntı sahibi: U3r_Myr4c3 üzerinde 10 Ekim 2008 ; 14:25:56
Arkadaşlar LostWarrior modunda da kullandığım ev alma sistemini sizlere veriyorum.
Mod Sandra tarafından yapılmış olup Türkçe çevirisi bana aittir.
_____________________________________________________________________________
Yüklemek :
"filterscripts" klasörü içindeki properties.amx ve properties.pwn dosyalarını Samp klasöründeki filterscripts klasörüne atınız.
"pawno / include" klasörü içindeki dosyaları Samp klasöründeki pawno/include klasörüne atınız.
"scriptfiles" klasörü içindeki klasörü Samp klasöründeki scriptfiles klasörüne atınız.
Server.cfg'yi açıp filterscripts satırına properties yazın yani şöyle olsun :
Kod:
filterscripts actions properties
_____________________________________________________________________________
Komutlar :
/evkayit [sifre] : Ev alıp satmak için bir hesap almanız gerekir.Bu komut ile hesap alabilirsiniz.
/evgiris [sifre] : Ev hesabınıza giriş yapmanız için gereken komut.
/evyardim : Ev alma sistemiyle ilgili bilgileri bu komut ile öğrenebilirsiniz.
/satinal veya /al : Üzerinde bulunduğunuz ev sembolünün yanındaki evi satın almanızı sağlar.
/evisat veya /sat : Eğer üzerinde bulunduğunuz ev sembolünün yanındaki ev size aitse o evi satmanızı sağlar.
/evlerim veya /konutlarim : Sahip olduğunuz evleri bu komut ile görebilirsiniz.
/butunevlerisat : [NOT: Bu Komut Sadece Adminler İçindir] Bütün evlerin satılmasını sağlar.
Yeni ev eklemek :
Evlerin bilgileri scriptfiles klasöründe PropertySystem klasöründe bulunan PropertyInfo.txt dosyasında saklanır.
Her bir satır :
Kod:
Evinİsmi, Xkoordinatı, Ykoordinatı, Zkoordinatı, Fiyatı, Kazancı, Sahibi, Sahiplik (1 bu eve birinin sahip olduğunu 0 ise bu evin sahibinin olmadığını belirtir), Satın Alınma Süresi (satın alındıktan sonra satın alan kişinin bu eve sahip olma süresi)
Evinİsmi : İsminden de anlayacağınız gibi evin ismi.
Xkoordinatı , Ykoordinatı , Zkoordinatı : Ev sembolünün koordinatı.
Fiyatı : Evin fiyatı.
Kazancı : Evin sahibine belli sürelerde ne kadar para gideceği.
Sahibi : Buraya ev satın alınınca satın alanın ismi otomatik olarak yazılır.
Sahiplik : Bu evin sahip olup olunmadığı otomatik olarak yazılır.1 olursa haritada sembol kırmızı ; 0 olursa haritada sembol yeşil olarak gözükür.
Satın Alınma Süresi : Evin sahibinin ne kadar o eve sahip olacağını belirten süredir.
________________________________________________________________________________
İndirme Linki :
Dosya Boyutu : 20 kb
Upload Tarihi : 10 Ekim 2008 15.22
İçindeki Dosyalar : "properties.amx , properties.pwn , dutils.inc , dini.inc , a_samp.inc , PropertyInfo.txt , PlayerAccounts.txt"
İndirmek İçin Tıklayınız.. (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. )
Modun Orjinali İçin : Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. )
23.bölüm "IsPlayerInArea" kodu :
"IsPlayerInArea" kodu , if kodu ile birlikte kullanılır.
Belirtilen istemin veya verinin belli bir alandayken yapılması şartını sağlamak için kullanılır.
Kulanımı şu şekildedir :
Öncelikle modun herhangi bir bölümüne şu kodu koyun :
Kod:
forward IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy);
public IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}
Şimdi oyunda , belirttiğimiz alanın sağ üst ve sol alt kısımlarının koordinatlarını , /save komutu ile alıyoruz.
Koordinatlarımız şu şekilde "savedpositions.txt" belgesine kaydedilecektir :
Kod:
AddPlayerClass(skinid,X,Y,Z,silah1,silah 1inmermisi,silah2,silah 2inmermisi,silah3,silah 3inmermisi);
Bize buradaki X ve Y koordinatları gerekiyor.
Şimdi örneğin oyuncu belli bir alandayken Interior'unun değişmesini istiyoruz.
Kodumuz şu şekilde olacaktır :
Kod:
if(IsPlayerInArea(playerid,sol alt kısmın X'i,sol alt kısmın Y'si,sağ üst kısmın X'i,sağ üst kısmın Y'si))
{
SetPlayerInterior(playerid,10);
}
Eğer bu iş size karışık geliyorsa ve İngilizceniz yeterli ise SaMp Forumu'ndan "GTAIV" kullanıcı adına sahip üyenin yaptığı "Area Generator" programını kullanabilirsiniz.
İndirme Bilgileri :
Dosya Boyutu : 56 kilobyte
Yüklenme Tarihi : 3.1.2009 / 19:45
İndirme Adresi Durumu : Çalışıyor
İndirme Adresi : " Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. "
Programda da adım adım neler yapmanız gerektiğini İngilizce olarak anlatıldığından , anlatım yapmaya gerek duymuyorum.
Eğer talep olursa programın da anlatımını yapabilirim.
24.bölüm TextDraw Eklemek :
TextDraw , oyunun ekranında değişik yazı stilleriyle belirli bölgelerde bulunan yazılardır.
TextDraw ile ilgili kodlar şunlardır :
* TextDrawDestroy: Belirtilen TextDraw'ın ortadan kalkmasını sağlar.
* TextDrawTextSize: TextDraw'daki yazıların büyüklüğünü ayarlamamızı sağlar.
* TextDrawAlignment: TextDraw'ın ekranın sağında mı , solunda mı yoksa ortasında mı bulunacağının ayarlanmasını sağlar.
0 veya 1 solda , 2 ortada , 3 ise sağda bulunmasını sağlar.
* TextDrawColor: TextDraw'daki yazının renginin ayarlanmasını sağlar.
* TextDrawUseBox: TextDraw'da yazının etrafında kutu olup olmamasını belirtmemizi sağlar.
1 koyarsanız kutu olur , 0 koyarsanız olmaz.
* TextDrawFont: TextDraw'ın yazı stilinin ayarlanmasını sağlar.
TextDraw Yazı Stilleri :
(Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
* TextDrawShowForPlayer: Belirtilen TextDraw'ın , belirtilen oyuncu için görülmesini sağlar.
* TextDrawShowForAll: Belirtilen TextDraw'ın , herkes için görülmesini sağlar.
* TextDrawSetString: TextDraw'a yazacağınız yazının ayarlanmasını sağlar.
Şimdi...Öncelikle modun başına şu kodu koyuyoruz :
Kod:
new Text:text1;
Buradaki "text1"in yerine istediğinizi yazabilirsiniz.
Şimdi...OnGameModeInIt'e şu kodları koyuyoruz :
Kod:
modunbaşındatextdrawaverdiğimizisim = TextDrawCreate(5.000000,423.000000,"yazı");
TextDrawAlignment(modunbaşındatextdrawaverdiğimizisim,bulunduğuyer);
TextDrawFont(modunbaşındatextdrawaverdiğimizisim,font);
TextDrawLetterSize(modunbaşındatextdrawaverdiğimizisim,1.000000,1.900000);
TextDrawColor(modunbaşındatextdrawaverdiğimizisim,COLOR_RENK);
"modunbaşındatextdrawaverdiğimizisim" yazan yerlere ; modun başında "text1" yazan yere ne yazdıysanız onu koyacaksınız.
TextDrawCreate'de bulunan "yazı" yazan yere , TextDraw'da yazmasını istediğiniz yazıyı yazın.
TextDrawFont'ta bulunan "font" yazan yere , daha önce belirttiğim fontlardan istediğinizi yazın.
TextDrawLetterSize'deki sayılara dokunmayın , en ideal yazı büyüklüğü bunlardır.
TextDrawColor'da bulunan "COLOR_RENK" yazan yere , daha önce verdiğim renklerden faydalanarak istediğiniz rengi yazın.
Sonra "OnPlayerConnect" publicine şu kodu koyun :
Kod:
TextDrawShowForPlayer(playerid,modunbaşındatextdrawaverdiğimizisim);
Bu yöntem uzun ve zor olan yöntemdir.
Fakat daha hızlı ve kolay bir şekilde TextDraw hazırlamak istiyorsanız ; Sa:Mp Forumu'nda "Zamaroht
" kullanıcı isimli üyenin hazırladığı "TextDraw Editor" programında faydalanabilirsiniz.
(Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
Editörde :
"/text" yazdığınızda karşınıza TextDraw hazırlama menüsü gelecektir.Buradan her türlü detayı ayarlayabilirsiniz.
TextDraw'inizi kaydettiğinizde TextDraw'in kodları : "scriptfiles klasörüne textdrawinizinismi.txt" belgesinin içine kaydedilecektir.
İndirme Adresi :
Seif's Edit - .pwn (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
v0.6 - .pwn (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
v0.6 - .amx (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
..adreslerinden editörü indirebilirsiniz.
Editörün orjinal sayfasını görüntülemek için : " Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. "..
Yeni! 2.2.2009 / 12:06 Tarihinde Eklendi.. 25.Bölüm Dosya Kaydı :
Arkadaşlar bu bölümde pawnoda istediğimiz verileri herhangi bir belgeye kaydetmeyi anlatacağım.
İlk olarak dosya kaydında kullanılan kodların bir kısmını tanıyalım :
fcreate : Belirtilen isimdeki belgenin "scriptfiles" klasöründe oluşturulmasını sağlar.
fopen : Belirtilen isimdeki dosyanın (Eğer hangi klasörde olduğu belirtilmemiş ise scriptfiles klasöründe bulunması gerekir.) açılmasını sağlar.Bir belge fopen kodu ile açılmadan o belge üzerinde işlem yapılamaz.3 çeşit fopen türü vardır..Bunlar :
1-)"io_write" : Önceden belirtilen belgede bulunan bütün verileri siler.
2-)"io_read" : Belirtilen dosyanın açılıp içindeki verilerin değerlendirilmesini sağlar.Bu kod kullanıldığında eğer belirtilen belge bulunamazsa sunucu crash olur.
3-)"io_append" : Belirtilen belge açılıp içine belirtilen verilerin yazılmasını sağlar.
4-)"io_readwrite" : Belirtilen belgenin açılmasını veya bu belge yok ise oluşturulmasını sağlar.
Not : Eğer "fopen" kodu ile belirtilen dosya ; belirtilen klasörde (Belirtilmemiş ise scriptfiles klasöründe) bulunamazsa sunucuda crash olayları çok artar ve en sonunda samp-server.exe kendini kapatır.
fexist : Belirtilen dosyanın veya belgenin bulunup bulunmadığının belirlenmesini sağlar."if" kodu ile kullanılıp buna göre döngüler oluşturulur.Örneğin şu gibi :
Kod:
if(fexist("datafile.txt"))
{
SetPlayerInterior(playerid,0);
}
fwrite : Belirtilen dosyaya belirtilen verilerin kayıt edilmesini sağlar.Örneğin :
Kod:
new string[30];
format(string, 30, "%s\r\n", pname);
fwrite(dosyaismi.txt, string);
fclose : "fopen" kodu ile açılan belge ile yapılan veriler bittiğinde bu belge ile yapılan işlerin bittiğinin pawnoda belirtilmesi için kullanılır.
Şimdi örneğin oyuncunun oyundan çıkınca koordinatlarının kayıt olmasını istiyoruz.Şu şekilde yapacağız :
Öncelikle modun başına şunu kodları koyarak kullanacağımız değişkenleri tanıtıyoruz :
Kod:
new string[128];
new Float:X, Float:Z, Float:Y, Float:Rotation;
Sonra OnPlayerDisconnect publicine bu kodları koyarak belirtilen verilerin yani oyuncunun koordinatı ile bakış açısının kayıt olmasını sağlıyoruz :
Kod:
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, Rotation);
new File:pos=fopen("positions.txt", io_append);
format(string, 128, "%f, %f, %f, %f", X, Y, Z,Rotation);
fwrite(pos, string);
fclose(pos);
Buradaki "GetPlayerPos" ve "GetPlayerFacingAngle" ile oyuncunun koordinatının ve bakış açısının ; "X","Y","Z","Rotation" isimleri ile tanıtılmasını sağladık.
Daha sonra "fopen" kodu ile "pos" adı ile tanıttığımız "positions.txt" adında bir belge oluşturup (Eğer daha önce oluşturulmamış ise oluşturuluyor.Yoksa sadece bu belge açılıyor.) bu belgeyi açıyoruz.
"format" kodu kayıt edeceğimiz verileri "string" adı altında tanıtıyoruz.
Daha sonra "fwrite" kodu ile "pos" adı ile tanıttığımız "positions.txt" belgesine "string" adı ile tanıttığımız verileri yani oyuncunun koordinatı ile bakış açısını kayıt ediyoruz.
En sonunda "fclose" kodu ile "pos" adı ile tanıttığımız "positions.txt" belgesini kapatıp bu belge ile ilgili işlemleri bitiriyoruz.
Ayrıca kolay yoldan dosya kaydı yapmak isteyen arkadaşlar , "DracoBlue" isimli üyenin hazırladığı "dudb" ve "dutils" isimli includeleri kullanabilirler.
"dudb" ve "dutils" includeleri için : Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ. (Bu Linki Görmeniz Engellenmiştir. Üye Olmak İçin BURAYI TIKLAYINIZ.
Not : Includeler sunucu dosyalarının bulunduğu klasördeki "pawno/include" klasörünün içine atılacaktır.
NoT: Pawno Dersleri Alıntıdır..