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; }