From fb10eb86233eb61d3216a3b4c7e103d77edfaeeb Mon Sep 17 00:00:00 2001 From: mamengke01 <794347210@qq.com> Date: Fri, 15 Jan 2021 11:36:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=98=E6=8A=A5=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/pvpHandler.ts | 29 ++++++++++--------- game-server/app/services/timeTaskService.ts | 2 +- shared/db/PvpRecord.ts | 2 +- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/game-server/app/servers/battle/handler/pvpHandler.ts b/game-server/app/servers/battle/handler/pvpHandler.ts index 3fb3b3922..7205edc8e 100644 --- a/game-server/app/servers/battle/handler/pvpHandler.ts +++ b/game-server/app/servers/battle/handler/pvpHandler.ts @@ -33,19 +33,22 @@ export class PvpHandler { async addRoleScore(msg: {heroScores: Array<{hid: number, score:number}>}, session: BackendSession) { let { heroScores: addHeroScores } = msg; let roleId = session.get('roleId'); - let {heroScores, hisScore, score} = await PvpDefenseModel.findByRoleId(roleId); - for (let {hid, score: heroScore} of addHeroScores) { + let {heroScores, hisScore} = await PvpDefenseModel.findByRoleId(roleId); + let score = 0; + for (let {hid, score: heroScore} of heroScores) { if (heroScore < 0) continue; - let index = findIndex(heroScores, {hid}); - if (index!= -1) { - let oldScore = heroScores[index].score; + let index = findIndex(addHeroScores, {hid}); + if (index != -1) { heroScores[index].score = heroScore; - score = score - oldScore + heroScore; } else { heroScores.push({hid, score :heroScore}); - score = score + heroScore; } } + + for (let heroScore of heroScores) { + score += heroScore.score; + } + if (score < 0) { score = 0; } @@ -102,12 +105,12 @@ export class PvpHandler { if (!!pvpSeasonResult) { var { oldSeasonData, show, heroGoods, rankGoods} = pvpSeasonResult; if ( oldSeasonData.seasonEndTime > nowSeconds()) {//结算中锁定玩家信息 - seasonEndTime = oldSeasonData.seasonEndTime; - heroScores = oldSeasonData.heroScores; - score = oldSeasonData.score; - refOppCnt = oldSeasonData.refOppCnt; - challengeCnt = oldSeasonData.challengeCnt; - challengeRefTime = oldSeasonData.challengeRefTime; + // seasonEndTime = oldSeasonData.seasonEndTime; + // heroScores = oldSeasonData.heroScores; + // score = oldSeasonData.score; + // refOppCnt = oldSeasonData.refOppCnt; + // challengeCnt = oldSeasonData.challengeCnt; + // challengeRefTime = oldSeasonData.challengeRefTime; } else if(show) { await PvpSeasonResultModel.updatePvpSeasonResult(roleId, {show: false}); flag = true; diff --git a/game-server/app/services/timeTaskService.ts b/game-server/app/services/timeTaskService.ts index 6ddc0a485..fb7af443f 100644 --- a/game-server/app/services/timeTaskService.ts +++ b/game-server/app/services/timeTaskService.ts @@ -196,7 +196,7 @@ export async function resetPvpSeasonTime(hour: number) { systemConfig = await SystemConfigModel.createSystemConfig( seasonEndTime, warId ); } else { seasonEndTime = hour * 60 * 60 + getTodayZeroPoint(); - seasonNum = systemConfig.seasonNum; + seasonNum = systemConfig.seasonNum + 1; await SystemConfigModel.updateSystemConfig({ seasonEndTime, seasonNum}); } let settleTime = (seasonEndTime - SETTLE_DIFF)* PER_SECOND; diff --git a/shared/db/PvpRecord.ts b/shared/db/PvpRecord.ts index 7bdf6cc81..2c03f4b21 100644 --- a/shared/db/PvpRecord.ts +++ b/shared/db/PvpRecord.ts @@ -88,7 +88,7 @@ export default class PvpRecord extends BaseModel { public static async getRecByRoleId( roleId: string, limit = 15, lean = true) { await this.delPvpRecords(); - const result: PvpRecord[] = await PvpRecordModel.find({ $or:[{roleId1: roleId}, {roleId2: roleId}] }).limit(limit).lean(lean); + const result: PvpRecord[] = await PvpRecordModel.find({ $or:[{roleId1: roleId}, {roleId2: roleId}] }).limit(limit).sort({lt: -1}).lean(lean); return result; }