diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index 496575c23..e8b42167b 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -559,7 +559,7 @@ export async function hasEnoughBlueprt(roleId: string, blueprtId: number) { let blueprt = await ItemModel.findbyRoleAndGidAndCount(roleId, blueprtId, 1); if (!blueprt) return false; // 检查是否有已创建未结束的寻宝,预先占用一张藏宝图 - let teams = await ComBattleTeamModel.getTeamByCapAndStatus(roleId, COM_TEAM_STATUS.FIGHTING); + let teams = await ComBattleTeamModel.getBlueprtInUse(roleId, COM_TEAM_STATUS.FIGHTING, blueprtId); if (teams && blueprt.count <= teams.length) return false; return true; } diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index 7c3263732..5155952ab 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -232,6 +232,11 @@ export default class ComBattleTeam extends BaseModel { return teams; } + public static async getBlueprtInUse(roleId: string, status: number, blueprtId: number, lean = true) { + const teams: ComBattleTeamType[] = await ComBattleTeamModel.find({capId: roleId, status, blueprtId}).lean(lean); + return teams; + } + public static async getTeamByBlueprt(blueprtIds: number[], status: number, pub = true, limit = 50, lean = true) { const teams: ComBattleTeamType[] = await ComBattleTeamModel.find({blueprtId: {$in: blueprtIds}, status, pub}).limit(limit).lean(lean); return teams;