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

This commit is contained in:
luying
2023-08-03 16:39:26 +08:00
parent 8c2be216dd
commit 34c5f4b2ce
9 changed files with 124 additions and 16 deletions

View File

@@ -449,10 +449,10 @@ export class ComBattleHandler {
* @returns
* @memberof ComBattleHandler
*/
async action(msg: {teamCode: string, bossHurts: Array<{hid: number, dataId: number, hurtHp: number}>, killed: number[], curRnd: number}, session: BackendSession) {
async action(msg: {teamCode: string, bossHurts: Array<{hid: number, dataId: number, hurtHp: number}>, killed: number[], curRnd: number, timegap: number }, session: BackendSession) {
let roleId = session.get('roleId');
let sid = session.get('sid');
let { teamCode, killed, bossHurts, curRnd } = msg;
let { teamCode, killed, bossHurts, curRnd, timegap = 0 } = msg;
let teamStatus = getComTeamByCode(teamCode);
if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) {
checkTeamStatusAndSend(teamCode, roleId, sid);
@@ -469,6 +469,17 @@ export class ComBattleHandler {
}
// 重置总血量,计算真实伤害
const roleSt = teamStatus.findMemberByRoleId(roleId);
if(!roleSt) return resResult(STATUS.SUCCESS);
if(!roleSt.startActionTime || roleSt.startActionTime == 0) { // 第一次调用设置初始
roleSt.startActionTime = nowSeconds();
}
if(Math.abs(nowSeconds() - roleSt.startActionTime - timegap) > 5) { // 前后端误差超过5秒拦截
return resResult(STATUS.SUCCESS, {
isError: true,
timegap: nowSeconds() - roleSt.startActionTime
});
}
let actBossHurts: {dataId: number, hurtHp: number}[] = [];
let totalHurtHp = 0;
teamStatus.bossHpArr.forEach(boss => {
@@ -504,7 +515,10 @@ export class ComBattleHandler {
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAMMATE_ACT, { teamCode, bossCurHp: teamStatus.bossCurHp, bossHpArr: teamStatus.bossHpArr, roleStatus, actRoleId: roleId, actBossHurts });
const result = await handleComBtlProgress(teamStatus);
if (result && result.code !== 0) return result;
return resResult(STATUS.SUCCESS);
return resResult(STATUS.SUCCESS, {
isError: false,
timegap: nowSeconds() - roleSt.startActionTime
});
}
// /**