#ifndef STRUCT_HEAD_FILE #define STRUCT_HEAD_FILE #pragma pack(1) ////////////////////////////////////////////////////////////////////////////////// //游戏列表 //游戏类型 struct tagGameType { WORD wJoinID; //挂接索引 WORD wSortID; //排序索引 WORD wTypeID; //类型索引 TCHAR szTypeName[LEN_TYPE]; //种类名字 }; //游戏种类 struct tagGameKind { WORD wTypeID; //类型索引 WORD wJoinID; //挂接索引 WORD wSortID; //排序索引 WORD wKindID; //类型索引 WORD wGameID; //模块索引 DWORD dwOnLineCount; //在线人数 WORD wTableCount; //在线桌子 WORD wFullTableCount; //满员桌子 DWORD dwFullCount; //满员人数 TCHAR szKindName[LEN_KIND]; //游戏名字 TCHAR szProcessName[LEN_PROCESS]; //进程名字 }; //游戏节点 struct tagGameNode { WORD wKindID; //名称索引 WORD wJoinID; //挂接索引 WORD wSortID; //排序索引 WORD wNodeID; //节点索引 TCHAR szNodeName[LEN_NODE]; //节点名称 }; //定制类型 struct tagGamePage { WORD wPageID; //页面索引 WORD wKindID; //名称索引 WORD wNodeID; //节点索引 WORD wSortID; //排序索引 WORD wOperateType; //控制类型 TCHAR szDisplayName[LEN_PAGE]; //显示名称 }; //游戏房间 struct tagGameServer { WORD wKindID; //名称索引 WORD wNodeID; //节点索引 WORD wSortID; //排序索引 WORD wServerID; //房间索引 WORD wServerKind; //房间类型 WORD wServerType; //房间类型 WORD wServerPort; //房间端口 SCORE lCellScore; //单元积分 SCORE lEnterScore; //进入积分 DWORD dwServerRule; //房间规则 DWORD dwOnLineCount; //在线人数 WORD wTableFullCount; //满员桌子数 WORD wTableOnlineCount; //在线桌子数 DWORD dwFullCount; //满员人数 TCHAR szServerAddr[32]; //房间地址 TCHAR szServerName[LEN_SERVER]; //房间名称 DWORD dwLiveTime; //最近活动时间 WORD wServerLevel; //服务级别 12345678 8为最高 int bService; //是否提供服务 1提供服务 0 主动不提供服务 <0 被攻击被动不提供服务 }; ///好友房服务器 struct tagPrivateGameServer { WORD wKindID; //名称索引 WORD wNodeID; //节点索引 WORD wSortID; //排序索引 WORD wServerID; //房间索引 WORD wServerKind; //房间类型 WORD wServerType; //房间类型 WORD wServerPort; //房间端口 TCHAR szServerAddr[32]; //房间地址 tagPrivateGameServer() { memset(this, 0, sizeof(this)); } }; //比赛报名 struct tagSignupMatchInfo { WORD wServerID; //房间标识 DWORD dwMatchID; //比赛标识 DWORD dwMatchNO; //比赛场次 }; //比赛信息 struct tagGameMatch { //基本信息 WORD wServerID; //房间标识 DWORD dwMatchID; //比赛标识 DWORD dwMatchNO; //比赛场次 BYTE cbMatchType; //比赛类型 TCHAR szMatchName[32]; //比赛名称 //比赛信息 BYTE cbMemberOrder; //会员等级 BYTE cbMatchFeeType; //扣费类型 SCORE lMatchFee; //比赛费用 //比赛信息 WORD wStartUserCount; //开赛人数 WORD wMatchPlayCount; //比赛局数 //比赛奖励 WORD wRewardCount; //奖励人数 //比赛时间 SYSTEMTIME MatchStartTime; //开始时间 SYSTEMTIME MatchEndTime; //结束时间 }; //视频配置 struct tagAVServerOption { WORD wAVServerPort; //视频端口 DWORD dwAVServerAddr; //视频地址 }; //在线信息 struct tagOnLineInfoKind { WORD wKindID; //类型标识 DWORD dwOnLineCount; //在线人数 }; //在线统计 struct tagOnLineInfoKindEx { WORD wKindID; //类型标识 DWORD dwOnLineCount; //在线人数 WORD wTableCount; //在线桌子 WORD wFullTableCount; //满员桌子 }; //在线信息 struct tagOnLineInfoServer { WORD wServerID; //房间标识 DWORD dwOnLineCount; //在线人数 }; ////////////////////////////////////////////////////////////////////////////////// //机器参数 struct tagAndroidParameter { //属性变量 DWORD dwBatchID; //批次标识 DWORD dwServiceMode; //服务模式 DWORD dwAndroidCount; //机器数目 DWORD dwEnterTime; //进入时间 DWORD dwLeaveTime; //离开时间 SCORE lTakeMinScore; //携带分数 SCORE lTakeMaxScore; //携带分数 DWORD dwEnterMinInterval; //进入间隔 DWORD dwEnterMaxInterval; //进入间隔 DWORD dwLeaveMinInterval; //离开间隔 DWORD dwLeaveMaxInterval; //离开间隔 DWORD dwSwitchMinInnings; //换桌局数 DWORD dwSwitchMaxInnings; //换桌局数 }; ////////////////////////////////////////////////////////////////////////////////// //用户信息 //用户属性 struct tagUserAttrib { BYTE cbCompanion; //用户关系 }; //道具使用 struct tagUsePropertyInfo { WORD wPropertyCount; //道具数目 WORD dwValidNum; //有效数字 DWORD dwEffectTime; //生效时间 }; //用户道具 struct tagUserProperty { WORD wPropertyUseMark; //道具标示 tagUsePropertyInfo PropertyInfo[MAX_PT_MARK]; //使用信息 }; //道具包裹 struct tagPropertyPackage { WORD wTrumpetCount; //小喇叭数 WORD wTyphonCount; //大喇叭数 }; //时间信息 struct tagTimeInfo { DWORD dwEnterTableTimer; //进出桌子时间 DWORD dwLeaveTableTimer; //离开桌子时间 DWORD dwStartGameTimer; //开始游戏时间 DWORD dwEndGameTimer; //离开游戏时间 }; //用户信息 struct tagUserInfo { //基本属性 DWORD dwUserID; //用户 I D DWORD dwGameID; //游戏 I D DWORD dwGroupID; //社团 I D TCHAR szNickName[LEN_NICKNAME]; //用户昵称 TCHAR szGroupName[LEN_GROUP_NAME]; //社团名字 LONGLONG llJuLi; //距离 TCHAR szUnderWrite[LEN_UNDER_WRITE]; //个性签名 //头像信息 WORD wFaceID; //头像索引 DWORD dwCustomID; //自定标识 //用户资料 BYTE cbGender; //用户性别 BYTE cbMemberOrder; //会员等级 BYTE cbMasterOrder; //管理等级 //用户状态 TCHAR szPrivateTableID[LEN_PRIVATE_TABLE_ID]; //个性签名 WORD wTableID; //桌子索引 //当前所在桌子 WORD wLastTableID; //游戏桌子 //最近游戏中的桌子 WORD wChairID; //椅子索引 BYTE cbUserStatus; //用户状态 //积分信息 SCORE lScore; //用户分数 SCORE lGrade; //用户成绩 SCORE lInsure; //用户银行 //SCORE lIngot; //用户元宝 //游戏信息 DWORD dwWinCount; //胜利盘数 DWORD dwLostCount; //失败盘数 DWORD dwDrawCount; //和局盘数 DWORD dwFleeCount; //逃跑盘数 DWORD dwExperience; //用户经验 LONG lLoveLiness; //用户魅力 //时间信息 tagTimeInfo TimerInfo; //时间信息 TCHAR szHeadUrl[LEN_HEAD_URL]; //三方头像地址 DWORD dwBean; //拥有的元宝 TCHAR szUnionID[33]; //第三方登录账号 DWORD dDaiLi; //绑定代理值 //加入信息 LONGLONG dDingWeiX; //该玩家定位数据 LONGLONG dDingWeiY; //该玩家定位数据 LONGLONG llJiePing; //反作弊房,截屏次数。 int iXinYong; //该用户信用值 TCHAR RegisterDate[28]; //注册时间 int LeiJiZuanShi; int GouMaiZuanShi; TCHAR szChengShi[20]; //地理位置 TCHAR szName[50]; //代理 TCHAR szWx[50]; //代理微信 TCHAR szQQ[50]; //代理QQ ///+++剩余救济信息 201-11-10 DWORD dwUpdateReliefLeftCount; //救济次数更新的时间 WORD wReliefLeftCount; //救济次数 DWORD dwClubID[20]; //俱乐部信息 }; //用户信息 struct tagUserInfoHead { //用户属性 DWORD dwGameID; //游戏 I D DWORD dwUserID; //用户 I D DWORD dwGroupID; //社团 I D //头像信息 WORD wFaceID; //头像索引 DWORD dwCustomID; //自定标识 //用户属性 bool bIsAndroid; //机器标识 BYTE cbGender; //用户性别 BYTE cbMemberOrder; //会员等级 BYTE cbMasterOrder; //管理等级 //用户状态 WORD wTableID; //桌子索引 WORD wChairID; //椅子索引 BYTE cbUserStatus; //用户状态 //积分信息 SCORE lScore; //用户分数 SCORE lGrade; //用户成绩 SCORE lInsure; //用户银行 SCORE lIngot; //用户元宝 //游戏信息 DWORD dwWinCount; //胜利盘数 DWORD dwLostCount; //失败盘数 DWORD dwDrawCount; //和局盘数 DWORD dwFleeCount; //逃跑盘数 DWORD dwExperience; //用户经验 LONG lLoveLiness; //用户魅力 }; //头像信息 struct tagCustomFaceInfo { DWORD dwDataSize; //数据大小 DWORD dwCustomFace[FACE_CX*FACE_CY]; //图片信息 }; //用户信息 struct tagUserRemoteInfo { //用户信息 DWORD dwUserID; //用户标识 DWORD dwGameID; //游戏标识 TCHAR szNickName[LEN_NICKNAME]; //用户昵称 //等级信息 BYTE cbGender; //用户性别 BYTE cbMemberOrder; //会员等级 BYTE cbMasterOrder; //管理等级 //位置信息 WORD wKindID; //类型标识 WORD wServerID; //房间标识 TCHAR szGameServer[LEN_SERVER]; //房间位置 }; ////////////////////////////////////////////////////////////////////////////////// //任务参数 struct tagTaskParameter { //基本信息 WORD wTaskID; //任务标识 WORD wTaskType; //任务类型 WORD wTaskObject; //任务目标 BYTE cbPlayerType; //玩家类型 WORD wKindID; //类型标识 DWORD dwTimeLimit; //时间限制 //奖励信息 SCORE lStandardAwardGold; //奖励金币 SCORE lStandardAwardMedal; //奖励奖牌 SCORE lMemberAwardGold; //奖励金币 SCORE lMemberAwardMedal; //奖励奖牌 //描述信息 TCHAR szTaskName[LEN_TASK_NAME]; //任务名称 TCHAR szTaskDescribe[320]; //任务描述 }; //任务状态 struct tagTaskStatus { WORD wTaskID; //任务标识 WORD wTaskProgress; //任务进度 BYTE cbTaskStatus; //任务状态 }; //低保参数 struct tagBaseEnsureParameter { SCORE lScoreCondition; //游戏币条件 SCORE lScoreAmount; //游戏币数量 BYTE cbTakeTimes; //领取次数 }; //推广信息 struct tagUserSpreadInfo { DWORD dwSpreadCount; //推广人数 SCORE lSpreadReward; //推广奖励 }; //等级配置 struct tagGrowLevelConfig { WORD wLevelID; //等级 I D DWORD dwExperience; //相应经验 }; //等级参数 struct tagGrowLevelParameter { WORD wCurrLevelID; //当前等级 DWORD dwExperience; //当前经验 DWORD dwUpgradeExperience; //下级经验 SCORE lUpgradeRewardGold; //升级奖励 SCORE lUpgradeRewardIngot; //升级奖励 }; //会员参数 struct tagMemberParameter { BYTE cbMemberOrder; //会员标识 TCHAR szMemberName[16]; //会员名称 SCORE lMemberPrice; //会员价格 SCORE lPresentScore; //赠送游戏币 }; ////////////////////////////////////////////////////////////////////////////////// //广场子项 struct tagGamePlaza { WORD wPlazaID; //广场标识 TCHAR szServerAddr[32]; //服务地址 TCHAR szServerName[32]; //服务器名 ///---add by yd DWORD dwLiveTime; //最近活动时间 WORD wServerID; //登录服务器ID }; //级别子项 struct tagLevelItem { LONG lLevelScore; //级别积分 TCHAR szLevelName[16]; //级别描述 }; //会员子项 struct tagMemberItem { BYTE cbMemberOrder; //等级标识 TCHAR szMemberName[16]; //等级名字 }; //管理子项 struct tagMasterItem { BYTE cbMasterOrder; //等级标识 TCHAR szMasterName[16]; //等级名字 }; //地址信息 struct tagAddressInfo { TCHAR szAddress[33]; //服务地址 }; //数据信息 struct tagDataBaseParameter { WORD wDataBasePort; //数据库端口 TCHAR szDataBaseAddr[32]; //数据库地址 TCHAR szDataBaseUser[32]; //数据库用户 TCHAR szDataBasePass[32]; //数据库密码 TCHAR szDataBaseName[32]; //数据库名字 }; //房间配置 struct tagServerOptionInfo { //挂接属性 WORD wKindID; //挂接类型 WORD wNodeID; //挂接节点 WORD wSortID; //排列标识 //税收配置 WORD wRevenueRatio; //税收比例 SCORE lServiceScore; //服务费用 //房间配置 SCORE lRestrictScore; //限制积分 SCORE lMinTableScore; //最低积分 SCORE lMinEnterScore; //最低积分 SCORE lMaxEnterScore; //最高积分 //会员限制 BYTE cbMinEnterMember; //最低会员 BYTE cbMaxEnterMember; //最高会员 //房间属性 DWORD dwServerRule; //房间规则 TCHAR szServerName[LEN_SERVER]; //房间名称 }; //更新信息 struct tagUpdateInfo { WORD wStructSize; //结构大小 WORD wUpdateCount; //更新数目 char szDownLoadAddress[MAX_PATH]; //下载地址 }; //更新子项 struct tagUpdateItem { WORD wStructSize; //结构大小 char szFileCheckSum[33]; //文件校验和 char szFileName[128]; //文件名称 }; enum enUserLogonMode { //登陆方式 ULMByAccount, ULMByGameID, ULMByVisitor, ULMBySina, ULMByTencent, ULMByRenRen, }; ///---场信息 struct tagVenueInfo { WORD wVenueID; //场馆ID TCHAR szVenuName[256]; //场馆名称 SCORE sBaseScore; //底分 SCORE sMinScore; //下限 SCORE sMaxScore; //上限 WORD wKindID; //游戏类型ID TCHAR szKindName[256]; //游戏类型名称 DWORD dwOnlineCount; //在线人数 BYTE btOpenFlag; //开放标志(0:关闭 1:开放) SCORE lRestrictScore; //限制积分 WORD wRevenueRatio; //税收比例 SCORE sServiceScore; //服务费用 TCHAR szExtConfig[256]; //游戏扩展配置(用来设置各玩法的配置,协议格式定义为#分隔的字符中) tagVenueInfo() { memset(this, 0, sizeof(tagVenueInfo)); } //拷贝构造   tagVenueInfo(const tagVenueInfo& r) { wVenueID = r.wVenueID; lstrcpyn(szVenuName, r.szVenuName, CountArray(r.szVenuName)); sBaseScore = r.sBaseScore; sMinScore = r.sMinScore; sMaxScore = r.sMaxScore; wKindID = r.wKindID; lstrcpyn(szKindName, r.szKindName, CountArray(r.szKindName)); dwOnlineCount = r.dwOnlineCount; btOpenFlag = r.btOpenFlag; lRestrictScore = r.lRestrictScore; wRevenueRatio = r.wRevenueRatio; sServiceScore = r.sServiceScore; lstrcpyn(szExtConfig, r.szExtConfig, CountArray(r.szExtConfig)); } }; ///---金币场游戏房间 struct tagVenueServer { WORD wKindID; //名称索引 WORD wVenueID; //节点索引 ///---金币场作为场ID WORD wServerID; //房间索引 ///---GameServerID WORD wServerKind; //房间类型 TCHAR szServerAddr[32]; //房间IP WORD wServerPort; //房间PORT SCORE lCellScore; //底分 SCORE lMinScore; //积分下限 SCORE lMaxScore; //积分上限 tagVenueServer() { memset(this, 0, sizeof(tagVenueServer)); } }; ///---场信息 struct CMD_VenueInfo { WORD wVenueID; //场馆ID TCHAR szVenuName[256]; //场馆名称 SCORE sBaseScore; //底分 SCORE sMinScore; //下限 SCORE sMaxScore; //上限 WORD wKindID; //游戏类型ID TCHAR szKindName[256]; //游戏类型名称 DWORD dwOnlineCount; //在线人数 BYTE btOpenFlag; //开放标志(0:关闭 1:开放) CMD_VenueInfo() { memset(this, 0, sizeof(CMD_VenueInfo)); } //拷贝构造   CMD_VenueInfo(const CMD_VenueInfo& r) { wVenueID = r.wVenueID; lstrcpyn(szVenuName, r.szVenuName, CountArray(r.szVenuName)); sBaseScore = r.sBaseScore; sMinScore = r.sMinScore; sMaxScore = r.sMaxScore; wKindID = r.wKindID; lstrcpyn(szKindName, r.szKindName, CountArray(r.szKindName)); dwOnlineCount = r.dwOnlineCount; btOpenFlag = r.btOpenFlag; } //拷贝构造   CMD_VenueInfo(const tagVenueInfo& r) { wVenueID = r.wVenueID; lstrcpyn(szVenuName, r.szVenuName, CountArray(r.szVenuName)); sBaseScore = r.sBaseScore; sMinScore = r.sMinScore; sMaxScore = r.sMaxScore; wKindID = r.wKindID; lstrcpyn(szKindName, r.szKindName, CountArray(r.szKindName)); dwOnlineCount = r.dwOnlineCount; btOpenFlag = r.btOpenFlag; } }; ///---胜局榜 struct tagTopWinInfo { //用户信息 DWORD dwUserID; //用户标识 TCHAR szNickname[LEN_NICKNAME]; //用户昵称 TCHAR szHeadUrl[LEN_HEAD_URL]; //三方头像地址 int iBingID; //++邀请码(绑定ID) //成绩信息 //SCORE lScore; //用户分数 DWORD dwWinCount; //胜利盘数 DWORD dwTotalCount; //总共盘数 //DWORD dwLostCount; //失败盘数 //DWORD dwDrawCount; //和局盘数 //DWORD dwFleeCount; //逃跑盘数 tagTopWinInfo() { memset(this, 0, sizeof(tagTopWinInfo)); } //拷贝构造   tagTopWinInfo(const tagTopWinInfo& r) { dwUserID = r.dwUserID; lstrcpyn(szNickname, r.szNickname, CountArray(r.szNickname)); lstrcpyn(szHeadUrl, r.szHeadUrl, CountArray(r.szHeadUrl)); iBingID = r.iBingID; //lScore = r.lScore; dwWinCount = r.dwWinCount; //dwLostCount = r.dwLostCount; //dwDrawCount = r.dwDrawCount; //dwFleeCount = r.dwFleeCount; dwTotalCount = r.dwTotalCount; } }; ///---救助信息 struct tagReliefInfo { WORD wTotalCount; ///总次数 WORD wGetCount; ///领取次数 DWORD dwReliefScore; ///救济金额 tagReliefInfo() { memset(this, 0, sizeof(tagReliefInfo)); } }; //DB领取救济 struct DBR_GR_GetRelief { //报名费用 DWORD dwUserID; //用户ID //系统信息 DWORD dwClientAddr; //连接地址 TCHAR szMachineID[LEN_MACHINE_ID]; //机器序列 DBR_GR_GetRelief() { memset(this, 0, sizeof(DBR_GR_GetRelief)); } }; ///---救助领取 struct tagReliefScore { DWORD dwReliefScore; ///救济金额 SCORE lCurrScore; ///最新金币 tagReliefScore() { memset(this, 0, sizeof(tagReliefScore)); } }; ///---钻石兑换金币配置 struct tagExchangeConfig { WORD wID; //ID DWORD dwIngot; //钻石 DWORD dwSCORE; //金币 tagExchangeConfig() { memset(this, 0, sizeof(tagExchangeConfig)); } //拷贝构造   tagExchangeConfig(const tagExchangeConfig& r) { wID = r.wID; //ID dwIngot = r.dwIngot; //钻石 dwSCORE = r.dwSCORE; //金币 } }; ////////////////////////////////////////////////////////////////////////////////// ///+++福利信息 struct tagWelfareInfo { BYTE btWelfareType; //福利类型 (1:幸运转盘 2:救济福利 3:签到福利) BYTE btTakedNum; //领取的次数(一般指今日领取的次数) BYTE btTotalNum; //总的次数 BYTE btValidFlag; //有效标识(0:无效) tagWelfareInfo() { memset(this, 0, sizeof(tagWelfareInfo)); } }; ///--转盘奖品 struct tagRouletteConfig { WORD wID; //--奖品ID TCHAR szName[256]; //--奖品名称 TCHAR szICON[256]; //--奖品图像 WORD wProperty; //--奖励值 WORD wType; //--类型 1:金币 2:钻石 3:话费 4:实物1 5:实物2 ... WORD wOdds; //--概率值 int iQuantity; //--奖品数量 tagRouletteConfig() { memset(this, 0, sizeof(tagRouletteConfig)); } //拷贝构造   tagRouletteConfig(const tagRouletteConfig& r) { wID = r.wID; lstrcpyn(szName, r.szName, CountArray(r.szName)); lstrcpyn(szICON, r.szICON, CountArray(r.szICON)); wProperty = r.wProperty; wType = r.wType; wOdds = r.wOdds; iQuantity = r.iQuantity; } }; struct tagRouletteConfig2 { WORD wResult; //结果(0:成功,其它:失败) TCHAR szDesc[128]; //描述信息 WORD wID; //奖品ID TCHAR szICON[256]; //奖品图像(备注:一张转盘整图) WORD wHadLotteryCount; //“我”已抽奖次数 WORD wLotteryCountPara; //抽奖总次数 //新转盘功能 WORD wLotteryLimit; //抽奖限制 WORD wInningValue; //局数标准 WORD wRechargeValue; //充值标准 WORD wInningInfo[3]; //局数详情 前天、昨天、今天 BYTE cbRechargeInfo; //充值详情 TCHAR szLotteryRule[128]; //抽奖规则 tagRouletteConfig2() { memset(this, 0, sizeof(tagRouletteConfig2)); } }; //转盘抽奖 struct DBR_GR_RouletteLottery { DWORD dwUserID; //用户ID WORD wLotteryType; //抽奖类型(0: 轮盘抽奖 1: 玩牌抽奖) add 2017-12-29 DWORD dwClientAddr; //连接地址 TCHAR szMachineID[LEN_MACHINE_ID]; //机器序列 WORD wRouletteLotteryID; //奖品ID TCHAR szLotteryName[200]; //奖品名称 DBR_GR_RouletteLottery() { memset(this, 0, sizeof(DBR_GR_RouletteLottery)); } }; //转盘抽奖 struct tagRouletteLottery { DWORD dwUserID; //用户ID DWORD dwClientAddr; //连接地址 TCHAR szMachineID[LEN_MACHINE_ID]; //机器序列 WORD wRouletteLotteryID; //奖品ID TCHAR szLotteryName[200]; //奖品名称 tagRouletteLottery() { memset(this, 0, sizeof(tagRouletteLottery)); } }; //转盘抽奖结果 struct tagLotteryResult { WORD wResult; //抽奖结果(0:成功,其它:失败) //=1时:表示不能抽奖,比如当天已抽过奖,不能再抽奖等 TCHAR szDesc[128]; //描述信息 WORD wLotteryType; //++抽奖类型 0:轮盘抽奖;1:玩牌抽奖 WORD wRouletteLotterID; //奖品ID WORD wHadLotteryCount; //++“我”已抽奖次数 WORD wLotteryCountPara; //++抽奖总次数 SCORE lScore; //当前金币 DWORD dwBean; //当前钻石 TCHAR szResultDesc[128]; //抽奖结果描述信息 tagLotteryResult() { memset(this, 0, sizeof(tagLotteryResult)); } }; struct tagLotteryResultEx { tagLotteryResult LotteryResult; TCHAR szPhoneNum[11]; //手机号码 WORD wAwardType; //奖品类型 DWORD dwRecordID; //记录ID tagLotteryResultEx() { memset(this, 0, sizeof(tagLotteryResultEx)); } }; //转盘抽奖 struct DBR_GR_LotteryInfo { DWORD dwUserID; //用户ID WORD wLotteryType; //抽奖类型(0: 轮盘抽奖 1: 玩牌抽奖) add 2017-12-29 DBR_GR_LotteryInfo() { memset(this, 0, sizeof(DBR_GR_LotteryInfo)); } }; //转盘抽奖历史记录 struct DBR_GR_LotteryHis { DWORD dwUserID; //用户ID BYTE btQueryFlag; //查询标志 0:只查自己的;1:查最近中奖记录 DBR_GR_LotteryHis() { memset(this, 0, sizeof(DBR_GR_LotteryHis)); } }; //更新奖品发放标志 struct DBR_GR_LotteryFlag { DWORD dwUserID; //用户ID WORD wLotteryID; DBR_GR_LotteryFlag() { memset(this, 0, sizeof(DBR_GR_LotteryFlag)); } }; //注册收件信息 struct DBR_GR_LotteryAddr { DWORD dwUserID; //用户ID TCHAR szAddressName[20]; //收件人姓名 TCHAR szAddress[128]; //收件人地址 TCHAR szAddrPhoneNum[11]; //收件人手机号码 DBR_GR_LotteryAddr() { memset(this, 0, sizeof(this)); } }; //手动领奖 struct DBR_GR_LotteryAward { DWORD dwUserID; //用户ID DWORD dwRecordID; //记录ID TCHAR szAddressee[16]; //收件人姓名 TCHAR szAddress[128]; //收件人地址 TCHAR szAddrPhoneNum[11]; //收件人手机号码 BYTE cbCheckResult; //领奖校验结果(0:成功,1:已领奖,2:发放失败) DBR_GR_LotteryAward() { memset(this, 0, sizeof(this)); } }; //轮盘抽奖信息 struct tagLotteryInfo { WORD wResult; //抽奖结果(0:成功,其它:失败 原因szDesc) WORD wLotteryType; //++抽奖类型 0:轮盘抽奖;1:玩牌抽奖(当为0时,不需要后面的玩牌信息) WORD wHadLotteryCount; //已抽奖次数 WORD wLotteryCountPara; //抽奖次数配置参数 WORD wCurrentDrawCount; //当前玩牌局数 WORD wDrawLotteryCountPara; //玩牌抽奖的次数条件 TCHAR szDesc[32]; //描述信息 tagLotteryInfo() { memset(this, 0, sizeof(tagLotteryInfo)); } }; //轮盘抽奖记录信息 struct tagLotteryHis { DWORD dwUserID; //玩家ID TCHAR szUserName[32]; //玩家名称 WORD wLotteryType; //抽奖类型 0:轮盘抽奖;1:玩牌抽奖 WORD wRouletteID; //奖品ID TCHAR szLotteryName[32]; //奖品名称 TCHAR szInputeDate[32]; //中奖时间 TCHAR szGetLotteryDate[32]; //领奖奖时间 BYTE btGetLotteryFlag; //领奖标志 0:未领取 1:领取 tagLotteryHis() { memset(this, 0, sizeof(tagLotteryHis)); } }; struct tagLotteryHisACK { tagLotteryHis LotteryHis[30]; }; struct tagLotteryHisEx { DWORD dwRecordID; //记录ID WORD wRouletteID; //奖品ID TCHAR szLotteryName[32]; //奖品名称 TCHAR szInputeDate[32]; //中奖时间 BYTE btGetLotteryFlag; //领奖标志 0:未领取 1:领取,2异常未知 tagLotteryHisEx() { memset(this, 0, sizeof(tagLotteryHisEx)); } }; struct tagLotteryHisExACK { tagLotteryHisEx LotteryHis[6]; }; //签到信息 struct tagCheckInInfo { bool bSuccessed; //成功标识 WORD wSeriesDate; //连续日期 bool bTodayChecked; //签到标识 TCHAR szNotifyContent[128]; //提示内容 }; //签到结果 struct tagCheckInResult { ///===bool bSuccessed; //成功标识(客户端不会解) BYTE btSuccessed; //成功标识 SCORE lScore; //当前分数 DWORD dwBean; //当前游戏豆 TCHAR szNotifyContent[128]; //提示内容 }; //执行签到 struct tagCheckInDone { //用户信息 DWORD dwUserID; //用户标识 //附加信息 DWORD dwClientAddr; //连接地址 TCHAR szMachineID[LEN_MACHINE_ID]; //机器序列 }; ///+++签到奖励 struct tagCheckinReward { SCORE lRewardGold; ///---金币 int iRewardCurrency; ///---钻石 tagCheckinReward() { memset(this, 0, sizeof(tagCheckinReward)); } }; ///+++用户签到信息 struct UserCheckinInfo { BYTE btTodayChecked; //今天签到标识 WORD wSeriesDay; //连续签到的天数 tagCheckinReward checkinReward[LEN_WEEK]; UserCheckinInfo() { memset(this, 0, sizeof(UserCheckinInfo)); } }; //用户获得代理解绑相关信息 struct DBR_GR_GetUntieAgentInfo { BYTE cbCost; ///操作成本 消耗钻石数目 BYTE cbDays; ///操作周期 天数 DWORD dwCurrency; ///当前钻石数目 DWORD dwDaiLiID; //用户已绑定的优惠码 }; struct DBR_GR_UntieAgentInfo { BYTE IRet; ///是否成功 0成功 TCHAR szErrorDsc[128]; //结果描述 }; ////////////////////////////////////////////////////////////////////////////////// #pragma pack() #endif