Çözüldü Bayrak değiştirince oyun atıyor

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

kayıturku

Üye
Üye
Mesaj
157
Çözümler
4
Beğeni
45
Puan
109
Merhaba bayrak değiştirdiğim zaman oyundan atma problemi var bayrak değişiyor ancak oyundaki bütün çarları atıyor 2-3 saniye sonra server normale dönüyor problemi nasıl çözebilirim
 
Çözüm
Kodları resim olarak atmanıza gerek yoktu. :) Direk editöre ekleyebilirdiniz. Şimdi tam olarak hatanın yeri nereden kaynaklı bulmak gerekiyor.

char.cpp içerisinde bulunan CanChangeEmpireOfflineShopCheck fonksiyondan da kaynaklı olabilir. Daha net anlayabilmek için bu fonksiyonuda ekleyebilir misiniz?

Sizden iki şey denemenizi isteyeceğim. Bunlardan ilki.
C++:
        if (ch && ch->CanChangeEmpireOfflineShopCheck() == false) {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE"));
            lua_pushnumber(L, 4);
            return 0;
        }

Buradaki ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE")); kodu kaldırdıktan sonra kaynak kodlarını build edip oyun içerisinde krallık...
Tüm charları atıyorsa core veriyor olabilir. vrunner tarzı şeyler kullanıyorsanız iptal edip oyunu açın. Daha sonra aynı işlemleri yaptıktan sonra server çöktüğü zaman syserr ve core dosyalarına bakın.
Core dosyalarına nasıl bakılacağını game.core Dosyasında Yazan Hataları Öğrenmek burada anlatmıştım.
 
Sunucuda kanal dosyalarının içerisinde bulunuyor. Ch1 ve db içerisindeki syserr i not defteri ile açıp ayrı ayrı buraya atın.
Tüm charları atıyorsa core veriyor olabilir. vrunner tarzı şeyler kullanıyorsanız iptal edip oyunu açın. Daha sonra aynı işlemleri yaptıktan sonra server çöktüğü zaman syserr ve core dosyalarına bakın.
Core dosyalarına nasıl bakılacağını game.core Dosyasında Yazan Hataları Öğrenmek burada anlatmıştım.
Buyrun Hocam
Ch1 Syser
Kod:
SYSERR: Sep 25 09:33:19 :: pid_init:

Start of pid: 976



SYSERR: Sep 25 09:33:19 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:33:24 :: pid_init:

Start of pid: 1009



SYSERR: Sep 25 09:33:24 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:33:29 :: pid_init:

Start of pid: 1050



SYSERR: Sep 25 09:33:29 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:33:34 :: pid_init:

Start of pid: 1081



SYSERR: Sep 25 09:33:34 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:33:39 :: pid_init:

Start of pid: 1174



SYSERR: Sep 25 09:33:39 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:33:44 :: pid_init:

Start of pid: 1177



SYSERR: Sep 25 09:33:44 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:33:49 :: pid_init:

Start of pid: 1179



SYSERR: Sep 25 09:33:49 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:33:54 :: pid_init:

Start of pid: 1181



SYSERR: Sep 25 09:33:54 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:33:59 :: pid_init:

Start of pid: 1183



SYSERR: Sep 25 09:33:59 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:04 :: pid_init:

Start of pid: 1185



SYSERR: Sep 25 09:34:04 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:09 :: pid_init:

Start of pid: 1187



SYSERR: Sep 25 09:34:09 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:14 :: pid_init:

Start of pid: 1189



SYSERR: Sep 25 09:34:14 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:19 :: pid_init:

Start of pid: 1191



SYSERR: Sep 25 09:34:19 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:24 :: pid_init:

Start of pid: 1193



SYSERR: Sep 25 09:34:24 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:29 :: pid_init:

Start of pid: 1195



SYSERR: Sep 25 09:34:29 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:34 :: pid_init:

Start of pid: 1197



