Çözüldü Online ve offline komut ile eşya yollayabileceğim private vault plugini bulamıyorum.

  • Konuyu Başlatan Konuyu Başlatan Alphast
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 152
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Alphast

Somon Balığı Selam Vermeye Geldi
Katılım
20 Eylül 2015
Mesajlar
10
Elmaslar
3
Puan
13.260
Yaş
28
Merhaba arkadaşlar towny sunucum üzerinde çalışıyorum ve çoğu plugini, skripti kendim yazıyorum. Tek kişi olduğum için bazı pluginleri bulmak zorundayım fakat bu konuda chatgpt bile yardımcı olamadı :D.

İstediğim şey şu oyuncu siteden herhangi bir şey satın aldığında websender ile komut yollayarak veriyorum fakat oyuncu tam aldığı sırada oyundan düşerse? veya oyuncu oyunda değilken satın alım yapabilir vs. gibi bir sorunun önüne geçmek için satın alınan her şeyin bir private vaulta gitmesini istiyorum ve vaulttan sadece eşyaların alınabilmesi içine eşya koyulamaması gerekiyor. Bunun için hazır bir plugin var mı? Ayrıca komut ile verilmesini istememin sebebi customitem olduğu için. Örnek itemsadder ile vereceğim iagive player_name ozelkilic 1 gibi olması gerekiyor
 
Selam, öncelikle tek başına böyle büyük bir projenin altına girdiğin için tebrik ederim. Sunucu için kendi eklentilerini ve skriptlerini yazmanı gerçekten takdir ediyorum. Sorununa gelecek olursak anlattığın senaryo (oyuncunun oyunda olmaması - aniden düşmesi vb.) tüm sunucu sahiplerinin ortak derdi. Sadece komutla eşya eklenebilen ve oyuncunun sadece çekebildiği bir private vault eklentisinin var olup olmadığını açıkçası bilmiyorum bu kadar spesifik bir şey bulmak zor olabilir. Fakat (kendi eklentilerini yazdığını söylediğin için söylüyorum) aklıma çok daha profesyonel ve garantili bir yöntem geldi:

Oyuncu oyunda değilken görünmez bir kasaya eşya göndermeye çalışmak yerine SQLite veya MySQL gibi bir veritabanı kullanarak bir Teslimat Sistemi oluşturabilirsin.

  1. Oyuncu web sitesinden bir ürün satın aldığında, WebSender anında bir komut çalıştırmak yerine veritabanına bir kayıt ekler veya komutu çalıştırtıp veritabanına plugin ile eklersin. Bu kayıtta oyuncu_adı, verilecek_eşyanın_komutu (örneğin iagive oyuncu_adı ozelkilic 1), miktar gibi bilgiler olur.
  2. Oyuncu oyuna girdiğinde veya zaten oyundaysa /teslimal gibi bir komut kullanır.
  3. Yazdığın eklenti, bu komut çalıştırıldığında veritabanını kontrol eder. O oyuncu adına bekleyen bir ürün var mı diye bakar.
  4. Eğer ürün varsa veritabanında kayıtlı olan komutu (iagive...) konsol üzerinden çalıştırır, eşyayı oyuncuya verir ve ardından veritabanındaki o kaydı teslim edildi olarak işaretler veya siler.
Bu yöntemle oyuncunun oyunda olup olmamasının o an düşmesinin veya envanterinin dolu olmasının hiçbir önemi kalmaz. Eşyası kendisi alana kadar güvende bekler.Umarım bu fikir işine yarar. Projende başarılar dilerim.
 
Son düzenleme:
Selam, öncelikle tek başına böyle büyük bir projenin altına girdiğin için tebrik ederim. Sunucu için kendi eklentilerini ve skriptlerini yazmanı gerçekten takdir ediyorum. Sorununa gelecek olursak anlattığın senaryo (oyuncunun oyunda olmaması - aniden düşmesi vb.) tüm sunucu sahiplerinin ortak derdi. Sadece komutla eşya eklenebilen ve oyuncunun sadece çekebildiği bir private vault eklentisinin var olup olmadığını açıkçası bilmiyorum bu kadar spesifik bir şey bulmak zor olabilir. Fakat (kendi eklentilerini yazdığını söylediğin için söylüyorum) aklıma çok daha profesyonel ve garantili bir yöntem geldi:

Oyuncu oyunda değilken görünmez bir kasaya eşya göndermeye çalışmak yerine SQLite veya MySQL gibi bir veritabanı kullanarak bir Teslimat Sistemi oluşturabilirsin.

  1. Oyuncu web sitesinden bir ürün satın aldığında, WebSender anında bir komut çalıştırmak yerine veritabanına bir kayıt ekler veya komutu çalıştırtıp veritabanına plugin ile eklersin. Bu kayıtta oyuncu_adı, verilecek_eşyanın_komutu (örneğin iagive oyuncu_adı ozelkilic 1), miktar gibi bilgiler olur.
  2. Oyuncu oyuna girdiğinde veya zaten oyundaysa /teslimal gibi bir komut kullanır.
  3. Yazdığın eklenti, bu komut çalıştırıldığında veritabanını kontrol eder. O oyuncu adına bekleyen bir ürün var mı diye bakar.
  4. Eğer ürün varsa veritabanında kayıtlı olan komutu (iagive...) konsol üzerinden çalıştırır, eşyayı oyuncuya verir ve ardından veritabanındaki o kaydı teslim edildi olarak işaretler veya siler.
Bu yöntemle oyuncunun oyunda olup olmamasının o an düşmesinin veya envanterinin dolu olmasının hiçbir önemi kalmaz. Eşyası kendisi alana kadar güvende bekler.Umarım bu fikir işine yarar. Projende başarılar dilerim.
Selamlar, teşekkür ederim biraz zorlu bir süreç yaklaşık 1.5 aylık bir geliştirme süreci oldu hala devam ediyor. Hali hazırda bir sistem olabileceğini düşünerek yazmıştım ve dediğin gibi çok spesifik bir istek. Önerine gelirsek çok teşekkürler bende bulamazsam bu tarzda bir yol izlemeyi düşünüyordum ama MySQL ile karmaşık bir hale getirmektense local storage kullanmak daha mantıklı gelmişti.

Satın alım yaptı ardından yazdığım plugine websender ile command yolladım ve oyuncunun envanteri full ise veya offline ise yml içerisine kaydetti ardından oyuncu girdiğinde /teslimal ile o komutları çalıştırdı gibi düzenleyebilirim
 
/sitedepo gibi bir sistem yapabilir oyuncunun istediği zaman oradan alıp kullanılanilmesini sağlayabilirsin
 
Anladığım kadarıyla böyle bir plugin yok. Kendim bir plugin yazarak çözeceğim teşekkürler yorumlar için konuyu çözüldüye alıyorum.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst