From e5df5fe4f09af03eb3e32c55a7950980e2fcbdd9 Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 8 Feb 2023 19:09:56 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(gvg):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=BC=80=E6=9C=8D=E6=97=B6=E9=97=B4=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E5=8D=95=E6=9C=8D=E8=BF=98=E6=98=AF=E8=B7=A8=E6=9C=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/guild/handler/gvgHandler.ts | 9 ++++++++- game-server/app/services/gvg/gvgService.ts | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/game-server/app/servers/guild/handler/gvgHandler.ts b/game-server/app/servers/guild/handler/gvgHandler.ts index 86eb7267c..a6b6de89a 100644 --- a/game-server/app/servers/guild/handler/gvgHandler.ts +++ b/game-server/app/servers/guild/handler/gvgHandler.ts @@ -4,7 +4,7 @@ import { GVGLeagueModel } from "../../../db/GVGLeague"; import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare"; import { GVGMainData, LeagueDistributeInfo, LeagueMemberDistributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData"; import { resResult } from "../../../pubUtils/util"; -import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType } from "../../../services/gvg/gvgService"; +import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType, getServerTypeByTime } from "../../../services/gvg/gvgService"; import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, checkLeagueAuth, getMyAuth } from "../../../services/gvg/gvgTeamService"; import { getAllServerName } from "../../../services/redisService"; import { Distribute, GVGUserDataModel } from "../../../db/GVGUserData"; @@ -22,6 +22,7 @@ import { getGVGCities, getGVGCitiesInfo } from "../../../services/gvg/gvgBattleS import { GVGRecModel } from "../../../db/GVGRec"; import { checkGVGTask } from "../../../services/task/taskService"; import { getFightTimeByPeriod, getVestiges } from "../../../services/gvg/gvgFightService"; +import { getSeconds } from "../../../pubUtils/timeUtil"; export default function (app: Application) { new HandlerService(app, {}); @@ -455,4 +456,10 @@ export class GVGHandler { const result = await handleGVGCost(roleId, myLeague.leagueCode, sid, leagueItems, items, ITEM_CHANGE_REASON.DEBUG); return resResult(STATUS.SUCCESS, { result }); } + + async getServerType(msg: { time: string }, session: BackendSession) { + let t = new Date(msg.time); + let serverType = getServerTypeByTime(getSeconds(t)); + return resResult(STATUS.SUCCESS, { serverType }); + } } \ No newline at end of file diff --git a/game-server/app/services/gvg/gvgService.ts b/game-server/app/services/gvg/gvgService.ts index 00d35bef2..4be10b383 100644 --- a/game-server/app/services/gvg/gvgService.ts +++ b/game-server/app/services/gvg/gvgService.ts @@ -88,12 +88,14 @@ export function getGVGConfig() { return { configId, teamTime, prepareTime, battleTime, scheduleTime } } -function getServerTypeByTime(openTime: number) { +export function getServerTypeByTime(openTime: number) { let today = nowSeconds(); if(today - openTime < WEEK_TO_SECOND) return GVG_SERVER_TYPE.NO; let toWeek = getCurrentTeamTime(today); let openWeek = getCurrentTeamTime(openTime); let n = Math.floor((toWeek - openWeek) / WEEK_TO_SECOND); + let day = new Date(openTime * 1000).getDay(); + if(day == 6) n++; // 周六开服的服务器延后一周开启跨服 return n <= GVG.GVG_CROSS_SERVICE_STARTTIME? GVG_SERVER_TYPE.SINGLE: GVG_SERVER_TYPE.MULTI; }