fix: RESULT_SAFEBOX_LOAD.
This commit is contained in:
parent
74e9f0e99d
commit
42fd697dac
@ -747,6 +747,21 @@ void CClientManager::RESULT_SAFEBOX_LOAD(CPeer *pkPeer, ClientHandleInfo *pi, pq
|
||||
|
||||
typeof(pSet->begin()) it = pSet->begin();
|
||||
|
||||
auto pool = CDBManager::instance().GetConnectionPool();
|
||||
auto conn = pool->acquire();
|
||||
|
||||
pqxx::work txn{*conn};
|
||||
|
||||
static bool prepared = false;
|
||||
if (!prepared)
|
||||
{
|
||||
conn->prepare("result_safebox_load_insert_item",
|
||||
"INSERT INTO player.item (id, owner_id, window, position, vnum, count, socket_0, socket_1, socket_2) "
|
||||
"VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING id");
|
||||
|
||||
prepared = true;
|
||||
}
|
||||
|
||||
while (it != pSet->end())
|
||||
{
|
||||
TItemAward *pItemAward = *(it++);
|
||||
@ -847,17 +862,20 @@ void CClientManager::RESULT_SAFEBOX_LOAD(CPeer *pkPeer, ClientHandleInfo *pi, pq
|
||||
|
||||
{
|
||||
itertype(m_map_itemTableByVnum) it = m_map_itemTableByVnum.find(dwItemVnum);
|
||||
|
||||
if (it == m_map_itemTableByVnum.end())
|
||||
{
|
||||
SPDLOG_ERROR("Invalid item(vnum : {}). It is not in m_map_itemTableByVnum.", dwItemVnum);
|
||||
continue;
|
||||
}
|
||||
|
||||
TItemTable *item_table = it->second;
|
||||
if (item_table == NULL)
|
||||
{
|
||||
SPDLOG_ERROR("Invalid item_table (vnum : {}). It's value is NULL in m_map_itemTableByVnum.", dwItemVnum);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (0 == pItemAward->dwSocket0)
|
||||
{
|
||||
for (int i = 0; i < ITEM_LIMIT_MAX_NUM; i++)
|
||||
@ -884,21 +902,15 @@ void CClientManager::RESULT_SAFEBOX_LOAD(CPeer *pkPeer, ClientHandleInfo *pi, pq
|
||||
}
|
||||
}
|
||||
|
||||
auto pool = CDBManager::instance().GetConnectionPool();
|
||||
auto conn = pool->acquire();
|
||||
|
||||
try
|
||||
{
|
||||
pqxx::work txn{*conn};
|
||||
pqxx::result res = txn.exec_params(
|
||||
"INSERT INTO player.item (id, owner_id, window, position, vnum, count, socket_0, socket_1, socket_2) "
|
||||
"VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING id",
|
||||
pqxx::params{
|
||||
GainItemID(),
|
||||
pi->account_id,
|
||||
pi->ip[0] == 0 ? "SAFEBOX" : "MALL",
|
||||
iPos,
|
||||
pItemAward->dwVnum, pItemAward->dwCount, pItemAward->dwSocket0, pItemAward->dwSocket1, dwSocket2});
|
||||
pqxx::result res = txn.exec_prepared(
|
||||
"result_safebox_load_insert_item",
|
||||
GainItemID(),
|
||||
pi->account_id,
|
||||
pi->ip[0] == 0 ? "SAFEBOX" : "MALL",
|
||||
iPos,
|
||||
pItemAward->dwVnum, pItemAward->dwCount, pItemAward->dwSocket0, pItemAward->dwSocket1, dwSocket2);
|
||||
|
||||
SPDLOG_DEBUG("SAFEBOX Query");
|
||||
|
||||
@ -917,8 +929,6 @@ void CClientManager::RESULT_SAFEBOX_LOAD(CPeer *pkPeer, ClientHandleInfo *pi, pq
|
||||
|
||||
vec_dwFinishedAwardID.push_back(std::make_pair(pItemAward->dwID, item.id));
|
||||
grid.Put(iPos, 1, it->second->bSize);
|
||||
|
||||
txn.commit();
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
@ -927,6 +937,8 @@ void CClientManager::RESULT_SAFEBOX_LOAD(CPeer *pkPeer, ClientHandleInfo *pi, pq
|
||||
}
|
||||
}
|
||||
|
||||
txn.commit();
|
||||
|
||||
for (DWORD i = 0; i < vec_dwFinishedAwardID.size(); ++i)
|
||||
ItemAwardManager::instance().Taken(vec_dwFinishedAwardID[i].first, vec_dwFinishedAwardID[i].second);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user