✨ feat(防破解): 防加速和防跳过
This commit is contained in:
@@ -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
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user