diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index 8728f9794..f40122716 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -100,7 +100,7 @@ export class ComBattleHandler { let blueprt = await ItemModel.findbyRoleAndGidAndCount(roleId, blueprtId, 1); if (!blueprt || blueprt.count < 1) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_FOUND); // 检查是否有已创建未结束的寻宝,预先占用一张藏宝图 - let teams = await ComBattleTeamModel.getTeamByCapAndStatus(roleId, COM_TEAM_STATUS.FIGHTING); + let teams = await ComBattleTeamModel.getOccupiedBlueprt(roleId, COM_TEAM_STATUS.FIGHTING, blueprtId); if (teams && blueprt.count <= teams.length) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_ENOUGH); let roleStatus = []; diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index 05bc6f3ec..1eb2f876f 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -211,6 +211,11 @@ export default class ComBattleTeam extends BaseModel { return teams; } + public static async getOccupiedBlueprt(roleId: string, status: number, blueprtId: number, lean = true) { + const teams = await ComBattleTeamModel.find({status, capId: roleId, blueprtId}).lean(lean); + return teams; + } + public static async getTeamByBlueprt(blueprtIds: Array, status: number, pub = true, limit = 50, lean = true) { const teams = await ComBattleTeamModel.find({blueprtId: {$in: blueprtIds}, status, pub}).limit(limit).lean(lean); return teams;