#include "stdafx.h" #include #include #include #include #include #include "ItemCreator.h" CItemCreator& CItemCreator::GetInstance() { static CItemCreator itemCreator; return itemCreator; } CItemCreator::CItemCreator() { } // Desc : ¾ÆÀÌÅÛ ½ºÅ©¸³Æ® ·Îµù ¹× ÃʱâÈ­ µîµî. bool CItemCreator::Initialize() { ItemCreationLock::Syncronize sync(m_ItemCreationLock); char szItemScriptName[MAX_PATH]; if (SERVER_ID::GROUP_BATTLE_SERVER == CServerSetup::GetInstance().GetServerGroup()) { strncpy(szItemScriptName, "./Script/Game/BGItemScript.txt", MAX_PATH); } else { strncpy(szItemScriptName, "./Script/Game/ItemScript.txt", MAX_PATH); } return Item::CItemMgr::GetInstance().LoadItemProtoType(szItemScriptName); } // Desc : ¾ÆÀÌÅÛ UID ¼¼ÆÃ void CItemCreator::SetUID(DWORD64 dwUID) { ItemCreationLock::Syncronize sync(m_ItemCreationLock); Item::CItemFactory& ItemFactory = Item::CItemFactory::GetInstance(); if(ItemFactory.GetItemUID() < dwUID) { ItemFactory.SetItemUID(dwUID); } } DWORD64 CItemCreator::GetUID() const { return Item::CItemFactory::GetInstance().GetItemUID(); } // Desc : ¾ÆÀÌÅÛ »ý¼º Item::CItem* CItemCreator::Create(unsigned short usID) { ItemCreationLock::Syncronize sync(m_ItemCreationLock); return Item::CItemFactory::GetInstance().CreateItem(usID); }