名将擂台:修复任务相关
This commit is contained in:
@@ -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 });
|
||||||
|
|||||||
@@ -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||{};
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
]
|
]
|
||||||
|
|
||||||
// 装备栏强化类型
|
// 装备栏强化类型
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
Reference in New Issue
Block a user