- Mesaj
- 4.038
- Çözümler
- 390
- Beğeni
- 4.157
- Puan
- 1.849
- Ticaret Puanı
- 0
Merhaba, dün ufak çaplı kontroller yaparken bir sorun fark ettim. Kimine göre sorun, kimine göre de yetersizlik olabilir aslında.
Bu mevzu büyük ihtimalle sıfır altyapılarda daha çok vardır. Yinede burada anlattıklarımı uygulamadan önce kontrol edin ve gerçekten ihtiyaç duyuyorsanız uygulayın.
Sadece %15 Kritik Vuruş efsunu olan bir itemi giydiğimde --> Metine vurduğum düz vuruşlarda ara sıra kritik patlıyor.
(Bu normal, istenildiği takdirde düz vuruşlarda kritik kapatılabilir, her neyse. Bu bir sorun teşkil etmiyor.)
Fakat;
Sadece %15 Delici Vuruş Şansı olan bir itemi giydiğimde --> Metine ne kadar vurarsam vurayım hem doğru düzgün delici vurmuyor, hem de delicinin geldiğini belli eden efekt görünmüyor. Yani delici gelmiş mi gelmemiş mi belli değil. Aslında damage sayılarında belli oluyor, fakat benim için bu fark çok çok azdı. Yani düz vuruş 500 ise, delici ile beraber 700 falan oluyordu ve dediğim gibi herhangi bir efekt falan yoktu. Aşağıdaki görsellerde daha iyi anlayacaksınız.
Daha sonra char_battle.cpp dosyasında şu bloğa geldim;
Yukarıda bahsettiğim olaya sebep olan satır şurası;
Şimdi komple bu kod bloğunun bu haliyle nasıl bir delici etkisi yarattığına bakalım:
(Karakterde sadece %15 Delici Vuruş Şansı var ve metin taşına bakarsanız hiç bir kritik/delici efektinin olmadığını görebilirsiniz.)
Gördüğünüz gibi damagede ortalama +200 gibi ufak bir fark yaratıyor ve delicinin geldiğine dair efekte dair hiç bir şey yok. Bu değerler benim için çok çok az olduğu için düzenleme ihtiyacı duydum.
O yüzden şu satırı;
Şu şekilde değiştirdim;
Bu kodun getirdiği sonuç ise şu şekilde;
(Karakterde sadece %15 Delici Vuruş Şansı var ve metin taşında efekte dikkat edin)
Verdiğim koda göre kendin projenize uygun olacak şekilde arttırma yapabilirsiniz. Kodda verdiğim dam *= 1.4 kısmı, düz vuruşa eklenecek oranı temsil eder.
GIF de de gördüğünüz üzere düz vuruş 900 civarlarında ve üzerine binen damage +400 civarında. Elbette bu rakamlar nokta atışı değeri bizlere vermez. +50 yada +100 gibi değişkenlik gösterebilir ama sınır olarak bizim belirlediğimiz oranı baz alır.(1.4)
Başka bir örnekle: kodda verdiğim 1.4 oranı, düz 5k vuran bir karakter için delicinin de gelmesiyle beraber yaklaşık 7k vurması demektir.
Düz 10k vuran bir karakter için ise deliciyle beraber 14k vurması demektir.
Yani deliciden gelen hasar, düz hasar ile doğru orantılıdır(orjinalinde de böyledir ancak biz burada değeri kendimiz belirlemiş oluyoruz.)
Bu yüzden belirleyeceğiniz oranı dikkatli ve projenize uygun olarak belirlemelisiniz. Aksi takdirde ilerleyen zamanlarda absürd sonuçlarla karşılaşabilirsiniz.
Ek bilgi: Neden delici vuruşta kritik efekti kullanıyorsun? diye sorabilirsiniz. Pek bir numarası yok, ben öyle istedim Kritik efekti sesli ve daha belirgin olduğu için daha uygun geldi.
İyi çalışmalar.
Bu mevzu büyük ihtimalle sıfır altyapılarda daha çok vardır. Yinede burada anlattıklarımı uygulamadan önce kontrol edin ve gerçekten ihtiyaç duyuyorsanız uygulayın.
Sadece %15 Kritik Vuruş efsunu olan bir itemi giydiğimde --> Metine vurduğum düz vuruşlarda ara sıra kritik patlıyor.
(Bu normal, istenildiği takdirde düz vuruşlarda kritik kapatılabilir, her neyse. Bu bir sorun teşkil etmiyor.)
Fakat;
Sadece %15 Delici Vuruş Şansı olan bir itemi giydiğimde --> Metine ne kadar vurarsam vurayım hem doğru düzgün delici vurmuyor, hem de delicinin geldiğini belli eden efekt görünmüyor. Yani delici gelmiş mi gelmemiş mi belli değil. Aslında damage sayılarında belli oluyor, fakat benim için bu fark çok çok azdı. Yani düz vuruş 500 ise, delici ile beraber 700 falan oluyordu ve dediğim gibi herhangi bir efekt falan yoktu. Aşağıdaki görsellerde daha iyi anlayacaksınız.
Daha sonra char_battle.cpp dosyasında şu bloğa geldim;
C++:
if (iPenetratePct) // DİKKAT! BU İF SATIRINDAN 2 TANE VAR.
{
//°üÅëŸ°İ ÀúÇ× °ª Àû¿ë.
iPenetratePct -= GetPoint(POINT_RESIST_PENETRATE);
if (number(1, 100) <= iPenetratePct)
{
IsPenetrate = true;
if (test_server)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°üÅë Ãß°¡ µ¥¹ÌÁö %d"), GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100);
dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100;
}
Yukarıda bahsettiğim olaya sebep olan satır şurası;
C++:
dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100;
Şimdi komple bu kod bloğunun bu haliyle nasıl bir delici etkisi yarattığına bakalım:
(Karakterde sadece %15 Delici Vuruş Şansı var ve metin taşına bakarsanız hiç bir kritik/delici efektinin olmadığını görebilirsiniz.)
Gördüğünüz gibi damagede ortalama +200 gibi ufak bir fark yaratıyor ve delicinin geldiğine dair efekte dair hiç bir şey yok. Bu değerler benim için çok çok az olduğu için düzenleme ihtiyacı duydum.
O yüzden şu satırı;
C++:
dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100;
Şu şekilde değiştirdim;
C++:
if (type == DAMAGE_TYPE_NORMAL || type == DAMAGE_TYPE_NORMAL_RANGE)
{
dam *= 1.4; // ---> örn: 900 civarı damageye karşılık = 1300 civarı damage gelecek
EffectPacket(SE_CRITICAL);
EffectPacket(SE_PENETRATE);
}
else
{
dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100; //orjinal değerler
EffectPacket(SE_PENETRATE);
}
Bu kodun getirdiği sonuç ise şu şekilde;
(Karakterde sadece %15 Delici Vuruş Şansı var ve metin taşında efekte dikkat edin)
Verdiğim koda göre kendin projenize uygun olacak şekilde arttırma yapabilirsiniz. Kodda verdiğim dam *= 1.4 kısmı, düz vuruşa eklenecek oranı temsil eder.
GIF de de gördüğünüz üzere düz vuruş 900 civarlarında ve üzerine binen damage +400 civarında. Elbette bu rakamlar nokta atışı değeri bizlere vermez. +50 yada +100 gibi değişkenlik gösterebilir ama sınır olarak bizim belirlediğimiz oranı baz alır.(1.4)
Başka bir örnekle: kodda verdiğim 1.4 oranı, düz 5k vuran bir karakter için delicinin de gelmesiyle beraber yaklaşık 7k vurması demektir.
Düz 10k vuran bir karakter için ise deliciyle beraber 14k vurması demektir.
Yani deliciden gelen hasar, düz hasar ile doğru orantılıdır(orjinalinde de böyledir ancak biz burada değeri kendimiz belirlemiş oluyoruz.)
Bu yüzden belirleyeceğiniz oranı dikkatli ve projenize uygun olarak belirlemelisiniz. Aksi takdirde ilerleyen zamanlarda absürd sonuçlarla karşılaşabilirsiniz.
Ek bilgi: Neden delici vuruşta kritik efekti kullanıyorsun? diye sorabilirsiniz. Pek bir numarası yok, ben öyle istedim Kritik efekti sesli ve daha belirgin olduğu için daha uygun geldi.
İyi çalışmalar.
Son düzenleme: