Files
wnmj-normal/Servers/服务器组件/私人场服务/PrivateTableInfo.h
2026-03-03 13:56:44 +08:00

119 lines
3.1 KiB
C++

#ifndef PRIVATE_TABLE_INFO_FILE
#define PRIVATE_TABLE_INFO_FILE
#pragma once
//引入文件
#include "CTableFramePrivate.h"
#include "PrivateServiceHead.h"
///////////////////////////////////////////////////////////////////////////////////////////
enum RoomType
{
Type_Private,
Type_Public,
};
enum emPlayCount
{
Jiang_1, //1将
Jiang_2 //2将
};
enum ePrivateTableCommonRule
{
ePrivateTableCommonRule_CardAA = 1, //房卡AA;
ePrivateTableCommonRule_auto = 1 << 29, //代开房;
ePrivateTableCommonRule_DaiKaiFang = 1 << 30, //代开房;
ePrivateTableCommonRule_NOSameIPAddr= 1 << 31, //不可以同IP地址;
};
enum ePrivateRoomScoreType
{
ePrivateRoomScoreType_Default = 1, //默认类型;
ePrivateRoomScoreType_SetOneTime = 1 << 1, //进入房间时设置一次;
ePrivateRoomScoreType_EveryTime = 1 << 2, //每局开始时都设置一次;
};
//定时赛
class PrivateTableInfo
{
public:
PrivateTableInfo();
~PrivateTableInfo();
void restValue();
void restAgainValue();
void newRandChild();
WORD getChairCout();
void setRoomNum(DWORD RoomNum);
void writeSocre(tagScoreInfo ScoreInfoArray[], WORD wScoreCount,DataStream& daUserDefine);
bool IsCardAARule();
bool IsAutoUserCountRule();
bool IsAllAutoUserOK();
bool IsEveryTimeRoomScoreType();
bool IsSetOneTimeRoomScoreType();
bool IsCanJoinTable(IServerUserItem * pIServerUserItem, CString& refStrMsg);
bool IsDismissRoom();
bool IsOffLineUser();
//获得开始模式;
BYTE GetStartMode();
ITableFrame* pITableFrame;
DWORD dwCreaterUserID; // 创建者
DWORD dwUnionCode; // 工会ID
DWORD dwUnionConsumerID; // 消耗记录ID
DWORD m_dwDaikaiIndex; // 代开ID;
DWORD dwRoomNum; // 房间ID
DWORD dwPlayCout; // 目标局数
DWORD dwPlayCost; // 消耗点数
BYTE cbUnionGoldOpen; // 是否是积分模式
SCORE lScoreMultiple; // 倍数
SCORE lGameGold; // 佣金
SCORE lCreateScore; // 创建者积分
bool bStart; // 是否开始
bool bInEnd; // 是否结束
float fAgainPastTime; // 房间结束和重新创建间隔时间
float fCreateTime; // 房间创建时间
float fOfflineTimes[MAX_CHAIR]; // 玩家断线时间;
bool bAutoStart[MAX_CHAIR]; // 自由场玩家是否可以开始;
std::string kHttpChannel;
BYTE cbRoomType; // 房间类型 私人场和普通场
DWORD dwStartPlayCout; // 实际打完数量
DWORD dwFinishPlayCout; // 统计打完数量(如:麻将中的连庄,实际局数中统计,完成局数中不统计)
BYTE bPlayCoutIdex; //玩家局数
BYTE bGameTypeIdex; //游戏类型
DWORD dwGameRuleIdex; //游戏规则(默认0x0001位置是房卡AA,如果不是,这个位置为0);
BYTE cbEnterRoomScoreType; //进房间时的分数类型;
SCORE lInitEnterRoomScore; //进入房间时的分数;
BYTE cbBaseScore; //底分;
SCORE lPlayerWinLose[MAX_CHAIR]; // 总积分
SCORE lScoreInfoArray[MAX_CHAIR]; // 欢乐积分
float fDismissPastTime;
//bool m_isDismiss; // 是否可以解散;
float fGameStartTime; // 游戏开始时间
std::vector<DWORD> kDismissChairID;
std::vector<DWORD> kNotAgreeChairID;
tagPrivateRandTotalRecord kTotalRecord;
CMD_GR_Private_ReadyInfo mReadyInfo; // 自由人数申请开始情况;
};
#endif