180 lines
4.3 KiB
C++
180 lines
4.3 KiB
C++
#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<tagTimerItem *> 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);
|
|
//发送函数
|
|
virtual bool SendSocketData(WORD wMainCmdID, 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 |