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ü 0xb070 ve 0xb071 Paketlerinin ParseDamage() Structureleri

kovboi

KGuardEDGE
.
Developer
Katılım
12 Eki 2019
Mesajlar
255
Çözümler
3
Tepkime puanı
675
Puanları
93
Konum
Antalya
Türk Lirası
0.00₺
Selam arkadaşlar.
Etrafta bir çok paylaşılmış structure mevcut ancak hiç biri tam olarak doğru değil.
0xb070 ve 0xb071 paketleri ortak bir ParseDamage() verisi içermekte. 0xb071 paketinden örnek vereceğim.


Please, Giriş yap or Kayıt ol to view spoiler content!

Ancak ne yazık ki şu paket ayrışamıyor.


Please, Giriş yap or Kayıt ol to view spoiler content!

ParseDamage() için net structure gerekiyor.

Olması gereken okuma şöyle gözüküyor
C#:
İçeriği görebilmek için Giriş yap ya da üye ol.
 
Please, Giriş yap or Kayıt ol to view quote content!

O halde başlayalım. 😝

Bazı karşılaştığım hataları buradan rapor edeyim:

• Unique olmayan mobslarda pencere çıkıp, tekrar kayboluyor.
• Unique ten uzaklaşınca pencere kapanmıyor.
• Teleport olunca pencere hemen kapanmıyor.
• Unique seçili olduğu halde pencere kapanıyor, tekrar tıklayınca geri açılıyor.
• GS içerisinde Unique saldırı yapıp teleport veya DC olan karakter listeden silinir. Aynı özelliği client içinde yapmanız gerekir. Unique ile bağlantısı kesilen karakter listeden silinmiyor. Önceki hasarlarını görebiliyoruz.
• Unique tek başına kesen karakter kendi hasarını Unique ölünceye kadar göremiyor. Tek kişide olsa kendi hasarını görebilmesi gerekir.

1WLSfab.jpg
 
Oyla 0
@sarkolata bu arada partili olmadığı halde ikinci gözükenin kazandığı falan oluyormuş. Eski bir versiyonda mı yoksa halen var olan bir durum mu bu? Yani gsden alınca da hata olabiliyor mu son vuruş kaynaklı? Ya da nebileyim pet zehir falan mı ekli değil acaba.
Üst üste post gönderildiği için tek mesajda birleştirildi:

Please, Giriş yap or Kayıt ol to view quote content!
Mob ne olursa olsun 1 den fazla saldıranı varsa sistem devreye giriyor.
Please, Giriş yap or Kayıt ol to view quote content!
Evet bu bir problem. Client tarafından kapatmam gerek ama henüz reversingde kötüyüm. O CIFTargetWnd’nin OnClose fonksiyonunu yakalamam gerek.
Please, Giriş yap or Kayıt ol to view quote content!
Yine CIFTargetWnd > OnClose
Please, Giriş yap or Kayıt ol to view quote content!
Bunu bilmiyordum. Buna bakayım.
Please, Giriş yap or Kayıt ol to view quote content!
Evet bu kesinlikle çözülmesi gereken bir problem ama erteliyorum. Belki o sisteme GS üzerinden daha mantıklı bir şey geliştirebilirim diye daha fazla zaman ayırmamaya çalışıyorum “şimdilik”.
Please, Giriş yap or Kayıt ol to view quote content!
Bu bir görüş. Benim fikrimce tek karakterin hasar görmesine gerek yok. Groupspawn parsellemek istemediğim için en az iki vuruş kontrolü ekledim. Çok daha kolay ve maliyetsiz.
 
Oyla 0
😷 ben Unique olup olmadığını kontrol edebiliyorsun diye sanıyordum...

Eh, tabiki senin algoritmanda performans ile alakalı birşey olmaz. Çünkü sadece local paketler üzerinden yazdırıyormuşşun. Spawn paketleri dışında sadece kullandığın paketlerin yine içinde gelen skillID leri ile Unique olup olmadığı anlaşılır. Başka bir çözümü yok...
 
Oyla 0
@kovboi hayır herhangi bir değişiklik yapmadım ilk yaptığımdan beri, ki sanmıyorum da. Zehir, pet vs. her şeyi ekliyor. Bu damage list'i 0x300C opcode'unu takip ederek bulmuştum. Unique kesen kişi duyurulmadan hemen önce referans alınıp burdan hesaplanıyor. Bu arada bu liste tüm objeler için var, normal moblar, player ve hatta structrurelar için bile var. Hatta FW DPS Meter için de bunu kullanacaktım ki sonradan fark ettim. Karakterler DC yerse veya teleport olursa vs. unique sisteminin aksine structurelara vurduğu hasar silinmiyor. Bu listede o şekilde çalışmıyor ama.
 
Oyla 0
Geri
Üst Alt