diff --git a/game-server/app/servers/guild/handler/gvgBattleHandler.ts b/game-server/app/servers/guild/handler/gvgBattleHandler.ts index 948c6497e..79a5287ac 100644 --- a/game-server/app/servers/guild/handler/gvgBattleHandler.ts +++ b/game-server/app/servers/guild/handler/gvgBattleHandler.ts @@ -234,6 +234,8 @@ export class GVGBattleHandler { const { cityId } = msg; let { configId, period } = getGVGPeriodData(); + if(await GVGTeamModel.checkLockTeam(roleId)) return resResult(STATUS.GVG_BATTLE_TEAM_LOCK); + // 检测是否已经在城池中 let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode); if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST); diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index a2f076f8e..8521f476a 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -375,18 +375,18 @@ export const STATUS = { GVG_TEAM_NOT_FOUND: { code: 21409, simStr: '未找到这个队伍' }, GVG_LOCK_TIME_OUT: { code: 21410, simStr: '挑战超时' }, GVG_ATTACK_TEAM_BROKEN: { code: 21411, simStr: '挑战队伍已被击破' }, - GVG_DEFENSE_TEAM_BROKEN: { code: 21411, simStr: '对方队伍已被击破' }, - GVG_BATTLEREC_HAS_SUMMIT: { code: 21412, simStr: '该记录已结算过' }, - GVG_TEAM_IS_NOT_MINE: { code: 21413, simStr: '您不可操作此队伍' }, - GVG_SAME_LEAGUE_CANNOT_ATTACK: { code: 21414, simStr: '您不可攻击友军' }, - GVG_TEAM_NOT_SAME_AREA: { code: 21415, simStr: '对方不在同一个区域内' }, - GVG_POINT_HAS_SETTLED: { code: 21416, simStr: '该据点已经有其他队伍驻守' }, - GVG_POINT_NOT_AREA: { code: 21417, simStr: '您不在该积分点所在区域' }, - GVG_TEAM_NOT_NEED_REVIVE: { code: 21418, simStr: '您的队伍已复活,无需重复复活' }, - GVG_BATTLE_IS_MOVING_CD: { code: 21403, simStr: '移动冷却中' }, - GVG_BATTLE_TEAM_REVIVE: { code: 21404, simStr: '队伍复活中' }, - GVG_BATTLE_TEAM_LOCK: { code: 21405, simStr: '正在有玩家挑战您,请等待' }, - GVG_BATTLE_TEAM_HAS_SELLTED: { code: 21406, simStr: '该编队已驻守据点了' }, + GVG_DEFENSE_TEAM_BROKEN: { code: 21412, simStr: '对方队伍已被击破' }, + GVG_BATTLEREC_HAS_SUMMIT: { code: 21413, simStr: '该记录已结算过' }, + GVG_TEAM_IS_NOT_MINE: { code: 21414, simStr: '您不可操作此队伍' }, + GVG_SAME_LEAGUE_CANNOT_ATTACK: { code: 21415, simStr: '您不可攻击友军' }, + GVG_TEAM_NOT_SAME_AREA: { code: 21416, simStr: '对方不在同一个区域内' }, + GVG_POINT_HAS_SETTLED: { code: 21417, simStr: '该据点已经有其他队伍驻守' }, + GVG_POINT_NOT_AREA: { code: 21418, simStr: '您不在该积分点所在区域' }, + GVG_TEAM_NOT_NEED_REVIVE: { code: 21419, simStr: '您的队伍已复活,无需重复复活' }, + GVG_BATTLE_IS_MOVING_CD: { code: 21420, simStr: '移动冷却中' }, + GVG_BATTLE_TEAM_REVIVE: { code: 21421, simStr: '队伍复活中' }, + GVG_BATTLE_TEAM_LOCK: { code: 21422, simStr: '正在有玩家挑战您,请等待' }, + GVG_BATTLE_TEAM_HAS_SELLTED: { code: 21423, simStr: '该编队已驻守据点了' }, // 通用 30000 - 30099 DIC_DATA_NOT_FOUND: { code: 30000, simStr: '数据表未找到' }, diff --git a/shared/db/GVGTeam.ts b/shared/db/GVGTeam.ts index 2f8c601e6..b71c1848a 100644 --- a/shared/db/GVGTeam.ts +++ b/shared/db/GVGTeam.ts @@ -342,6 +342,10 @@ export default class GVGTeam extends BaseModel { public static async updateRoleInfo(roleId: string, info: { roleName?: string, lv?: number }) { await GVGTeamModel.updateMany({ roleId }, { $set: info }); } + + public static async checkLockTeam(roleId: string) { + return await GVGTeamModel.exists({ roleId, lockTime: { $gt: nowSeconds() } }) + } } export const GVGTeamModel = getModelForClass(GVGTeam);