🐞 fix(巅峰演武): 赛季切换后结算不再计入
This commit is contained in:
@@ -185,7 +185,7 @@ export class PvpHandler {
|
||||
status: 0,
|
||||
warName: warInfo.gk_name,
|
||||
warType: warInfo.warType,
|
||||
record: { heroes, pos: curOpp.pos, oppRoleId }
|
||||
record: { heroes, pos: curOpp.pos, oppRoleId, pvpSeasonNum: seasonNum }
|
||||
}
|
||||
}, true);
|
||||
await checkTask(serverId, roleId, sid, TASK_TYPE.PVP);
|
||||
@@ -235,7 +235,7 @@ export class PvpHandler {
|
||||
return resResult(STATUS.BATTLE_STATUS_WRONG);
|
||||
}
|
||||
|
||||
let { record: { heroes: dbHeroes, oppRoleId, pos }, createdAt } = BattleRecord;
|
||||
let { record: { heroes: dbHeroes, oppRoleId, pos, pvpSeasonNum }, createdAt } = BattleRecord;
|
||||
|
||||
let flag = 1; // 对比hero信息
|
||||
for (let { hid } of myHeroes) {
|
||||
@@ -260,29 +260,32 @@ export class PvpHandler {
|
||||
if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND);
|
||||
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, serverId);
|
||||
|
||||
// 战报记录
|
||||
await PvpRecordModel.createRec({ roleId1: roleId, roleId2: robotIdComBack(oppRoleId), warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds() });
|
||||
|
||||
let seasonNum: number = this.app.get('pvpSeasonNum');
|
||||
// 战报记录
|
||||
await PvpRecordModel.createRec({ roleId1: roleId, roleId2: robotIdComBack(oppRoleId), warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds(), timeout: seasonNum != pvpSeasonNum });
|
||||
|
||||
// 更新battleRecord
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||
$set: { status: isSuccess ? 1 : 2 }
|
||||
}, true);
|
||||
|
||||
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, update);
|
||||
|
||||
if(seasonNum == pvpSeasonNum) {
|
||||
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, update);
|
||||
}
|
||||
|
||||
let result = new PvpDataReturn(); // 返回对象
|
||||
result.setPvpDefense(pvpDefense);
|
||||
let oppPlayersReturn = await getEnemies(pvpDefense.oppPlayers, pvpDefense.winStreakNum);
|
||||
result.setOppPlayers(oppPlayersReturn);
|
||||
|
||||
// 加入排行榜
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum });
|
||||
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
|
||||
let myRank = await r.getMyRank({ roleId });
|
||||
result.setMyRank(myRank);
|
||||
|
||||
if(seasonNum == pvpSeasonNum) {
|
||||
// 加入排行榜
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum: pvpSeasonNum });
|
||||
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
|
||||
let myRank = await r.getMyRank({ roleId });
|
||||
result.setMyRank(myRank);
|
||||
}
|
||||
|
||||
await checkTaskInPvpEnd(serverId, roleId, sid, isSuccess, pvpDefense.heroScores, pvpDefense.seasonWinNum);
|
||||
if(hisWinStreakNum < pvpDefense.hisWinStreakNum) {
|
||||
|
||||
Reference in New Issue
Block a user