From 7f07a8bd0e8ce327f2b456fd9f8a1000dbcf4df9 Mon Sep 17 00:00:00 2001 From: luying Date: Thu, 3 Nov 2022 15:55:00 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E5=AF=BB=E5=AE=9D):=20?= =?UTF-8?q?=E5=AF=BB=E5=AE=9D=E6=9C=89=E6=97=B6=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/services/comBattleService.ts | 14 +++----------- shared/db/ComBattleTeam.ts | 5 +++++ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index 8d1f3cc4a..79b3ac4ed 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -400,13 +400,13 @@ export async function dismissTeam(teamStatus: MemComBtlTeam, teamMap: Map, roleId: string, teamDisTimer: Map) { - if (teamIsFullToStart(teamStatus)) { + // if (teamIsFullToStart(teamStatus)) { clearComBtlTimer(teamStatus.teamCode, teamDisTimer); let timer = setTimeout(async () => { await dismissTeam(teamStatus, teamMap, roleId, teamDisTimer); }, COM_BTL_CONST.CAP_START_TIME); teamDisTimer.set(teamStatus.teamCode, timer); - } + // } } /** @@ -688,15 +688,7 @@ export async function oneTeamNotInBlack(teams: ComBattleTeamType[], roleId: stri // } export async function checkHasMyTeam(roleId: string) { - let battles = pinus.app.getServersByType('battle'); - let hasMyTeam = false; - for(let server of battles) { - let checkResult = await pinus.app.rpc.battle.comBattleRemote.checkMyTeam.toServer(server.id, roleId); - if(checkResult) { - hasMyTeam = true; break; - } - } - return hasMyTeam; + return await ComBattleTeamModel.checkHasTeamByRoleId(roleId); } export async function checkTeamStatusAndSend(teamCode: string, roleId: string, sid: string) { diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index eac6a3cea..095727327 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -3,6 +3,7 @@ import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoos import { EXTERIOR } from '../pubUtils/dicParam'; import { nowSeconds } from '../pubUtils/timeUtil'; import { RoleUpdate } from './Role'; +import { COM_TEAM_STATUS } from '../consts'; export class ComRoleStatusHero { @prop({ required: true }) @@ -241,6 +242,10 @@ export default class ComBattleTeam extends BaseModel { return team; } + public static async checkHasTeamByRoleId(roleId: string) { + return await ComBattleTeamModel.exists({ roleIds: { $in: [roleId] }, status: COM_TEAM_STATUS.FIGHTING }); + } + public static async addRole(teamCode: string, roleStatus: RoleStatus, lean = true) { const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode, roleCnt: { $lte: 2 } }, {$push: {roleIds: roleStatus.roleId, roleStatus}, $inc: {roleCnt: 1}}, {new: true}).lean(lean); return team;