#include "stdafx.h" #include "ItemSerialMgr.h" #include #include #include namespace Item { CItemSerialMgr::CItemSerialMgr() : m_dwItemSerial(0LL), m_dwServerID(0) { } CItemSerialMgr::~CItemSerialMgr() { } bool CItemSerialMgr::SetItemSerial(unsigned __int64 dwItemSerial) { if(m_dwItemSerial < dwItemSerial) { m_dwItemSerial = dwItemSerial; return true; } return false; } bool CItemSerialMgr::LoadItemSerial(CDBComponent& DBComponent, unsigned long dwServerID) { m_dwItemSerial = 0LL; m_dwServerID = dwServerID; using namespace DBComponent; if (!GameDB::GetItemUID(DBComponent, dwServerID, &m_dwItemSerial, true)) { // ¾ÆÀÌÅÛ ½Ã¸®¾ó ¸· Ä¿Áö´Â °Ç ¹ö±×¿´À½.. Àü°ú °°ÀÌ Á¸ / ä³Î 2byteüÁ¦·Î °£´Ù. SERVER_ID serverID; serverID.dwID = dwServerID; m_dwItemSerial = ((static_cast(serverID.GetZone()) << 56) & 0xFF00000000000000LL) | ((static_cast(serverID.GetChannel()) << 48) & 0x00FF000000000000LL); // µî·ÏµÇÁö ¾ÊÀº ¼­¹ö if (!GameDB::InsertItemUID(DBComponent, dwServerID, m_dwItemSerial)) { ERRLOG1(g_Log, "ServerID:0x%08X / ¾ÆÀÌÅÛ ½Ã¸®¾ó ¾ò±â ½ÇÆÐ", m_dwServerID); return false; } } // ¾ÆÀÌÅÛ ½Ã¸®¾ó Áߺ¹À» ¸·±â À§ÇØ, ÀÓÀÇ·Î ¾à°£ ´õÇØÁØ´Ù m_dwItemSerial += 10LL; return true; } bool CItemSerialMgr::SaveItemSerial(CDBComponent& DBComponent, unsigned long dwServerID) { if(m_dwServerID != dwServerID) { ERRLOG2(g_Log, "OldServerID:0x%08X / NewServerID:0x%08X / ¾ÆÀÌÅÛ ½Ã¸®¾ó ÀúÀå ½ÇÆÐ : ¼­¹ö ID°¡ ´Ù¸¨´Ï´Ù", m_dwServerID, dwServerID); } else { using namespace DBComponent; if(GameDB::SetItemUID(DBComponent, dwServerID, m_dwItemSerial)) { return true; } else { ERRLOG2(g_Log, "ServerID:0x%08X / ItemSerial : 0x016I64X / ¾ÆÀÌÅÛ ½Ã¸®¾ó ÀúÀå ½ÇÆÐ : DB¿¡ ½Ã¸®¾ó ÀúÀå ½ÇÆÐ", m_dwServerID, m_dwItemSerial); } } return false; } }