From 457cea6b43e1e0c6319ad7ef64a6ebefa4ccb5dd Mon Sep 17 00:00:00 2001 From: luying Date: Tue, 26 Jul 2022 15:05:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8D=E5=B0=86=E6=93=82=E5=8F=B0=EF=BC=9A?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E5=AF=B9=E6=89=8B=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/ladderHandler.ts | 6 ++---- game-server/app/services/ladderService.ts | 13 +++++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/game-server/app/servers/battle/handler/ladderHandler.ts b/game-server/app/servers/battle/handler/ladderHandler.ts index 9ba848df0..0f20e7329 100644 --- a/game-server/app/servers/battle/handler/ladderHandler.ts +++ b/game-server/app/servers/battle/handler/ladderHandler.ts @@ -198,8 +198,7 @@ export class LadderHandler { let { isChange, atkLadderMatch, defLadderMatch, endTime } = await LadderMatchModel.changeRank(isSuccess, rec.attackInfo, rec.defenseInfo); if(isChange) { - let oppPlayers = await battleEndWhenChange(atkLadderMatch, true); - await battleEndWhenChange(defLadderMatch, true); + let oppPlayers = await battleEndWhenChange(atkLadderMatch, defLadderMatch, true); result.setOppPlayers(oppPlayers); rec = await LadderMatchRecModel.battleEnd(battleCode, isSuccess, endTime, atkLadderMatch.rank, defLadderMatch? defLadderMatch.rank: rec.attackInfo.oldRank); if(atkLadderMatch.rank == 1) { @@ -386,8 +385,7 @@ export class LadderHandler { atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId }, { $set: { rank, oldRank: atkLadderMatch.rank, historyRank: rank } }, { new: true }).lean(); } - await battleEndWhenChange(atkLadderMatch, true); - await battleEndWhenChange(defLadderMatch, true); + await battleEndWhenChange(atkLadderMatch, defLadderMatch, true); return resResult(STATUS.SUCCESS); } diff --git a/game-server/app/services/ladderService.ts b/game-server/app/services/ladderService.ts index 7eb143e76..214e7c7d2 100644 --- a/game-server/app/services/ladderService.ts +++ b/game-server/app/services/ladderService.ts @@ -299,16 +299,25 @@ export async function ladderTimeout(battleCode: string, status: LADDER_STATUS) { * @param isAtk * @returns */ -export async function battleEndWhenChange(ladderMatch: LadderMatchType, needRefresh: boolean) { - if(!ladderMatch) return; +export async function battleEndWhenChange(atkLadderMatch: LadderMatchType, defLadderMatch: LadderMatchType, needRefresh: boolean) { + await updateLadderRedis(atkLadderMatch); + await updateLadderRedis(defLadderMatch); + await refreshOpp(defLadderMatch, needRefresh); + return await refreshOpp(atkLadderMatch, needRefresh); +} +async function updateLadderRedis(ladderMatch: LadderMatchType) { + if(!ladderMatch) return; // 更新redis if(ladderMatch.rank > 0 && ladderMatch.rank < 3001) { let r = new Rank(REDIS_KEY.LADDER, { serverId: ladderMatch.serverId }); await r.setRankWithRoleInfo(ladderMatch.roleId, ladderMatch.rank, 0); await saveLadderDefCeByData(ladderMatch.roleId, ladderMatch); } +} +async function refreshOpp(ladderMatch: LadderMatchType, needRefresh: boolean) { + if(!ladderMatch) return [] // 刷新对手 if(needRefresh) { let oppPlayers = await refreshLadderEnemies(ladderMatch);