名将擂台:修复任务相关

This commit is contained in:
luying
2022-07-18 18:03:27 +08:00
parent 96d01ab803
commit d72f6ef080
7 changed files with 145 additions and 1402 deletions

View File

@@ -18,6 +18,7 @@ import { ServerlistModel } from '../../../db/Serverlist';
import { saveLadderDefCeByData } from '../../../services/redisService'; import { saveLadderDefCeByData } from '../../../services/redisService';
import { pushLadderTopChangeMsg } from '../../../services/sysChatService'; import { pushLadderTopChangeMsg } from '../../../services/sysChatService';
import { checkTaskInLadderEnd, checkTaskInLadderStart, checkTaskInLadderSweep } from '../../../services/task/taskService'; import { checkTaskInLadderEnd, checkTaskInLadderStart, checkTaskInLadderSweep } from '../../../services/task/taskService';
import { BattleRecordModel } from '../../../db/BattleRecord';
export default function (app: Application) { export default function (app: Application) {
new HandlerService(app, {}); new HandlerService(app, {});
@@ -136,9 +137,10 @@ export class LadderHandler {
} }
// 6. 布完阵开始挑战 // 6. 布完阵开始挑战
async checkBattle(msg: { battleCode: string, heroes: { actorId: number, order: number }[] }, session: BackendSession) { async checkBattle(msg: { battleCode: string, battleId: number, heroes: { actorId: number, order: number }[] }, session: BackendSession) {
let roleId = session.get('roleId'); let roleId = session.get('roleId');
let { battleCode, heroes } = msg; let roleName = session.get('roleId');
let { battleId, battleCode, heroes } = msg;
let rec = await LadderMatchRecModel.findByBattleCode(battleCode); let rec = await LadderMatchRecModel.findByBattleCode(battleCode);
if(!rec || rec.roleId1 != roleId) return resResult(STATUS.LADDER_REC_NOT_FOUND); if(!rec || rec.roleId1 != roleId) return resResult(STATUS.LADDER_REC_NOT_FOUND);
@@ -152,7 +154,15 @@ export class LadderHandler {
heroInfo.setByDefenseHero(hero); heroInfo.setByDefenseHero(hero);
return heroInfo; return heroInfo;
}); });
let warInfo = gameData.war.get(battleId);
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
$set: {
roleId, roleName, battleId,
status: 0,
warName: warInfo?.gk_name,
warType: warInfo?.warType,
}
});
rec = await LadderMatchRecModel.startBattle(battleCode, attackHeroes); rec = await LadderMatchRecModel.startBattle(battleCode, attackHeroes);
pinus.app.rpc.systimer.systimerRemote.setLadderCountDown.broadcast(rec.battleCode, rec.battleTime, LADDER_STATUS.BATTLE); pinus.app.rpc.systimer.systimerRemote.setLadderCountDown.broadcast(rec.battleCode, rec.battleTime, LADDER_STATUS.BATTLE);
@@ -196,6 +206,7 @@ export class LadderHandler {
} else { } else {
rec = await LadderMatchRecModel.battleEnd(battleCode, isSuccess); rec = await LadderMatchRecModel.battleEnd(battleCode, isSuccess);
} }
await BattleRecordModel.updateBattleRecordByCode(battleCode, { $set: { status: isSuccess? 1: 2 } });
let historyRank = ladderData.historyRank; let historyRank = ladderData.historyRank;
ladderData = await LadderMatchModel.updateByRoleId(roleId, { historyRank: historyRank > atkLadderMatch.rank? atkLadderMatch.rank: historyRank, locked: 0 }); ladderData = await LadderMatchModel.updateByRoleId(roleId, { historyRank: historyRank > atkLadderMatch.rank? atkLadderMatch.rank: historyRank, locked: 0 });

View File

@@ -423,7 +423,7 @@ export class HeroHandler {
if (heroes.length < dicFriendShip.hids.length) return resResult(STATUS.ROLE_HERO_NOT_EXISTS); if (heroes.length < dicFriendShip.hids.length) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
let hero = heroes.find(cur => cur.hid == hid); let hero = heroes.find(cur => cur.hid == hid);
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS); if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
let { connections } = hero; let { connections = []} = hero;
let curConnect = connections.find(cur => cur.shipId == shipId); let curConnect = connections.find(cur => cur.shipId == shipId);
let { level: oldLv = 0, exp: oldExp = 0 } = curConnect||{}; let { level: oldLv = 0, exp: oldExp = 0 } = curConnect||{};

View File

@@ -1294,21 +1294,25 @@ export class CheckSingleTask {
} }
case TASK_TYPE.CONNECT_ONE_HERO_MAX_LV: // 124. 单个武将其中最高等级的羁绊达X级 case TASK_TYPE.CONNECT_ONE_HERO_MAX_LV: // 124. 单个武将其中最高等级的羁绊达X级
{ {
let { connections, oldConnections } = param; let { connections } = param;
let oldMaxLv = Math.max(...connections.map(cur => cur.level))||0; let records = await getRecord();
let maxLv = Math.max(...oldConnections.map(cur => cur.level))||0; let oldLv = records.length > 0? parseInt(records[0]): 0;
if(dicTaskParam[0] <= oldMaxLv && dicTaskParam[0] > maxLv) {
result = { inc: 1 }; let maxLv = Math.max(...connections.map(cur => cur.level))||0;
console.log('##### TASK_TYPE.CONNECT_ONE_HERO_MAX_LV', oldLv, maxLv )
if(oldLv < maxLv) {
result = { set: maxLv, records: [`${maxLv}`] };
} }
break; break;
} }
case TASK_TYPE.CONNECT_ONE_HERO_SUM_LV: // 125. 单个武将3条羁绊总共提升X级 case TASK_TYPE.CONNECT_ONE_HERO_SUM_LV: // 125. 单个武将3条羁绊总共提升X级
{ {
let { connections, oldConnections } = param; let { connections } = param;
let oldSumLv = connections.reduce((pre, cur) => pre + cur.level, 0); let records = await getRecord();
let sumLv = oldConnections.reduce((pre, cur) => pre + cur.level, 0); let oldLv = records.length > 0? parseInt(records[0]): 0;
if(dicTaskParam[0] <= oldSumLv && dicTaskParam[0] > sumLv) { let sumLv = connections.reduce((pre, cur) => pre + cur.level, 0);
result = { inc: 1 }; if(oldLv < sumLv) {
result = { set: sumLv, records: [`${sumLv}`] };
} }
break; break;
} }

View File

@@ -567,7 +567,7 @@ export const WAR_RELATE_TABLES = [
FILENAME.DIC_GK_PROBATION, FILENAME.DIC_GK_PROBATION,
FILENAME.DIC_GK_ARMY_TRAIN, FILENAME.DIC_GK_ARMY_TRAIN,
FILENAME.DIC_GK_ARMY_BOSS, FILENAME.DIC_GK_ARMY_BOSS,
// FILENAME.DIC_GK_LADDER, FILENAME.DIC_GK_LADDER,
] ]
// 装备栏强化类型 // 装备栏强化类型

View File

@@ -103,14 +103,14 @@ export default class LadderMatch extends BaseModel {
let atkLadderMatch: LadderMatchType, defLadderMatch: LadderMatchType, isChange = false; let atkLadderMatch: LadderMatchType, defLadderMatch: LadderMatchType, isChange = false;
if(defenseInfo.isRobot) { if(defenseInfo.isRobot) {
atkLadderMatch = await LadderMatchModel.findOne({ roleId: attackInfo.roleId }).lean(); atkLadderMatch = await LadderMatchModel.findOne({ roleId: attackInfo.roleId }).lean();
if(isSuccess && atkLadderMatch && atkLadderMatch.rank > defenseInfo.oldRank) { if(isSuccess && atkLadderMatch && (atkLadderMatch.rank == 0 || atkLadderMatch.rank > defenseInfo.oldRank)) {
atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: attackInfo.roleId }, { $set: { rank: defenseInfo.oldRank, oldRank: atkLadderMatch.rank } }, { new: true }).lean(); atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: attackInfo.roleId }, { $set: { rank: defenseInfo.oldRank, oldRank: atkLadderMatch.rank } }, { new: true }).lean();
isChange = true; isChange = true;
} }
} else { } else {
atkLadderMatch = await LadderMatchModel.findOne({ roleId: attackInfo.roleId }).lean(); atkLadderMatch = await LadderMatchModel.findOne({ roleId: attackInfo.roleId }).lean();
defLadderMatch = await LadderMatchModel.findOne({ roleId: defenseInfo.roleId }).lean(); defLadderMatch = await LadderMatchModel.findOne({ roleId: defenseInfo.roleId }).lean();
if(isSuccess && atkLadderMatch && defLadderMatch && atkLadderMatch.rank > defLadderMatch.rank) { if(isSuccess && atkLadderMatch && defLadderMatch && (atkLadderMatch.rank == 0 || atkLadderMatch.rank > defLadderMatch.rank)) {
atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: attackInfo.roleId }, { $set: { rank: defLadderMatch.rank, oldRank: atkLadderMatch.rank } }, { new: true }).lean(); atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: attackInfo.roleId }, { $set: { rank: defLadderMatch.rank, oldRank: atkLadderMatch.rank } }, { new: true }).lean();
defLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: defenseInfo.roleId }, { $set: { rank: atkLadderMatch.rank, oldRank: defLadderMatch.rank } }, { new: true }).lean(); defLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: defenseInfo.roleId }, { $set: { rank: atkLadderMatch.rank, oldRank: defLadderMatch.rank } }, { new: true }).lean();
isChange = true; isChange = true;

View File

@@ -2247,11 +2247,11 @@
"subTab": 17, "subTab": 17,
"subTabName": "攻擂", "subTabName": "攻擂",
"taskType": 123, "taskType": 123,
"taskParam": "100&", "taskParam": "100&1",
"achieveType": 61, "achieveType": 61,
"achieveTaskName": "不屈不挠·壹", "achieveTaskName": "不屈不挠·壹",
"taskInfo": "名将擂台排名进入前100名", "taskInfo": "名将擂台排名进入前100名",
"condition": 100, "condition": 1,
"taskReward": "17054&100", "taskReward": "17054&100",
"point": 10 "point": 10
}, },
@@ -2263,11 +2263,11 @@
"subTab": 17, "subTab": 17,
"subTabName": "攻擂", "subTabName": "攻擂",
"taskType": 123, "taskType": 123,
"taskParam": "50&", "taskParam": "50&1",
"achieveType": 61, "achieveType": 61,
"achieveTaskName": "不屈不挠·贰", "achieveTaskName": "不屈不挠·贰",
"taskInfo": "名将擂台排名进入前50名", "taskInfo": "名将擂台排名进入前50名",
"condition": 50, "condition": 1,
"taskReward": "17054&100", "taskReward": "17054&100",
"point": 10 "point": 10
} }

File diff suppressed because it is too large Load Diff