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

251 lines
7.2 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef GLOBAL_USER_INFO_HEAD_FILE
#define GLOBAL_USER_INFO_HEAD_FILE
#pragma once
#include "Define.h"
#include "Types.h"
#include "Struct.h"
#include "CMD_LogonServer.h"
//////////////////////////////////////////////////////////////////////////////////
//结构定义
#define PI (3.1415926f)
#define EARTH_RADIUS (6378.137f) //地球近似半径
#define DOUBLE_TO_SCORE (1000000.f) //
//用户信息
struct tagGlobalUserData
{
tagGlobalUserData()
{
zeromemory(szUserChannel,sizeof(szUserChannel));
zeromemory(szLogonIP,sizeof(szLogonIP));
}
//基本资料
uint32 dwUserID; //用户 I D
uint32 dwGameID; //游戏 I D
uint32 dwUserMedal; //用户奖牌
uint32 dwExperience; //用户经验
uint32 dwLoveLiness; //用户魅力
uint32 dwSpreaderID; //推广ID
char szAccounts[LEN_ACCOUNTS]; //登录帐号
char szNickName[LEN_NICKNAME]; //用户昵称
char szPassword[LEN_PASSWORD]; //登录密码
char szDynamicPass[LEN_PASSWORD]; //动态密码
char szLogonIP[LEN_ACCOUNTS]; //登录IP
char szUserChannel[LEN_NICKNAME]; //渠道号
//用户成绩
SCORE lUserScore; //用户游戏币
SCORE lUserInsure; //银行游戏币
SCORE lGrade; //私人场经验
double dUserBeans; //用户游戏豆
uint8 cbWXShareTimes; //微信分享次数
//扩展资料
uint8 cbGender; //用户性别
uint8 cbMoorMachine; //锁定机器
char szUnderWrite[LEN_UNDER_WRITE]; //个性签名
//社团资料
uint32 dwGroupID; //社团索引
char szGroupName[LEN_GROUP_NAME]; //社团名字
//会员资料
uint8 cbMemberOrder; //会员等级
systemtime MemberOverDate; //到期时间
//头像信息
uint16 wFaceID; //头像索引
uint32 dwCustomID; //自定标识
tagCustomFaceInfo CustomFaceInfo; //自定头像
char szHeadHttp[LEN_HEAD_HTTP]; //http头像
//配置信息
uint8 cbInsureEnabled; //银行使能
uint32 dwWinCount; //胜利盘数
uint32 dwLostCount; //失败盘数
uint32 dwDrawCount; //和局盘数
uint32 dwFleeCount; //逃跑盘数
bool isLottery; //今天是否参与摇奖;false不可抽奖true可以抽奖;
};
//扩展资料
struct tagIndividualUserData
{
//用户信息
char szUserNote[LEN_USER_NOTE]; //用户说明
char szCompellation[LEN_COMPELLATION]; //真实名字
//电话号码
char szSeatPhone[LEN_SEAT_PHONE]; //固定电话
char szMobilePhone[LEN_MOBILE_PHONE]; //移动电话
//联系资料
char szQQ[LEN_QQ]; //Q Q 号码
char szEMail[LEN_EMAIL]; //电子邮件
char szDwellingPlace[LEN_DWELLING_PLACE];//联系地址
};
//银行信息
// struct tagUserInsureInfo
// {
// uint16 wRevenueTake; //税收比例
// uint16 wRevenueTransfer; //税收比例
// uint16 wServerID; //房间标识
// SCORE lUserScore; //用户游戏币
// SCORE lUserInsure; //银行游戏币
// SCORE lUserIngot; //用户元宝
// double dUserBeans; //用户游戏逗
// SCORE lTransferPrerequisite; //转账条件
// uint8 cbInsureEnabled; //银行使能条件
// };
//银行信息
struct tagUserInsureInfo
{
uint16 wRevenueTake; //税收比例
uint16 wRevenueTransfer; //税收比例
uint16 wRevenueTransferMember; //税收比例
uint16 wServerID; //房间标识
SCORE lUserScore; //用户游戏币
SCORE lUserInsure; //银行游戏币
SCORE lTransferPrerequisite; //转帐条件
};
// 玩家位置
struct tagUserAddr
{
bool isInit; // 是否获取到改信息;
float latitude; // 经度
float longitude; // 纬度
float accuracy; // 精度
std::string strProvider; // 提供者
std::string strAddress; // 地理位置
tagUserAddr()
{
ResetData();
}
void ResetData()
{
isInit = false;
latitude = 0.f;
longitude = 0.f;
accuracy = 0.f;
strProvider = "";
strAddress = "";
}
};
class GlobalUserInfoSink
{
public:
GlobalUserInfoSink(){}
~GlobalUserInfoSink(){}
public:
virtual void upPlayerInfo() = 0;
virtual void LoginSucess() = 0;
};
//////////////////////////////////////////////////////////////////////////////////
//用户信息
class CGlobalUserInfo
{
//用户信息
protected:
tagGlobalUserData m_GlobalUserData; //用户资料
tagIndividualUserData m_IndividualUserData; //扩展资料
//tagUserInsureInfo m_UserInsureInfo; //银行资料
tagUserAddr m_UserAddr; //用户信息
tagGrowLevelParameter m_GrowLevelParameter; //用户等级信息
static GlobalUserInfoSink* m_pUserInfoSink;
bool m_IsShowLottery; //是否显示抽奖信息(从游戏界面返回控制抽奖界面显示)
//附加变量
protected:
uint32 m_dwUserRight; //用户权限
uint32 m_dwMasterRight; //管理权限
//静态变量
protected:
static CGlobalUserInfo * m_pGlobalUserInfo; //用户信息
//函数定义
public:
//构造函数
CGlobalUserInfo();
//析构函数
virtual ~CGlobalUserInfo();
//功能函数
public:
//重置资料
void ResetUserInfoData();
//用户资料
tagGlobalUserData * GetGlobalUserData() { return &m_GlobalUserData; }
//扩展资料
tagIndividualUserData * GetIndividualUserData() { return &m_IndividualUserData; }
//银行资料
//tagUserInsureInfo * GetUserInsureInfo() { return &m_UserInsureInfo; }
//用户等级
tagGrowLevelParameter *GetUserGrowLevelParameter(){
return &m_GrowLevelParameter;
}
std::string getPhoneNumber();
//是否显示抽奖信息(从游戏界面返回控制抽奖界面显示)
void SetShowNotice(bool isShow) { m_IsShowLottery = isShow; }
bool GetShowNotice() { return m_IsShowLottery; }
// 权限;
void SetUserRight(uint32 dwUserRight){ m_dwUserRight = dwUserRight; }
void SetMasterRight(uint32 dwMasterRight){ m_dwMasterRight = dwMasterRight; }
uint32 GetUserRigh(){ return m_dwUserRight; }
uint32 GetMasterRight(){ return m_dwMasterRight; }
// 地里位置;
void onLocationChanaged(std::string strJson);
double GetDistance(double latitude, double longitude);
tagUserAddr* GetUserAddr();
double radian(double d);
public:
static void setNickName(std::string kName);
static void setAccounts(std::string kAccounts);
static void setUserScore(SCORE lScore);
static void setUserInsure(SCORE lScore);
static uint32 getUserID();
static uint32 getGameID();
static char* getPassword();
static uint8 getGender();
static std::string getNickName();
static std::string getHeadHttp();
static std::string getUserChannel();
static std::string getAccounts();
static SCORE getUserScore();
static SCORE getUserInsure();
static void setSink(GlobalUserInfoSink* pSink);
static void upPlayerInfo();
static void LoginSucess();
//静态函数
public:
//获取对象
static CGlobalUserInfo * GetInstance() { return m_pGlobalUserInfo; }
};
//////////////////////////////////////////////////////////////////////////////////
#endif