Çözüldü Veri tipi değişikliği sonrası oluşan sorun

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ı.

therasmus

Üye
Üye
Mesaj
119
Çözümler
10
Beğeni
67
Puan
729
Ticaret Puanı
0
Merhaba,

Oyunumda won sistemi ekli ve 99a kadar sınırlı. Won sistemi byte türünde veri tutuyor ve 255'e kadar destekliyor haliyle. bunu 999a çekmek için veri türünü int yaptık. arkadaşımla aynı filesi kullanıyoruz (bir kaç sistem farklılıkları var sadece). O dediğim şekilde byte türünü sorunsuz integer yaptı ve 999 olarak kullanabiliyor. ben aynı değişiklikleri yapmama rağmen karakter seçtikten sonra server seçim ekranına atıyor. 0'dan yaklaşık 4-5 defa programlar arayıcılığı ile(winmerge) birebir cheque(won) ile ilgili kodları karşılaştırdım ve birebir aynı. fakat dediğim için karakter seçiminden sonra oyundan atma mevcut. yedeklerimi atıp build ettiğimde ise herhangi bir sorunla karşılaşmıyorum. syserr ve sysloglar şu şekilde;

Syserr
Kod:
SYSERR: Aug 28 13:13:29 :: GetValidLocation: cannot find tree by 244523008 0 (map index 1)
SYSERR: Aug 28 13:13:29 :: PlayerLoad: InputDB::PlayerLoad : cannot find valid location 244523008 x 0 (name: TEST)

Syslog
Kod:
SYSERR: Aug 28 13:13:29 :: GetValidLocation: cannot find tree by 244523008 0 (map index 1)
SYSERR: Aug 28 13:13:29 :: PlayerLoad: InputDB::PlayerLoad : cannot find valid location 244523008 x 0 (name: TEST)
Aug 28 13:13:29 :: SYSTEM: closing socket. DESC #17
Aug 28 13:13:29 :: SYSTEM: new connection from [192.168.1.35] fd: 16 handshake 2933063341 output input_len 0, ptr 0x6a3e9c00
Aug 28 13:13:29 :: SYSTEM: closing socket. DESC #16

eski orijinal yedeklerimi attığımda ise bu syserr ve syslog u vermediğini de belirteyim. fikir ve görüşlerinizi beklemekteyim teşekkürler.
 
Bilmiyorum belki ben yanlış anladım @Whistle doğrusunu söyler ama ingilizcesine bakar ve yorumlarsam map index i 1 olan ve koordinatları 244523008 0 olan map doğrulanamamış.

Alttaki hatada da DB de giriş yapmaya çalıştığınız karakterin 244523008 0 koordinatlarında olduğu ve yüklenemediği yazıyor.
name=TEST kısmı tam emin olmamakla beraber yüklenmeye çalışan karakter adının TEST olduğunu belirtiyor olabilir
 
Map koordinatlarına ve Map indexten index kodu 1 olan haritanın hangi harita olduğuna bakıp düzenlemeniz gerekiyor olabilir
 
maplerle alakalı bir durum olduğunu sanmıyorum. çünkü eski yedeklerimi yüklediğimde bu syserr ları vermiyor. ve değişiklik yaptığım kısımlar sadece veri tipleri :)
 
metin2devden bir kaç kişiye daha sordum. bahsettiğim şekilde karakter seçtikten sonra atmasının veri tipinin packet.h ile tables.h ile uyuşmadığından olabileceğini söyledi. fakat aynı işlemleri arkadaşım da kullanıyor herhangi bi sorunu yok. 4-5 defa karşılaştırdım.
 
Bende won long olarak tanımlı. İsterseniz bir de long deneyin.
 
999 won için WORD kullanabilirsin.
 
arkadaşta çalışıp bende çalışmaması anlamadığım kısım :D long kullanan arkadaşlar 999 won mu kullanıyorsun?
 
arkadaşta çalışıp bende çalışmaması anlamadığım kısım :D long kullanan arkadaşlar 999 won mu kullanıyorsun?
Evet 999 olarak kullanıyorum şu an. Ayrıca bazen her şeyi doğru yaptığınızı düşünseniz bile çok küçük bir detay gözden kaçabiliyor. Dikkatlice gözden geçirin derim.
 
Son düzenleme:
evet sorunumun kaynağı tables.h dosyası. BYTE hariç hiçbir veri tipini kabul etmiyor. m2devde bi arkadaşla konuştum baya bi istişare ettik. en son long dword int vs kabul etmeyince sorunumun compile almakla ilgili olduğunu söyledi. çözüm önerisi olan var mı acaba? aylardır kullandığım makine sürekli sistem ekleme ve editlemesi yaptım. compile almada ne gibi sorun olabilir ki?
 
Biraz detay verebilir misiniz? Derlerken ne hatası veriyor.
 
Bu düzenlemeyi client tarafından da yaptınız mı? Packetlerdeki uyuşmazlık sonucunda bu hata olabiliyor.
 
Bu düzenlemeyi client tarafından da yaptınız mı? Packetlerdeki uyuşmazlık sonucunda bu hata olabiliyor.
evet tabii ki. konuda bahsettiğim gibi arkadaşım aynı şekilde sorunsuz kullanıyor. veritabanında cheque kısmının veri tipini de değiştirdim. syserrlarda da db ile ilgili hata bırakıyor. byte harici kabul etmiyor çok garip cidden anlamadım.
 
İsterseniz beraber bi bakalım. Özel mesaj ile bana anydesk gönderebilir misiniz?
 
sorunum çözüldü. tables.h'deki veri tipini DWORD olarak güncelleyip gmake all yaptık. kendine geldi her şey. bu tarz algılamama sorunları yaşayan arkadaşların her şeyi tekrardan build etmesinde fayda var. Whistle adminime çok teşekkür ediyorum.
 
Son durumu bildirdiğiniz için teşekkürler. Sorunun kaynağını bulana kadar baya zaman geçmiş. :D Ben packet uyumsuzluğu nedeniyle attığını düşünüyordum. Bağlandıktan sonra ilk önce kodlara göz gezdirdik. Bi sorun göremedim. Daha önce tables.h TPlayerTable cheque değerini DWORD olarak denemiş ama yine hata aldığını belirtmişti. Bizde db ve game dosyalarını baştan build ettik. common tablosunda değişiklik yapıldığı zaman baştan derlenmesi gerekiyor. Daha sonra geliştirme aşamasında kolaylık sağlaması için vrunner'i devre dışı bıraktık. :D

Konu çözüldüğüne göre başlık güncellenip kilitlenmiştir. Sorunun çözümü için yardımcı olan herkese teşekkürler.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst