From 59ae643854bb01475c76a6866ff766905b3bf75b Mon Sep 17 00:00:00 2001 From: luying Date: Thu, 11 Aug 2022 18:48:57 +0800 Subject: [PATCH] =?UTF-8?q?pvp=EF=BC=9Adebug=E6=8E=A5=E5=8F=A3=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=88=86=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/battle/handler/pvpHandler.ts | 10 +++++++--- game-server/app/services/pvpService.ts | 4 +--- shared/domain/activityField/popUpShopField.ts | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/game-server/app/servers/battle/handler/pvpHandler.ts b/game-server/app/servers/battle/handler/pvpHandler.ts index 3f05962d7..a18536a36 100644 --- a/game-server/app/servers/battle/handler/pvpHandler.ts +++ b/game-server/app/servers/battle/handler/pvpHandler.ts @@ -2,7 +2,7 @@ import { Application, BackendSession, pinus, HandlerService, } from 'pinus'; import { findIndex } from 'underscore'; import { gameData, getPvpBoxBySeasonNumAndIndex } from '../../../pubUtils/data'; -import { refreshEnemies, getEnemies, refChallengeCnt, generPVPOppRecInfo, generMyRecInfo, sendLastSeasonRewardIfNotSent, refreshRefOppCnt, generPvpLineupCe } from '../../../services/pvpService'; +import { refreshEnemies, getEnemies, refChallengeCnt, generPVPOppRecInfo, generMyRecInfo, sendLastSeasonRewardIfNotSent, refreshRefOppCnt, generPvpLineupCe, calLineupScore } from '../../../services/pvpService'; import { RoleModel, RoleType } from '../../../db/Role'; import { STATUS } from '../../../consts/statusCode'; import { resResult, genCode, checkRoleIsRobot, robotIdComBack } from '../../../pubUtils/util'; @@ -546,7 +546,7 @@ export class PvpHandler { let sid = session.get('sid'); let serverId = session.get('serverId'); - let { heroScores, hisScore } = await PvpDefenseModel.findByRoleId(roleId); + let { heroScores, hisScore, attack, defense } = await PvpDefenseModel.findByRoleId(roleId); let score = 0; for (let { hid, score: heroScore } of addHeroScores) { if (heroScore < 0) continue; @@ -566,7 +566,11 @@ export class PvpHandler { if (hisScore < score) { hisScore = score; } - let pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, { score, hisScore, heroScores }); + + let newAttack = calLineupScore(attack, heroScores); + let newDefense = calLineupScore(defense, heroScores); + + let pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, { score, hisScore, heroScores, attack: newAttack, defense: newDefense }); const role = await RoleModel.findByRoleId(roleId); // 加入排行榜 diff --git a/game-server/app/services/pvpService.ts b/game-server/app/services/pvpService.ts index 2ada06cec..dbbfc1621 100644 --- a/game-server/app/services/pvpService.ts +++ b/game-server/app/services/pvpService.ts @@ -130,8 +130,6 @@ export async function matchPlayerByRank(seasonNum: number, chosenOpps: string[], oppRank++; } } - } else if (myRank == 0) { - return null } else { if (pos == 1 || pos == 2) { // 刷新我前一名 oppRank = myRank - 1; @@ -449,7 +447,7 @@ export async function generMyRecInfo(pvpDefense: PvpDefenseType, role: RoleType, return { attackInfo, showHeroScores, updateParam } } -function calLineupScore(lineup: Attack|Defense, heroScores: HeroScore[]) { +export function calLineupScore(lineup: Attack|Defense, heroScores: HeroScore[]) { if(!lineup) return lineup; let scores: number[] = []; for(let { actorId } of lineup.heroes) { diff --git a/shared/domain/activityField/popUpShopField.ts b/shared/domain/activityField/popUpShopField.ts index def9c17b7..d0a864d07 100644 --- a/shared/domain/activityField/popUpShopField.ts +++ b/shared/domain/activityField/popUpShopField.ts @@ -95,11 +95,11 @@ export class PopUpShopData extends ActivityBase { this.setLv(lv); for(let data of datas) { let pkg = this.findPackageById(data.id); - pkg.addPlayerRecord(data); + pkg?.addPlayerRecord(data); } for(let data of latestRecords) { let pkg = this.findPackageById(data.id); - pkg.setLatestBought(data); + pkg?.setLatestBought(data); } }