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

📄 purse.cpp

📁 墨香最新私服
💻 CPP
字号:
#include "stdafx.h"

#include "purse.h"
#include "player.h"
#include "Munpa.h"
#include "MapDBMsgParser.h"

CPurse::CPurse()
{
	m_bInit = FALSE;
}

CPurse::~CPurse()
{
}

BOOL CPurse::InitPurse( void* pOwner, MONEYTYPE money, MONEYTYPE max )
{
	/* DB俊辑 茄锅 啊廉客 悸泼且锭 寇浚 烙狼肺 傈眉 蔼阑 函版且 荐 绝促. 
	   寇何俊辑 楷魂窍绰巴阑 阜扁困秦辑 贸府窍霸 凳. */
	if( m_bInit ) 
	{
		ASSERTMSG(0, "檬扁拳甫 滴锅 窍妨 钦聪促.");
		return FALSE;
	}

	if( money > max )
	{// 檬扁拳矫俊 肋给等 涝仿阑 沁阑 版快俊 措秦辑 CHECK
		ASSERTMSG(0, "檬扁拳 涝仿蔼捞 肋给登菌嚼聪促.(泅犁陛咀 > 力茄陛咀)");
		return FALSE;
	}

	m_pOwner = pOwner;

	m_dwMoney = money;
	m_dwMaxMoney = max;
	m_bInit = TRUE;

	m_MsgMoney.Category = MP_ITEM;
	m_MsgMoney.Protocol = MP_ITEM_MONEY;

	return TRUE;
}

void CPurse::Release()
{
	m_pOwner = NULL;

	m_bInit = FALSE;
}

void CPurse::SetMoney( MONEYTYPE money, BYTE MsgFlag )
{
	m_dwMoney = money;
}

BOOL CPurse::SetMaxMoney( MONEYTYPE max )
{
	if( !m_bInit ) return FALSE;

	if( m_dwMoney > max )
	{
		ASSERTMSG(0, "肋给等 力茄摹肺 汲沥窍绊 乐促.(泅犁陛咀 > 力茄陛咀)");
		return FALSE;
	}
	
	m_dwMaxMoney = max;

	return TRUE;
}

MONEYTYPE CPurse::GetMaxMoney()
{
	return m_dwMaxMoney;
}

/* 角力 函拳樊 Return */
MONEYTYPE CPurse::Addition( MONEYTYPE money, BYTE MsgFlag )
{
	if( !m_bInit ) return 0;

	if( m_dwMoney + money > m_dwMaxMoney )		// 力茄摹俊 措茄 MAX贸府 
	{
		if( m_dwMaxMoney < m_dwMoney )
			return 0;

		money = m_dwMaxMoney - m_dwMoney;
	}

	if( m_dwMoney + money < m_dwMoney )		// 磊丰屈俊 措茄 MAX贸府
		money = MAXMONEY - m_dwMoney;

	SetMoney(m_dwMoney + money, MsgFlag);

	return money;
}

/* 角力 函拳樊 Return */
MONEYTYPE CPurse::Subtraction( MONEYTYPE money, BYTE MsgFlag )
{
	if( !m_bInit ) return 0;

	if( !IsEnoughMoney(money) )
		return 0; // 角函拳樊 绝澜.

	if( m_dwMoney - money > m_dwMoney ) // 眠啊 磊丰屈俊 措茄 俊矾 check
		return 0;

	SetMoney(m_dwMoney - money, MsgFlag);

	return money;
}

BOOL CPurse::IsAdditionEnough( MONEYTYPE AdditionMoney )
{
	if( m_dwMoney + AdditionMoney < m_dwMoney ||
		m_dwMoney + AdditionMoney > m_dwMaxMoney )
		return FALSE;

	return TRUE;
}

// 皑魂 陛咀苞狼 厚背
BOOL CPurse::IsEnoughMoney( MONEYTYPE SubtractionMoney )
{
	if( m_dwMoney >= SubtractionMoney )
		return TRUE;

	return FALSE;
}


/////////////////////////////////////////////////////////////////
// 俺牢 捣
/////////////////////////////////////////////////////////////////
void CInventoryPurse::SetMoney( MONEYTYPE money, BYTE MsgFlag )
{
	m_dwMoney = money;

	CPlayer* pPlayer = (CPlayer*)m_pOwner;
	if( !pPlayer ) return;

	pPlayer->MoneyUpdate( m_dwMoney );

	// DB update
	if( MsgFlag != MF_OBTAIN )	//阁胶磐俊霸 掘菌阑 版快甫 力寇窍绊.
		CharacterHeroInfoUpdate(pPlayer);

	// Client Msg;
	SendMoneyMsg(MsgFlag);
}

void CInventoryPurse::SendMoneyMsg(BYTE flag)
{
	CPlayer* pPlayer = (CPlayer*)m_pOwner;
	if( !pPlayer ) return;

	// Client俊霸 焊尘 皋技瘤.. (眠啊 窍技胯!!)
	switch( flag )
	{
	case MF_NOMAL:
		{
			m_MsgMoney.dwObjectID = pPlayer->GetID();
			m_MsgMoney.dwTotalMoney = m_dwMoney;
			m_MsgMoney.bFlag = flag;

			pPlayer->SendMsg(&m_MsgMoney, sizeof(m_MsgMoney));
		}
		break;
	case MF_OBTAIN:
		{
			m_MsgMoney.dwObjectID = pPlayer->GetID();
			m_MsgMoney.dwTotalMoney = m_dwMoney;
			m_MsgMoney.bFlag = flag;

			pPlayer->SendMsg(&m_MsgMoney, sizeof(m_MsgMoney));
		}
		break;
	case MF_LOST:
		{
			m_MsgMoney.dwObjectID = pPlayer->GetID();
			m_MsgMoney.dwTotalMoney = m_dwMoney;
			m_MsgMoney.bFlag = flag;

			pPlayer->SendMsg(&m_MsgMoney, sizeof(m_MsgMoney));

		}
		break;
	default:
		return;
	}
}


/////////////////////////////////////////////////////////////////
// 芒绊 捣
/////////////////////////////////////////////////////////////////
void CPyogukPurse::SetMoney( MONEYTYPE money, BYTE MsgFlag )
{
	m_dwMoney = money;
}


/////////////////////////////////////////////////////////////////
// 巩颇 捣
/////////////////////////////////////////////////////////////////
void CMunpaWarePurse::SetMoney( MONEYTYPE money, BYTE MsgFlag )
{
	m_dwMoney = money;
	
	CMunpa* pMunpa = (CMunpa*)m_pOwner;
	if( !pMunpa ) return;

	// db Update, Client Msg;
	pMunpa->MoneyUpdate( m_dwMoney );
	SendMoneyMsg(MsgFlag);
}

void CMunpaWarePurse::SendMoneyMsg(BYTE flag)
{
//	CMunpa* pMunpa = (CMunpa*)m_pOwner;
//	if( !pMunpa ) return;
}

⌨️ 快捷键说明

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