From d730b0ad19ff1289eb3fd945224a01f554735e8a Mon Sep 17 00:00:00 2001 From: luying Date: Fri, 21 Jul 2023 15:58:05 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E5=89=AF=E5=B0=86):=20?= =?UTF-8?q?=E5=B7=85=E5=B3=B0=E6=BC=94=E6=AD=A6=E4=BF=9D=E5=AD=98=E6=8C=91?= =?UTF-8?q?=E6=88=98=E9=98=B5=E5=AE=B9=E6=B7=BB=E5=8A=A0=E5=89=AF=E5=B0=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/battle/handler/pvpHandler.ts | 7 +++++-- shared/domain/battleField/pvp.ts | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/game-server/app/servers/battle/handler/pvpHandler.ts b/game-server/app/servers/battle/handler/pvpHandler.ts index 32d478a47..4558f1a88 100644 --- a/game-server/app/servers/battle/handler/pvpHandler.ts +++ b/game-server/app/servers/battle/handler/pvpHandler.ts @@ -373,7 +373,7 @@ export class PvpHandler { return resResult(STATUS.SUCCESS, pick(result, pickParam)); } - async saveAttack(msg: { heroes: { actorId: number, order: number }[] }, session: BackendSession) { + async saveAttack(msg: { heroes: { actorId: number, order: number, subHid: number }[] }, session: BackendSession) { let { heroes } = msg; let roleId = session.get('roleId'); let serverId = session.get('serverId'); @@ -395,12 +395,15 @@ export class PvpHandler { let refChallengeObj = await refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime, roleId, session.get('vipStartTime')); // 更新挑战阵容 let scores: number[] = []; - for(let { actorId } of heroes) { + for(let { actorId, subHid } of heroes) { if(isHeroHidden(actorId)) return resResult(STATUS.HERO_IS_HIDDEN); let heroScore = pvpDefense.heroScores.find(cur => cur.hid == actorId); if(heroScore) { scores.push(heroScore.score); } + let dicHero = gameData.hero.get(actorId); + if(subHid && (!dicHero || dicHero.urType != 1)) return resResult(STATUS.HERO_CAN_NOT_SET_SUB); + if(subHid && heroes.findIndex(hero => hero.actorId == subHid) != -1) return resResult(STATUS.HERO_SUB_DUPLICATE); } let attack = new Attack(heroes, scores); let lineupCe = await generPvpLineupCe(roleId, pvpDefense.lineupCe, attack.heroes, pvpDefense.defense?.heroes??[], []); diff --git a/shared/domain/battleField/pvp.ts b/shared/domain/battleField/pvp.ts index 9621bbe5f..6f5c8af2b 100644 --- a/shared/domain/battleField/pvp.ts +++ b/shared/domain/battleField/pvp.ts @@ -73,6 +73,8 @@ export class AttackHero { actorId: number; // 武将id @prop({ required: true }) order: number; + @prop({ required: false }) + subHid: number; } // 挑战阵容