joysro

r1

Kayıt
18 Ağustos 2017
Mesajlar
11
Beğeniler
7
Şehir
Istanbul
Server
Ksro
kingo
Evet arkadaşlar bu zamana kadar kimsenin paylaşmadığı ve ayarlamadığı şekilde oyunun orjinal drop sistemini kullanarak drop ayarlamayı anlatacağım. Öncelikle neden orjinal drop sistemini kullanmalıyız? Sebebi basit oyundaki grup şeklindeki drop sistemi rezerv edilmiş itemler (coin ve talisman gibi) için yapılmış. Fazla sayıda loop olduğu zaman drop sistemi gameserverin onexitcalled() hatası almasına sebep olmakta. Direk olarak mob'a drop koyma olayı iyi material'ler için yapılmış. Bunlar sürekli drop olan öğeler diyebiliriz. Genel drop sistemi girdiğimiz rateyi daha iyi bir loop sistemi ile çalıştırmakta. (Her zaman orjinalci taraftarıyım
upload_2019-1-31_12-43-58.gif
)

Peki orjinal drop sistemini kullanarak drop ayarımızı nasıl yapabiliriz.

İlgili tablolarımız _RefDropItemAssign, _RefDropClassSel_Equip, _RefDropClassSel_RareEquip

  • _RefDropItemAssign tablomuz _RefDropClassSel_Equip ve _RefDropClassSel_RareEquip tabomuzu kullarak düşmesini istediğimiz itemlerin verilerini girdiğimiz tablo
  • _RefDropClassSel_Equip tablomuz normal itemlerin drop ayarlarının yapıldığı tablo MonLvl mobların level'lerini ProbGroup'larda düşmesini istediğimiz itemlerin _RefObjItem tablosundaki ItemClass(ProbGroup28 demek ItemClass 28 demek buda 10dg _A kodu ile biten yani 90~94 level arasındaki itemlerdir) numarasını göstermekte. Bu tablomuza girdigimiz değerler için baz alınan yaratık sayımız 1 dir yani 0.1 yazmışsak bu tablomuza 10 mob'ta bir drop olacak demektir.
  • _RefDropClassSel_RareEquip tablomuz sox itemlerin drop ayarlarının yapıldığı tablo MonLvl mobların level'lerini ProbGroup'larda düşmesini istediğimiz itemlerin _RefObjItem tablosundaki ItemClass(ProbGroup28 demek ItemClass 28 demek buda 10dg _RARE_A kodu ile biten itemler yani SOS itemlerdir) numarasını göstermekte. Bu tablomuza girdigimiz değerler için baz alınan yaratık sayımız 1000 dir yani 1 yazmışsak bu tablomuza 1000 mob'ta bir drop olacak demektir, 2 yazarsak sonuç yine aynı olacaktır, 10000 yazsak dahi 1000k mobta bir drop olacaktır. 0.25 yazarsak 4k mob'ta bir drop olacak demektir.

Baz alınan 1k mob sayısını değiştirmek için gereken GS offseti
00726B43 B9 E8030000 mov ecx, 0x3E8 --> 0x3E8==1000 demek kendinize göre ayarlayabilirsiniz bu kısmı (değiştirmenizi önermiyorum döngüyü zora sokabilir)

Bir teşekkürü hor görmeyiniz.

Anlatım bana offset bilgisi MeGaMaX.'a aittir.
 
Kayıt
22 Ağustos 2010
Mesajlar
1.760
Beğeniler
462
Takımı
Seçiniz...
Anlatım için teşekkürler, Rare tablosu her zaman verdiğiniz değerde çalışmıyor bunun için dropgroup oluşturma önerimdir.

RareEquip için düşmesini istediğiniz rateyi şöyle ayarlayabilirsiniz. (GS asm yapmamanız şiddetle önerimdir.)
1 / Kesilmesini 1istediğiniz mob adedi * 1000

Örnek: 50K mob'da bir düşmesini istiyorum.
1 / 50000 * 1000 = 0,02

1 yazmamın nedeni, GS'nin işlemleri 1 adet üzerinden işleme alması.
1000 ile çarpmamın nedeni, RareEquip tablosunun 1000 mob kill üzerinden işlem yapması.

Orjinal tabloları kullanacaksanız bu şekilde işlem yapmanız doğru yoldur.

Fakat rare itemler için önerim her zaman DropGroup oluşturmanızdır.
 
Kayıt
18 Ağustos 2017
Mesajlar
11
Beğeniler
7
Şehir
Istanbul
Server
Ksro
Anlatım için teşekkürler, Rare tablosu her zaman verdiğiniz değerde çalışmıyor bunun için dropgroup oluşturma önerimdir.

RareEquip için düşmesini istediğiniz rateyi şöyle ayarlayabilirsiniz. (GS asm yapmamanız şiddetle önerimdir.)
1 / Kesilmesini 1istediğiniz mob adedi * 1000

Örnek: 50K mob'da bir düşmesini istiyorum.
1 / 50000 * 1000 = 0,02

1 yazmamın nedeni, GS'nin işlemleri 1 adet üzerinden işleme alması.
1000 ile çarpmamın nedeni, RareEquip tablosunun 1000 mob kill üzerinden işlem yapması.

Orjinal tabloları kullanacaksanız bu şekilde işlem yapmanız doğru yoldur.

Fakat rare itemler için önerim her zaman DropGroup oluşturmanızdır.
zoe komutunu kullanarak 500k mob'ta denedim her 100k kill için farklı değerler kullandım. Sapma en fazla 2 item kadar oldu :)

1 Grup için çok fazla mob veya item varsa GS'deki looptan dolayı exception verip onexitcalled() hatasına sebep olmakta. (tecrübe ettim bizzat // Shard overloop count değerinide şişirip performansı düşürdüğünüde düşünüyorum ama emin değilim o konuda)

Az sayıdaki durumlar için her iki yöntem de kullanılabilir.
 
Kayıt
22 Ağustos 2010
Mesajlar
1.760
Beğeniler
462
Takımı
Seçiniz...
Rare itemler değerli olduğu için küçük değerlerde zaten düşmeyecektir.
Bunun için en sağlıklı yöntemin drop grup olduğunu düşünüyorum.
Normal itemler için Equip tablosu kullanılabilir ve senin değerlerin dikkate alınabilir.
 
Yukarı Alt