init
This commit is contained in:
208
Servers/游戏组件/跑的快/服务器组件/TableFrameSink.h
Normal file
208
Servers/游戏组件/跑的快/服务器组件/TableFrameSink.h
Normal file
@@ -0,0 +1,208 @@
|
||||
#ifndef TABLE_FRAME_SINK_HEAD_FILE
|
||||
#define TABLE_FRAME_SINK_HEAD_FILE
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Stdafx.h"
|
||||
#include "AfxTempl.h"
|
||||
#include "GameLogic.h"
|
||||
#include "HistoryScore.h"
|
||||
#include "DlgCustomRule.h"
|
||||
#include "ServerControl.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//游戏桌子
|
||||
class CTableFrameSink : public ITableFrameSink, public ITableUserAction
|
||||
{
|
||||
//游戏变量
|
||||
protected:
|
||||
bool m_bActiveUser[GAME_PLAYER]; //激活玩家;
|
||||
WORD m_wFirstUser; //首叫用户(上局赢牌玩家)
|
||||
WORD m_wBankerUser; //庄家用户(叫打独玩家)
|
||||
WORD m_wCurrentUser; //当前玩家
|
||||
BYTE m_cbOutCardCount[GAME_PLAYER]; //出牌次数
|
||||
BYTE m_cbWaitTime; //等待时间
|
||||
WORD m_wTimerControl; //时间控制
|
||||
bool m_bUserTrustee[GAME_PLAYER]; //托管标志
|
||||
BYTE m_aryOverTime[GAME_PLAYER]; //超时托管;
|
||||
|
||||
//托管信息
|
||||
bool m_bOffLineTrustee; //离线托管
|
||||
|
||||
//炸弹信息
|
||||
protected:
|
||||
//BYTE m_cbBombCount; //炸弹个数
|
||||
//BYTE m_cbEachBombCount[GAME_PLAYER]; //炸弹个数
|
||||
SCORE m_lBombScore[GAME_PLAYER]; //炸弹积分
|
||||
|
||||
//叫分信息
|
||||
protected:
|
||||
BYTE m_cbCallScoreCount; //叫分次数
|
||||
//BYTE m_cbBankerScore; //庄家叫分
|
||||
bool m_bScoreInfo[GAME_PLAYER]; //叫分信息
|
||||
bool m_bScoreActive[GAME_PLAYER]; //叫分操作;
|
||||
|
||||
//出牌信息
|
||||
protected:
|
||||
WORD m_wTurnWiner; //上次出牌玩家
|
||||
BYTE m_cbTurnCardCount; //出牌数目
|
||||
BYTE m_cbTurnCardData[MAX_COUNT]; //出牌数据
|
||||
|
||||
BYTE m_cbMustOutCardData; //必须出的牌;
|
||||
WORD m_wMustOutCardUser; //必须出牌玩家;
|
||||
|
||||
//扑克信息
|
||||
protected:
|
||||
//BYTE m_cbBankerCard[3]; //游戏底牌
|
||||
BYTE m_cbHandCardCount[GAME_PLAYER]; //扑克数目
|
||||
BYTE m_cbHandCardData[GAME_PLAYER][MAX_COUNT]; //手上扑克
|
||||
|
||||
//服务控制
|
||||
protected:
|
||||
HINSTANCE m_hControlInst;
|
||||
IServerControl* m_pServerControl;
|
||||
|
||||
//组件变量
|
||||
protected:
|
||||
CGameLogic m_GameLogic; //游戏逻辑
|
||||
CHistoryScore m_HistoryScore; //历史成绩
|
||||
|
||||
|
||||
//组件接口
|
||||
protected:
|
||||
ITableFrame * m_pITableFrame; //框架接口
|
||||
tagCustomRule * m_pGameCustomRule; //自定规则
|
||||
tagGameServiceOption * m_pGameServiceOption; //游戏配置
|
||||
tagGameServiceAttrib * m_pGameServiceAttrib; //游戏属性
|
||||
|
||||
//函数定义
|
||||
public:
|
||||
//构造函数
|
||||
CTableFrameSink();
|
||||
//析构函数
|
||||
virtual ~CTableFrameSink();
|
||||
|
||||
//基础接口
|
||||
public:
|
||||
//释放对象
|
||||
virtual VOID Release() { delete this; }
|
||||
//接口查询
|
||||
virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
|
||||
|
||||
//管理接口
|
||||
public:
|
||||
//复位桌子
|
||||
virtual VOID RepositionSink();
|
||||
//配置桌子
|
||||
virtual bool Initialization(IUnknownEx * pIUnknownEx);
|
||||
|
||||
//查询接口
|
||||
public:
|
||||
//查询限额
|
||||
virtual SCORE QueryConsumeQuota(IServerUserItem * pIServerUserItem);
|
||||
//最少积分
|
||||
virtual SCORE QueryLessEnterScore(WORD wChairID, IServerUserItem * pIServerUserItem);
|
||||
//查询是否扣服务费
|
||||
virtual bool QueryBuckleServiceCharge(WORD wChairID){return true;}
|
||||
|
||||
//游戏事件
|
||||
public:
|
||||
//游戏开始
|
||||
virtual bool OnEventGameStart();
|
||||
//游戏结束
|
||||
virtual bool OnEventGameConclude(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason);
|
||||
//发送场景
|
||||
virtual bool OnEventSendGameScene(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbGameStatus, bool bSendSecret);
|
||||
|
||||
//事件接口
|
||||
public:
|
||||
//时间事件
|
||||
virtual bool OnTimerMessage(DWORD wTimerID, WPARAM wBindParam);
|
||||
//数据事件
|
||||
virtual bool OnDataBaseMessage(WORD wRequestID, VOID * pData, WORD wDataSize);
|
||||
//积分事件
|
||||
virtual bool OnUserScroeNotify(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason);
|
||||
|
||||
//网络接口
|
||||
public:
|
||||
//游戏消息
|
||||
virtual bool OnGameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem);
|
||||
//框架消息
|
||||
virtual bool OnFrameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem);
|
||||
|
||||
//比赛接口
|
||||
public:
|
||||
//设置基数
|
||||
virtual void SetGameBaseScore(LONG lBaseScore);
|
||||
|
||||
virtual void SetPrivateInfo(BYTE bGameTypeIdex, DWORD bGameRuleIdex){ ; }
|
||||
//重置私人场结束信息
|
||||
virtual void ResetPrivateEndInfo();
|
||||
//获得私人场结束信息流
|
||||
virtual void GetPrivateEndInfo(DataStream &kDataStream, bool bSend);
|
||||
//判断私人场是否结束
|
||||
virtual bool IsPrivateEnd();
|
||||
//真实椅子数量
|
||||
virtual WORD GetRealChairCount();
|
||||
|
||||
//私人场辅助函数;
|
||||
public:
|
||||
//是否有相应规则;
|
||||
bool IsHasGameRule(ePDKRuleEnum eType);
|
||||
|
||||
//用户事件
|
||||
public:
|
||||
//用户断线
|
||||
virtual bool OnActionUserOffLine(WORD wChairID, IServerUserItem * pIServerUserItem);
|
||||
//用户重入
|
||||
virtual bool OnActionUserConnect(WORD wChairID, IServerUserItem * pIServerUserItem);
|
||||
//用户坐下
|
||||
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) { return true; }
|
||||
//房卡数量判断
|
||||
virtual bool OnActionUserFangKaCheck(WORD wChairID, IServerUserItem * pIServerUserItem, SCORE lUserInsure) { return true; }
|
||||
//用户开始游戏
|
||||
virtual bool OnActionUserOnStart(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) { return true; }
|
||||
//用户开始游戏
|
||||
virtual bool OnActionUserStartGame(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) { return true; }
|
||||
//游戏事件
|
||||
protected:
|
||||
//用户托管;
|
||||
bool OnUserTrustee(WORD wChairID, bool bTrustee);
|
||||
//用户放弃
|
||||
bool OnUserPassCard(WORD wChairID);
|
||||
//用户叫分
|
||||
bool OnUserCallScore(WORD wChairID, bool bCallScore);
|
||||
//用户出牌
|
||||
bool OnUserOutCard(WORD wChairID, BYTE cbCardData[], BYTE cbCardCount);
|
||||
|
||||
// 计算炸弹分;
|
||||
void CalcBombScore(WORD wChairID);
|
||||
//打独结束统计炸弹分;
|
||||
void GetBombScore(WORD wChairID, BYTE cbHandCardData[], BYTE cbHandCardCount);
|
||||
|
||||
// 获取下家椅子号;
|
||||
WORD getNextChairID(WORD wChairID);
|
||||
//私人场结算信息
|
||||
public:
|
||||
CMD_S_Private_End_Info m_PrivateEndInfo;
|
||||
|
||||
// 录像事件
|
||||
public:
|
||||
// 游戏开始
|
||||
void starGameRecord();
|
||||
// 玩家操作提示;
|
||||
void addGameRecordAction(WORD wSubCmdID, void* pSubMessage, int nMessageSize);
|
||||
|
||||
//录像
|
||||
public:
|
||||
tagGameRecord m_kGameRecord;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user