Çözüldü Great Offline Shop İtem Düzenleme Sorunu

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

Kaiser

⋞ 〈 ☪ 〉 ⋟
Site yetkilisi
Admin
Premium Üye
Geliştirici
Yardımsever Üye
Mesaj
3.749
Çözümler
354
Beğeni
3.649
Puan
1.849
Ticaret Puanı
0
Merhaba, great offline shop üzerine yoğunlaştım bir kaç gündür. Bazı ufak tefek sorunlarını falan giderdim ama bu sorunu bir türlü çözemedim.
İtem düzenleme ekranında itemlerin efsunu fotoğraftaki gibi görünüyor.

asd.jpg


Bu sorun sadece düzenleme ekranında oluyor. İtemi satın alınca ya da shop içindeyken herhangi bir sorun yok. Bununla ilgili game.py üzerinden bir fix paylaşılmış ancak bende işe yaramadı maalesef. Herhangi bir syserr kaydı da yok. Bir fikri olan var mı?

AddItemData olarak Gift ile aynı fonksiyonu kullanıyor. Gift de hiç bir sorun yok, attrleri falan sorunsuz çekip gösteriyor ama düzenleme ekranında nedense böyle oluyor.
 
Çözüm
Sorunun sebebini buldum, bir zaman önce forumdan birinin tavsiyesi üzerine cmd_general.cpp dosyasındaki bir warningi çözmek için şöyle bir şey yapmıştım;

C++:
#ifdef ENABLE_OFFLINE_SHOP_USE_CHEQUE
            int col = 6;
            int xcol = col;
#else
            int col = 5;
#endif
            char attrs[1024] = { '\0' };
            char sockets[1024] = { '\0' };
            for (int i = 0; i<ITEM_SOCKET_MAX_NUM; i++)
                sprintf(sockets, "%s%s%s", sockets, row[col++], (i<ITEM_SOCKET_MAX_NUM-1 ? "|" : ""));
            //col--;

            for (int i = 0; i<ITEM_ATTRIBUTE_MAX_NUM; i++)
                sprintf(attrs, "%s%s,%s%s", attrs, row[xcol++], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));
#ifdef...
Başka bir sistemden kaynaklanıyor olabilir. Bende yaşamıştım böyle bir sorun kendi geliştirdiğim sistemde aynı böyle bozulma olmuştu sebebi ise ortalama fiyat sistemindendi. Belki senin sorunda buna benzer bir sistemden kaynaklı olabilir.
 
Sorunun sebebini buldum, bir zaman önce forumdan birinin tavsiyesi üzerine cmd_general.cpp dosyasındaki bir warningi çözmek için şöyle bir şey yapmıştım;

C++:
#ifdef ENABLE_OFFLINE_SHOP_USE_CHEQUE
            int col = 6;
            int xcol = col;
#else
            int col = 5;
#endif
            char attrs[1024] = { '\0' };
            char sockets[1024] = { '\0' };
            for (int i = 0; i<ITEM_SOCKET_MAX_NUM; i++)
                sprintf(sockets, "%s%s%s", sockets, row[col++], (i<ITEM_SOCKET_MAX_NUM-1 ? "|" : ""));
            //col--;

            for (int i = 0; i<ITEM_ATTRIBUTE_MAX_NUM; i++)
                sprintf(attrs, "%s%s,%s%s", attrs, row[xcol++], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));
#ifdef ENABLE_OFFLINE_SHOP_USE_CHEQUE
            ch->ChatPacket(CHAT_TYPE_COMMAND, "shop_item %s#%s#%s#%s#%s#%s#%s#%s", row[0], row[1], row[2], row[3], row[4], row[5], sockets, attrs);
#else
            ch->ChatPacket(CHAT_TYPE_COMMAND, "shop_item %s#%s#%s#%s#%s#%s#%s", row[0], row[1], row[2], row[3], row[4], sockets, attrs);
#endif

Warningi çözmüşüz ama bu soruna sebep olmuşuz :D xcol tanımını tavsiye üzerine eklemiştim. Kodu şu şekilde orjinal haline çevirince sorun düzeldi;

C++:
#ifdef ENABLE_OFFLINE_SHOP_USE_CHEQUE
            int col = 6;
#else
            int col = 5;
#endif
            char attrs[1024] = { '\0' };
            char sockets[1024] = { '\0' };
            for (int i = 0; i<ITEM_SOCKET_MAX_NUM; i++)
                sprintf(sockets, "%s%s%s", sockets, row[col++], (i<ITEM_SOCKET_MAX_NUM-1 ? "|" : ""));
            //col--;

            for (int i = 0; i<ITEM_ATTRIBUTE_MAX_NUM; i++)
                sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));
#ifdef ENABLE_OFFLINE_SHOP_USE_CHEQUE
            ch->ChatPacket(CHAT_TYPE_COMMAND, "shop_item %s#%s#%s#%s#%s#%s#%s#%s", row[0], row[1], row[2], row[3], row[4], row[5], sockets, attrs);
#else
            ch->ChatPacket(CHAT_TYPE_COMMAND, "shop_item %s#%s#%s#%s#%s#%s#%s", row[0], row[1], row[2], row[3], row[4], sockets, attrs);
#endif

Teşekkürler :)
 

Dosya Eklentileri

  • cmd.jpg
    cmd.jpg
    53,2 KB · Gösterim: 89
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst