HJ_Server/src/api_s2c/dixialeitai/ApiOpen.ts
DESKTOP-15R5JU0\legu 97e070ea81 init
2023-11-17 12:02:12 +08:00

47 lines
1.6 KiB
TypeScript

import { ApiCall } from "tsrpc";
import { DxltFun } from '../../public/dxlt';
import { ReqOpen, ResOpen } from "../../shared/protocols/dixialeitai/PtlOpen";
import { PublicShared } from '../../shared/public/public';
import { HongDianChange } from "../hongdian/fun";
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
let collection = await G.mongodb.collection('dxlt').findOne({ uid: call.uid });
if (!collection) return call.error('', { code: 2 });
let { _id, uid, ...data } = collection;
if (Object.keys(data).length == 2) {//说明第一次进入游戏
data.buff = {};
data.item = {};
data.over = false;
data.curLayer = 1;
data.maxLayer = 0;
data.curMaxLayer = 0;
data.toDayLayer = 0;
data.recordLayer = 0;
data.mibao = 0;
data.enemyState = {};
data.killPrizeRec = [];
data.passPrizeRec = [];
data.shop = {};
data.killBoss = 0;
call.succ(data);
} else if (PublicShared.getToDayZeroTime() >= PublicShared.getToDayZeroTime(data.resetTime) + 2 * 24 * 3600) {//每两天重置
data.item = {};
data.buff = {};
data.toDayLayer = 0;
data.enemyState = {};
data.killPrizeRec = [];
data.shop = {};
data.killBoss = 0;
DxltFun.backLayer(data);
call.error('', { code: 2 });
HongDianChange.sendChangeKey(call.uid, ['dxlthd']);
} else {
call.succ(data);
}
G.redis.set('dxlt', call.uid, data);
G.mongodb.collection('dxlt').updateOne({ uid: call.uid }, { $set: { ...data } });
}