|
- #ifndef ATTEMPER_ENGINE_SINK_HEAD_FILE
- #define ATTEMPER_ENGINE_SINK_HEAD_FILE
-
- #pragma once
-
- #include "Stdafx.h"
- #include "InitParameter.h"
- #include "ServerListManager.h"
- #include "RedisHead.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<int, int, HTREEITEM, HTREEITEM> 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<DWORD, DWORD, WORD, WORD> 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; //协调服务
- std::shared_ptr<RedisBase> m_RedisClient;//redis
-
- //视频配置
- 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<CGameServerItem*>* List, DWORD UserID, int iPaiMing, int iCount);
- //验证码回调
- bool OnTCPNetworkMainMBLogonMiMa(CString strIPhone, CString VerfCode, DWORD dwSocketID);
- bool OnTCPNetworkMainHandleMBLogon(CString strIPhone, DWORD dwSocketID);
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- #endif
|