Files
wnmj/Servers/服务器组件/登录服务器/AttemperEngineSink.h

235 lines
7.2 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#ifndef ATTEMPER_ENGINE_SINK_HEAD_FILE
#define ATTEMPER_ENGINE_SINK_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "InitParameter.h"
#include "ServerListManager.h"
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CLIENT_KIND_FALSH 1 //<2F><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>
#define CLIENT_KIND_MOBILE 2 //<2F>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
#define CLIENT_KIND_COMPUTER 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>󶨲<EFBFBD><F3B6A8B2><EFBFBD>
struct tagBindParameter
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSocketID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
DWORD dwClientAddr; //<2F><><EFBFBD>ӵ<EFBFBD>ַ
DWORD dwActiveTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
WORD wModuleID; //ģ<><C4A3><EFBFBD><EFBFBD>ʶ
BYTE cbClientKind; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwPlazaVersion; //<2F><><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>
struct tagBaseEnsureParameter
{
SCORE lScoreCondition; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SCORE lScoreAmount; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbTakeTimes; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD>
class CAttemperEngineSink : public IAttemperEngineSink
{
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
friend class CServiceUnits;
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
protected:
bool m_bNeekCorrespond; //Э<><D0AD><EFBFBD><EFBFBD>־
bool m_bShowServerStatus; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CInitParameter * m_pInitParameter; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
tagBindParameter * m_pBindParameter; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CServerListManager m_ServerListManager; //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
CMD_GP_CheckInInfo m_kCheckInInfo; //ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CMD_GP_BeginnerInfo m_kBeginnerInfo; //<2F><><EFBFBD>ֻ
CMD_GP_BackAddBankAwardInfo m_BackAddBankAwardInfo; //׬<><D7AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagBaseEnsureParameter m_BaseEnsureParameter; //<2F>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
protected:
ITimerEngine * m_pITimerEngine; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IDataBaseEngine * m_pIDataBaseEngine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ITCPNetworkEngine * m_pITCPNetworkEngine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ITCPSocketService * m_pITCPSocketService; //Э<><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
protected:
WORD m_wAVServerPort; //<2F><>Ƶ<EFBFBD>˿<EFBFBD>
DWORD m_dwAVServerAddr; //<2F><>Ƶ<EFBFBD><C6B5>ַ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CAttemperEngineSink();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CAttemperEngineSink();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
virtual VOID Release() { return; }
//<2F>ӿڲ<D3BF>ѯ
virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
//<2F><EFBFBD>ӿ<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool OnAttemperEngineStart(IUnknownEx * pIUnknownEx);
//ֹͣ<CDA3>¼<EFBFBD>
virtual bool OnAttemperEngineConclude(IUnknownEx * pIUnknownEx);
//<2F>¼<EFBFBD><C2BC>ӿ<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool OnEventControl(WORD wIdentifier, VOID * pData, WORD wDataSize);
//<2F>Զ<EFBFBD><D4B6>¼<EFBFBD>
virtual bool OnEventAttemperData(WORD wRequestID, VOID * pData, WORD wDataSize);
//<2F>ں<EFBFBD><DABA>¼<EFBFBD>
public:
//ʱ<><CAB1><EFBFBD>¼<EFBFBD>
virtual bool OnEventTimer(DWORD dwTimerID, WPARAM wBindParam);
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF>¼<EFBFBD>
virtual bool OnEventDataBase(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool OnEventTCPSocketLink(WORD wServiceID, INT nErrorCode);
//<2F>ر<EFBFBD><D8B1>¼<EFBFBD>
virtual bool OnEventTCPSocketShut(WORD wServiceID, BYTE cbShutReason);
//<2F><>ȡ<EFBFBD>¼<EFBFBD>
virtual bool OnEventTCPSocketRead(WORD wServiceID, TCP_Command Command, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
public:
//Ӧ<><D3A6><EFBFBD>¼<EFBFBD>
virtual bool OnEventTCPNetworkBind(DWORD dwClientAddr, DWORD dwSocketID);
//<2F>ر<EFBFBD><D8B1>¼<EFBFBD>
virtual bool OnEventTCPNetworkShut(DWORD dwClientAddr, DWORD dwActiveTime, DWORD dwSocketID);
//<2F><>ȡ<EFBFBD>¼<EFBFBD>
virtual bool OnEventTCPNetworkRead(TCP_Command Command, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>
protected:
//ע<><D7A2><EFBFBD>¼<EFBFBD>
bool OnTCPSocketMainRegister(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
bool OnTCPSocketMainServiceInfo(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//Զ<>̷<EFBFBD><CCB7><EFBFBD>
bool OnTCPSocketMainRemoteService(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
protected:
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
bool OnTCPNetworkMainPCLogon(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
bool OnTCPNetworkMainPCServerList(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool OnTCPNetworkMainPCUserService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//Զ<>̴<EFBFBD><CCB4><EFBFBD>
bool OnTCPNetworkMainPCRemoteService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
protected:
//<2F>ʺŵ<CABA>¼
bool OnTCPNetworkSubPCLogonAccounts(VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F>ʺ<EFBFBD>ע<EFBFBD><D7A2>
bool OnTCPNetworkSubPCRegisterAccounts(VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><>Ϸ<EFBFBD>¼<EFBFBD>
protected:
//<2F><>¼<EFBFBD>ɹ<EFBFBD>
bool OnDBPCLogonSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><>¼ʧ<C2BC><CAA7>
bool OnDBPCLogonFailure(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
bool OnDBPCUserIndividual(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
bool OnDBPCUserAccountInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><>Ϸ״̬
bool OnDBPCInGameSevrerID(DWORD dwContextID, VOID * pData, WORD wDataSize);
//΢<>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD>ɹ<EFBFBD>
bool OnDBPCUserWXShareReward(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
bool OnDBPCOperateSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
bool OnDBPCOperateFailure(DWORD dwContextID, VOID * pData, WORD wDataSize);
VOID SendOperateFailure(DWORD dwContextID, LONG lResultCode, LPCTSTR pszDescribe);
//<2F>б<EFBFBD><D0B1>¼<EFBFBD>
protected:
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
bool OnDBPCGameTypeItem(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
bool OnDBPCGameKindItem(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><>Ϸ<EFBFBD>ڵ<EFBFBD>
bool OnDBPCGameNodeItem(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
bool OnDBPCGamePageItem(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><>Ϸ<EFBFBD>б<EFBFBD>
bool OnDBPCGameListResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><>Ϸ<EFBFBD><CFB7>¼
bool OnDBPCGameRecordList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><>Ϸ<EFBFBD><CFB7>¼
bool OnDBPCGameRecordTotal(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD>
bool OnDBPCGameRecordChild(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
bool OnDBPCQueryInMatch(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD>;
bool OnDBPCQueryInUnion(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>б<EFBFBD>;
bool OnDBPCUnionList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><E1BFAA><EFBFBD><EFBFBD>Ϸ<EFBFBD>б<EFBFBD>;
bool OnDBPCUnionGameList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD>᷿<EFBFBD><E1B7BF><EFBFBD>б<EFBFBD>;
bool OnDBPCUnionRoomList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>;
bool OnDBPCAutoRoomList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
//<2F><EFBFBD><E6B1BE><EFBFBD><EFBFBD>
bool CheckPlazaVersion(BYTE cbDeviceType, DWORD dwPlazaVersion, DWORD dwSocketID, bool bCheckLowVer=true);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool SendUIControlPacket(WORD wRequestID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
protected:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID SendGameTypeInfo(DWORD dwSocketID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID SendGameKindInfo(DWORD dwSocketID);
//<2F><><EFBFBD>ͽڵ<CDBD>
VOID SendGameNodeInfo(DWORD dwSocketID, WORD wKindID);
//<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
VOID SendGamePageInfo(DWORD dwSocketID, WORD wKindID);
//<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
VOID SendGameServerInfo(DWORD dwSocketID, WORD wKindID);
};
//////////////////////////////////////////////////////////////////////////////////
#endif