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