SYSERR: Sep 25 09:34:34 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:39 :: pid_init:

Start of pid: 1199



SYSERR: Sep 25 09:34:39 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:44 :: pid_init:

Start of pid: 1201



SYSERR: Sep 25 09:34:44 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:49 :: pid_init:

Start of pid: 1203



SYSERR: Sep 25 09:34:49 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:54 :: pid_init:

Start of pid: 1205



SYSERR: Sep 25 09:34:54 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:34:59 :: pid_init:

Start of pid: 1207



SYSERR: Sep 25 09:34:59 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:04 :: pid_init:

Start of pid: 1211



SYSERR: Sep 25 09:35:04 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:09 :: pid_init:

Start of pid: 1213



SYSERR: Sep 25 09:35:09 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:14 :: pid_init:

Start of pid: 1215



SYSERR: Sep 25 09:35:14 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:19 :: pid_init:

Start of pid: 1223



SYSERR: Sep 25 09:35:19 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:25 :: pid_init:

Start of pid: 1225



SYSERR: Sep 25 09:35:25 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:30 :: pid_init:

Start of pid: 1227



SYSERR: Sep 25 09:35:30 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:35 :: pid_init:

Start of pid: 1229



SYSERR: Sep 25 09:35:35 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:40 :: pid_init:

Start of pid: 1231



SYSERR: Sep 25 09:35:40 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:45 :: pid_init:

Start of pid: 1233



SYSERR: Sep 25 09:35:45 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:50 :: pid_init:

Start of pid: 1235



SYSERR: Sep 25 09:35:50 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:35:55 :: pid_init:

Start of pid: 1237



SYSERR: Sep 25 09:35:55 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:00 :: pid_init:

Start of pid: 1239



SYSERR: Sep 25 09:36:00 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:05 :: pid_init:

Start of pid: 1241



SYSERR: Sep 25 09:36:05 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:10 :: pid_init:

Start of pid: 1243



SYSERR: Sep 25 09:36:10 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:15 :: pid_init:

Start of pid: 1245



SYSERR: Sep 25 09:36:15 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:20 :: pid_init:

Start of pid: 1247



SYSERR: Sep 25 09:36:20 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:25 :: pid_init:

Start of pid: 1249



SYSERR: Sep 25 09:36:25 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:30 :: pid_init:

Start of pid: 1251



SYSERR: Sep 25 09:36:30 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:35 :: pid_init:

Start of pid: 1253



SYSERR: Sep 25 09:36:35 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:40 :: pid_init:

Start of pid: 1255



SYSERR: Sep 25 09:36:40 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:45 :: pid_init:

Start of pid: 1257



SYSERR: Sep 25 09:36:45 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:50 :: pid_init:

Start of pid: 1259



SYSERR: Sep 25 09:36:50 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:36:55 :: pid_init:

Start of pid: 1261



SYSERR: Sep 25 09:36:55 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:00 :: pid_init:

Start of pid: 1263



SYSERR: Sep 25 09:37:00 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:05 :: pid_init:

Start of pid: 1265



SYSERR: Sep 25 09:37:05 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:10 :: pid_init:

Start of pid: 1267



SYSERR: Sep 25 09:37:10 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:15 :: pid_init:

Start of pid: 1270



SYSERR: Sep 25 09:37:15 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:20 :: pid_init:

Start of pid: 1272



SYSERR: Sep 25 09:37:20 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:26 :: pid_init:

Start of pid: 1274



SYSERR: Sep 25 09:37:26 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:31 :: pid_init:

Start of pid: 1276



SYSERR: Sep 25 09:37:31 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:36 :: pid_init:

Start of pid: 1278



SYSERR: Sep 25 09:37:36 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:41 :: pid_init:

Start of pid: 1281



SYSERR: Sep 25 09:37:41 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:46 :: pid_init:

Start of pid: 1283



SYSERR: Sep 25 09:37:46 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:51 :: pid_init:

