📄 purse.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 + -