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

İyi Bir Sistem Nasıl Tasarlanır?

Başlatan _Code, 14 Temmuz 2018, 18:45:19

« önceki - sonraki »

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

_Code

Merhabalar, size bir sistemin iyi bir şekilde nasıl tasarlanacağını anlatacağım.
Öncelikle Pawno'da bir temelinizin olması gerek. Bunun için bu konuyu size tavsiye ederim: https://www.pawnoturk.com/forum/anlatimlar/(rehber)-pawno-ogrenmek-istiyenler-icin-tavsiyeler/

Başlayalım! Örneğin süreli bir bomba sistemini ele alalım. Bu sistemi yapmanız için nelere ihtiyacımız var?
Herhangi bir bomba objesi, süre için bir timer , patlama'nın olacağı yer için koordinatlar ve patlamanın kendisine ihtiyacımız var.
Bu sistemde açık olamaması için bütün olasılıkları gözden geçirmemiz gerekir örneğin komutla çalışacak bir sistemse komutu çok hızlı bir şekilde tekrar tekrar yazabilirsiniz, bombayı havada kurabilir, bırakabilirsiniz, denizin içinde kullanabilirsiniz ve herhangi bir aracın içinde kullanabilirsiniz. Bir sistem tasarlayacaksanız bu tür olasılıkları gözden geçirmeniz gerekir.
Daha sonra sistemi tasarladık her şey tamam sistemi oyunculara sunabilirim dediniz. Aslında her şey tamam değil sırada test işlemi var.
Bir sistemi yaptıktan sonra test etmeden birilerine sunmak manyaklık olur. :)
Şimdi oyuna girdik ve sistemi test ediyoruz San Andreas'ın herhangi bir yerine gidip /bomba komutunu kullandık ve bir baktık bomba patlamıyor. O zaman timer'de veya komutta problem vardır.
Her şey tamam timer'i veya komutu düzelttiniz ve bomba istenilen bir şekilde patlayıp obje silinmekte. Test burada bitti mi tabii kide hayır. Daha havada ve denizde test etmediniz. Deniz'de komut istenilen hata mesajını veriyor ve bir bakmışsınız ki hava'da bomba kuruyorsunuz o zaman hava'da olup olmadığınızı kontrol eden fonksyon'da, komutta veya ikisinde bir problem var. Baktınız komutta bir problem yok ancak havayı kontrol eden fonksyon yanlış yazılmış. Bir oyuncu'nun havada veya denizde olup olmadığını GetPlayerAnimationIndex fonksyonu ile kolay bir şekilde anlayabilirsiniz. Hava probleminide hallettiyseniz sistemi oyunculara sunabilirsiniz.
Son düzenlenme: 14 Temmuz 2018, 18:48:26 RECEP




SA:MP Turkiye CnR IP: server.sampturkiyecnr.com:7777

CerberuS


Willy


pag

Güzel anlatmışsın, eline sağlık.


Veoper

Paylaşmış olduğunuz linkte yer alan yapı bu konu ile ilgili üstün körü sayılabilecek bir anlatım/örneklendirme dahi yapmamakta, evet okurların aklında bir planlama/işleyiş şeması oluşturabiliyorsunuz ancak sanki biraz daha açıklayıcı örnek yapılarına ihtiyaç var gibi, Wiki SA-MP'tan timer oluşturabilecek bir stock yapı, fonksiyon tanımlama ve bunu modun herhangi bir yerinde kullanabilmek üzere örnek bir yapı, if gibi şartlandırmalar ile kontrol sağlama gibi başlıkları konu altında toplarsanız eminim çok daha anlaşılır/faydalı olacaktır, onun dışında elinize sağlık  :helal:


TRSinan28

Alıntı yapılan: Slayget0r - 14 Temmuz 2018, 20:28:50

Paylaşmış olduğunuz linkte yer alan yapı bu konu ile ilgili üstün körü sayılabilecek bir anlatım/örneklendirme dahi yapmamakta, evet okurların aklında bir planlama/işleyiş şeması oluşturabiliyorsunuz ancak sanki biraz daha açıklayıcı örnek yapılarına ihtiyaç var gibi, Wiki SA-MP'tan timer oluşturabilecek bir stock yapı, fonksiyon tanımlama ve bunu modun herhangi bir yerinde kullanabilmek üzere örnek bir yapı, if gibi şartlandırmalar ile kontrol sağlama gibi başlıkları konu altında toplarsanız eminim çok daha anlaşılır/faydalı olacaktır, onun dışında elinize sağlık  :helal:

Aynı düşüncedeyim.Elinize sağlık.


Cruza

since 2008
graphic designer & front-end web developer

