| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /**网络变量基类*/
- export class NetBase {
- private _id: string;
- public get Id(): string { return this._id };
- private dataMap: { [key: string]: any } = {};
- private dirtyMap: { [key: string]: any } = {};
- private _dirty: boolean = false;
- constructor(id: string) {
- this._id = id;
- this.dataMap = {};
- }
- /**初始变量值*/
- public initValue(data: { [key: string]: any }): void {
- this.dataMap = data ?? {};
- }
- /**修改某个键的值*/
- protected setValue(key: string, value: any): void {
- this.dataMap[key] = value;
- }
- protected setValueDirty(key: string, value: any): void {
- this.dirtyMap[key] = value;
- this._dirty = true;
- }
- /**获取数据的值*/
- protected getValue(key: string): any {
- return this.dataMap[key];
- }
- /**处理脏数据*/
- private doDirtyData(f: (data: { [key: string]: any }) => void): void {
- if (!this._dirty) return;
- f(this.dirtyMap);
- this.dirtyMap = {};
- this._dirty = false;
- }
- protected dispose(): void {
- this.dataMap = {};
- this.dirtyMap = {};
- this._dirty = false;
- }
- }
- export function transUserDataform(data: any): UserData {
- data.hid = Number.parseInt(data.hid);
- data.province = chsdk.provinceCode2Name(data.hid) ?? '其它';
- data.userId = Number.parseInt(data.userId);
- data.loginTime = Number.parseInt(data.loginTime);
- data.registerTime = Number.parseInt(data.registerTime);
- data.nickName = data.nickName || '玩家' + data.userId;
- return data;
- }
- export function transUserExtraDataform<T>(data: string): T | null {
- return data ? JSON.parse(data) as T : null
- }
- /**玩家信息*/
- export interface UserData {
- gid: string,
- head: string,
- hid: number,
- ip: string,
- loginTime: number,
- nickName: string,
- openId: string,
- option: string,
- pf: string,
- registerTime: number,
- userId: number,
- province: string
- }
- export interface Elements {
- /**排名*/Rank: number,
- /**段位信息*/Level: Level,
- /**玩家基本信息*/UserData: UserData
- }
- /**段位信息*/
- export interface Level {
- /**段位*/ LowerRank: number,
- /**该段位下的级别*/ Rank: number,
- /**该段位下星星数*/ Star: number
- }
- export interface results {
- /**玩家Id*/Id: string,
- /**变动星星数*/AddScore: number,
- /**是否完成*/IsFinish: boolean,
- /**本局排名*/Rank: number,
- /**最终星星数*/Score: number,
- /**段位排名*/TotalRank: number,
- /**段位信息*/Level: Level,
- /**玩家基本信息*/UserData: UserData,
- /**相近排名玩家信息*/Elements: Elements[],
- }
- export interface RankHistory {
- /**是否处理过奖励 */IsReceive: boolean,
- /**排名*/Rank: number,
- /**分数*/Score: number,
- /**所在赛季*/Season: number
- }
- export interface SeasonInfo {
- /**当前赛季的编号 */Season: number,
- /**赛季结束时间的时间戳 */SeasonEndTime: number,
- /**赛季结束时间的时间戳 */SeasonStartTime: number,
- /**历史赛季数组 */RankHistory: RankHistory[]
- }
- export interface UserRank<T> {
- /**玩家基本信息*/UserData: UserData,
- /**玩家扩展数据*/UserDataExtra: T,
- /**段位信息*/ Level: Level,
- /**排名*/ Rank: number,
- }
- export interface Ranks<T> {
- /**排名列表*/list: UserRank<T>[],
- /**玩家自己的排名*/own: UserRank<T>,
- }
|