Files
mir_server/server/LogicServer/item/cnt/DepotBag.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

72 lines
2.1 KiB
C++

#pragma once
/*
玩家仓库的背包的处理类,玩家的仓库包括了多个背包
*/
//玩家的仓库背包
class CDeportBag:
public CUserItemContainer
{
public:
typedef CUserItemContainer Inherited;
CDeportBag()
{
m_hasLoadDbData =false; //是否装载过DB的数据
}
public:
/*** 覆盖CUserItemContainer父类的函数集 ***/
virtual VOID SendDeleteItem(const CUserItem *pUserItem,INT_PTR nLogIdent) const ;
virtual VOID LogNewItem(const CUserItem *pUserItem, const CStdItem *pStdItem, LPCSTR lpSender, const INT_PTR nLogIdent) const ;
virtual VOID LogItemCountChange(const CUserItem *pUserItem, const CStdItem *pStdItem, const INT_PTR nCountChg, LPCSTR lpSender, const INT_PTR nLogIdent) const ;
virtual VOID SendAddItem(const CUserItem *pUserItem,INT_PTR nLogIdent, BYTE bNoBatchUse = 0,BYTE bNotice = 1) const ;
//isGetNewCount true获得新的物品
virtual VOID SendItemCountChange(const CUserItem *pUserItem, bool isGetNewCount = false, BYTE bNoBatchUse = 0) const ;
//当物品添加成功到里边调用,主要用来发系统提示的
//添加物品的提示
virtual VOID OnAddItem(const CStdItem * pItem,INT_PTR nCount,INT_PTR nLogIdent,const CUserItem *pUserItem=NULL);
//删除物品的提示
virtual VOID OnDeleteItem(const CStdItem * pItem, INT_PTR nItemCount,INT_PTR nLogIdent, int nMsgId = 0,const CUserItem *pUserItem=NULL);
//设置数据是否修改过了
virtual VOID OnDataModified()
{
SetDataModifyFlag(true);
}
//设置数据的修改的标记
inline void SetDataModifyFlag(bool flag)
{
if(!m_hasLoadDbData ) return ;//没有初始化DB的数据是不需要保存的
if(m_hasDataModify != flag)
{
m_hasDataModify = flag;
}
}
//数据是否修改过
inline bool IsDataModified()
{
return m_hasDataModify;
}
//已经装载过DB的数据了
inline void OnInitDbData()
{
m_hasLoadDbData = true;
}
//是否装载过DB的数据
inline bool HasInitDbData()
{
return m_hasLoadDbData;
}
public:
CActor *m_pEntity; //玩家的指针
BYTE m_bReserver;
WORD m_wReserver;
bool m_hasLoadDbData; //是否装载过DB的数据
};