Files
wnmj/Servers/服务器组件/游戏服务/AndroidUserItem.h
2026-02-13 14:34:15 +08:00

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