Genel Araştırma
'depo' etiketi için arama sonuçları.
Araştırmada 1 sonuç bulundu
-
Merhaba... VipStorage Depo itemleri koyunca bi kaç siliniyor Sonra item süresi eski tarih gösteriyor. 1.Soru : Cevap: Anahtar eklemiştim tarih doğru verildi. 2.Soru : Cevap : 2 tanesi item koydum.. Sonrada kapattım tekrar açınca Sonrada 3. Soru: Cevap : item süresi oluyo neden. CDBAgent-> LoadWarehouseDataVip bool CDBAgent::LoadWarehouseDataVip(string & strAccountID, CUser *pUser) { char strVIPItem[VIPSTORAGE_MAX * 12], strVIPSerial[VIPSTORAGE_MAX * 8]; unique_ptr dbCommand(m_GameDB->CreateCommand()); if (dbCommand.get() == nullptr) return false; if (pUser == nullptr || pUser->m_bLogout) return false; dbCommand->AddParameter(SQL_PARAM_INPUT, strAccountID.c_str(), strAccountID.length()); if (!dbCommand->Execute(_T("SELECT strVIPItem, strVIPSerial, VIPStorePassword, VIPStoreMinute FROM VIP_WAREHOUSE WHERE strAccountID = ?"))) ReportSQLError(m_GameDB->GetError()); if (!dbCommand->hasData()) return false; memset(strVIPItem, 0x00, sizeof(strVIPItem)); memset(strVIPSerial, 0x00, sizeof(strVIPSerial)); dbCommand->FetchBinary(1, strVIPItem, sizeof(strVIPItem)); dbCommand->FetchBinary(2, strVIPSerial, sizeof(strVIPSerial)); dbCommand->FetchString(3, pUser->VIPStorePassword); dbCommand->FetchUInt32(54, pUser->nVIPExpirationTime); ByteBuffer VitemBuffer, VserialBuffer, VitemExBuffer; VitemBuffer.append(strVIPItem, sizeof(strVIPItem)); VserialBuffer.append(strVIPSerial, sizeof(strVIPSerial)); memset(pUser->m_sVIPItemArray, 0x00, sizeof(pUser->m_sVIPItemArray)); for (int i = 0; i { uint64 nSerialNum; uint32 nItemID; int16 sDurability, sCount; VitemBuffer >> nItemID >> sDurability >> sCount; VserialBuffer >> nSerialNum; _ITEM_TABLE *pTable = g_pMain->GetItemPtr(nItemID); if (pTable == nullptr || sCount continue; if (!pTable->m_bCountable && sCount > 1) sCount = 1; else if (sCount > ITEMCOUNT_MAX) sCount = ITEMCOUNT_MAX; pUser->m_sVIPItemArray[i].nNum = nItemID; pUser->m_sVIPItemArray[i].sDuration = sDurability; pUser->m_sVIPItemArray[i].sCount = sCount; pUser->m_sVIPItemArray[i].nSerialNum = nSerialNum; UserItemSealMap::iterator sealitr = pUser->m_sealedItemMap.find(nSerialNum); if (sealitr != pUser->m_sealedItemMap.end()) { if (sealitr->second->bSealType == 1) pUser->m_sVIPItemArray[i].bFlag = ITEM_FLAG_SEALED; else if (sealitr->second->bSealType == 3) pUser->m_sVIPItemArray[i].bFlag = ITEM_FLAG_BOUND; } if (g_pMain->IsDuplicateItem(nItemID, nSerialNum)) pUser->m_sVIPItemArray[i].bFlag = ITEM_FLAG_DUPLICATE; } return true; } CDBAgent-> UpdateWarehouseDataVip bool CDBAgent::UpdateWarehouseDataVip(string & strAccountID, UserUpdateType type, CUser *pUser) { if (strAccountID.length() == 0) return false; unique_ptr dbCommand(m_GameDB->CreateCommand()); if (dbCommand.get() == nullptr) return false; if (type == UPDATE_LOGOUT || type == UPDATE_ALL_SAVE) pUser->m_dwTime = 0; // This *should* be padded like the database field is (unnecessarily), but I want to see how MSSQL responds. ByteBuffer strVIPItem, strVIPSerial; for (int i = 0; i { _ITEM_DATA *pItem = &pUser->m_sVIPItemArray[i]; strVIPItem nNum sDuration sCount; strVIPSerial nSerialNum; } dbCommand->AddParameter(SQL_PARAM_INPUT, (char *)strVIPItem.contents(), strVIPItem.size(), SQL_BINARY); dbCommand->AddParameter(SQL_PARAM_INPUT, (char *)strVIPSerial.contents(), strVIPSerial.size(), SQL_BINARY); dbCommand->AddParameter(SQL_PARAM_INPUT, strAccountID.c_str(), strAccountID.length()); if (!dbCommand->Execute(string_format(_T("UPDATE VIP_WAREHOUSE SET strVIPItem=?, strVIPSerial=? , VIPStoreMinute=%d WHERE strAccountID=?"), pUser->nVIPExpirationTime))) { ReportSQLError(m_GameDB->GetError()); return false; } return true; } Sloth hesaplamıştım eğer yanlış varsa Söyle VIPSTORAGE_MAX 48 char strVIPItem[VIPSTORAGE_MAX * 12], strVIPSerial[VIPSTORAGE_MAX * 8]; 48 * 12 = 576 48 * 8 = 384 CREATE TABLE [dbo].[VIP_WAREHOUSE]( [strAccountID] [char](21) NOT NULL, [strUserID] [char](21) NULL, [strVIPItem] [binary](576) NULL, [strVIPSerial] [binary](384) NULL, [VIPStorePassword] [char](4) NOT NULL, [VIPStoreMinute] [int] NOT NULL, CONSTRAINT [PK_WAREHOUSE_VIP] PRIMARY KEY CLUSTERED ( [strAccountID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[VIP_WAREHOUSE] ADD CONSTRAINT [DF_VIP_WAREHOUSE_VIPStorePassword_1] DEFAULT ('0') FOR [VIPStorePassword] GO ALTER TABLE [dbo].[VIP_WAREHOUSE] ADD CONSTRAINT [DF_VIP_WAREHOUSE_VIPStoreMinute_1] DEFAULT ((0)) FOR [VIPStoreMinute] GO DB Deki VIP_WAREHOUSE http://prntscr.com/hs3sh1 DB Kayıtladı İyi Çalışmalar Ko-kodevelopers.Com
- 3 yanıt
-
- vipstorage
- depo
-
(2 tane daha)
İle Etiketeklendi: