feat(防破解): 防加速和防跳过

This commit is contained in:
luying
2023-08-03 16:54:31 +08:00
parent 8c2be216dd
commit 34c5f4b2ce
9 changed files with 124 additions and 16 deletions
@@ -591,4 +591,63 @@ export class NormalBattleHandler {
return;
}
// 是否可以跳过
async checkSkip(msg: { battleCode: string }, session: BackendSession) {
const { battleCode } = msg;
let roleId = session.get('roleId');
let role = await RoleModel.findByRoleId(roleId, 'warStar vipStartTime');
if(!role) return resResult(STATUS.ROLE_NOT_FOUND);
let { warStar, vipStartTime } = role;
if(!vipStartTime || vipStartTime == 0) {
return resResult(STATUS.SUCCESS, {
battleCode,
canSkip: false
});
}
let battleRecord = await BattleRecordModel.getBattleRecordByCode(battleCode);
if(!battleRecord || battleRecord.roleId != roleId) return resResult(STATUS.BATTLE_NOT_FOUND);
let battleId = battleRecord.battleId;
let dicWar = gameData.war.get(battleId);
if(!dicWar) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let hasPass = warStar.findIndex(cur => cur.id == battleId) != -1; // 是否首通过
let canSkip = false;
switch (dicWar.warType) {
case WAR_TYPE.VESTIGE:
case WAR_TYPE.BRANCH_ELITE:
case WAR_TYPE.ACT_DAILY_GK:
case WAR_TYPE.ACT_NEW_HERO_GK:
canSkip = false;
break;
case WAR_TYPE.NORMAL:
canSkip = dicWar.chapter != 0 && hasPass;
break;
case WAR_TYPE.MAIN_ELITE:
case WAR_TYPE.MYSTERY:
canSkip = hasPass;
break;
case WAR_TYPE.ACT_TREASURE_HUNT:
case WAR_TYPE.ACT_SELF_SHOP:
case WAR_TYPE.TOWER:
case WAR_TYPE.LADDER:
case WAR_TYPE.GUILD_TRAIN:
case WAR_TYPE.PVP:
case WAR_TYPE.DAILY:
case WAR_TYPE.EVENT:
case WAR_TYPE.EXPEDITION:
case WAR_TYPE.GVG_VESTIGE:
case WAR_TYPE.GVG_BATTLE:
canSkip = true;
break;
}
return resResult(STATUS.SUCCESS, {
battleCode, canSkip
});
}
}