#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 kDismissChairID; std::vector kNotAgreeChairID; tagPrivateRandTotalRecord kTotalRecord; CMD_GR_Private_ReadyInfo mReadyInfo; // 自由人数申请开始情况; }; #endif