Files
wnmj/Classes/Define/Struct.h
2026-02-13 14:34:15 +08:00

510 lines
12 KiB
C

#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