ace

Anlatım için teşekkürler. Ellerine sağlık


Nkty

Yapılan anlatımlarda hep matematik üzerinden gidiyor ve sadece temelini anlıyorsun. Her fonksiyonun tanıtılması gerektiğini, nerede hangi işaretler konulmasını gerektiği fakat başka bir şey anlamak PAWN bilmeyen kişi için gerçekten çok zor. Farklı anlatımlar lazım bir sistem yazıp anlatacak kişiler lazım. Bakıyorsun birde PAWN dersleri verenlere farklı farklı fonksiyonlar var bunları ezberlersin ama toplama, çıkarma, çarpma yada bölme ile anlatım SA-MP'da PAWN hakkında sana hiçbir destek vermiyor ne yazıkki.


Adolphe

«      miss out on fun  »

MehmetAKAR

  Efsaneler Asla Ölmez Sadece Şekil Değiştirir..!        
     
   

Mehmet!

↬ MedceziR

Jawié

İyi bir sistem kodlamak için dikkat edilmesi gereken maddeler:

Bir sistem tasarlamadan önce yeterli bir kodlama düzeyinde olmalısınız. Sıfır bir sistem yazacak kadar bilginiz yoksa ya da en azından SA:Mp taraflı fonksiyonların kullanımını bilmiyorsanız şu konudan Pawn dilinin aslında ne olduğunu, nasıl öğreneceğinizi anlatan yazıya ulaşabilirsiniz.

Örneğin süreli bir bomba sistemini ele alalım. Süreli bomba sistemini kodlarken ihtiyacımız olan şeyler şunlardır:

  • Bomba objesi,

  • Süre için timer,

  • Patlamanın olacağı koordinatlar,

  • Patlama fonksiyonu.


Bu sistemde açık olmaması için bütün olasıkları gözden geçirmemiz gerekiyor. Komutla çalışacak bir sistem ise komutu çok hızlı bir şekilde tekrar tekrar yazabilirsiniz. Bunların sonucunda bomba havada, denizde, araçta ya da herhangi bir interior içinde kurulabilir; komut çok sık kullanıldığından lag sorunu doğabilir.

Olası ihtimalleri gözden geçirdikten ve komutun doğuracağı sorunları imha ettiğinden emin olduktan sonra sırada test etmek var. Kodladığınız sistemin doğru düzgün çalışıp çalışmadığından emin olmadan birileriyle paylaşmanız yanlış olur.

Oyuna girdik, herhangi bir yere gittik ve yarattığımız komutu denedik. Baktık ki çalışmıyor. Bu durumda oyunu alta alıp tekrar kodlamaya geri dönüyoruz. Neden çalışmadı? Büyük ihtimalle yarattığınız zamanlayıcıyı doğru düzgün çalıştıramamışsınızdır. Sorunun kaynağını bulana dek uğraşmaya devam etmelisiniz. Bu sistemi daha önce kodlayıp paylaşan insanların (Sadece Türkçe kaynaklarda aramak yerine İngilizce gibi dillerde de arama yapmalısınız. "Time Bomb System" Yeterli bir ingilizceniz yoksa dahi çevirici hizmetlerine başvurabilirsiniz.) sistemlerine göz atabilir ve nerede hata yaptığınızı anlayabilirsiniz. Oyuncunun denizde olup olmadığını kontrol etmek için "z" koordinatının sıfırın altında olup olmadığını kontrol ettirerek öğrenebilirsiniz. Excel™ isimli kullanıcının SA:Mp forumundan yaptığı bir paylaşım ile oyuncunun durumlarını daha kolay bir şekilde kontrol edebilirsiniz.




Böyle daha düzenli ve anlaşılır oldu. :helal:
Son düzenlenme: 03 Eylül 2018, 19:24:19 Jawié

TR_irfan.


@Eren

Alıntı yapılan: Veoper - 14 Temmuz 2018, 20:28:50

Paylaşmış olduğunuz linkte yer alan yapı bu konu ile ilgili üstün körü sayılabilecek bir anlatım/örneklendirme dahi yapmamakta, evet okurların aklında bir planlama/işleyiş şeması oluşturabiliyorsunuz ancak sanki biraz daha açıklayıcı örnek yapılarına ihtiyaç var gibi, Wiki SA-MP'tan timer oluşturabilecek bir stock yapı, fonksiyon tanımlama ve bunu modun herhangi bir yerinde kullanabilmek üzere örnek bir yapı, if gibi şartlandırmalar ile kontrol sağlama gibi başlıkları konu altında toplarsanız eminim çok daha anlaşılır/faydalı olacaktır, onun dışında elinize sağlık  :helal: