Steam başarım setleri: toplu açma, sahip olunmayan DLC yüzünden başarısız oluyor
Valve'ın Achievement Sets beta'sı, Steam oyunlarında başarımları temel oyun, DLC ve diğer setlere ayırmayı sağlıyor. Steam, hesabın sahip olmadığı DLC'nin veya arşivlenmiş setin başarımlarının açılmasını reddediyor ve tek bir reddedilen kayıt tüm toplu yazmayı bozabiliyor. Yazar, şema değişikliklerini, C# ile ayrıştırma kodunu ve sahiplik kontrolü çözümünü anlatıyor.
Kilit noktalar
- groups bölümünü ayrıştırın; groupid'i olmayan ya da listede bulunmayan başarımlar temel oyun setine aittir.
- dlcappid taşıyan grup bir DLC setidir; başarımda archived, bit üzerinde int 1 olarak bulunur.
- Setlerden biri sahip olunmayan DLC'de ya da arşivlenmişse Steam tüm toplu yazmayı reddeder.
- Steamworks.NET ile sahiplik için BIsDlcInstalled yerine SteamApps.BIsSubscribedApp kullanın.
- Sahiplik kontrolü yalnızca açma işlemi için geçerlidir; kazanılmış bir başarımı kilitlemek hâlâ mümkündür.
- Grup düzeyindeki arşiv anahtarı adı doğrulanmadı ve beta sırasında değişebilir.
Valve'ın Achievement Sets beta'sı, geliştiricilerin bir oyunun başarımlarını temel oyun, her DLC ve diğer gruplar olarak ayırmasına izin veriyor; her grubun kendi ilerleme çubuğu ve tamamlama durumu var. Başarımları okuyan ya da yazan araçlar için iki değişiklik önemli: şema bölümünde yeni bir groups alanı ve sunucu tarafında, hesabın sahip olmadığı DLC setlerindeki ve arşivlenmiş setlerdeki başarımların açılmasını reddeden bir kural. Yazarın başarım yöneticisinde, toplu yazmadaki tek bir reddedilen kayıt tüm yazmanın başarısız olmasına yol açtı.
Çözüm, yazmadan önce DLC sahipliğini kontrol etmek. Yazar, BIsDlcInstalled yerine BIsSubscribedApp kullanıyor; çünkü ilki sahip olunan ama indirilmemiş DLC'yi sahipsiz gösteriyor. Sahiplik sorgusu başarısız olursa başarımı sahipmiş gibi kabul ediyor, böylece bir ağ hatası sessizce açmayı engellemiyor.
Gerçek dünyada kullanımı
- Kullanıcının kütüphanesindeki başarımları listeleyen ya da toplu açan bir C# aracı.
- Genişleme paketleri olan oyunlar için DLC bazında tamamlama ilerlemesini gösteren yardımcı bir uygulama.
- Şema önbelleğini okuyup başarım gruplarını saklayan arka plan senkronizasyon işi.
Neden önemli
Steam başarımlarını okuyan ya da yazan kodunuz varsa, toplu yazmalar tamamen başarısız olabilir; sahiplik ve arşiv kontrollerini göndermeden önce kendi kodunuzda yapmalısınız.
Benzer haberler
- C# 14 extension member'ları: derleyicinin uyarmadığı gölgeleme hatasıDEV Community: #csharp1 gün önce
- C#'ta LLM token'ları: yapay zekâ "strawberry"deki r'leri neden sayamıyor?DEV Community: #csharp1 gün önce
- C# interface'lerinde collection dönüş tipleri: interface, view ve snapshot farkıNick Cosentino (Dev Leader)2 gün önce