diff --git a/game-server/app/servers/guild/handler/gvgFightHandler.ts b/game-server/app/servers/guild/handler/gvgFightHandler.ts index 8f814e298..3d402c3d8 100644 --- a/game-server/app/servers/guild/handler/gvgFightHandler.ts +++ b/game-server/app/servers/guild/handler/gvgFightHandler.ts @@ -17,7 +17,7 @@ import { GVG } from "../../../pubUtils/dicParam"; import { RewardInter } from "../../../pubUtils/interface"; import { resResult } from "../../../pubUtils/util"; import { isHeroHidden } from "../../../services/dataService"; -import { calBreakGoods, checkHeroIsUsedInOtherVestige, checkVestige, checkVestigeOppStatus, checkVestigeRank, generateAttackHeroInfo, generateAttackInfo, generateDefenseInfo, getDayKeyInfo, getMyVestigeRank, getOppDetailData, getOppPlayerByRanks, getVestigeRecStatus, getVestigeRank, getVestigeUsedHeroes, isRobot, refreshVestigeOppRanks, saveScoreToRank, updateMyVestigeRank, saveVestigeRankSchedule, calVestigeLeagueBoxRewards } from "../../../services/gvg/gvgFightService"; +import { calBreakGoods, checkHeroIsUsedInOtherVestige, checkVestige, checkVestigeOppStatus, checkVestigeRank, generateAttackHeroInfo, generateAttackInfo, generateDefenseInfo, getDayKeyInfo, getMyVestigeRank, getOppDetailData, getOppPlayerByRanks, getVestigeRecStatus, getVestigeRank, getVestigeUsedHeroes, isRobot, refreshVestigeOppRanks, saveScoreToRank, updateMyVestigeRank, saveVestigeRankSchedule, calVestigeLeagueBoxRewards, checkFightTime } from "../../../services/gvg/gvgFightService"; import { addGVGReward, combinePushItem, handleGVGCost } from "../../../services/gvg/gvgItemService"; import { addGVGActive } from "../../../services/gvg/gvgPrepareService"; import { addVestigeBattleEndRec } from "../../../services/gvg/gvgRecService"; @@ -200,6 +200,8 @@ export class GVGProduceHandler { let { configId, period } = getGVGPeriodData(); if(period != GVG_PERIOD.PREPARE) return resResult(STATUS.GVG_NOT_PREPARE_PERIOD); + if(!checkFightTime()) return resResult(STATUS.GVG_VESTIGE_TIME_OUT); + if(!await checkVestige(serverId, vestigeId)) { return resResult(STATUS.GVG_VESTIGE_ERR); } diff --git a/game-server/app/services/gvg/gvgFightService.ts b/game-server/app/services/gvg/gvgFightService.ts index 1048d3ec1..8e5623063 100644 --- a/game-server/app/services/gvg/gvgFightService.ts +++ b/game-server/app/services/gvg/gvgFightService.ts @@ -20,7 +20,7 @@ import { KeyNameParam, LeagueRankInfo, myIdInter, RoleRankInfo } from "../../dom import { gameData, getGVGVestigeLeagueRank, getGVGVestigeRange } from "../../pubUtils/data"; import { GVG } from "../../pubUtils/dicParam"; import { RewardInter } from "../../pubUtils/interface"; -import { getTimeFun } from "../../pubUtils/timeUtil"; +import { getTimeFun, nowSeconds } from "../../pubUtils/timeUtil"; import { getRandEelm } from "../../pubUtils/util"; import { getNumberArr, uniqueArr } from "../ladderService"; import { getHeroesAttributes } from "../playerCeService"; @@ -41,6 +41,12 @@ export function getFightTimeByPeriod(period: GVG_PERIOD) { } } +export function checkFightTime() { + let { startFightTime, endFightTime } = getFightTimeByPeriod(GVG_PERIOD.PREPARE); + let now = nowSeconds(); + return startFightTime <= now && endFightTime >= now; +} + // 征战中原每天随机的遗迹点 export async function getVestiges(serverId: number) { let groupId = await getGroupIdOfServer(serverId); diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index ad8e6bcae..97c975723 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -356,6 +356,7 @@ export const STATUS = { GVG_VESTIGE_RANK_NOT_INIT: { code: 21366, simStr: '玩家数据未初始' }, GVG_VESTIGE_REFESH_CNT_MAX: { code: 21367, simStr: '遗迹刷新次数不足' }, GVG_RECEIVE_NO_RANK_REWARD: { code: 21368, simStr: '没有可领取的奖励' }, + GVG_VESTIGE_TIME_OUT: { code: 21369, simStr: '今天遗迹已结算,不可再挑战' }, // 通用 30000 - 30099 DIC_DATA_NOT_FOUND: { code: 30000, simStr: '数据表未找到' },