From 3931bd2e2209bd5fbb5c7ffc965c9c107e2fefb3 Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 5 Jan 2022 14:58:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=80=92=E8=AE=A1=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/comBattleHandler.ts | 11 ++++++----- game-server/app/services/comBattleService.ts | 4 ++-- shared/db/ComBattleTeam.ts | 6 +++++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index 9dbcee983..1c582f9a3 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -22,7 +22,7 @@ import { addUserToChannel, getSimpleRoleInfo } from '../../../services/roleServi import { ChannelUser } from '../../../domain/ChannelUser'; import { pushComBtlTeamMsg, pushFriendTeamInviteMsg, pushNormalItemMsg, pushTeamInviteMsg } from '../../../services/chatService'; import { EXTERIOR } from '../../../pubUtils/dicParam'; -import { getZeroPointD, getTimeFunD } from '../../../pubUtils/timeUtil'; +import { getZeroPointD, getTimeFunD, getSeconds, nowSeconds } from '../../../pubUtils/timeUtil'; import { FriendParams } from '../../../domain/roleField/friend'; import { checkTask, checkTaskWithGoods } from '../../../services/taskService'; import { gameData, getWarByBlueprtId } from '../../../pubUtils/data'; @@ -427,6 +427,7 @@ export class ComBattleHandler { if (teamStatus.status !== COM_TEAM_STATUS.DEFAULT) return resResult(STATUS.COM_BATTLE_ALREADY_START); teamStatus.status = COM_TEAM_STATUS.FIGHTING; + teamStatus.endTime = nowSeconds() + COM_BTL_CONST.BTL_TIME_LMT/1000; let team = await ComBattleTeamModel.updateStatusByCode(teamCode, COM_TEAM_STATUS.FIGHTING); if (!team) return resResult(STATUS.COM_BATTLE_START_ERR); @@ -603,16 +604,16 @@ export class ComBattleHandler { async getComBtlStatus(msg: {teamCode: string}, session: BackendSession) { let { teamCode } = msg; - let roleStatus: RoleStatus[], status: number, bossHpArr: BossHp[], timeout: boolean; + let roleStatus: RoleStatus[], status: number, bossHpArr: BossHp[], timeout: boolean, endTime = 0; let memTeam = this.teamMap.get(teamCode); if (memTeam) { - ({ roleStatus, status, bossHpArr, timeout } = memTeam); + ({ roleStatus, status, bossHpArr, timeout, endTime } = memTeam); } else { let dbTeam = await ComBattleTeamModel.getTeamByCode(teamCode); if (!dbTeam) return resResult(STATUS.COM_BATTLE_TEAM_INVALID); - ({ roleStatus, status, bossHpArr, timeout } = dbTeam); + ({ roleStatus, status, bossHpArr, timeout, endTime } = dbTeam); } - return resResult(STATUS.SUCCESS, { teamInfo: {status, teamCode, roleStatus, bossHpArr, timeout} }); + return resResult(STATUS.SUCCESS, { teamInfo: {status, teamCode, roleStatus, bossHpArr, timeout, endTime} }); } /** diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index 44bba5ee4..81c3463e8 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -23,7 +23,7 @@ import { checkActivityTask, checkTaskInComBattleEnd } from './taskService'; import { getRewardByBlueprtId, gameData, getBossHpByBlueprtId } from '../pubUtils/data'; import { getFriendPointObject } from '../pubUtils/itemUtils'; import { DicWar } from '../pubUtils/dictionary/DicWar'; -import { getZeroPointD } from '../pubUtils/timeUtil'; +import { getZeroPointD, nowSeconds } from '../pubUtils/timeUtil'; import { dispatch } from '../pubUtils/dispatcher'; import { handleCost } from './rewardService'; @@ -257,7 +257,7 @@ export async function handleComBtlProgress(teamStatus: MemComBtlTeam, robotHurtT st.fixReward = await getRealReward(teamStatus.blueprtId, st); }; } - let team = await ComBattleTeamModel.syncTeamData({ teamCode, status: battleSt, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr }); + let team = await ComBattleTeamModel.syncTeamData({ teamCode, status: battleSt, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr, endTime: teamStatus.endTime }); if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR); // 战斗胜利队长扣减藏宝图 diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index 692e75209..bd286a6cb 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -180,6 +180,10 @@ export default class ComBattleTeam extends BaseModel { // 黑名单 blacklist: string[] = []; + + // 黑名单 + @prop({ required: true, default: 0 }) + endTime: number = 0; public static async createTeam(teamData: ComBattleTeamParam, lean = true) { const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleIds.length}}, {upsert: true, new: true}).lean(lean); @@ -226,7 +230,7 @@ export default class ComBattleTeam extends BaseModel { return team; } - public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: RoleStatus[], bossHpArr: BossHp[]}, timeout = false, lean = true) { + public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: RoleStatus[], bossHpArr: BossHp[], endTime?: number}, timeout = false, lean = true) { console.log('syncTeamData bossHpArr: ', teamData.bossHpArr); const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleStatus.length, timeout}}, {new: true}).lean(lean); return team;