DragonNest/Server/DNGameServer/GrowingAreaStateCompleted.cpp
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

58 lines
2 KiB
C++

#include "Stdafx.h"
#include "GrowingAreaStateCompleted.h"
#include "GrowingAreaStateHarvesting.h"
#include "GrowingArea.h"
#include "DNDBConnection.h"
#include "DNFarmGameRoom.h"
#include "DNUserSession.h"
void CFarmAreaStateCompleted::BeginProcess()
{
// Update
if( m_pArea->GetFarmGameRoom() )
{
CDNFarmGameRoom* pFarmGameRoom = m_pArea->GetFarmGameRoom();
CDNDBConnection* pDBCon = m_pArea->GetFarmGameRoom()->GetDBConnection();
std::vector<int> vUpdateAreaIndex;
std::vector<int> vUpdateElapsedTimeSec;
vUpdateAreaIndex.push_back( m_pArea->GetIndex() );
vUpdateElapsedTimeSec.push_back( m_pArea->GetPlantSeed()->GetRequiredTimeSec() );
if( m_pArea->bIsPrivateArea() == true )
pDBCon->QueryModFieldForCharacterElapsedTime( pFarmGameRoom->GetDBThreadID(), pFarmGameRoom->GetWorldSetID(), 0, m_pArea->GetOwnerCharacterDBID(), vUpdateAreaIndex, vUpdateElapsedTimeSec );
else
pDBCon->QueryModFieldElapsedTime( pFarmGameRoom->GetDBThreadID(), pFarmGameRoom->GetWorldSetID(), 0, pFarmGameRoom->GetFarmIndex(), vUpdateAreaIndex, vUpdateElapsedTimeSec );
}
m_pArea->GetPlantSeed()->ResetResultItem();
SendBeginAreaState();
#if defined( PRE_ADD_FARM_DOWNSCALE )
// 강제 수확 상태이거나 개인구역이 아니고 농장 폐쇄 상태라면 자동수확 한다.
if( m_pArea->GetPlantSeed()->bIsForceComplete() || (m_pArea->GetFarmGameRoom() && m_pArea->GetFarmGameRoom()->GetAttr()&Farm::Attr::DownScale && m_pArea->bIsPrivateArea() == false) )
{
m_pArea->QueryCompleteHarvest( NULL, NULL, true );
}
#endif // #if defined( PRE_ADD_FARM_DOWNSCALE )
}
void CFarmAreaStateCompleted::Process( float fDelta )
{
}
void CFarmAreaStateCompleted::EndProcess()
{
if( m_pArea->GetState() == Farm::AreaState::HARVESTING )
{
CFarmAreaStateHarvesting* pState = static_cast<CFarmAreaStateHarvesting*>(m_pArea->GetStatePtr());
CDNUserSession* pSession = m_pArea->GetUserSession( pState->GetHarvestingCharacterDBID() );
if( pSession )
pSession->SendFarmHarvest( ERROR_NONE, Farm::ActionType::START, m_pArea->GetIndex() );
}
}