Account Save System - ggns7

ggns7

Premium Üye
Premium Üye
MT Üye
Mesaj
277
Çözümler
13
Beğeni
121
Puan
519
Ticaret Puanı
0
Selamlar, MmoTutkunları Altayapı dosyalarını kullanarak official'a yakın bir oyun geliştirmeye çalışıyorum.
Bu işi hobi olarak yapıyorum bir amacım yok, sadece keyifli :)
Geliştirme sürecinde hızlı giriş ekranının olmaması bana çok zaman kaybettiriyordu, şuan herhangi bir forumda bulunabilen hesap kayıt sistemlerini inceledim.
Hepsi neredeyse birbirinin kopyası ve çok fazla kod tekrarı vardı. 10 tane buton var, 10 tane fonksiyon yazmışlar her biri için.
Bir bool değişken oluşturuyor, kodun 20 tane yerinde bunu sürekli set'liyor.
İçim rahat etmedi, kendim yazayım dedim. loginBoard ve connectBoard ile çok benzer şekilde yazdım.
Minimal, kolaylıkla okunabilir, geliştirilebilir. F1'den F4'e kadar olan tuşlar ile hızlı giriş yapılabilir.
Forumumuzda da bu sistemin olmadığını gördüm, o yüzden paylaşmak istiyorum.
Testlerim sonucunda bir sorun bulamadım, eğer sistemin kendisiyle ilgili bir sorunla karşılaşırsanız yorum olarak belirtin lütfen.
Çözümleyip konuyu güncellerim.

Herkese başarılı ve sağlıklı bir yıl diliyorum :)

UPDATE:
Oyuna ilk girişten sonra hiçbir keyboard event'i algılanmıyordu. Karakter seçmek, yeni karakter oluşturmak, giriş ekranına dönmek.
UI çalışıyor ama key event'ler algılanmıyordu - FIXED
Sebebi:
Butonlara bağladığım event'lerde oluşturduğum fonksiyona argüman gönderiyordum. Bunu da tabii ki lambda metoduyla yapıyordum.
Python'da kesinlikle sorunsuz çalışan ifade burada çalışmıyordu ve bundan dolayı diğer key event'ler sıraya alınamıyordu.
Farklı bir syntax ile çözümledim;
Kod:
self.button.SetEvent(ui.__mem_func__(self.__OnClickButton), 1)
gibi.
Önemli bir fark: spesifik bir parametreye argüman veremiyorsunuz.
Örneğin __OnClickButton fonksiyonunun 2 parametresi var. param1 ve param2
Şunu yapamazsınız;
Kod:
self.button.SetEvent(ui.__mem_func__(self.__OnClickButton), param1=15, param2=34)
Çünkü ui.py dosyasındaki yapı (ui.__mem_func__) böyle çalışmıyor. verilen argümanları kendisi sırasıyla parametrelere veriyor.
Yani şöyle olmalı;
Kod:
self.button.SetEvent(ui.__mem_func__(self.__OnClickButton), 15, 34)

Not: Anlatım, dosyalara ayrıldı

preview.png
 

Dosya Eklentileri

  • AccountSaveSystem.7z
    2,1 KB · Gösterim: 13
Son düzenleme:
Paylaşım İçin Teşekkürler Bir Kaç Ekleme Yapacağım Her Zaman Beğendiğim Bir Tasarımdır Bu Ekstra Olarak Öneride Bulunmam Gerekirse Hesap Kaydetme Kısmını Pack İçerisine Değil de Windows'un Kayıt Defterine Yapılsa Daha İyi Olur Marty gibi


L3V6Wz.png
 
eline sağlık çok güzel duruyor keşke ben geliştirme yaparken paylaşsaydın
 
Paylaşım İçin Teşekkürler Bir Kaç Ekleme Yapacağım Her Zaman Beğendiğim Bir Tasarımdır Bu Ekstra Olarak Öneride Bulunmam Gerekirse Hesap Kaydetme Kısmını Pack İçerisine Değil de Windows'un Kayıt Defterine Yapılsa Daha İyi Olur Marty gibi


L3V6Wz.png
Kafama takılmıştı aslında, ulaşılması kolay bir config dosyasında kullanıcının id ve şifresini tutmak çok mantıksız. Fakat şuan halihazırda dosyaları hash'leme ya da kayıt defterinde tutmak (bu güvenli mi ondan da emin değilim) gibi bilgilere sahip olmadığım için bu konuda bir önlem almadım.
Yazdığım sistem temelde beklenilen hizmeti sunuyor. Güvenlik kısmı benim için önemli değil, ben hobi olarak yapıyorum. ama yine de boş vakitlerimde kafa yorup bunu yapmaya çalışabilirim :)
 
@Darklovers 'ın dediği gibi kayıt defterine kayıt edilse çok daha güzel olur, hatta bu şart gibi. Pack bile yeterli olmuyor çoğunlukla mesela son zamanlarda çok fazla online oyuncuya sahip Rubinum sunucusu kayıtlı hesapları direkt oyun klasöründe bir config dosyasında tutuyor:

1704448828367.png


Oynayan oyuncuların bot sevgisini düşünecek olursak, botun içine yerleştirilmiş bir webhook entegrasyonu ile kolayca bu dosyaları discord kanalına atmak bugünlerde neredeyse herkesin yapabileceği bir şey, en azından kayıt defterinden ayıklaması daha zor olur diye düşünüyorum. Tabii bot indirip kullanmaya çalışıyorlarsa olsun diyebilirsin fakat ben sadece güvenli olmadığını belli eden bir örnek vermeye çalıştım.
 
Geri
Üst