#ifndef ANDROID_USER_TIEM_HEAD_FILE #define ANDROID_USER_TIEM_HEAD_FILE #pragma once #include "GameServiceHead.h" ////////////////////////////////////////////////////////////////////////////////// //时间子项 struct tagTimerItem { UINT nTimerID; //时间标识 UINT nTimeLeave; //剩余时间 }; //类说明 typedef CWHArray CTimerItemArray; //时间数组 ////////////////////////////////////////////////////////////////////////////////// //机器人信息 class GAME_SERVICE_CLASS CAndroidUserItem : public IAndroidUserItem { //友元定义 friend class CAndroidUserManager; //状态变量 protected: bool m_bWaitLeave; //等待离开 bool m_bStartClient; //游戏标志 BYTE m_cbGameStatus; //游戏状态 WORD m_wAndroidAction; //机器动作 DWORD m_dwPlayInnings; //游戏局数 tagUserStatus m_CurrentUserStatus; //用户状态 //绑定变量 protected: IServerUserItem * m_pIServerUserItem; //用户接口 //状态信息 protected: tagAndroidService m_AndroidService; //服务信息 tagAndroidItemConfig m_AndroidItemConfig; //机器信息 //索引变量 protected: WORD m_wRoundID; //循环索引 WORD m_wAndroidIndex; //索引变量 //时间组件 protected: CTimerItemArray m_TimerItemActive; //活动数组 static CTimerItemArray m_TimerItemBuffer; //库存数组 //时间变量 protected: DWORD m_dwMinSitInterval; //坐下间隔 DWORD m_dwMaxSitInterval; //坐下间隔 DWORD m_dwStandupTickCount; //起立时间 DWORD m_dwReposeTickCount; //休息时间 //接口变量 protected: IServerUserManager * m_pIServerUserManager; //用户管理 IAndroidUserManager * m_pIAndroidUserManager; //管理接口 IAndroidUserItemSink * m_pIAndroidUserItemSink; //回调接口 //函数定义 public: //构造函数 CAndroidUserItem(); //析构函数 virtual ~CAndroidUserItem(); //基础接口 public: //释放对象 virtual VOID Release() { delete this; } //接口查询 virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer); //用户信息 public: //获取 I D virtual DWORD GetUserID(); //桌子号码 virtual WORD GetTableID(); //椅子号码 virtual WORD GetChairID(); //状态接口 public: //获取状态 virtual BYTE GetGameStatus() { return m_cbGameStatus; } //设置状态 virtual VOID SetGameStatus(BYTE cbGameStatus) { m_cbGameStatus = cbGameStatus; } //配置信息 public: //获取状态 virtual tagAndroidService * GetAndroidService() { return &m_AndroidService; } //获取配置 virtual tagAndroidParameter * GetAndroidParameter() { return m_AndroidItemConfig.pAndroidParameter; } //用户接口 public: //获取自己 virtual IServerUserItem * GetMeUserItem(); //游戏用户 virtual IServerUserItem * GetTableUserItem(WORD wChariID); //银行接口 public: //存入游戏币 virtual bool PerformSaveScore(SCORE lScore); //提取游戏币 virtual bool PerformTakeScore(SCORE lScore); //网络接口 public: //发送函数 virtual bool SendSocketData(WORD wSubCmdID); //发送函数 virtual bool SendSocketData(WORD wSubCmdID, VOID * pData, WORD wDataSize); //动作接口 public: //机器动作 virtual bool JudgeAndroidActionAndRemove(WORD wAction); //功能接口 public: //删除时间 virtual bool KillGameTimer(UINT nTimerID); //设置时间 virtual bool SetGameTimer(UINT nTimerID, UINT nElapse); //发送准备 virtual bool SendUserReady(VOID * pData, WORD wDataSize); //发送聊天 virtual bool SendChatMessage(DWORD dwTargetUserID, LPCTSTR pszChatString, COLORREF crColor); //事件通知 public: //时间事件 bool OnTimerPulse(DWORD dwTimerID, WPARAM dwBindParameter); //网络消息 bool OnSocketRead(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize); //网络事件 protected: //登录失败 bool OnSocketSubLogonFailure(VOID * pData, WORD wDataSize); //登录完成 bool OnSocketSubLogonFinish(VOID * pData, WORD wDataSize); //用户状态 bool OnSocketSubUserStatus(VOID * pData, WORD wDataSize); //系统消息 bool OnSocketSubSystemMessage(VOID * pData, WORD wDataSize); //游戏消息 bool OnSocketGameMessage(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize); //控制函数 protected: //启动游戏 VOID StartGameClient(); //关闭游戏 VOID CloseGameClient(); //辅助函数 public: //复位数据 VOID RepositUserItem(); }; ////////////////////////////////////////////////////////////////////////////////// #endif