#ifndef ATTEMPER_ENGINE_SINK_HEAD_FILE #define ATTEMPER_ENGINE_SINK_HEAD_FILE #pragma once #include "Stdafx.h" #include "InitParameter.h" #include "ServerListManager.h" ////////////////////////////////////////////////////////////////////////////////// //数据定义 //连接类型 #define CLIENT_KIND_FALSH 1 //网页类型 #define CLIENT_KIND_MOBILE 2 //手机类型 #define CLIENT_KIND_COMPUTER 3 //电脑类型 //绑定参数 struct tagBindParameter { //网络参数 DWORD dwSocketID; //网络标识 DWORD dwClientAddr; //连接地址 DWORD dwActiveTime; //激活时间 //连接信息 WORD wModuleID; //模块标识 BYTE cbClientKind; //连接类型 DWORD dwPlazaVersion; //大厅版本 }; //平台配置 struct tagPlatformParameter { WORD wExchangeRate; //兑换比率 }; ////////////////////////////////////////////////////////////////////////////////// //调度钩子 class CAttemperEngineSink : public IAttemperEngineSink { //友元定义 friend class CHttpClient; friend class CServiceUnits; friend class CLogonServerDlg; //状态变量 protected: ///[---add by yd DWORD m_dwHearbeatTime; public: WORD m_wServerID; //登录服务器ID ///---] protected: bool m_bNeekCorrespond; //协调标志 bool m_bShowServerStatus; //显示服务器状态 //配置变量 protected: SCORE m_lCheckInReward[LEN_WEEK]; //签到奖励 tagPlatformParameter m_PlatformParameter; //平台参数 tagBaseEnsureParameter m_BaseEnsureParameter; //低保参数 CMap m_LoginServiceIDMap; //游戏服务器菜单记录 //任务参数 protected: WORD m_wTaskCount; //任务数目 WORD m_wTaskCountBuffer; //任务数目 tagTaskParameter m_TaskParameter[TASK_MAX_COUNT]; //任务参数 tagTaskParameter m_TaskParameterBuffer[TASK_MAX_COUNT];//任务参数 //会员参数 protected: WORD m_wMemberCount; //会员数目 tagMemberParameter m_MemberParameter[10]; //会员参数 CMap m_MapServerUserID; //玩家GameServer信息 ///---dwUserID => wServerID //等级配置 protected: WORD m_wLevelCount; //等级数目 tagGrowLevelConfig m_GrowLevelConfig[60]; //等级配置 //变量定义 protected: CInitParameter * m_pInitParameter; //配置参数 tagBindParameter * m_pBindParameter; //辅助数组 //组件变量 public: CServerListManager m_ServerListManager; //列表管理 //组件接口 public: ITimerEngine * m_pITimerEngine; //时间引擎 IDataBaseEngine * m_pIDataBaseEngine; //数据引擎 ITCPNetworkEngine * m_pITCPNetworkEngine; //网络引擎 ITCPSocketService * m_pITCPSocketService; //协调服务 //视频配置 protected: WORD m_wAVServerPort; //视频端口 DWORD m_dwAVServerAddr; //视频地址 //函数定义 public: //构造函数 CAttemperEngineSink(); //析构函数 virtual ~CAttemperEngineSink(); //基础接口 public: //释放对象 virtual VOID Release() { return; } //接口查询 virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer); //替换昵称 void Fstring(TCHAR* pCheck); //异步接口 public: //启动事件 virtual bool OnAttemperEngineStart(IUnknownEx * pIUnknownEx); //停止事件 virtual bool OnAttemperEngineConclude(IUnknownEx * pIUnknownEx); //事件接口 public: //控制事件 virtual bool OnEventControl(WORD wIdentifier, VOID * pData, WORD wDataSize); //自定事件 virtual bool OnEventAttemperData(WORD wRequestID, VOID * pData, WORD wDataSize); //同步事件 virtual bool OnTongBu(int Command, DWORD dwContextID, VOID * pData, WORD wDataSize); //内核事件 public: //时间事件 virtual bool OnEventTimer(DWORD dwTimerID, WPARAM wBindParam); //数据库事件 virtual bool OnEventDataBase(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize); int UpDataTongDao(); //连接事件 public: //连接事件 virtual bool OnEventTCPSocketLink(WORD wServiceID, INT nErrorCode); //关闭事件 virtual bool OnEventTCPSocketShut(WORD wServiceID, BYTE cbShutReason); //读取事件 virtual bool OnEventTCPSocketRead(WORD wServiceID, TCP_Command Command, VOID * pData, WORD wDataSize); //网络事件 public: //应答事件 virtual bool OnEventTCPNetworkBind(DWORD dwClientAddr, DWORD dwSocketID); //关闭事件 virtual bool OnEventTCPNetworkShut(DWORD dwClientAddr, DWORD dwActiveTime, DWORD dwSocketID); //读取事件 virtual bool OnEventTCPNetworkRead(TCP_Command Command, VOID * pData, WORD wDataSize, DWORD dwSocketID); //连接处理 protected: //注册事件 bool OnTCPSocketMainRegister(WORD wSubCmdID, VOID * pData, WORD wDataSize); //服务信息 bool OnTCPSocketMainServiceInfo(WORD wSubCmdID, VOID * pData, WORD wDataSize); //管理服务 bool OnTCPSocketMainManagerService(WORD wSubCmdID, VOID * pData, WORD wDataSize); //手机事件 protected: //获取验证码 bool OnTCPNetworkMainYanZhengM(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID); //登录处理 bool OnTCPNetworkMainMBLogon(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID); //手机事件 protected: //帐号登录,手机登录 bool OnTCPNetworkSubMBLogonAccounts(VOID * pData, WORD wDataSize, DWORD dwSocketID); //其他登录 bool OnTCPNetworkSubMBLogonOtherPlatform(VOID * pData, WORD wDataSize, DWORD dwSocketID); //游戏事件 protected: //数据库校验手机号码 bool OnDBPCYanZhengMSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize); //手机事件 protected: //登录成功 bool OnDBMBLogonSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize); //登录失败 bool OnDBMBLogonFailure(DWORD dwContextID, VOID * pData, WORD wDataSize); std::string string_To_UTF8(LPCSTR str, DWORD dwSize); //列表事件 protected: ////游戏列表 bool OnDBPCGameListResult(DWORD dwContextID, VOID * pData, WORD wDataSize); //辅助函数 protected: //版本检测 bool CheckPlazaVersion(BYTE cbDeviceType, DWORD dwPlazaVersion, DWORD dwSocketID, bool bCheckLowVer = true); //发送请求 bool SendUIControlPacket(WORD wRequestID, VOID * pData, WORD wDataSize); //手机列表 protected: //发送房间 int SendMobileServerInfo(DWORD dwSocketID, WORD wModuleID, DWORD dwXinYong, DWORD wServerID, DWORD dUserID, LONGLONG JuLi); //获取距离排名 bool GetPaiMing(DWORD dUserID, LONGLONG JuLi, int& iPaiMing, int& iCount); //辅助函数 public: // 获取可用服务器 CGameServerItem* GetServiceLevel(int iLevel, CList* List, DWORD UserID, int iPaiMing, int iCount); //验证码回调 bool OnTCPNetworkMainMBLogonMiMa(CString strIPhone, CString VerfCode, DWORD dwSocketID); bool OnTCPNetworkMainHandleMBLogon(CString strIPhone, DWORD dwSocketID); }; ////////////////////////////////////////////////////////////////////////////////// #endif