- Mesaj
- 97
- Çözümler
- 9
- Beğeni
- 36
- Puan
- 469
- Ticaret Puanı
- 0
Merhaba arkadaşlar Serverime Bu Konudaki 4 Taş sistemini ekledim Ama Oyuna Reboot Atınca 4 Taş Kaybolma Sorunu Var Bunu Naıl Fixlerm Yardımlarınzı Bekleyorum.. İteme 4 Taş Ekleme Sistemi
if (isSocket)
{
iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2");
iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
", %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]);
iUpdateLen += snprintf(szUpdate + iUpdateLen...
if (isSocket)
{
iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2");
iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
", %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]);
iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen,
", socket0=%lu, socket1=%lu, socket2=%lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]);
}
if (isSocket)
{
iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2, socket3");
iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen,
", %lu, %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2], p->alSockets[3]);
iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen,
", socket0=%lu, socket1=%lu, socket2=%lu, socket3=%lu", p->alSockets[0], p->alSockets[1], p->alSockets[2], p->alSockets[3]);
}
MySQL item tablosuna yeni socket sütunlarını da eklediniz mi?
Ekleme: Linkte belirttiğiniz konuda sanki eksik kodlar var gibi. Bu sistem için başka yerlerden de düzenleme yapılması gerekiyordu ama tam hatırlamıyorum. Eski filesimde ki kodlara bakmam gerek.
db/src/cache.cpp dosyasında CItemCache::OnFlush() fonksiyonu içinde şu satırı aratın;
C++:if (isSocket) { iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2"); iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen, ", %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]); iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen, ", socket0=%lu, socket1=%lu, socket2=%lu", p->alSockets[0], p->alSockets[1], p->alSockets[2]); }
Şu şekilde düzenleyin;
Bu kodları değiştirmemizin sebebi şu. Oyuna giriş yaptığınızda veritabanından itemleriniz çekilir ve bir önbelleğe alınır. Önbellekten kayıt işlemleri belli zaman aralıklarında yapılır. İlgili konuda burayla ilgili düzenleme verilmediği için son eklenen taşın silinmesi gayet normal.C++:if (isSocket) { iLen += snprintf(szColumns + iLen, sizeof(szColumns) - iLen, ", socket0, socket1, socket2, socket3"); iValueLen += snprintf(szValues + iValueLen, sizeof(szValues) - iValueLen, ", %lu, %lu, %lu, %lu", p->alSockets[0], p->alSockets[1], p->alSockets[2], p->alSockets[3]); iUpdateLen += snprintf(szUpdate + iUpdateLen, sizeof(szUpdate) - iUpdateLen, ", socket0=%lu, socket1=%lu, socket2=%lu, socket3=%lu", p->alSockets[0], p->alSockets[1], p->alSockets[2], p->alSockets[3]); }![]()
Oyuna bağlanırken hata diyor hocam. Dediğiniz gibi yaptım ama sadece dbyi build ettim. Eski game yi ellemedim. Ondan mıdır acaba hocamNe hatası?
Sorunum çözülmüştür dediğiniz gibi db/src/cache.cpp Tek düzenlemem yeterli oldu teşekkürler. SORUN ÇÖZÜLDÜ.Oyunu açtıktan sonra filesin syserr kayıtlarına bir bakın. Bu dbyi ilgilendirdiği için db syserrlerine bir bakın bakalım hata filan var mı?
Birde db.core filan var mı onuda kontrol edin.
Sorunum çözülmüştür dediğiniz gibi db/src/cache.cpp Tek düzenlemem yeterli oldu teşekkürler. SORUN ÇÖZÜLDÜ.
Bende direk tüm itemler siliniyor bu arada parlamalar bozuldu diye proto dosyasında socket sütununu 4 yaptım diye ben de sadece db tarafında güncelledim locale proto kısmında eski socket sayıları yazıyor. buna ragmen her restart rebootda tüm envanter siliniyor sadece socketli itemler değil iksirler vb herşey siliniyor şuan bunu çözmeye calısıyorum galiba cache.cpp dosyasından kaynaklanıyor olabilirEkli olan tüm itemlerden dirke 4 taş siliniyor mu yoksa taş ekleyip reboot attıktan sonra o eklediğin itemdeki taşlarmı gidiyor ?