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
+2 -3
View File
@@ -9,7 +9,6 @@ import { DividendParam, DividendType } from '../db/Dividend';
import { sendMailByContent } from './mailService';
import { FrontendOrBackendSession, pinus } from 'pinus';
import { participants } from './guildActivity/guildActivityService';
import { Member } from '../domain/battleField/guildActivity';
import * as dicParam from '../pubUtils/dicParam';
import { RewardInter } from '../pubUtils/interface';
import { reportTAEvent } from './sdkService';
@@ -251,11 +250,11 @@ function weekendDividend(posNum: number, date: Date) {
return (day === 0 || day === 6) ? Math.floor(posNum * dicParam.GUILD_AUCTION.DIVIDEND_WEEKEND_RATE) : 0;
}
function dividendRate(data: Member) {
function dividendRate(data: { roleId: string, job: number }) {
return gameData.guildPosition.get(data.job).sellRatio;
}
function totalDividendRatio(participantsData: Member[]) {
function totalDividendRatio(participantsData: { roleId: string, job: number }[]) {
const result = participantsData.reduce((sum, data) => {
return sum + dividendRate(data);
}, 0);
+11 -4
View File
@@ -557,10 +557,10 @@ export function checkRouteParam(route: string, msg: any) {
}
case "comBattle.comBattleHandler.action":
{
let { teamCode, bossHurts, killed, curRnd } = msg;
let { teamCode, bossHurts, killed, curRnd, timegap = 0 } = msg;
if (!checkNaturalStrings(teamCode)) return false;
if (!checkNumberArray(killed)) return false;
if (!checkNaturalNumbers(curRnd)) return false;
if (!checkNaturalNumbers(curRnd, timegap)) return false;
if (!checkArrayCanEmpty(bossHurts)) return false;
for (let { hid, dataId, hurtHp } of bossHurts) {
if (hid && !checkNaturalNumbers(hid)) return false;
@@ -709,6 +709,11 @@ export function checkRouteParam(route: string, msg: any) {
if (!checkNaturalNumbers(msg.chapter, msg.warType)) return false;
break;
}
case "battle.normalBattleHandler.checkSkip":
{
if (!checkNaturalStrings(msg.battleCode)) return false;
break;
}
case "battle.pvpHandler.getOppPlayer":
case "battle.pvpHandler.getPlayerDetail":
{
@@ -1076,8 +1081,10 @@ export function checkRouteParam(route: string, msg: any) {
}
case "guild.cityActivityHandler.hitGate":
{
let { cityId, code, damage, hid, round } = msg;
if (!checkNaturalNumbers(cityId, damage, hid, round)) return false;
let { cityId, code, damage, hid, round, timegap = 0 } = msg;
console.log('###### timegap 1', timegap)
if (!checkNaturalNumbers(cityId, damage, hid, round, timegap)) return false;
console.log('###### timegap 2', timegap)
if (!checkNaturalStrings(code)) return false;
break;
}
@@ -114,15 +114,21 @@ export class CityActivityObject {
if(this.data.members.has(guildCode)) {
let members = this.data.members.get(guildCode);
if(members.findIndex(cur => cur.roleId == roleId) == -1) {
members.push({ roleId, job, code });
members.push({ roleId, job, code, startActionTime: 0 });
}
} else {
let arr = new Array<string>();
arr.push(roleId);
this.data.members.set(guildCode, [{ roleId, job, code }]);
this.data.members.set(guildCode, [{ roleId, job, code, startActionTime: 0 }]);
}
}
public getMember(guildCode: string, roleId: string) {
let members = this.data.members.get(guildCode)||[];
let member = members.find(cur => cur.roleId == roleId);
return member;
}
public pushGuild(guildCode: string, serverId: number, cityId: number) {
let key = this.getKey(serverId, cityId);
if(!this.data.cities.has(key)) {