Files
wnmj/Servers/服务器组件/私人场服务/CTableFramePrivate.h
2026-02-13 14:34:15 +08:00

97 lines
3.0 KiB
C++

#ifndef GAME_PRIVATE_SINK_HEAD_FILE
#define GAME_PRIVATE_SINK_HEAD_FILE
#pragma once
//引入文件
#include "PrivateServiceHead.h"
//////////////////////////////////////////////////////////////////////////
//桌子钩子类
class CTableFramePrivate : public ITableFramePrivate,public ITableUserAction
{
//友元定义
friend class CGameServiceManager;
//接口变量
public:
ITableFrame * m_pITableFrame; //框架接口
//事件接口
protected:
IPrivateEventSink * m_pPrivateEventSink; //私人房事件
//配置变量
protected:
const tagGameServiceOption * m_pGameServiceOption; //配置参数
//属性变量
protected:
static const WORD m_wPlayerCount; //游戏人数
//函数定义
public:
//构造函数
CTableFramePrivate();
//析构函数
virtual ~CTableFramePrivate();
//基础接口
public:
//释放对象
virtual VOID Release() { delete this; }
//接口查询
virtual void * QueryInterface(const IID & Guid, DWORD dwQueryVer);
//管理接口
public:
//设置桌子事件接口
virtual bool SetPrivateEventSink(IUnknownEx * pIUnknownEx);
//初始化
virtual bool InitTableFramePrivate(IUnknownEx * pIUnknownEx);
//游戏事件
public:
//游戏开始
virtual bool OnEventGameStart(ITableFrame *pITableFrame, WORD wChairCount);
//游戏结束
virtual bool OnEventGameEnd(ITableFrame *pITableFrame,WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason);
//用户动作
public:
//用户断线
virtual bool OnActionUserOffLine(WORD wChairID, IServerUserItem * pIServerUserItem);
//用户重入
virtual bool OnActionUserConnect(WORD wChairID, IServerUserItem * pIServerUserItem) { return true; }
//用户坐下
virtual bool OnActionUserSitDown(WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser);
//用户起来
virtual bool OnActionUserStandUp(WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser);
//用户同意
virtual bool OnActionUserOnReady(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize);
//用户进去游戏
virtual bool OnEventClientReady(WORD wChairID,IServerUserItem * pIServerUserItem);
//房卡数量判断
virtual bool OnActionUserFangKaCheck(WORD wChairID, IServerUserItem * pIServerUserItem, SCORE lUserInsure);
//同步私人场信息;
virtual bool OnEventPrivateRoomInfo(WORD wChairID, IServerUserItem * pIServerUserItem);
//显示开始游戏按钮
virtual bool OnActionUserOnStart(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize);
//用户开始游戏
virtual bool OnActionUserStartGame(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize);
public:
//用户起来
virtual bool AddPrivateAction(ITableFrame* pTbableFrame,DWORD dwChairID, BYTE bActionIdex);
//写分
virtual bool WriteTableScore(ITableFrame* pITableFrame, tagScoreInfo ScoreInfoArray[], WORD wScoreCount, DataStream& kData);
//统计私人场玩家局数
virtual bool addPrivatePlayCout(ITableFrame* pTbableFrame, WORD wCout);
//是不是自由人数
virtual bool IsAutoUserCountRule(ITableFrame* pTbableFrame, bool bReal);
};
//////////////////////////////////////////////////////////////////////////
#endif