🐞 fix(gvg): 修复城池驻守和机器人刷新逻辑
This commit is contained in:
@@ -899,57 +899,59 @@ export async function initHiddenDataSchedule(isInit: boolean, data?: HiddenDataM
|
||||
// —————————————— 配表兼容 end —————————————— //
|
||||
|
||||
// —————————————— gvg start —————————————— //
|
||||
let gvgBattleSecondJob: Job; // gvg每5秒的定时器
|
||||
let gvgBattleCatapultJob: Job; // gvg投石车定时器
|
||||
|
||||
export async function initGVGConfigSchedule() {
|
||||
let config = await GVGConfigModel.findConfig();
|
||||
if(!config || nowSeconds() > config.scheduleTime) {
|
||||
config = await createNewGVGConfig();
|
||||
}
|
||||
|
||||
if(scheduledJobs[`gvgTeam`]) scheduledJobs[`gvgTeam`].cancel();
|
||||
scheduleJob(`gvgTeam`, config.teamTime * 1000, async () => {
|
||||
await pinus.app.rpc.guild.guildRemote.setGVGConfig.broadcast(config);
|
||||
})
|
||||
if(scheduledJobs[`gvgConfig`]) scheduledJobs[`gvgConfig`].cancel();
|
||||
scheduleJob(`gvgConfig`, config.scheduleTime * 1000, createNewGVGConfig);
|
||||
|
||||
if(nowSeconds() > config.prepareTime) {
|
||||
initLeaguePrepare();
|
||||
} else {
|
||||
if(scheduledJobs[`gvgPrepare`]) scheduledJobs[`gvgPrepare`].cancel();
|
||||
scheduleJob(`gvgPrepare`, config.prepareTime * 1000, initLeaguePrepare);
|
||||
}
|
||||
|
||||
scheduleJob('gvgFightSchedule', '0 0 22 * * ?', saveVestigeRankSchedule);
|
||||
if(scheduledJobs[`gvgFight`]) scheduledJobs[`gvgFight`].cancel();
|
||||
scheduleJob(`gvgFight`, '0 0 22 * * ?', saveVestigeRankSchedule);
|
||||
|
||||
let { startFightTime, endFightTime } = getFightTimeByPeriod(GVG_PERIOD.BATTLE, config.battleTime);
|
||||
|
||||
if(nowSeconds() > startFightTime && nowSeconds() < endFightTime) {
|
||||
if(nowSeconds() > startFightTime - GVG.GVG_GUARD_START_TIME && nowSeconds() < endFightTime) {
|
||||
if(gvgBattleSecondJob) gvgBattleSecondJob.cancel();
|
||||
gvgBattleSecondJob = scheduleJob('gvgBattleSecondJob', '*/5 * * * * *', gvgBattleSecondSchedule);
|
||||
gvgBattleSecondJob = scheduleJob('gvgBattleSecond', '*/5 * * * * *', gvgBattleSecondSchedule);
|
||||
if(gvgBattleCatapultJob) gvgBattleCatapultJob.cancel();
|
||||
gvgBattleCatapultJob = scheduleJob('gvgBattleCatapultJob', `*/${GVG.GVG_CATAPULT_TIME} * * * * *`, gvgBattleCatapult);
|
||||
gvgBattleCatapultJob = scheduleJob('gvgBattleCatapult', `*/${GVG.GVG_CATAPULT_TIME} * * * * *`, gvgBattleCatapult);
|
||||
} else {
|
||||
scheduleJob(`gvgBattleStartSchedule`, (startFightTime - GVG.GVG_GUARD_START_TIME) * 1000, gvgBattleStartSchedule);
|
||||
}
|
||||
if(scheduledJobs[`gvgBattleEndSchedule`]) scheduledJobs[`gvgBattleEndSchedule`].cancel();
|
||||
scheduleJob(`gvgBattleEndSchedule`, endFightTime * 1000, gvgBattleEndSchedule);
|
||||
}
|
||||
|
||||
let gvgBattleSecondJob: Job; // gvg每5秒的定时器
|
||||
let gvgBattleCatapultJob: Job; // gvg投石车定时器
|
||||
|
||||
// gvg激战期开始定时器
|
||||
export async function gvgBattleStartSchedule() {
|
||||
console.log('##### gvgBattleStartSchedule', Date.now())
|
||||
if(gvgBattleSecondJob) gvgBattleSecondJob.cancel();
|
||||
gvgBattleSecondJob = scheduleJob('gvgBattleSecondJob', '*/5 * * * * *', gvgBattleSecondSchedule);
|
||||
gvgBattleSecondJob = scheduleJob('gvgBattleSecond', '*/5 * * * * *', gvgBattleSecondSchedule);
|
||||
|
||||
setTimeout(async () => {
|
||||
console.log('############')
|
||||
if(gvgBattleCatapultJob) gvgBattleCatapultJob.cancel();
|
||||
gvgBattleCatapultJob = scheduleJob('gvgBattleCatapultJob', `*/${GVG.GVG_CATAPULT_TIME} * * * * *`, gvgBattleCatapult);
|
||||
// 初始化投石车
|
||||
let guildServers = pinus.app.getServersByType('guild');
|
||||
if(guildServers.length > 0) {
|
||||
pinus.app.rpc.guild.guildRemote.gvgBattleStart.toServer(getRandSingleEelm(guildServers).id);
|
||||
}
|
||||
|
||||
}, 60);
|
||||
// 初始化投石车
|
||||
let guildServers = pinus.app.getServersByType('guild');
|
||||
if(guildServers.length > 0) {
|
||||
pinus.app.rpc.guild.guildRemote.gvgBattleStart.toServer(getRandSingleEelm(guildServers).id);
|
||||
}
|
||||
if(gvgBattleCatapultJob) gvgBattleCatapultJob.cancel();
|
||||
gvgBattleCatapultJob = scheduleJob('gvgBattleCatapult', `*/${GVG.GVG_CATAPULT_TIME} * * * * *`, gvgBattleCatapult);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user