GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Anlatımlar => Konuyu başlatan: Amper - 13 Mayıs 2020, 11:35:44

Başlık: SA-MP NOSQL (SAMPSON)
Gönderen: Amper - 13 Mayıs 2020, 11:35:44
NoSQL nedir?
NoSQL veritabanları, belirli veri modelleri için özel olarak tasarlanmıştır ve modern uygulamalar oluşturmaya yönelik esnek şemalara sahiptir. NoSQL veritabanları uygun ölçekte geliştirme kolaylığı, işlevselliği ve performansıyla geniş çaplı kabul görmüştür. Belge, grafik, anahtar-değer, bellek içi ve arama dahil olmak üzere çeşitli veri modelleri kullanır. Fakat bu SA-MP üzerinde vereceğim örneklerde düşündüğümüz performansı veremez ama kesinlikle daha basit bir kullanım sağlar performans konusunda SQL kullanmaktan daha mı önde oluruz net bir şey söyleyemiyorum. Kendim şu an güncel olarak sıfırdan geliştirdiğim tüm oyun modlarını bu yönteme taşıdım. Yani bu örneklendirmeye NO-SQL diyebiliriz diye düşünüyorum.

NO-SQL için çeşitli sorgulama arayüzleri vardır. Json, REST, RPC şeklinde farklı API'lerle sorgulanabilen versiyonlar mevcut. Benim SA-MP için düşündüğüm yöntem JSON sorgulama arayüzünü kullanıyor. Peki bu nasıl çalışıyor? Şimdi iki tane yöntem ile veri çekebiliriz ana sunucu dışındaki bir sunucudan veri çekmek, ana sunucu içerisinden veri çekmek. İkinci yöntem içerisinde hesap bilgileri gibi şeyleri nasıl web arayüzüne yansıtacağım sorusunu kendinize sorduğunuzu biliyorum ve bunun cevabı çok basit.

2. yöntemi(ana sunucuda verileri barındırmak) kullanırsam Web sunucumdan nasıl veri çekeceğim?
Sunucunuzun 80 portunu aktifleştirip erişebilecek ip adresini sadece web servisleriniz yaparsanız bunu gerçekleştirebilirsiniz. PHP ile veri çekecekseniz size örnek olarak bir kod yapısı bırakıyorum.

$account_name = "Amper";

curl_setopt($cURLConnection, CURLOPT_URL, 'https://www.lilamper.tech/samp-example/',$account_name,'.json');
curl_setopt($cURLConnection, CURLOPT_RETURNTRANSFER, true);

$accountData = curl_exec($cURLConnection);
curl_close($cURLConnection);

$jsonArrayResponse - json_decode($accountData);

