寻宝:服务器重启时清理之前战斗的状态;匹配时检查队伍时间

This commit is contained in:
liangtongchuan
2021-01-27 16:00:48 +08:00
parent 01ea13a37e
commit 7743e1036b
4 changed files with 24 additions and 4 deletions
+3
View File
@@ -1,3 +1,4 @@
import { COM_TEAM_STATUS } from './app/consts/consts';
import {
createTcpAcceptor,
createTcpMailBox,
@@ -19,6 +20,7 @@ import * as redlockCacheService from './app/services/redlockCacheService';
import * as redLockService from './app/services/redLockService';
// TODO 需要整理。
import _pinus = require('pinus');
import { updateTeamStatus } from './app/services/comBattleService';
const filePath = (_pinus as any).FILEPATH;
filePath.MASTER = '/config/master';
@@ -68,6 +70,7 @@ app.configure(function() {
if (app.serverId === 'master-server-1') {
redisService.initAllRank();
redisService.clearComBtlQueue();
updateTeamStatus(COM_TEAM_STATUS.DEFAULT, COM_TEAM_STATUS.LOOSE);
}
});
@@ -256,7 +256,7 @@ export class ComBattleHandler {
}
// 机器人队伍 3 秒直接开战
setTimeout(async () => {
await ComBattleTeamModel.updateStatus(teamCode, COM_TEAM_STATUS.FIGHTING);
await ComBattleTeamModel.updateStatusByCode(teamCode, COM_TEAM_STATUS.FIGHTING);
comTeam.status = COM_TEAM_STATUS.FIGHTING;
channelService.pushMessageByUids('onComBtlStart', resResult(STATUS.SUCCESS, {teamCode, roleStatus: comTeam.roleStatus}), [{uid: roleId, sid}]);
}, 3000);
@@ -523,7 +523,7 @@ export class ComBattleHandler {
teamStatus.status = COM_TEAM_STATUS.FIGHTING;
let team = await ComBattleTeamModel.updateStatus(teamCode, COM_TEAM_STATUS.FIGHTING);
let team = await ComBattleTeamModel.updateStatusByCode(teamCode, COM_TEAM_STATUS.FIGHTING);
if (!team) return resResult(STATUS.COM_BATTLE_START_ERR);
clearComBtlTimer(teamCode, this.teamDisTimer); // 战斗开始停止解散计时
@@ -167,3 +167,14 @@ export async function getFrd(roleId: string, quality: number) {
if (assistTime >= assistanceTime) isFrd = true;
return isFrd;
}
/**
* @description 更新队伍状态
* @export
* @param {number} preStatus 更新前状态,作为筛选条件
* @param {number} newStatus 要设置的新状态
*/
export async function updateTeamStatus(preStatus: number, newStatus: number) {
if (preStatus === newStatus) return;
await ComBattleTeamModel.updateStatusByStatus(preStatus, newStatus);
}