From 89e88d67ce501b8e76a9bb40852498675ba0606c Mon Sep 17 00:00:00 2001 From: luying Date: Tue, 28 Sep 2021 12:10:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=83=E5=85=B5=E5=9C=BA=EF=BC=9A=E9=87=8D?= =?UTF-8?q?=E7=BD=AE=E6=AD=A6=E5=B0=86=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/services/guildTrainService.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/game-server/app/services/guildTrainService.ts b/game-server/app/services/guildTrainService.ts index 04660bb34..a1152565e 100644 --- a/game-server/app/services/guildTrainService.ts +++ b/game-server/app/services/guildTrainService.ts @@ -23,11 +23,26 @@ import { getGuildChannelSid } from './chatChannelService'; */ export async function refreshTrain(userGuild: UserGuildType, roleId: string, serverId: number) { let { trainCount, trainTime, buyTrainCount, guildCode} = userGuild; - await resetTrain(guildCode, serverId);//检查重置练兵场 + let resetResult = await resetTrain(guildCode, serverId);//检查重置练兵场 if (trainTime < getZeroPoint()) {//重置挑战次数和购买次数 trainCount = ARMY.ARMY_TRAIN_BUYTIMES; + buyTrainCount = 0; userGuild = await UserGuildModel.updateInfo(roleId, {trainCount, trainTime: nowSeconds(), buyTrainCount}, {}); + let guildTrains: GuildTrainType[] = []; + if(resetResult && resetResult.guildTrains) { + guildTrains = resetResult.guildTrains; + } else { + guildTrains = await GuildTrainModel.getGuildTrainBoxs(guildCode); + } + for(let guildTrain of guildTrains) { + guildTrain.trainInstances.forEach(instance => { + instance.progress = 0; + instance.endTime = 0; + instance.trainBoxs = []; + }); + await GuildTrainModel.updateGuildTrain(guildCode, guildTrain.trainId, { trainInstances: guildTrain.trainInstances }); + } } return userGuild; @@ -182,6 +197,7 @@ export async function resetTrain(code: string, serverId: number) { await GuildTrainModel.resetGuildTrain(code);//将开启的练兵场锁定 await unlockTrain(code, 1);//开启练兵场1级 await UserGuildModel.resetTrainUserGuild(code);//重置玩家的挑战次数和购买挑战次数 + return { guildTrains } } /** * 检查并重置试炼