⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handler_cg_warehouse.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 CPP
字号:
#include "StdAfx.h"
#include ".\handler_cg_warehouse.h"
#include ".\Player.h"
#include ".\PlayerManager.h"
#include <PacketStruct_DG.h>
#include "WarehouseSlotContainer.h"

Handler_CG_WAREHOUSE_IMPL(CG_WAREHOUSE_START_SYN)
{
	MSG_CG_WAREHOUSE_START_SYN * pRecvMsg = (MSG_CG_WAREHOUSE_START_SYN *)pMsg;

	Player * pPlayer = PlayerManager::Instance()->FindPlayer( pRecvMsg->m_dwKey );
	ASSERT( pPlayer );
	if( !pPlayer ) return ;
	if( !pPlayer->GetField() ) return;

	// 芒绊 矫累 惑怕
	CWarehouseSlotContainer * pContainer = pPlayer->GetWarehouseContainer();
	if( pContainer->IsStarted() )
	{
		MSG_CG_WAREHOUSE_START_NAK nmsg;
		nmsg.m_dwErrorCode = RC::RC_WAREHOUSE_INVALID_STATE;
		pPlayer->SendPacket( &nmsg, sizeof(nmsg) );
		return;
	}

	MSG_DG_WAREHOUSE_START_SYN msg;
	msg.m_dwKey			= pRecvMsg->m_dwKey;
	if( FALSE == pPlayer->SendToGameDBPServer( &msg, sizeof(msg) ) )
	{
		SUNLOG( eFULL_LOG,  "[Handler_CG_WAREHOUSE_IMPL(CG_WAREHOUSE_START_SYN)] [ERROR]DBP俊菩哦(DG_WAREHOUSE_START_SYN)阑傈崔且荐绝嚼聪促." );
		MSG_CG_WAREHOUSE_START_NAK nmsg;
		nmsg.m_dwErrorCode = RC::RC_WAREHOUSE_NOT_AVAILABLE_SERVICE;
		pPlayer->SendPacket( &nmsg, sizeof(nmsg) );
		return;
	}
}

Handler_CG_WAREHOUSE_IMPL(CG_WAREHOUSE_MONEY_SYN)
{
	MSG_CG_WAREHOUSE_MONEY_SYN * pRecvMsg = (MSG_CG_WAREHOUSE_MONEY_SYN *)pMsg;

	Player * pPlayer = PlayerManager::Instance()->FindPlayer( pRecvMsg->m_dwKey );
	ASSERT( pPlayer );
	if( !pPlayer ) return ;
	if( !pPlayer->GetField() ) return;

	// 芒绊 矫累 惑怕 眉农
	CWarehouseSlotContainer * pContainer = pPlayer->GetWarehouseContainer();

	if( !pContainer->IsStarted() )
	{
		MSG_CG_WAREHOUSE_MONEY_NAK nmsg;
		nmsg.m_dwErrorCode = RC::RC_WAREHOUSE_INVALID_STATE;
		pPlayer->SendPacket( &nmsg, sizeof(nmsg) );
		return;
	}

	// GS父 快急 捣阑 涝陛 趣篮 免陛
	BOOL rt = FALSE;
	if( pRecvMsg->m_byType == MSG_CG_WAREHOUSE_MONEY_SYN::PUTMONEY )
	{
		// 芒绊俊 捣阑 持澜
		if( pRecvMsg->m_Money <= pPlayer->GetMoney() )
		{
			if( pContainer->DepositMoney( pRecvMsg->m_Money ) )
			{
//				pPlayer->SetMoney( pPlayer->GetMoney() - pRecvMsg->m_Money );
				pPlayer->MinusMoney( pRecvMsg->m_Money );	// SetMoney肺 捣 静绰 何盒 傈何 MinusMoney()肺 背眉吝(泅芒)
				rt = TRUE;
			}
		}
	}
	else if( pRecvMsg->m_byType == MSG_CG_WAREHOUSE_MONEY_SYN::GETMONEY )
	{
		// 芒绊俊辑 捣阑 茫澜
		if( pContainer->WithDrawMoney( pRecvMsg->m_Money ) )
		{
			// 免陛且 捣捞 乐促.
//			pPlayer->SetMoney( pPlayer->GetMoney() + pRecvMsg->m_Money );
			pPlayer->PlusMoney( pRecvMsg->m_Money );	// SetMoney肺 捣 冈绰 何盒 傈何 PlusMoney()肺 背眉吝(泅芒)
			rt = TRUE;
		}
	}

	if( TRUE == rt )
	{
		MSG_CG_WAREHOUSE_MONEY_ACK msg;
		msg.m_InventoryMoney = pPlayer->GetMoney();
		msg.m_WarehouseMoney = pContainer->GetCurMoney();
		pPlayer->SendPacket( &msg, sizeof(msg) );
		return;
	}
	else
	{
		MSG_CG_WAREHOUSE_MONEY_NAK nmsg;
		nmsg.m_dwErrorCode = RC::RC_WAREHOUSE_INSUFFICIENT_MONEY;
		pPlayer->SendPacket( &nmsg, sizeof(nmsg) );
		return;
	}
}

Handler_CG_WAREHOUSE_IMPL(CG_WAREHOUSE_END_SYN)
{
	MSG_CG_WAREHOUSE_END_SYN * pRecvMsg = (MSG_CG_WAREHOUSE_END_SYN *)pMsg;

	Player * pPlayer = PlayerManager::Instance()->FindPlayer( pRecvMsg->m_dwKey );
	ASSERT( pPlayer );
	if( !pPlayer ) return ;
	if( !pPlayer->GetField() ) return;

	// 芒绊 辆丰 惑怕
	CWarehouseSlotContainer * pContainer = pPlayer->GetWarehouseContainer();
	if( !pContainer->IsStarted() )
	{
		MSG_CG_WAREHOUSE_END_NAK nmsg;
		nmsg.m_dwErrorCode = RC::RC_WAREHOUSE_INVALID_STATE;
		pPlayer->SendPacket( &nmsg, sizeof(nmsg) );
		return;
	}
	
	if( !pContainer->IsChanged() )
	{
		MSG_CG_WAREHOUSE_END_ACK amsg;
		pPlayer->SendPacket( &amsg, sizeof(amsg) );
		// 辆丰 惑怕肺 官厕
		pContainer->EndWarehouse();
		pContainer->ClearAll();
		return;
	}

	// 角力 DB肺 Item Stream + 捣 历厘
	// DBP俊辑档 官肺 历厘茄促?????
	if( !pContainer->SaveWarehouseToDBP( TRUE ) )
	{
		MSG_CG_WAREHOUSE_END_NAK nmsg;
		nmsg.m_dwErrorCode = RC::RC_WAREHOUSE_NOT_AVAILABLE_SERVICE;
		pPlayer->SendPacket( &nmsg, sizeof(nmsg) );
		return;
	}

	// 辆丰 惑怕肺 官厕
	pContainer->EndWarehouse();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -