diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index a8394105c..0a1a51768 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -15,7 +15,7 @@ import { RoleStatus, ComBattleTeamModel, ComBattleTeamType, BossHp, ComRoleStatu import { ItemModel, ItemType } from '../../../db/Item'; import { addItems, handleCost } from '../../../services/role/rewardService'; import { checkRoleInQueue, rmRoleFromQueue, setTeamSearchReq } from '../../../services/redisService'; -import { getRandBlueprtId, clearComBtlTimer, getFrd, updateRobotHurtByTime, comBtlLvInvalid, clearRobotHurtTimer, setDismissTimer, dismissTeam, handleComBtlProgress, getComBattleFriendAdd, teammateInBlackList, blueprtIdValid, hasEnoughBlueprt, addRoleToTeam, addRoleStToTeam, addValidSearchingRoles, validToJoin, addRobotsToTeam, addRobotsLater, teamIsFullToStart, oneTeamNotInBlack, getAllAssistCnt, checkHasMyTeam } from '../../../services/comBattleService'; +import { getRandBlueprtId, clearComBtlTimer, getFrd, updateRobotHurtByTime, comBtlLvInvalid, clearRobotHurtTimer, setDismissTimer, dismissTeam, handleComBtlProgress, getComBattleFriendAdd, teammateInBlackList, blueprtIdValid, hasEnoughBlueprt, addRoleToTeam, addRoleStToTeam, addValidSearchingRoles, validToJoin, addRobotsToTeam, addRobotsLater, teamIsFullToStart, oneTeamNotInBlack, getAllAssistCnt, checkHasMyTeam, checkTeamStatusAndSend } from '../../../services/comBattleService'; import { setAp } from '../../../services/actionPointService'; import { roleLevelup } from '../../../services/normalBattleService'; import { getSimpleRoleInfo } from '../../../services/roleService'; @@ -26,7 +26,7 @@ import { FriendParams } from '../../../domain/roleField/friend'; import { checkTask, checkTaskInComBattleStart } from '../../../services/task/taskService'; import { gameData, getWarByBlueprtId } from '../../../pubUtils/data'; import { HeroModel } from '../../../db/Hero'; -import { addUserToTeamChannel, delTeamChannel, removeFromTeamChannel, sendMessageToTeam } from '../../../services/pushService'; +import { addUserToTeamChannel, delTeamChannel, removeFromTeamChannel, sendMessageToTeam, sendMessageToUsersWithSuc, sendMessageToUserWithSuc } from '../../../services/pushService'; export default function(app: Application) { return new ComBattleHandler(app); @@ -449,12 +449,17 @@ export class ComBattleHandler { */ async action(msg: {teamCode: string, bossHurts: Array<{hid: number, dataId: number, hurtHp: number}>, killed: number[], curRnd: number}, session: BackendSession) { let roleId = session.get('roleId'); + let sid = session.get('sid'); let { teamCode, killed, bossHurts, curRnd } = msg; let teamStatus = this.teamMap.get(teamCode); if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) { + checkTeamStatusAndSend(teamCode, roleId, sid); return resResult(STATUS.SUCCESS); } - if (teamStatus.status !== COM_TEAM_STATUS.FIGHTING) return resResult(STATUS.COM_BATTLE_NOT_START); + if (teamStatus.status !== COM_TEAM_STATUS.FIGHTING) { + checkTeamStatusAndSend(teamCode, roleId, sid); + return resResult(STATUS.COM_BATTLE_NOT_START); + } for (let st of teamStatus.roleStatus) { if (st.roleId === roleId && (!st.heroes || st.heroes.length === 0)) { return resResult(STATUS.SUCCESS); diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index b411f905e..2dbfeff1b 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -17,7 +17,7 @@ import { getTeamSearchByLv, rmRoleFromQueue } from './redisService'; import { getRewardByBlueprtId, gameData, getBossHpByBlueprtId, getDicBlueprtById } from '../pubUtils/data'; import { getZeroPointD, nowSeconds } from '../pubUtils/timeUtil'; import { handleCost } from './role/rewardService'; -import { addUserToTeamChannel, delTeamChannel, sendMessageToTeam, sendMessageToUsersWithSuc } from './pushService'; +import { addUserToTeamChannel, delTeamChannel, sendMessageToTeam, sendMessageToUsersWithSuc, sendMessageToUserWithSuc } from './pushService'; import { checkTaskInComBattleEnd } from './task/taskService'; /** @@ -622,4 +622,11 @@ export async function checkHasMyTeam(roleId: string) { } } return hasMyTeam; +} + +export async function checkTeamStatusAndSend(teamCode: string, roleId: string, sid: string) { + let team = await ComBattleTeamModel.getTeamByCode(teamCode); + if(team && (team.status == 2|| team.status == 3)) { + await sendMessageToUserWithSuc(roleId, PUSH_ROUTE.TEAM_COMPLETE, { teamCode, result: team.status == 2? true: false, timeout: team.timeout }, sid); + } } \ No newline at end of file