Start of pid: 1285



SYSERR: Sep 25 09:37:51 :: socket_bind: bind: Address already in use

SYSERR: Sep 25 09:37:56 :: pid_init:

Start of pid: 1287



SYSERR: Sep 25 09:37:56 :: socket_bind: bind: Address already in use

Db Syser

Kod:
SYSERR: Sep 25 09:37:07 :: Process: FDWATCH: peer null in event: ident 24

SYSERR: Sep 25 09:37:34 :: Process: FDWATCH: peer null in event: ident 24
 
En son bir moderatör tarafından düzenlenmiş:
Vrunneri kapatıp öyle kontrol edin demiştim. Şuan syserr kayıtları temiz gözüküyor
 
Tamamdır. Vrunner'i kapatınca sorun düzelmeyecek zaten. Sadece oyun çöktüğünde sürekli olarak açmaya uğraşmayacak. Şimdi aynı işlemleri tekrardan gerçekleştirin ve server düştüğünde büyük ihtimal .core verecektir. core dosyasına gdb ile bakabilirsiniz.
 
Tamamdır. Vrunner'i kapatınca sorun düzelmeyecek zaten. Sadece oyun çöktüğünde sürekli olarak açmaya uğraşmayacak. Şimdi aynı işlemleri tekrardan gerçekleştirin ve server düştüğünde büyük ihtimal .core verecektir. core dosyasına gdb ile bakabilirsiniz.
Sunucuda kanal dosyalarının içerisinde bulunuyor. Ch1 ve db içerisindeki syserr i not defteri ile açıp ayrı ayrı buraya atın.
Hata bu şekilde çıktı ustam

game.core gatası.png
 
Çekirdek crash verdiği için server kapanmış. Vrunner aktif olduğu zaman server çökse bile otomatik olarak sürekli açmaya çalıştığı için hatanın kaynağını bulmak gözden kaçabiliyor.

Hata mesajının içerisinde kodlardan bahsetmiş.
"[Dükkan] bir dükkana sahipken krallık değiştiremezsin." uyarısı var. Bu kod sonradan eklenmiş. Offlineshop'la ilgili olması lazım. Dosyalarda bu cümleyi arattıktan sonra kodları paylaşabilir misiniz? Bakalım tam olarak neden çöküyormuş.
 
"OFFLINE_SHOP_ERROR";
"[Dükkan] Bir hata oluştu lütfen daha sonra tekrar deneyiniz. ";

"OFFLINE_SHOP_NOUT_ENOUGH_SPACE";
"[Dükkan] Envanterinde yeterli depolama alanı yok. ";

"OFFLINE_SHOP_NOT_BUY_YOUR_SHOP";
"[Dükkan] Kendi dükkanından nesne satın alamazsın. ";

"OFFLINE_SHOP_ITEM_SOLD";
"[Dükkan] Dükkandan %s adlı nesne silindi. ";

"OFFLINE_SHOP_ITEM_ADDED";
"[Dükkan] Dükkana %s adlı nesne eklendi. ";

"OFFLINE_SHOP_ITEM_TAKED";
"[Dükkan] Dükkandan %s adlı nesne geri alındı. ";

"OFFLINE_SHOP_OPTION_BLOCK";
"[Dükkan] Şuanda bu seçeneği kullanamazsın. ";

"OFFLINE_SHOP_SAME_CHANNEL";
"[Dükkan] Dükkanını kapatmak için dükkan ile aynı kanalda olman gerekiyor. ";

"OFFLINE_SHOP_BINDEDL_ITEM";
"[Dükkan] Ruha bağlı nesneleri dükkan üzerinde satışa sunamazsın. ";

"OFFLINE_SHOP_EQUIPED_ITEM";
"[Dükkan] Kuşanılmış nesneleri dükkan üzerinde satışa sunamazsın. ";

"OFFLINE_SHOP_KILITLI_NESNE";
"[Dükkan] Kilitli nesneleri dükkan üzerinde satışa sunamazsın. ";

"OFFLINE_SHOP_ITEM_NOT_SELL";
"[Dükkan] Bu nesne dükkan üzerinde satışa sunulamaz. ";

"OFFLINE_SHOP_PRICE_CORRECT";
"[Dükkan] Geçerli bir miktar giriniz. ";

"OFFLINE_SHOP_TIME_CHANGED";
"[Dükkan] Dükkan süresi başarıyla değiştirildi. ";

"OFFLINE_SHOP_DISTANCE";
"[Dükkan] Nesne satın alabilmek için dükkandan çok uzaktaın. ";

"OFFLINE_SHOP_PRICE_BIG";
"[Dükkan] Mevcut miktardan fazlasını çekemezsin. ";

"OFFLINE_SHOP_PRICE_ERROR";
"[Dükkan] Şuanda bu miktar çekilemez. ";

"OFFLINE_SHOP_YANG_TAKED";
"[Dükkan] Bankadan %d Yang çekildi. ";

"OFFLINE_SHOP_BAR1_TAKED";
"[Dükkan] Bankadan %d adet Bar(50M) çekildi. ";

"OFFLINE_SHOP_BAR2_TAKED";
"[Dükkan] Bankadan %d adet Bar(100M) çekildi. ";

"OFFLINE_SHOP_BAR3_TAKED";
"[Dükkan] Bankadan %d adet Bar(250M) çekildi. ";

"OFFLINE_SHOP_SOUL_STONE_TAKED";
"[Dükkan] Bankadan %d adet Ruh Taşı çekildi. ";

"OFFLINE_SHOP_DRAGON_SCALE_TAKED";
"[Dükkan] Bankadan %d adet Ejderha Pulu çekildi. ";

"OFFLINE_SHOP_DRAGON_CLAW_TAKED";
"[Dükkan] Bankadan %d adet Ejderha Pençesi çekildi. ";

"OFFLINE_SHOP_CHEQUE_TAKED";
"[Dükkan] Bankadan %d Won çekildi. ";

"OFFLINE_SHOP_YOU_DEAD";
"[Dükkan] Ölü iken dükkan açamazsın. ";

"OFFLINE_SHOP_TRADE_WINDOW";
"[Dükkan] Ticaret penceresi aktif iken dükkan açamazsın. ";

"OFFLINE_SHOP_HAVE_SHOP";
"[Dükkan] Mevcut bir dükkanın var iken dükkan açamazsın. ";

"OFFLINE_SHOP_SHOP_WINDOW";
"[Dükkan] Dükkan penceresi aktif iken dükkan açamazsın. ";

"OFFLINE_SHOP_CUBE_WINDOW";
"[Dükkan] Arında penceresi aktif iken özel dükkan açamazsın. ";

"OFFLINE_SHOP_SAFEBOX_AKTIF";
"[Dükkan] Eşya deposu penceresi aktif iken dükkan açamazsın. ";

"OFFLINE_SHOP_PLAYER_SHOP_DESTROY";
"[Dükkan] %s adlı oyuncunun dükkanı kapatıldı. ";

"OFFLINE_SHOP_PLAYER_SHOP_DONT_DESTROY";
"[Dükkan] %s adlı oyunun dükkanı kapatılamaz. ";

"OFFLINE_SHOP_TAKE_ITEMS";
"[Dükkan] Dükkan açabilmek için önce satılmayan nesneleri geri almalısın. ";

"OFFLINE_SHOP_MAX_COUNT";
"[Dükkan] Haritada dükkan sayısı maksimum sınıra ulaştığı için şuanda dükkan açamazsın. ";

"OFFLINE_SHOP_NOT_OPEN_SHOP_HERE";
"[Dükkan] Bu bölgede özel dükkan açamazsın. ";

