Merhaba, Hoşgeldin!

VSRO.org, Silkroad Online, Knight Online, Metin2 ve diğer çevrimiçi oyunlar için öncü bir yardım ve geliştirme platformudur. Misyonumuz, bilgi ve deneyim sahibi bireyleri, bilgiye ihtiyaç duyanlarla bir araya getirerek, zengin bir etkileşim ortamı yaratmak ve farklı bakış açılarını birleştirmektir. Topluluğumuzda güçlü bir işbirliği ve öğrenme kültürü oluşturarak, herkesin değerli katkılarda bulunmasını sağlıyoruz.

vSRO Çözüldü 0x3013 - CharacterData sorunsuz ayrıştırabilen var mı?

  • Konuyu Başlatan Konuyu Başlatan kovboi
  • Başlangıç tarihi Başlangıç tarihi

kovboi

KGuardEDGE
.
Developer
Katılım
12 Eki 2019
Mesajlar
251
Çözümler
2
Tepkime puanı
636
Puanları
93
Konum
Antalya
Türk Lirası
0.00₺
Şu işaretli byte dizileri sadece "unknown" olarak yazdığım ve muhtemelen bir flag olan byte 1'e eşit olduğunda geliyor.
  1. Petlerin stateleri dizilerde de gözüktüğü gibi değişmekte ve petleri özel kılan herhangi bir durum tespit edemedim.
  2. Yaklaşık olarak %1 ihtimalle "unknown" flagı 1 olmakta.
  3. İşaretli dizinin uzunluğunun neye göre değiştiği hakkında herhangi bir fikrim yok.
  4. zBot veya benzeri botlar ve paylaşılmış parserler ve ve emulatörler de dahil oldukça kapsamlı bir araştırma yaptım ancak bir sonuç elde edemedim.
  5. Nadir bir hata olmasına rağmen bu item envanterinde olan karakterin her teleportunda doğal olarak karşılaşılıyor.

unknown.png

Ekran görüntüsü 2020-12-15 175423.png
Üst üste post gönderildiği için tek mesajda birleştirildi:

COS_P_BEAR için yeni log da geldi.

C-like:
İçeriği görebilmek için Giriş yap ya da üye ol.
 
cosstate == 2 || cosstate == 3 || cosstate == 4 yerine if(cossatate != 1) demeniz yeterlidir. Çünkü sadece 4 state vardır. Yardımcı olması adına onuda sizinle paylaşmak isterim.


C#:
İçeriği görebilmek için Giriş yap ya da üye ol.

Kod okunurluğunu geliştirmek ve olası hatalardan kurtarmak adına resimdeki kod bloğunu şununla değiştirmeniz sizin için daha yararlı olacağını düşünüyorum.


C#:
İçeriği görebilmek için Giriş yap ya da üye ol.
 
Oyla 0
@SDClowen InventoryItemState enumu için teşekkür ederim. Emin değildim risk almak istemiyordum.

item.Rental.Type = packet.ReadUInt(); ile okuduğunuz rental bölümünde 3'ten büyük değer gelebiliyor mu? Çünkü rental switchine sokmadığım halde Grap Pet'lerle alakalı herhangi bir problemle karşılaşmadım.
C#:
İçeriği görebilmek için Giriş yap ya da üye ol.
Acaba oradaki rent bölümü envanter dizilerinin başlangıcı ile karışmış olabilir mi? Veya tahmin ettiğim gibi 3'ten büyük değerler de alabiliyor mu?
 
Oyla 0
Item başlangıcındaki rental farklıdır. 3'den büyük değer dediğinizi method olarak algılayarakdan şöyle bir cevap vermek istiyorum. Piyasada paylaşılan vsro yada diğer fileslerde genellikle rentalllar kapatılır bu yüzden okumalara pek ihtiyaç duyulmaz. Orjinal struct yapısı bu şekildedir bundan emin olabilirsiniz. Ayrıca aklınızı karıştıranın iki defa rental info girildiğinden dolayı olduğunun farkındayım. Normalde böyle birşeye gerek yok fakat gaymax bu konuda biraz optimizasyon aptallığı yaptığı gayet açıktır. (Gerçi joymaxın yaptığı ürünlere bakarsak optimizasyondan ne derece bahsedilebilir orası meçhulda :) )
 
Oyla 0
her oyuna giriş yapan karakterin pet statüsünü mü kontrol etmek istiyordunuz?
Her teleport sonrasında karakterin konumunu kesin bir biçimde tespit etmek için 3013 paketinin detaylı parsesine ihtiyacım vardı. Bu konum dizilerine ulaşabilmek için envanteri, avatarları, masteryleri, skilleri, görevleri ve koleksiyonları hatasız bir şekilde okuyup geçmek gerekiyor.

Tabi o kadar veri okunduktan sonra veritabanı işlemlerini azaltmak adına kullanılması gerekli de şu an ana amaç bu değil.
 
Oyla 0
0xB021 de de region bilgileri yer alıyor. Onunla yaparsanız daha kolay olabilir diye düşünüyorum. Karakter spawn olduktan sonra mutlaka hareket edecektir. İlk hareketinde kontrol edebilirsiniz. Daha kolay olmaz mı?
 
Oyla 0
0xB021 de de region bilgileri yer alıyor. Onunla yaparsanız daha kolay olabilir diye düşünüyorum. Karakter spawn olduktan sonra mutlaka hareket edecektir. İlk hareketinde kontrol edebilirsiniz. Daha kolay olmaz mı?
O ikinci kontrol. Skyclick için de üçüncü kontrol gerekiyor. Ama teleport sonrası region ilk kontrol. Teleport sonrasında regiona özel ayarların karakter hiç yürümese de aksamaması gerekiyor.
 
Oyla 0
@kovboi biraz hortlatıyor gibi oldum ama spawn paketleri içinde karakterin kendi charID sini içeren bir paket varmıydı? Ben var diye hatırlıyorum sanki ama bulamadım.
 
Oyla 0
Geri
Üst Alt