1. yöntemi(ana sunucu içerisinden veri çekmek) Pawn'da nasıl yapacağım?
Tıkla ve Github üzerinden örnek kodu görüntüle (https://github.com/liilamper/SAMPSON-EXAMPLE/blob/master/1.yöntem.pwn)
url(https://github.com/liilamper/SAMPSON-EXAMPLE/blob/master/1.yöntem.pwn)

2. yöntemi(başka bir sunucudan veri çekmek) Pawn'da nasıl yapacağım?
Tıkla ve Github üzerinden örnek kodu görüntüle (https://github.com/liilamper/SAMPSON-EXAMPLE/blob/master/2.yöntem.pwn)
url(https://github.com/liilamper/SAMPSON-EXAMPLE/blob/master/2.yöntem.pwn)

Konuyla ilgili soru ve cevaplarınızı konu altından alabilirim. Eğer bu işleyiş biçimini kullanırken bir sistemi nasıl yapacağınız hakkında soru işaretleri kafanızda bulunuyorsa konu altından, forum özel mesajı üzerinden veya discord(harika amper#3917) üzerinden ulaşabilirsiniz.

Kullanılan kütüphane ve pluginler: SAMPSON(https://github.com/liilamper/SAMPSON)

Ek olarak eğer farklı isteğinizi SSL ile yollamak isterseniz inceleyebileceğiniz bir başlık:
Alıntı yapılan: NexoR - 14 Mayıs 2020, 14:37:03
Bu eklenti size HTTPS, JSON/Node desteği sağlar. İncelemek istersen tıklayabilirsin. (https://github.com/Southclaws/pawn-requests)
Başlık: Ynt: SA-MP NOSQL (SAMPSON)
Gönderen: mortale - 13 Mayıs 2020, 11:38:46
Oldukça güzel ve faydalı bir çalışma olmuş.
Başlık: Ynt: SA-MP NOSQL (SAMPSON)
Gönderen: EmirKarapelit - 14 Mayıs 2020, 12:15:58
Alıntı yapılan: mortale - 13 Mayıs 2020, 11:38:46
Oldukça güzel ve faydalı bir çalışma olmuş.
Başlık: Ynt: SA-MP NOSQL (SAMPSON)
Gönderen: NexoR - 14 Mayıs 2020, 12:50:28
Json kullanmak yararlı olabilir ama MySQL da ki bir tablonun tüm değerlerini değiştirebilirken atıyorum (UPDATE oyuncular SET para = '0') bu şekilde tüm oyuncuların parasını sıfırlayabiliriz. Json bunu yapmayı imkan sunuyor mu? Çünkü tüm oyuncuların isimlerini çekip NexoR.json dosyasına girip para değerini bulup güncellemek gerekir diye düşünüyorum. Bu da performansı etkiler.
Başlık: Ynt: SA-MP NOSQL (SAMPSON)
Gönderen: Amper - 14 Mayıs 2020, 13:17:06
Alıntı yapılan: NexoR - 14 Mayıs 2020, 12:50:28
Json kullanmak yararlı olabilir ama MySQL da ki bir tablonun tüm değerlerini değiştirebilirken atıyorum (UPDATE oyuncular SET para = '0') bu şekilde tüm oyuncuların parasını sıfırlayabiliriz. Json bunu yapmayı imkan sunuyor mu? Çünkü tüm oyuncuların isimlerini çekip NexoR.json dosyasına girip para değerini bulup güncellemek gerekir diye düşünüyorum. Bu da performansı etkiler.

Evet dediğin şeyde haklısın fakat çeşitli JSON arayüzünde sorgulama yöntemleri bulunuyor bunlardan örnek alarak bir şeyler geliştirilebilir diye düşünüyorum. Şu an sadece loop içerisinde kendi oyun modumda dediğin şeyleri yapsam da ileride bunlar üzerinde geliştirme yapabilirim. SA-MP'ın request sisteminde SSL bağlantısı olmaması gibi eksikler olduğu için ileride bir kütüphane geliştirip bunu soketler yoluyla bağlamayı düşünüyorum ve o sırada bu sistemi de ilerletirim yorumun için teşekkürler ve kesinlikle doğru olduğunu kabul ediyorum bu yöntemi kullanacaklar bunları şimdilik göze almalı.
Başlık: Ynt: SA-MP NOSQL (SAMPSON)
Gönderen: NexoR - 14 Mayıs 2020, 14:37:03
Alıntı yapılan: Amper - 14 Mayıs 2020, 13:17:06
Alıntı yapılan: NexoR - 14 Mayıs 2020, 12:50:28
Json kullanmak yararlı olabilir ama MySQL da ki bir tablonun tüm değerlerini değiştirebilirken atıyorum (UPDATE oyuncular SET para = '0') bu şekilde tüm oyuncuların parasını sıfırlayabiliriz. Json bunu yapmayı imkan sunuyor mu? Çünkü tüm oyuncuların isimlerini çekip NexoR.json dosyasına girip para değerini bulup güncellemek gerekir diye düşünüyorum. Bu da performansı etkiler.

Evet dediğin şeyde haklısın fakat çeşitli JSON arayüzünde sorgulama yöntemleri bulunuyor bunlardan örnek alarak bir şeyler geliştirilebilir diye düşünüyorum. Şu an sadece loop içerisinde kendi oyun modumda dediğin şeyleri yapsam da ileride bunlar üzerinde geliştirme yapabilirim. SA-MP'ın request sisteminde SSL bağlantısı olmaması gibi eksikler olduğu için ileride bir kütüphane geliştirip bunu soketler yoluyla bağlamayı düşünüyorum ve o sırada bu sistemi de ilerletirim yorumun için teşekkürler ve kesinlikle doğru olduğunu kabul ediyorum bu yöntemi kullanacaklar bunları şimdilik göze almalı.

Bu eklenti size HTTPS, JSON/Node desteği sağlar. İncelemek istersen tıklayabilirsin. (https://github.com/Southclaws/pawn-requests)
Başlık: Ynt: SA-MP NOSQL (SAMPSON)
Gönderen: Amper - 14 Mayıs 2020, 14:39:09
Alıntı yapılan: NexoR - 14 Mayıs 2020, 14:37:03
Alıntı yapılan: Amper - 14 Mayıs 2020, 13:17:06
Alıntı yapılan: NexoR - 14 Mayıs 2020, 12:50:28
Json kullanmak yararlı olabilir ama MySQL da ki bir tablonun tüm değerlerini değiştirebilirken atıyorum (UPDATE oyuncular SET para = '0') bu şekilde tüm oyuncuların parasını sıfırlayabiliriz. Json bunu yapmayı imkan sunuyor mu? Çünkü tüm oyuncuların isimlerini çekip NexoR.json dosyasına girip para değerini bulup güncellemek gerekir diye düşünüyorum. Bu da performansı etkiler.

Evet dediğin şeyde haklısın fakat çeşitli JSON arayüzünde sorgulama yöntemleri bulunuyor bunlardan örnek alarak bir şeyler geliştirilebilir diye düşünüyorum. Şu an sadece loop içerisinde kendi oyun modumda dediğin şeyleri yapsam da ileride bunlar üzerinde geliştirme yapabilirim. SA-MP'ın request sisteminde SSL bağlantısı olmaması gibi eksikler olduğu için ileride bir kütüphane geliştirip bunu soketler yoluyla bağlamayı düşünüyorum ve o sırada bu sistemi de ilerletirim yorumun için teşekkürler ve kesinlikle doğru olduğunu kabul ediyorum bu yöntemi kullanacaklar bunları şimdilik göze almalı.

Bu eklenti size HTTPS, JSON/Node desteği sağlar. İncelemek istersen tıklayabilirsin. (https://github.com/Southclaws/pawn-requests)

Görmemiştim bunu örneklendirme kısmına ekledim.
Başlık: Ynt: SA-MP NOSQL (SAMPSON)
Gönderen: XaVi - 14 Mayıs 2020, 18:12:36
Yararlı forum dostum eline sağlık
Başlık: Ynt: SA-MP NOSQL (SAMPSON)
Gönderen: ÖmerCN - 20 Mayıs 2020, 03:10:37
Anlatım güzel, ellerine sağlık :) Zamanla geçiş yapılabilir diye düşünüyorum şimdilik MySQL devam :)