"OFFLINE_SHOP_5_LEVEL";
"[Dükkan] Özel dükkan açabilmek için 5. seviyeye ulaşman gerekiyor. ";

"OFFLINE_SHOP_NEED_ITEM";
"[Dükkan] Dükkan açabilmek için x%d adet %s gerekiyor. ";

"OFFLINE_SHOP_ENTER_TITLE";
"[Dükkan] Dükkan başlığı boş bırakılamaz. ";

"OFFLINE_SHOP_CORRECT_TITLE";
"[Dükkan] Geçerli bir dükkan başlığı giriniz. ";

"OFFLINE_SHOP_NOT_OPEN";
"[Dükkan] Dükkan açılamazdı, tekrar deneyiniz. ";

"OFFLINE_SHOP_6HOURS";
"[Dükkan] Dükkan başarıyla açıldı. Geçerli dükkan süresi 6 saat. ";

"OFFLINE_SHOP_CHANGE_EMPIRE";
"[Dükkan] Bir dükkana sahipken krallık değiştiremezsin. ";
locale_string.txt dosyasının içinde böyle bir kod mevcut hocam
 
Kaynak kodunda şunu aratabilir misiniz?
C++:
LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE")
 
Kaynak kodunda şunu aratabilir misiniz?
C++:
LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE")
C++:
#ifdef WJ_OFFLINESHOP_SYSTEM
        if (ch && ch->CanChangeEmpireOfflineShopCheck() == false) {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE"));
            lua_pushnumber(L, 4);
            return 0;
        }
buyrun hocam arattığım kodda bu çıktı ekran görüntüsü ve kaynak dosyasının kendisinide ekledim
Linkleri görebilmek için giriş yap veya kayıt ol.
 

Dosya Eklentileri

  • 123123.png
    123123.png
    164,5 KB · Gösterim: 122
Kodları resim olarak atmanıza gerek yoktu. :) Direk editöre ekleyebilirdiniz. Şimdi tam olarak hatanın yeri nereden kaynaklı bulmak gerekiyor.

char.cpp içerisinde bulunan CanChangeEmpireOfflineShopCheck fonksiyondan da kaynaklı olabilir. Daha net anlayabilmek için bu fonksiyonuda ekleyebilir misiniz?

Sizden iki şey denemenizi isteyeceğim. Bunlardan ilki.
C++:
        if (ch && ch->CanChangeEmpireOfflineShopCheck() == false) {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE"));
            lua_pushnumber(L, 4);
            return 0;
        }

Buradaki ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE")); kodu kaldırdıktan sonra kaynak kodlarını build edip oyun içerisinde krallık değiştirmeye çalışın. Pazar kuruluyken ve kurulu değilken deneyiniz.

İkincisi ise change_empire fonksiyonunu şu şekilde düzenleyin.
C++:
    int pc_change_empire(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

#ifdef WJ_OFFLINESHOP_SYSTEM
        if (ch && ch->CanChangeEmpireOfflineShopCheck() == false) {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE"));
            lua_pushnumber(L, 4);
            return 0;
        }
#endif

        lua_pushnumber(L, ch->ChangeEmpire((unsigned char)lua_tonumber(L, 1)));

        return 1;
    }
 
Çözüm
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OFFLINE_SHOP_CHANGE_EMPIRE"));


Hocam İlgin alakan için Teşekkür ederim sadece bu kodu sildim denedim ve problemim çözüldü :) Hakkını helal et
 
Hak helal edecek bir durum ancak içiniz rahat edecekse helal olsun. :D

Doğru soru sorulduğu zaman cevaba ulaşmakta bir o kadar kolay oluyor. Sadece biraz sabretmek gerekiyor. :)

Bu konu sayesinde game crash sorunlarına nasıl bakılacağını ve çözüleceğini de öğrenmiş olacaklardır.

Konu başlığını çözüldü işaretleyip kilitliyorum. İyi çalışmalar :)
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst