diff --git a/game-server/app/servers/guild/handler/gvgBattleHandler.ts b/game-server/app/servers/guild/handler/gvgBattleHandler.ts index a857e6df2..90c63233a 100644 --- a/game-server/app/servers/guild/handler/gvgBattleHandler.ts +++ b/game-server/app/servers/guild/handler/gvgBattleHandler.ts @@ -668,11 +668,14 @@ export class GVGBattleHandler { } async debugStartSchedule() { + let { countdownTime } = getGVGPeriodData(); + pinus.app.rpc.guild.guildRemote.setPeriodTime.broadcast(nowSeconds() + GVG.GVG_GUARD_START_TIME, countdownTime); await pinus.app.rpc.systimer.systimerRemote.gvgBattleStartSchedule.broadcast(); return resResult(STATUS.SUCCESS); } async debugEndSchedule() { + pinus.app.rpc.guild.guildRemote.resetPeriodTime.broadcast(); await pinus.app.rpc.systimer.systimerRemote.gvgBattleEndSchedule.broadcast(); return resResult(STATUS.SUCCESS); } diff --git a/game-server/app/servers/guild/remote/guildRemote.ts b/game-server/app/servers/guild/remote/guildRemote.ts index e91ae9cf4..32d382dfe 100644 --- a/game-server/app/servers/guild/remote/guildRemote.ts +++ b/game-server/app/servers/guild/remote/guildRemote.ts @@ -12,6 +12,7 @@ import { catapultHurt, gvgBattleEnd, gvgBattleSeconds, gvgBattleStart, initCatap import { clearBattleMemory } from '../../../services/gvg/gvgBattleMemory'; import { GVGLeagueType } from '../../../db/GVGLeague'; import { updateLeagueNameMem, updateTeamRoleInfoMem } from '../../../services/gvg/gvgTeamService'; +import { resetPeriodTime, setPeriodTime } from '../../../services/gvg/gvgFightService'; export default function (app: Application) { new HandlerService(app, {}); @@ -194,4 +195,20 @@ export class GuildRemote { errlogger.error(`remote ${__filename} \n ${e.stack}`); } } + + public setPeriodTime(startFightTime: number, endFightTime: number) { + try { + return setPeriodTime(startFightTime, endFightTime); + } catch(e) { + errlogger.error(`remote ${__filename} \n ${e.stack}`); + } + } + + public resetPeriodTime() { + try { + return resetPeriodTime(); + } catch(e) { + errlogger.error(`remote ${__filename} \n ${e.stack}`); + } + } } \ No newline at end of file diff --git a/game-server/app/services/gvg/gvgFightService.ts b/game-server/app/services/gvg/gvgFightService.ts index e075f485a..2be4fff55 100644 --- a/game-server/app/services/gvg/gvgFightService.ts +++ b/game-server/app/services/gvg/gvgFightService.ts @@ -26,15 +26,31 @@ import { getNumberArr, uniqueArr } from "../ladderService"; import { getHeroesAttributes } from "../playerCeService"; import { Rank } from "../rankService"; import { findKeys, getAllServerName, redisClient } from "../redisService"; +import { isDevelopEnv } from "../utilService"; import { combinePushItem } from "./gvgItemService"; import { addVestigeLeagueRankRec, addVestigeRankMessage } from "./gvgRecService"; import { getGroupIdOfServer, getGroupKey, getGVGServerType, getPeriodByTime } from "./gvgService"; +let gvgFightTime = undefined; + +// !!注意,这个函数会改动内存,线上不应该使用 +export function setPeriodTime(startFightTime: number, endFightTime: number) { + gvgFightTime = { startFightTime, endFightTime } +} + +export function resetPeriodTime() { + gvgFightTime = undefined; +} + // 备战期的遗迹和激战期的开始结束战斗时间 export function getFightTimeByPeriod(period: GVG_PERIOD, time?: number) { let dicPeriod = gameData.gvgPeriod.get(period); if(!dicPeriod) return { startFightTime: 0, endFightTime: 0 }; + if(isDevelopEnv() && gvgFightTime) { + return gvgFightTime; + } + return { startFightTime: getTimeFun(time).getTimeWithHour(dicPeriod.startHour, dicPeriod.startMinute, dicPeriod.startSecond), endFightTime: getTimeFun(time).getTimeWithHour(dicPeriod.endHour, dicPeriod.endMinute, dicPeriod.endSecond),