Player.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { saveProp, saveRoot } from "db://assets/scripts/uitl/baseData/saveCompent/MySave";
  2. import { IncrementData } from "db://assets/scripts/uitl/baseData/Timer/Timer";
  3. import { rootMgr } from "../../scene/RootMgr";
  4. import { Stage } from "../stage/Stage";
  5. export enum RankType {
  6. // 地区排行榜
  7. province = "province",
  8. stage = "stage",
  9. jf = "jf"
  10. }
  11. @saveRoot('player')
  12. export class Player {
  13. @saveProp(() => chsdk.date.now())
  14. private _creat_date: number = 0;//创建时间
  15. @saveProp(0)
  16. private _version: number;
  17. @saveProp(0)
  18. public collectTimes: number;
  19. @saveProp(() => new IncrementData())
  20. private _life: IncrementData
  21. get life() {
  22. this._life.addLastTime(chsdk.date.now())
  23. return this._life.value
  24. }
  25. set life(value) {
  26. this._life.addLastTime(chsdk.date.now())
  27. this._life.value = value
  28. rootMgr.game.evt.emit('save')
  29. }
  30. init() {
  31. this._life.init(60 * 1000 * 5, 5, 5)
  32. }
  33. getLifeControl() {
  34. return this._life
  35. }
  36. public get uid(): number {
  37. return chsdk.get_uid();
  38. }
  39. public get opid(): string {
  40. return chsdk.get_openid();
  41. }
  42. public get nickName(): string {
  43. return chsdk.get_player_info().nickName;
  44. }
  45. public get avatarUrl(): string {
  46. return chsdk.get_player_info().avatarUrl;
  47. }
  48. public get province(): string {
  49. return chsdk.get_player_info().province;
  50. }
  51. public get hid(): number {
  52. return chsdk.get_player_info().hid;
  53. }
  54. public get creat_date(): number {
  55. return this._creat_date;
  56. }
  57. public getNickName(data: any): string {
  58. return data.nickName ? data.nickName : "游客" + data.userId;
  59. }
  60. /**获取排行排*/
  61. public async get_rank_list(rankField: RankType, update: chsdk.updateType, callback?: (s: any[], me?: any) => void, target?: any) {
  62. const ret = await chsdk.loadRankData(rankField, update, 100, true);
  63. if (ret.code == chsdk.code.success) {
  64. callback?.call(target, ret.data.list ?? [], ret.data.own);
  65. } else {
  66. callback?.call(target, [], null);
  67. }
  68. }
  69. /**获取地区总排行*/
  70. public async get_rank_province(callback?: (s: any[], me?: any) => void, target?: any) {
  71. const ret = await chsdk.loadProvinceRankData(this.hid, RankType.province, chsdk.updateType.none, 100, true);
  72. if (ret.code == chsdk.code.success) {
  73. let f = ret.data ?? {};
  74. callback?.call(target, f.list ?? [], f.own);
  75. } else {
  76. callback?.call(target, [], null);
  77. }
  78. }
  79. // /**上传排行榜分数*/
  80. public upload_score() {
  81. let stage = rootMgr.dataControl.getCompent(Stage)
  82. chsdk.saveRankData(RankType.stage, stage.index, chsdk.updateType.none);
  83. chsdk.saveProvinceRankData(RankType.province, stage.index, chsdk.updateType.none);
  84. }
  85. }