Çözüldü Max Yang Sistemi Sorun Acil

  • Konuyu açan Konuyu açan Ford99
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 21
  • Gösterim Gösterim 264
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ı.

Ford99

Üye
Üye
Mesaj
39
Beğeni
2
Puan
436
Ticaret Puanı
0
Max yang sistemini ekledim fakat shop kısmı çalışmıyor marketten eşya alırken 2T147M483K647 gözüküyor aklınıza gelebilecek herşeyi yaptım, no txt olarak çekiyor, navicat item_protoda gold ve shop_buy_price kısmını hiçbir şekilde 2147483647 üstüne çıkmıyor

#ifdef ENABLE_YANG_LIMIT_SYSTEM
"%d, %d, %d, \"%s\", \"%s\", %lld, %lld, %d, %d, "
#else
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
#endif

#ifdef ENABLE_YANG_LIMIT_SYSTEM
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.llGold, t.llShopBuyPrice, t.bWeight, t.bSize,
#else
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
#endif

#ifdef ENABLE_YANG_LIMIT_SYSTEM
"%d, %d, %d, \"%s\", %lld, %lld, %d, %d, "
#else
"%d, %d, %d, \"%s\", %d, %d, %d, %d, "
#endif

#ifdef ENABLE_YANG_LIMIT_SYSTEM
t.dwVnum, t.bType, t.bSubType, t.szName, t.llGold, t.llShopBuyPrice, t.bWeight, t.bSize,
#else
t.dwVnum, t.bType, t.bSubType, t.szName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
#endif

#ifdef ENABLE_YANG_LIMIT_SYSTEM
item_table->llGold = tempTable->llGold;
item_table->llShopBuyPrice = tempTable->llShopBuyPrice;
#else
item_table->dwGold = tempTable->dwGold;
item_table->dwShopBuyPrice = tempTable->dwShopBuyPrice;
#endif

yukarısı clientmanagerboot.cpp
aşağısı tables.h

#ifdef ENABLE_YANG_LIMIT_SYSTEM
long long llGold;
long long llShopBuyPrice;
#else
DWORD dwGold;
DWORD dwShopBuyPrice;
#endif

aşağısı protoreader.cpp


#ifdef ENABLE_YANG_LIMIT_SYSTEM
itemTable->llGold = dataArray[9];
itemTable->llShopBuyPrice = dataArray[10];
#else
itemTable->dwGold = dataArray[9];
itemTable->dwShopBuyPrice = dataArray[10];
#endif
 
Son düzenleme:
Çözüm
@Ford99

İlk başta sorununu anlamamıştım fakat sonra kendimde test edince aynı sorunu yaşadığımı fark ettim.

db/src/ProtoReader.cpp aç
Arat:
C++:
Genişlet Daralt Kopyala
itemTable->dwGold = dataArray

Bendeki görünüm bu şekildeydi:

1737085168841.webp


İki satırı bu şekilde Değiştir:

C++:
Genişlet Daralt Kopyala
    itemTable->dwGold = std::stoll(csvTable.AsStringByIndex(9));
    itemTable->dwShopBuyPrice = std::stoll(csvTable.AsStringByIndex(10));
dataArray içerisindeki numaralar sende farklıysa sendekine göre değiştir.


Kanıt:

1737085099408.webp
Max yang sistemini ekledim fakat shop kısmı çalışmıyor marketten eşya alırken 2T147M483K647 gözüküyor aklınıza gelebilecek herşeyi yaptım, no txt olarak çekiyor, navicat item_protoda gold ve shop_buy_price kısmını hiçbir şekilde 2147483647 üstüne çıkmıyor
navicattan bigint 16 yaptınmı?
 
navicattan bigint 16 yaptınmı?
yaptım olmuyor

bigint yapıyorum navicattan fakat görmüyor bunu farklı yerden falanmı çekiyor anlamadım hep int 11 olarak alıyor sanırım


smallinti falan görüyor int üstüne çıkmıyor
 
En son bir moderatör tarafından düzenlenmiş:
Hocam öyle bir şey değil navicatte bigint yapsam dahi 2147483647 olarak alıyor veriyi max, smallint vs. çalışıyor 32767 falan alıyor öylede, ama bigint giriyorum bunu almıyor okumuyor, item_proto.txt üzerinden çekiyor
Txt üzerinden çekicek verisi yok tablolar sqlden çeker tablo bilgisi txte olmaz . Navicattan smallint değerinin karşısındaki uzunluğu 4 yapıyor musun
 
Oraları uyarlamadığın için olabilir mi?
Normal max_yang uyarlamaları anlatımlarında o kısımlar yok cumartesi günü pc gelicek yardımcı olurum.
 
Oraları uyarlamadığın için olabilir mi?
Normal max_yang uyarlamaları anlatımlarında o kısımlar yok cumartesi günü pc gelicek yardımcı olurum.
uyarlı hocam srcdende her yer
#ifdef ENABLE_YANG_LIMIT_SYSTEM
itemTable->llGold = dataArray[9];
itemTable->llShopBuyPrice = dataArray[10];
#else
itemTable->dwGold = dataArray[9];
itemTable->dwShopBuyPrice = dataArray[10];
#endif


#ifdef ENABLE_YANG_LIMIT_SYSTEM
item_table->llGold = tempTable->llGold;
item_table->llShopBuyPrice = tempTable->llShopBuyPrice;
#else
item_table->dwGold = tempTable->dwGold;
item_table->dwShopBuyPrice = tempTable->dwShopBuyPrice;
#endif


#ifdef ENABLE_YANG_LIMIT_SYSTEM
"%d, %d, %d, \"%s\", \"%s\", %lld, %lld, %d, %d, "
#else
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, "
#endif


#ifdef ENABLE_YANG_LIMIT_SYSTEM
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.llGold, t.llShopBuyPrice, t.bWeight, t.bSize,
#else
t.dwVnum, t.bType, t.bSubType, t.szName, t.szLocaleName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
#endif


#ifdef ENABLE_YANG_LIMIT_SYSTEM
"%d, %d, %d, \"%s\", %lld, %lld, %d, %d, "
#else
"%d, %d, %d, \"%s\", %d, %d, %d, %d, "
#endif


#ifdef ENABLE_YANG_LIMIT_SYSTEM
t.dwVnum, t.bType, t.bSubType, t.szName, t.llGold, t.llShopBuyPrice, t.bWeight, t.bSize,
#else
t.dwVnum, t.bType, t.bSubType, t.szName, t.dwGold, t.dwShopBuyPrice, t.bWeight, t.bSize,
#endif

hepsi uyarlı, sorunum bu zaten çok açık:
bigint yapıyorum gold ve shop_buy_price kısmını yinede max 2147483647 bu değeri veriyor bunu diyorum nasıl yaparız?
 
o zaman atladığın yer var. Hala int olarak alıyor değeri. Pack rootları falan değiştirdin mi
hocam orası basit iş ilk önce o eşyayı npcden aldığımda 2147483647 bu değer aralığında almaması lazım, navicat tabloda max 2147483647 bu değeri veriyor, bigint giriyorum yinede max bu değeri veriyor görüntü işi kolay
 
Ben seni anladım ama kaçırdığın bi yer var ki tabloda bigint verdiğin değer dword üstüne çıkmıyor bu yüzden en fazla dword limiti alıyorsun.
 
Ben seni anladım ama kaçırdığın bi yer var ki tabloda bigint verdiğin değer dword üstüne çıkmıyor bu yüzden en fazla dword limiti alıyorsun.
evet nasıl yaparız işte hocam kaçırdığım bir yer varsa neresi srcde heryer düzenli

m_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(item_table->dwVnum, item_table));
şuradaki dwordları falan düzenleyincemi düzeliyor acaba?
 
evet nasıl yaparız işte hocam kaçırdığım bir yer varsa neresi srcde heryer düzenli

m_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(item_table->dwVnum, item_table));
şuradaki dwordları falan düzenleyincemi düzeliyor acaba?
packet.h tables.h ve offlineshop dosyalarını konuya dahil edermisin navicat tablonda hiçbir problem yok navicat tablon bigint 16 olarak kalsın. gamede eksik taraf mevcut
 
packet.h tables.h ve offlineshop dosyalarını konuya dahil edermisin navicat tablonda hiçbir problem yok navicat tablon bigint 16 olarak kalsın. gamede eksik taraf mevcut
#ifdef ENABLE_YANG_LIMIT_SYSTEM
long long llGold;
long long llShopBuyPrice;
#else
DWORD dwGold;
DWORD dwShopBuyPrice;
#endif

packet.h ve offlineshopluk bir durum yok hocam, yukardaki tables.h kodu ekli zaten
 
#ifdef ENABLE_YANG_LIMIT_SYSTEM
long long llGold;
long long llShopBuyPrice;
#else
DWORD dwGold;
DWORD dwShopBuyPrice;
#endif

packet.h ve offlineshopluk bir durum yok hocam, yukardaki tables.h kodu ekli zaten
Dostum dosyaları görmeden duzenleyemem ve sorununu çözemem sorunun navicatta değil. Ek olarak istediğim dosyaları eklersen problemini çözerim eklemezsen maalesef yardımcı olamam. Normal markette sorun yasiyorsan eğer shop.cpp ve shop.h iletmen yeterli
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst