Fethi Polat 1
Fethi Polat
xranzei 1
xranzei
Bvural41 1
Bvural41
kralhakan2009 1
kralhakan2009
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

SYSER ÇÖZÜMÜ ARANIYOR

  • Konuyu başlatan Konuyu başlatan trabzon11997
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 11
  • Görüntüleme Görüntüleme 177

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Kendi fishing.txt dosyam ama finhing.cpp de güncellemeler geliştirmeler yaptım ondan sonra bu syserler başladı akşam 2 3 satır atarım
Orijinal fishing.cpp ile değiştirdiğiniz fishing-edit.cpp dosyalarını eklerseniz inceleyebilirim.
 
Orijinal fishing.cpp ile değiştirdiğiniz fishing-edit.cpp dosyalarını eklerseniz inceleyebilirim.
Değiştirmek değil geliştirmeler yaptım dc varmı sizin dcden atıyım
 
fishing.txt Syserr Hatası Analizi ve Çözümü

Syserr:
Kod:
SYSERR: Initialize: Extra column in fishing.txt line X
SYSERR: Initialize: Missing columns in fishing.txt line Y (expected 23, got 22)

Bu hatalar, fishing.txt dosyasındaki sütun (kolon) sayısının, fishing.cpp içindeki okuma mantığıyla uyuşmamasından kaynaklanıyor.

1) fishing.cpp Kodunun Beklediği Format

fishing.cpp içinde satırları parçalayan kod şu şekilde çalışıyor:

Kod:
switch (iColCount++)
{
case 0: strlcpy(fish_info[idx].name, szCol, sizeof(fish_info[idx].name)); break;
case 1: str_to_number(fish_info[idx].vnum, szCol); break;
case 2: str_to_number(fish_info[idx].dead_vnum, szCol); break;
case 3: str_to_number(fish_info[idx].grill_vnum, szCol); break;
case 4: str_to_number(fish_info[idx].prob, szCol); break;
case 5: str_to_number(fish_info[idx].prob, szCol); break;

case 6: str_to_number(fish_info[idx].prob, szCol); break;

case 7: str_to_number(fish_info[idx].prob, szCol); break;

case 8: str_to_number(fish_info[idx].difficulty, szCol); break;
case 9: str_to_number(fish_info[idx].time_type, szCol); break;
case 10: str_to_number(fish_info[idx].length_range, szCol); break;
case 11: str_to_number(fish_info[idx].length_range, szCol); break;

case 12: str_to_number(fish_info[idx].length_range, szCol); break;


text
case 13: // USED0
case 14: // USED1
case 15: // USED2
case 16: // USED3
case 17: // USED4
case 18: // USED5
case 19: // USED6
case 20: // USED7
case 21: // USED8
case 22: // USED9
    str_to_number(fish_info[idx].used_table[iColCount - 1 - 12], szCol);
    break;
}

Yani satır başına toplam 23 kolon bekleniyor:

Kod:
0 : İsim
1 : VNUM
2 : Dead VNUM
3 : Grill VNUM
4-7 : prob[0..3]
8 : difficulty
9 : time_type
10 : length_range
11 : length_range

12 : length_range

13-22 : USED0..USED9 (10 kolon)

2) fishing.txt Dosyanızdaki Sorun

Gönderdiğiniz fishing.txt içinde satırlarda 24 kolon var. Örnek satır:

Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 2000 0 0 0 0 0 0 0 0 0

Burada kolonları sayarsak:

Kod:
1 - AltinYuzuk (isim)
2 - 50002 (vnum)
3 - 1 (dead_vnum)
4 - 30 (grill_vnum)
5 - 0 (prob)
6 - 0 (prob)

7 - 2000 (prob)

8 - 1800 (prob)

9 - 800 (difficulty)
10 - 2200 (time_type)
11 - 200 (length_range)
12 - 1000 (length_range)

13 - 1500 (length_range)

14 - 2000 [b]<– fazladan kolon[/b]
15 - 0 (USED0)
16 - 0 (USED1)
17 - 0 (USED2)
18 - 0 (USED3)
19 - 0 (USED4)
20 - 0 (USED5)
21 - 0 (USED6)
22 - 0 (USED7)
23 - 0 (USED8)

Hem fazla kolon var, hem de bazı satırlarda USED0–USED9 dizilimi kayıyor. Bu nedenle syserr’de:

Kod:
Extra column in fishing.txt line X
Missing columns in fishing.txt line Y (expected 23, got 22)

hataları görülüyor.

3) Çözüm Seçenekleri

Seçenek 1: fishing.txt’ten Fazla Kolonu Silmek (En Kolay Yol)


Kodun yapısını değiştirmek istemiyorsanız, 14. kolonu (örnekteki ekstra 2000) her satırdan kaldırmalısınız.

Yanlış (24 kolon):
Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 2000 0 0 0 0 0 0 0 0 0

Doğru (23 kolon):
Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 0 0 0 0 0 0 0 0 0 0

Bu şekilde dizilim şu sırayı takip eder:

Kod:
İsim, VNUM, DeadVNUM, GrillVNUM,
Prob0, Prob1, Prob2, Prob3,
Difficulty, TimeType,
LenMin, LenMax, LenExtra,
USED0..USED9 (10 değer)

Her satırda tam 23 kolon olmalı.

Notepad++ ile Toplu Düzeltme (İsteğe Bağlı)

Her satırdan 14. kolonu otomatik silmek için (regex):

Search → Replace menüsünü açın

Search Mode: Regular expression seçin

Find what:
Kod:
(([^\t]+\t){13})[^\t]+\t

Replace with:
Kod:
\1

Replace All deyin

Bu ifade, her satırda 13. tab’dan sonra gelen değeri (yani 14. kolonu) komple temizler.

Seçenek 2: C++ Koduna Ekstra Alan Eklemek

Eğer 14. kolondaki değerler sizin için anlamlı ise (örneğin nadirlik vs.), bu sefer fishing.cpp tarafını da uyarlamanız gerekir.

Örnek yapı değişikliği:

Kod:
struct SFishInfo
{
char name[FISH_NAME_MAX_LEN];
DWORD vnum;
DWORD dead_vnum;
DWORD grill_vnum;
int prob[MAX_PROB];
int difficulty;
int time_type;
int length_range;

int rarity; // 14. kolon için yeni alan
int used_table[NUM_USE_RESULT_COUNT];
};

Parsing kısmı:

Kod:
case 12: str_to_number(fish_info[idx].length_range, szCol); break;

case 13: str_to_number(fish_info[idx].rarity, szCol); break; // yeni kolon

case 14: // USED0
case 15: // USED1
case 16: // USED2
case 17: // USED3
case 18: // USED4
case 19: // USED5
case 20: // USED6
case 21: // USED7
case 22: // USED8
case 23: // USED9
str_to_number(fish_info[idx].used_table[iColCount - 1 - 13], szCol);
break;

Bu durumda fishing.txt satırlarında 24 kolon olmalı (13 temel alan + rarity + 10 USED).

Özet

– Syserr’in sebebi: fishing.txt satırlarının kolon sayısı, fishing.cpp’nin beklediği sayıyla uyuşmuyor.
– En pratik çözüm: Her satırdan 14. kolonu silip formatı 23 kolona düşürmek.
– Alternatif: 14. kolonu kullanmak istiyorsanız, C++ struct ve switch-case parsing kısmını bu yeni alanı okuyacak şekilde genişletmeniz gerekiyor.

SONUÇ OLARAK İSTER fishing.txt Yİ DÜZENLE İSTERSEN fishing.cpp Yİ
 
fishing.txt Syserr Hatası Analizi ve Çözümü

Syserr:
Kod:
SYSERR: Initialize: Extra column in fishing.txt line X
SYSERR: Initialize: Missing columns in fishing.txt line Y (expected 23, got 22)

Bu hatalar, fishing.txt dosyasındaki sütun (kolon) sayısının, fishing.cpp içindeki okuma mantığıyla uyuşmamasından kaynaklanıyor.

1) fishing.cpp Kodunun Beklediği Format

fishing.cpp içinde satırları parçalayan kod şu şekilde çalışıyor:

Kod:
switch (iColCount++)
{
case 0: strlcpy(fish_info[idx].name, szCol, sizeof(fish_info[idx].name)); break;
case 1: str_to_number(fish_info[idx].vnum, szCol); break;
case 2: str_to_number(fish_info[idx].dead_vnum, szCol); break;
case 3: str_to_number(fish_info[idx].grill_vnum, szCol); break;
case 4: str_to_number(fish_info[idx].prob, szCol); break;
case 5: str_to_number(fish_info[idx].prob, szCol); break;

case 6: str_to_number(fish_info[idx].prob, szCol); break;

case 7: str_to_number(fish_info[idx].prob, szCol); break;

case 8: str_to_number(fish_info[idx].difficulty, szCol); break;
case 9: str_to_number(fish_info[idx].time_type, szCol); break;
case 10: str_to_number(fish_info[idx].length_range, szCol); break;
case 11: str_to_number(fish_info[idx].length_range, szCol); break;

case 12: str_to_number(fish_info[idx].length_range, szCol); break;


text
case 13: // USED0
case 14: // USED1
case 15: // USED2
case 16: // USED3
case 17: // USED4
case 18: // USED5
case 19: // USED6
case 20: // USED7
case 21: // USED8
case 22: // USED9
    str_to_number(fish_info[idx].used_table[iColCount - 1 - 12], szCol);
    break;
}

Yani satır başına toplam 23 kolon bekleniyor:

Kod:
0 : İsim
1 : VNUM
2 : Dead VNUM
3 : Grill VNUM
4-7 : prob[0..3]
8 : difficulty
9 : time_type
10 : length_range
11 : length_range

12 : length_range

13-22 : USED0..USED9 (10 kolon)

2) fishing.txt Dosyanızdaki Sorun

Gönderdiğiniz fishing.txt içinde satırlarda 24 kolon var. Örnek satır:

Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 2000 0 0 0 0 0 0 0 0 0

Burada kolonları sayarsak:

Kod:
1 - AltinYuzuk (isim)
2 - 50002 (vnum)
3 - 1 (dead_vnum)
4 - 30 (grill_vnum)
5 - 0 (prob)
6 - 0 (prob)

7 - 2000 (prob)

8 - 1800 (prob)

9 - 800 (difficulty)
10 - 2200 (time_type)
11 - 200 (length_range)
12 - 1000 (length_range)

13 - 1500 (length_range)

14 - 2000 [b]<– fazladan kolon[/b]
15 - 0 (USED0)
16 - 0 (USED1)
17 - 0 (USED2)
18 - 0 (USED3)
19 - 0 (USED4)
20 - 0 (USED5)
21 - 0 (USED6)
22 - 0 (USED7)
23 - 0 (USED8)

Hem fazla kolon var, hem de bazı satırlarda USED0–USED9 dizilimi kayıyor. Bu nedenle syserr’de:

Kod:
Extra column in fishing.txt line X
Missing columns in fishing.txt line Y (expected 23, got 22)

hataları görülüyor.

3) Çözüm Seçenekleri

Seçenek 1: fishing.txt’ten Fazla Kolonu Silmek (En Kolay Yol)


Kodun yapısını değiştirmek istemiyorsanız, 14. kolonu (örnekteki ekstra 2000) her satırdan kaldırmalısınız.

Yanlış (24 kolon):
Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 2000 0 0 0 0 0 0 0 0 0

Doğru (23 kolon):
Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 0 0 0 0 0 0 0 0 0 0

Bu şekilde dizilim şu sırayı takip eder:

Kod:
İsim, VNUM, DeadVNUM, GrillVNUM,
Prob0, Prob1, Prob2, Prob3,
Difficulty, TimeType,
LenMin, LenMax, LenExtra,
USED0..USED9 (10 değer)

Her satırda tam 23 kolon olmalı.

Notepad++ ile Toplu Düzeltme (İsteğe Bağlı)

Her satırdan 14. kolonu otomatik silmek için (regex):

Search → Replace menüsünü açın

Search Mode: Regular expression seçin

Find what:
Kod:
(([^\t]+\t){13})[^\t]+\t

Replace with:
Kod:
\1

Replace All deyin

Bu ifade, her satırda 13. tab’dan sonra gelen değeri (yani 14. kolonu) komple temizler.

Seçenek 2: C++ Koduna Ekstra Alan Eklemek

Eğer 14. kolondaki değerler sizin için anlamlı ise (örneğin nadirlik vs.), bu sefer fishing.cpp tarafını da uyarlamanız gerekir.

Örnek yapı değişikliği:

Kod:
struct SFishInfo
{
char name[FISH_NAME_MAX_LEN];
DWORD vnum;
DWORD dead_vnum;
DWORD grill_vnum;
int prob[MAX_PROB];
int difficulty;
int time_type;
int length_range;

int rarity; // 14. kolon için yeni alan
int used_table[NUM_USE_RESULT_COUNT];
};

Parsing kısmı:

Kod:
case 12: str_to_number(fish_info[idx].length_range, szCol); break;

case 13: str_to_number(fish_info[idx].rarity, szCol); break; // yeni kolon

case 14: // USED0
case 15: // USED1
case 16: // USED2
case 17: // USED3
case 18: // USED4
case 19: // USED5
case 20: // USED6
case 21: // USED7
case 22: // USED8
case 23: // USED9
str_to_number(fish_info[idx].used_table[iColCount - 1 - 13], szCol);
break;

Bu durumda fishing.txt satırlarında 24 kolon olmalı (13 temel alan + rarity + 10 USED).

Özet

– Syserr’in sebebi: fishing.txt satırlarının kolon sayısı, fishing.cpp’nin beklediği sayıyla uyuşmuyor.
– En pratik çözüm: Her satırdan 14. kolonu silip formatı 23 kolona düşürmek.
– Alternatif: 14. kolonu kullanmak istiyorsanız, C++ struct ve switch-case parsing kısmını bu yeni alanı okuyacak şekilde genişletmeniz gerekiyor.

SONUÇ OLARAK İSTER fishing.txt Yİ DÜZENLE İSTER
fishing.txt Syserr Hatası Analizi ve Çözümü

Syserr:
Kod:
SYSERR: Initialize: Extra column in fishing.txt line X
SYSERR: Initialize: Missing columns in fishing.txt line Y (expected 23, got 22)

Bu hatalar, fishing.txt dosyasındaki sütun (kolon) sayısının, fishing.cpp içindeki okuma mantığıyla uyuşmamasından kaynaklanıyor.

1) fishing.cpp Kodunun Beklediği Format

fishing.cpp içinde satırları parçalayan kod şu şekilde çalışıyor:

Kod:
switch (iColCount++)
{
case 0: strlcpy(fish_info[idx].name, szCol, sizeof(fish_info[idx].name)); break;
case 1: str_to_number(fish_info[idx].vnum, szCol); break;
case 2: str_to_number(fish_info[idx].dead_vnum, szCol); break;
case 3: str_to_number(fish_info[idx].grill_vnum, szCol); break;
case 4: str_to_number(fish_info[idx].prob, szCol); break;
case 5: str_to_number(fish_info[idx].prob, szCol); break;

case 6: str_to_number(fish_info[idx].prob, szCol); break;

case 7: str_to_number(fish_info[idx].prob, szCol); break;

case 8: str_to_number(fish_info[idx].difficulty, szCol); break;
case 9: str_to_number(fish_info[idx].time_type, szCol); break;
case 10: str_to_number(fish_info[idx].length_range, szCol); break;
case 11: str_to_number(fish_info[idx].length_range, szCol); break;

case 12: str_to_number(fish_info[idx].length_range, szCol); break;


text
case 13: // USED0
case 14: // USED1
case 15: // USED2
case 16: // USED3
case 17: // USED4
case 18: // USED5
case 19: // USED6
case 20: // USED7
case 21: // USED8
case 22: // USED9
    str_to_number(fish_info[idx].used_table[iColCount - 1 - 12], szCol);
    break;
}

Yani satır başına toplam 23 kolon bekleniyor:

Kod:
0 : İsim
1 : VNUM
2 : Dead VNUM
3 : Grill VNUM
4-7 : prob[0..3]
8 : difficulty
9 : time_type
10 : length_range
11 : length_range

12 : length_range

13-22 : USED0..USED9 (10 kolon)

2) fishing.txt Dosyanızdaki Sorun

Gönderdiğiniz fishing.txt içinde satırlarda 24 kolon var. Örnek satır:

Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 2000 0 0 0 0 0 0 0 0 0

Burada kolonları sayarsak:

Kod:
1 - AltinYuzuk (isim)
2 - 50002 (vnum)
3 - 1 (dead_vnum)
4 - 30 (grill_vnum)
5 - 0 (prob)
6 - 0 (prob)

7 - 2000 (prob)

8 - 1800 (prob)

9 - 800 (difficulty)
10 - 2200 (time_type)
11 - 200 (length_range)
12 - 1000 (length_range)

13 - 1500 (length_range)

14 - 2000 [b]<– fazladan kolon[/b]
15 - 0 (USED0)
16 - 0 (USED1)
17 - 0 (USED2)
18 - 0 (USED3)
19 - 0 (USED4)
20 - 0 (USED5)
21 - 0 (USED6)
22 - 0 (USED7)
23 - 0 (USED8)

Hem fazla kolon var, hem de bazı satırlarda USED0–USED9 dizilimi kayıyor. Bu nedenle syserr’de:

Kod:
Extra column in fishing.txt line X
Missing columns in fishing.txt line Y (expected 23, got 22)

hataları görülüyor.

3) Çözüm Seçenekleri

Seçenek 1: fishing.txt’ten Fazla Kolonu Silmek (En Kolay Yol)


Kodun yapısını değiştirmek istemiyorsanız, 14. kolonu (örnekteki ekstra 2000) her satırdan kaldırmalısınız.

Yanlış (24 kolon):
Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 2000 0 0 0 0 0 0 0 0 0

Doğru (23 kolon):
Kod:
AltinYuzuk 50002 1 30 0 0 2000 1800 800 2200 200 1000 1500 0 0 0 0 0 0 0 0 0 0

Bu şekilde dizilim şu sırayı takip eder:

Kod:
İsim, VNUM, DeadVNUM, GrillVNUM,
Prob0, Prob1, Prob2, Prob3,
Difficulty, TimeType,
LenMin, LenMax, LenExtra,
USED0..USED9 (10 değer)

Her satırda tam 23 kolon olmalı.

Notepad++ ile Toplu Düzeltme (İsteğe Bağlı)

Her satırdan 14. kolonu otomatik silmek için (regex):

Search → Replace menüsünü açın

Search Mode: Regular expression seçin

Find what:
Kod:
(([^\t]+\t){13})[^\t]+\t

Replace with:
Kod:
\1

Replace All deyin

Bu ifade, her satırda 13. tab’dan sonra gelen değeri (yani 14. kolonu) komple temizler.

Seçenek 2: C++ Koduna Ekstra Alan Eklemek

Eğer 14. kolondaki değerler sizin için anlamlı ise (örneğin nadirlik vs.), bu sefer fishing.cpp tarafını da uyarlamanız gerekir.

Örnek yapı değişikliği:

Kod:
struct SFishInfo
{
char name[FISH_NAME_MAX_LEN];
DWORD vnum;
DWORD dead_vnum;
DWORD grill_vnum;
int prob[MAX_PROB];
int difficulty;
int time_type;
int length_range;

int rarity; // 14. kolon için yeni alan
int used_table[NUM_USE_RESULT_COUNT];
};

Parsing kısmı:

Kod:
case 12: str_to_number(fish_info[idx].length_range, szCol); break;

case 13: str_to_number(fish_info[idx].rarity, szCol); break; // yeni kolon

case 14: // USED0
case 15: // USED1
case 16: // USED2
case 17: // USED3
case 18: // USED4
case 19: // USED5
case 20: // USED6
case 21: // USED7
case 22: // USED8
case 23: // USED9
str_to_number(fish_info[idx].used_table[iColCount - 1 - 13], szCol);
break;

Bu durumda fishing.txt satırlarında 24 kolon olmalı (13 temel alan + rarity + 10 USED).

Özet

– Syserr’in sebebi: fishing.txt satırlarının kolon sayısı, fishing.cpp’nin beklediği sayıyla uyuşmuyor.
– En pratik çözüm: Her satırdan 14. kolonu silip formatı 23 kolona düşürmek.
– Alternatif: 14. kolonu kullanmak istiyorsanız, C++ struct ve switch-case parsing kısmını bu yeni alanı okuyacak şekilde genişletmeniz gerekiyor.

SONUÇ OLARAK İSTER fishing.txt Yİ DÜZENLE İSTERSEN fishing.cpp Yİ

SEN fishing.cpp
Txt yi nasıl düzeltiriz
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst