import { saveProp, saveRoot } from "db://assets/scripts/uitl/baseData/saveCompent/MySave"; import { IncrementData } from "db://assets/scripts/uitl/baseData/Timer/Timer"; import { rootMgr } from "../../scene/RootMgr"; import { Stage } from "../stage/Stage"; export enum RankType { // 地区排行榜 province = "province", stage = "stage", jf = "jf" } @saveRoot('player') export class Player { @saveProp(() => chsdk.date.now()) private _creat_date: number = 0;//创建时间 @saveProp(0) private _version: number; @saveProp(0) public collectTimes: number; @saveProp(() => new IncrementData()) private _life: IncrementData get life() { this._life.addLastTime(chsdk.date.now()) return this._life.value } set life(value) { this._life.addLastTime(chsdk.date.now()) this._life.value = value rootMgr.game.evt.emit('save') } init() { this._life.init(60 * 1000 * 5, 5, 5) } getLifeControl() { return this._life } public get uid(): number { return chsdk.get_uid(); } public get opid(): string { return chsdk.get_openid(); } public get nickName(): string { return chsdk.get_player_info().nickName; } public get avatarUrl(): string { return chsdk.get_player_info().avatarUrl; } public get province(): string { return chsdk.get_player_info().province; } public get hid(): number { return chsdk.get_player_info().hid; } public get creat_date(): number { return this._creat_date; } public getNickName(data: any): string { return data.nickName ? data.nickName : "游客" + data.userId; } /**获取排行排*/ public async get_rank_list(rankField: RankType, update: chsdk.updateType, callback?: (s: any[], me?: any) => void, target?: any) { const ret = await chsdk.loadRankData(rankField, update, 100, true); if (ret.code == chsdk.code.success) { callback?.call(target, ret.data.list ?? [], ret.data.own); } else { callback?.call(target, [], null); } } /**获取地区总排行*/ public async get_rank_province(callback?: (s: any[], me?: any) => void, target?: any) { const ret = await chsdk.loadProvinceRankData(this.hid, RankType.province, chsdk.updateType.none, 100, true); if (ret.code == chsdk.code.success) { let f = ret.data ?? {}; callback?.call(target, f.list ?? [], f.own); } else { callback?.call(target, [], null); } } // /**上传排行榜分数*/ public upload_score() { let stage = rootMgr.dataControl.getCompent(Stage) chsdk.saveRankData(RankType.stage, stage.index, chsdk.updateType.none); chsdk.saveProvinceRankData(RankType.province, stage.index, chsdk.updateType.none); } }