#ifndef STRUCT_HEAD_FILE #define STRUCT_HEAD_FILE #include "Types.h" #include "Define.h" ////////////////////////////////////////////////////////////////////////////////// //游戏列表 #pragma pack(1) struct systemtime { uint16 wYear; uint16 wMonth; uint16 wDayOfWeek; uint16 wDay; uint16 wHour; uint16 wMinute; uint16 wSecond; uint16 wMilliseconds; }; ////////////////////////////////////////////////////////////////////////////////////////////////////// //道具索引 #define PROP_DOUBLE 0 //双倍积分卡 #define PROP_FOURDOLD 1 //四倍积分卡 #define PROP_NEGAGIVE 2 //负分清零 #define PROP_FLEE 3 //清逃跑率 #define PROP_BUGLE 4 //小喇叭 #define PROP_KICK 5 //防踢卡 #define PROP_SHIELD 6 //护身符 #define PROP_MEMBER_1 7 //会员道具 #define PROP_MEMBER_2 8 //会员道具 #define PROP_MEMBER_3 9 //会员道具 #define PROP_MEMBER_4 10 //会员道具 #define PROP_MEMBER_5 11 //会员道具 #define PROP_MEMBER_6 12 //会员道具 #define PROP_MEMBER_7 13 //会员道具 #define PROP_MEMBER_8 14 //会员道具 uint8 const g_PropTypeList[]= { PROP_DOUBLE , PROP_FOURDOLD, PROP_NEGAGIVE, PROP_FLEE , PROP_BUGLE , PROP_KICK , PROP_SHIELD , PROP_MEMBER_1, PROP_MEMBER_2, PROP_MEMBER_3, PROP_MEMBER_4, PROP_MEMBER_5, PROP_MEMBER_6, PROP_MEMBER_7, PROP_MEMBER_8, }; #define PROPERTY_COUNT (sizeof(g_PropTypeList)/sizeof(g_PropTypeList[0]))//道具数目 //游戏类型结构 struct tagGameType { uint16 wJoinID; //挂接索引 uint16 wSortID; //排序索引 uint16 wTypeID; //类型索引 char szTypeName[LEN_TYPE]; //种类名字 }; //游戏名称结构 struct tagGameKind { uint16 wTypeID; //类型号码 uint16 wJoinID; //挂接索引 uint16 wSortID; //排序号码 uint16 wKindID; //名称号码 uint16 wGameID; //模块索引 uint32 dwOnLineCount; //在线人数 uint32 dwFullCount; //满员人数 char szKindName[LEN_KIND]; //游戏名字 char szProcessName[LEN_MODULE]; //进程名字 }; //游戏房间列表结构 struct tagGameServer { uint16 wKindID; //名称索引 uint16 wNodeID; //节点索引 uint16 wSortID; //排序索引 uint16 wServerID; //房间索引 //WORD wServerKind; //房间类型 uint16 wServerType; //房间类型 uint16 wServerPort; //房间端口 SCORE lCellScore; //单元积分 SCORE lEnterScore; //进入积分 uint32 dwServerRule; //房间规则 uint32 dwOnLineCount; //在线人数 uint32 dwAndroidCount; //机器人数 uint32 dwFullCount; //满员人数 char szServerAddr[32]; //房间名称 char szServerName[LEN_SERVER]; //房间名称 }; //比赛报名 struct tagSignupMatchInfo { uint16 wServerID; //房间标识 uint32 dwMatchID; //比赛标识 uint32 dwMatchNO; //比赛场次 }; //比赛信息 struct tagGameMatch { //基本信息 uint16 wServerID; //房间标识 uint32 dwMatchID; //比赛标识 uint32 dwMatchNO; //比赛场次 uint8 cbMatchType; //比赛类型 char szMatchName[32]; //比赛名称 //比赛信息 uint8 cbMemberOrder; //会员等级 uint8 cbMatchFeeType; //扣费类型 SCORE lMatchFee; //比赛费用 SCORE lMatchEnterScore; //准入金币 //比赛信息 uint16 wStartUserCount; //开赛人数 uint16 wMatchPlayCount; //比赛局数 //比赛奖励 uint16 wRewardCount; //奖励人数 //比赛时间 systemtime MatchStartTime; //开始时间 systemtime MatchEndTime; //结束时间 }; //在线信息 struct tagOnLineInfoKind { uint16 wKindID; //类型标识 uint32 dwOnLineCount; //在线人数 }; //在线信息 struct tagOnLineInfoServer { uint16 wServerID; //房间标识 uint32 dwOnLineCount; //在线人数 }; ////////////////////////////////////////////////////////////////////////////////// //用户信息 //桌子状态 struct tagTableStatus { uint8 cbTableLock; //锁定标志 uint8 cbPlayStatus; //游戏标志 }; //用户状态 struct tagUserStatus { uint16 wTableID; //桌子索引 uint16 wChairID; //椅子位置 uint8 cbUserStatus; //用户状态 }; //用户属性 struct tagUserAttrib { uint8 cbCompanion; //用户关系 }; //用户积分 struct tagUserScore { //积分信息 SCORE lScore; //用户分数 SCORE lGrade; //用户成绩 SCORE lInsure; //用户银行 //输赢信息 uint32 dwWinCount; //胜利盘数 uint32 dwLostCount; //失败盘数 uint32 dwDrawCount; //和局盘数 uint32 dwFleeCount; //逃跑盘数 //全局信息 uint32 dwUserMedal; //用户奖牌 uint32 dwExperience; //用户经验 unsigned int lLoveLiness; //用户魅力 }; //用户积分 struct tagMobileUserScore { //积分信息 SCORE lScore; //用户分数 //输赢信息 uint32 dwWinCount; //胜利盘数 uint32 dwLostCount; //失败盘数 uint32 dwDrawCount; //和局盘数 uint32 dwFleeCount; //逃跑盘数 //全局信息 uint32 dwExperience; //用户经验 }; //道具使用 struct tagUsePropertyInfo { uint16 wPropertyCount; //道具数目 uint16 dwValidNum; //有效数字 uint32 dwEffectTime; //生效时间 }; //用户道具 struct tagUserProperty { uint16 wPropertyUseMark; //道具标示 tagUsePropertyInfo PropertyInfo[MAX_PT_MARK]; //使用信息 }; //道具包裹 struct tagPropertyPackage { uint16 wTrumpetCount; //小喇叭数 uint16 wTyphonCount; //大喇叭数 }; //时间信息 struct tagTimeInfo { uint32 dwEnterTableTimer; //进出桌子时间 uint32 dwLeaveTableTimer; //离开桌子时间 uint32 dwStartGameTimer; //开始游戏时间 uint32 dwEndGameTimer; //离开游戏时间 }; //用户信息 struct tagUserInfo { //基本属性 uint32 dwUserID; //用户 I D uint32 dwGameID; //游戏 I D uint32 dwGroupID; //社团 I D char szNickName[LEN_NICKNAME]; //用户昵称 char szGroupName[LEN_GROUP_NAME]; //社团名字 char szUnderWrite[LEN_UNDER_WRITE]; //个性签名 char szLogonIP[LEN_ACCOUNTS]; //登录IP char szHeadHttp[LEN_USER_NOTE]; //登录IP //头像信息 uint16 wFaceID; //头像索引 uint32 dwCustomID; //自定标识 //用户资料 uint8 cbGender; //用户性别 uint8 cbMemberOrder; //会员等级 uint8 cbMasterOrder; //管理等级 //用户状态 uint16 wTableID; //桌子索引 uint16 wLastTableID; //游戏桌子 uint16 wChairID; //椅子索引 uint8 cbUserStatus; //用户状态 //积分信息 SCORE lScore; //用户分数 SCORE lGrade; //用户成绩 SCORE lInsureScore; //用户银行 SCORE lGameGold; //用户元宝 //游戏信息 uint32 lWinCount; //胜利盘数 uint32 lLostCount; //失败盘数 uint32 lDrawCount; //和局盘数 uint32 lFleeCount; //逃跑盘数 uint32 lExperience; //用户经验 uint32 lLoveLiness; //用户魅力 //时间信息 tagTimeInfo TimerInfo; }; //用户基本信息结构 struct tagUserInfoHead { //用户属性 uint32 dwGameID; //游戏 I D uint32 dwUserID; //用户 I D uint32 dwLogonIp; //登录IP //头像信息 uint16 wFaceID; //头像索引 uint32 dwCustomID; //自定标识 //用户属性 uint8 cbGender; //用户性别 uint8 cbMemberOrder; //会员等级 uint8 cbMasterOrder; //管理等级 //用户状态 uint16 wTableID; //桌子索引 uint16 wChairID; //椅子索引 uint8 cbUserStatus; //用户状态 //积分信息 SCORE lScore; //用户分数 SCORE lGrade; //用户成绩 SCORE lInsure; //用户银行 //游戏信息 uint32 dwWinCount; //胜利盘数 uint32 dwLostCount; //失败盘数 uint32 dwDrawCount; //和局盘数 uint32 dwFleeCount; //逃跑盘数 uint32 dwUserMedal; //用户奖牌 uint32 dwExperience; //用户经验 uint32 lLoveLiness; //用户魅力 }; //头像信息 struct tagCustomFaceInfo { uint32 dwDataSize; //数据大小 uint32 dwCustomFace[FACE_CX*FACE_CY]; //图片信息 }; //用户信息 struct tagUserRemoteInfo { //用户信息 uint32 dwUserID; //用户标识 uint32 dwGameID; //游戏标识 char szNickName[LEN_NICKNAME]; //用户昵称 //等级信息 uint8 cbGender; //用户性别 uint8 cbMemberOrder; //会员等级 uint8 cbMasterOrder; //管理等级 //位置信息 uint16 wKindID; //类型标识 uint16 wServerID; //房间标识 char szGameServer[LEN_SERVER]; //房间位置 }; //等级配置 struct tagGrowLevelConfig { uint16 wLevelID; //等级 I D uint32 dwExperience; //相应经验 }; //等级参数 struct tagGrowLevelParameter { uint16 wCurrLevelID; //当前等级 uint32 dwExperience; //当前经验 uint32 dwUpgradeExperience; //下级经验 SCORE lUpgradeRewardGold; //升级奖励 SCORE lUpgradeRewardIngot; //升级奖励 }; ////////////////////////////////////////////////////////////////////////////////// //广场子项 struct tagGamePlaza { uint16 wPlazaID; //广场标识 char szServerAddr[32]; //服务地址 char szServerName[32]; //服务器名 }; //级别子项 struct tagLevelItem { uint32 lLevelScore; //级别积分 char szLevelName[16]; //级别描述 }; //会员子项 struct tagMemberItem { uint8 cbMemberOrder; //等级标识 char szMemberName[16]; //等级名字 }; //管理子项 struct tagMasterItem { uint8 cbMasterOrder; //等级标识 char szMasterName[16]; //等级名字 }; //列表子项 struct tagColumnItem { uint8 cbColumnWidth; //列表宽度 uint8 cbDataDescribe; //字段类型 char szColumnName[16]; //列表名字 }; //地址信息 struct tagAddressInfo { char szAddress[32]; //服务地址 }; //数据信息 struct tagDataBaseParameter { uint16 wDataBasePort; //数据库端口 char szDataBaseAddr[32]; //数据库地址 char szDataBaseUser[32]; //数据库用户 char szDataBasePass[32]; //数据库密码 char szDataBaseName[32]; //数据库名字 }; //房间配置 struct tagServerOptionInfo { //挂接属性 uint16 wKindID; //挂接类型 uint16 wNodeID; //挂接节点 uint16 wSortID; //排列标识 //税收配置 uint16 wRevenueRatio; //税收比例 SCORE lServiceScore; //服务费用 //房间配置 SCORE lRestrictScore; //限制积分 SCORE lMinTableScore; //最低积分 SCORE lMinEnterScore; //最低积分 SCORE lMaxEnterScore; //最高积分 //会员限制 uint8 cbMinEnterMember; //最低会员 uint8 cbMaxEnterMember; //最高会员 //房间属性 uint32 dwServerRule; //房间规则 char szServerName[LEN_SERVER]; //房间名称 }; ////////////////////////////////////////////////////////////////////////////////// //比赛信息 //赛事信息 struct tagMatchInfo { char szTitle[4][64]; //信息标题 uint16 wGameCount; //游戏局数 }; //提示信息 struct tagMatchWaitTip { SCORE lScore; //当前积分 uint16 wRank; //当前名次 uint16 wCurTableRank; //本桌名次 uint16 wUserCount; //当前人数 uint16 wPlayingTable; //游戏桌数 char szMatchName[LEN_SERVER]; //比赛名称 }; //比赛结果 struct tagMatchResult { char szDescribe[256]; //得奖描述 uint32 dwGold; //金币奖励 uint32 dwMedal; //奖牌奖励 uint32 dwExperience; //经验奖励 }; //比赛描述 struct tagMatchDesc { char szTitle[4][16]; //信息标题 char szDescribe[4][64]; //描述内容 uint32 crTitleColor; //标题颜色 uint32 crDescribeColor; //描述颜色 }; ////////////////////////////////////////////////////////////////////////////////// //排行榜 //排行榜项 //struct tagRankItem //{ // uint32 dwUserID; //用户ID // SCORE lScore; //用户积分 // unsigned short szNickname[LEN_NICKNAME]; //用户昵称 //}; #pragma pack() #endif