Çözüldü Hasar Problemi

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

cosion

Üye
Üye
Mesaj
127
Çözümler
12
Beğeni
23
Puan
469
Ticaret Puanı
0
Selam arkadaşlar bir yerde takıldım bilgisi olan varsa yardımlarınızı bekliyorum. Filesteki hasar değişkenlerini ve mob hp değerini int'ten int64_t'e yükselttim. Birde ek olarak şu forumda olan hasar çarpanı olayını ekledim, tek olayı zaten battle.cpp'deki return iAtk istediğimiz değerle çarpıp döndürmek ben 100 ile çarptım. Hasarı 100 kat arttırması için. Yaşadığım problem debug modda çalıştırınca böyle çıkıyor. Hasar düşükken sorun yok ama 1kt civarını geçince böyle bir hata veriyor. Release ile build alınmış clientte syserr vs vermeden direkt kapanıyor. Ne client ne de server tarafında syserr çıkmıyor.
1.png

Burada damage = 1kt 022t 585m 030k 334, buradan devam edince verdiği hata bu:

2.png


Bahsettiği kod bloğuda burası, burada hiç değişiklik yapmadım.
3.png


Bilgisi olan varsa yardımcı olursa çok mutlu olurum. Şu konuyu tamamen çözdüğümde foruma konu açıp detaylı hasar ve yang limitini int64_t yükseltmeyi paylaşmayı düşünüyorum. Yang var ama hasarı daha önce uğraşıp paylaşan olmamış.
 
Çözüm
123.png

Sorun buradaki döngü if if if if olarak kalmış oradan kaynaklıydı, if else if olarak hepsini düzenleyince çözüldü.

Hasar sınırı kaldırma konusuda vakit olunca açarım, çok zor değil ama çok fazla yerde değişiklik istiyor. %100 Sorunsuz olduğunu test edip paylaşacağım.
niye bu kadar hasara ihtiyaç duyuluyor tam olarak? daha düşük hasarlarla metin kesilmiyor mu? yani mantık ne onu anlamaya çalışıyorum
 
niye bu kadar hasara ihtiyaç duyuluyor tam olarak? daha düşük hasarlarla metin kesilmiyor mu? yani mantık ne onu anlamaya çalışıyorum
55 120 lerde hasar ve saldırı sınırı kaldırılıyo maksat daha güzel görünsün daha hızlı metin kesilsin herşey daha hızlı olsun birde itemlere verilen aşırı bonuslardan ötürü mesela toplam 30 k 50k 100k bonusların olması işte metin patron güçleri
 
O hatanın sebebi o if ifadesinin doğru çalışmamasından kaynaklanıyor. Normalde else kısmına geçmemesi lazım.
Buna bağlı olarak düzenlemelerini gözden geçirebilirsin. Veri tipi farklılığı veya boyut farkı gibi durumlar söz konusu olabilir.

Ayrıca assert(false) satırı zaten Distribute ve Release modunda işleme alınmaz. Eğer bu modlarda her şey sorunsuz çalışıyorsa
o satırı şu şekilde değiştirebilirsin:
C++:
#ifndef _DEBUG
    assert(false);
#endif

Bunun tek faydası debug modda bu hatayı almanı engeller.
 
Tüm hasar değişkenlerini doğru veri tipine ayarladığınıza ve client&server tarafında herhangi birini gözden kaçırmadığınıza emin misiniz ? Vurduğunuz hasar çok yüksek, mutlaka hasarla, hasarın hesaplanmasıyla, hasarın gösterimiyle alakalı olan tüm veri tiplerini int64_t'e çekmelisiniz. Muhtemelen çok fazla yerde değişiklik yaptığınız için bir bölümü atlamış olabilirsiniz, tekrar gözden geçirmek ilk çözüm yöntemi olabilir, saygılar.
 
Noktalı - Harfli hasar sistemi ekliydi, onu eski haline çevirince sorun ortadan kalktı. Hata oradan kaynaklanıyormuş. Sebebini tam bulunca paylaşırım
 
123.png

Sorun buradaki döngü if if if if olarak kalmış oradan kaynaklıydı, if else if olarak hepsini düzenleyince çözüldü.

Hasar sınırı kaldırma konusuda vakit olunca açarım, çok zor değil ama çok fazla yerde değişiklik istiyor. %100 Sorunsuz olduğunu test edip paylaşacağım.
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst