📄 uniqueitemmanager.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : UniqueItemManager.cpp// Written By : suigui// Description ://////////////////////////////////////////////////////////////////////////////#include "UniqueItemManager.h"#include "ItemInfoManager.h"#include "Item.h"#include "DB.h"UniqueItemManager* g_pUniqueItemManager = NULL;//----------------------------------------------------------------------// init//----------------------------------------------------------------------void UniqueItemManager::init() throw (Error){ __BEGIN_TRY __BEGIN_DEBUG Statement* pStmt = NULL; BEGIN_DB { pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement(); // DB俊辑 泅犁狼 蔼阑 佬绢柯促. Result* pResult = pStmt->executeQuery( "SELECT ItemClass, ItemType FROM UniqueItemInfo"); // 瘤沥等 itemClas, itemType阑 Unique Item栏肺 汲沥茄促. while (pResult->next()) { Item::ItemClass itemClass = (Item::ItemClass)pResult->getInt(1); int itemType = pResult->getInt(2); ItemInfo* pItemInfo = g_pItemInfoManager->getItemInfo( itemClass, itemType ); Assert(pItemInfo!=NULL); pItemInfo->setUnique(); } SAFE_DELETE(pStmt); } END_DB(pStmt); __END_CATCH __END_DEBUG}//----------------------------------------------------------------------// is Possible Create//----------------------------------------------------------------------bool UniqueItemManager::isPossibleCreate(Item::ItemClass itemClass, ItemType_t itemType) throw(Error){ __BEGIN_TRY __BEGIN_DEBUG Statement* pStmt = NULL; BEGIN_DB { pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement(); // DB俊辑 泅犁狼 蔼阑 佬绢柯促. Result* pResult = pStmt->executeQuery( "SELECT LimitNumber, CurrentNumber FROM UniqueItemInfo WHERE ItemClass=%d AND ItemType=%d", (int)itemClass, (int)itemType); if (pResult->next()) { int limitNumber = pResult->getInt(1); int currentNumber = pResult->getInt(2); return limitNumber==0 || currentNumber<limitNumber; } SAFE_DELETE(pStmt); } END_DB(pStmt); __END_CATCH __END_DEBUG return false;}//----------------------------------------------------------------------// createItem//----------------------------------------------------------------------// DB俊辑 俺荐 刘啊//----------------------------------------------------------------------void UniqueItemManager::createItem(Item::ItemClass itemClass, ItemType_t itemType) throw(Error){ __BEGIN_TRY __BEGIN_DEBUG Statement* pStmt = NULL; BEGIN_DB { pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement(); // DB俊辑 泅犁狼 蔼阑 佬绢柯促. pStmt->executeQuery( "UPDATE UniqueItemInfo SET CurrentNumber=CurrentNumber+1 WHERE ItemClass=%d AND ItemType=%d", (int)itemClass, (int)itemType); SAFE_DELETE(pStmt); } END_DB(pStmt); __END_CATCH __END_DEBUG}//----------------------------------------------------------------------// deleteItem//----------------------------------------------------------------------// DB俊辑 俺荐 刘啊//----------------------------------------------------------------------void UniqueItemManager::deleteItem(Item::ItemClass itemClass, ItemType_t itemType) throw(Error){ __BEGIN_TRY __BEGIN_DEBUG Statement* pStmt = NULL; BEGIN_DB { pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement(); // DB俊辑 泅犁狼 蔼阑 佬绢柯促. pStmt->executeQuery( "UPDATE UniqueItemInfo SET CurrentNumber=CurrentNumber-1 WHERE ItemClass=%d AND ItemType=%d", (int)itemClass, (int)itemType); SAFE_DELETE(pStmt); } END_DB(pStmt); __END_CATCH __END_DEBUG}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -