寻宝:修改匹配次数逻辑

This commit is contained in:
luying
2022-02-11 20:11:56 +08:00
parent 22696f52c7
commit 74d9129f5b
5 changed files with 51 additions and 19 deletions
@@ -15,7 +15,7 @@ import { RoleStatus, ComBattleTeamModel, ComBattleTeamType, BossHp, ComRoleStatu
import { ItemModel, ItemType } from '../../../db/Item'; import { ItemModel, ItemType } from '../../../db/Item';
import { addItems, handleCost } from '../../../services/rewardService'; import { addItems, handleCost } from '../../../services/rewardService';
import { checkRoleInQueue, rmRoleFromQueue, setTeamSearchReq } from '../../../services/redisService'; import { checkRoleInQueue, rmRoleFromQueue, setTeamSearchReq } from '../../../services/redisService';
import { getRandBlueprtId, clearComBtlTimer, getFrd, updateRobotHurtByTime, comBtlLvInvalid, clearRobotHurtTimer, setDismissTimer, dismissTeam, handleComBtlProgress, getComBattleFriendAdd, teammateInBlackList, blueprtIdValid, createComTeamData, hasEnoughBlueprt, addRoleToTeam, addRoleStToTeam, addValidSearchingRoles, validToJoin, addRobotsToTeam, addRobotsLater, teamIsFullToStart, oneTeamNotInBlack, getAllAssistCnt } from '../../../services/comBattleService'; import { getRandBlueprtId, clearComBtlTimer, getFrd, updateRobotHurtByTime, comBtlLvInvalid, clearRobotHurtTimer, setDismissTimer, dismissTeam, handleComBtlProgress, getComBattleFriendAdd, teammateInBlackList, blueprtIdValid, createComTeamData, hasEnoughBlueprt, addRoleToTeam, addRoleStToTeam, addValidSearchingRoles, validToJoin, addRobotsToTeam, addRobotsLater, teamIsFullToStart, oneTeamNotInBlack, getAllAssistCnt, checkHasMyTeam } from '../../../services/comBattleService';
import { setAp } from '../../../services/actionPointService'; import { setAp } from '../../../services/actionPointService';
import { roleLevelup } from '../../../services/normalBattleService'; import { roleLevelup } from '../../../services/normalBattleService';
import { addUserToChannel, getSimpleRoleInfo } from '../../../services/roleService'; import { addUserToChannel, getSimpleRoleInfo } from '../../../services/roleService';
@@ -109,6 +109,10 @@ export class ComBattleHandler {
const { lv } = roleInfo; const { lv } = roleInfo;
let { topLineupCe = 1000 } = roleInfo; let { topLineupCe = 1000 } = roleInfo;
if(await checkHasMyTeam(roleId)) {
return resResult(STATUS.COM_BATTLE_IS_RUNNING);
}
if (comBtlLvInvalid(lv, lvRange)) { if (comBtlLvInvalid(lv, lvRange)) {
return resResult(STATUS.COM_BATTLE_ASSIST_LV_NOT_ENOUGH); return resResult(STATUS.COM_BATTLE_ASSIST_LV_NOT_ENOUGH);
} }
@@ -135,21 +135,36 @@ export class ComBattleRemote {
} }
} }
public async leaveFromBattle(roleId: string, teamCode: string ) { // public async leaveFromBattle(roleId: string, teamCode: string ) {
// try {
// let teamMap: Map<string, MemComBtlTeam> = this.app.get('teamMap');
// if(teamMap && teamMap.has(teamCode)) {
// let myTeam = teamMap.get(teamCode);
// for(let roleStatus of myTeam.roleStatus) {
// if(roleStatus.roleId == roleId) {
// roleStatus.battleStatus = 2; // 自己失败了
// }
// }
// let channelService = this.app.get('channelService');
// let channel = channelService.getChannel(teamCode, false);
// await handleComBtlProgress(myTeam, this.app.get('robotHurtTimer'), teamMap, channel); // 结算
// }
// } catch(e) {
// errlogger.error(`remote ${__filename} \n ${e.stack}`);
// }
// }
public async checkMyTeam(roleId: string ) {
try { try {
let teamMap: Map<string, MemComBtlTeam> = this.app.get('teamMap'); let teamMap: Map<string, MemComBtlTeam> = this.app.get('teamMap');
if(teamMap && teamMap.has(teamCode)) { let hasMyTeam = false;
let myTeam = teamMap.get(teamCode); for(let [,team] of teamMap) {
for(let roleStatus of myTeam.roleStatus) { if(team.roleIds.indexOf(roleId) > -1) {
if(roleStatus.roleId == roleId) { hasMyTeam = true; break;
roleStatus.battleStatus = 2; // 自己失败了
}
} }
let channelService = this.app.get('channelService');
let channel = channelService.getChannel(teamCode, false);
await handleComBtlProgress(myTeam, this.app.get('robotHurtTimer'), teamMap, channel); // 结算
} }
return hasMyTeam
} catch(e) { } catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`); errlogger.error(`remote ${__filename} \n ${e.stack}`);
} }
@@ -21,7 +21,7 @@ import { Rank } from '../../../services/rankService';
import { checkTaskWithRole, } from '../../../services/taskService'; import { checkTaskWithRole, } from '../../../services/taskService';
import { pushData, everydayRefresh, kickUser } from '../../../services/connectorService'; import { pushData, everydayRefresh, kickUser } from '../../../services/connectorService';
import { pick } from 'lodash'; import { pick } from 'lodash';
import { setComBtlOnUserLeave } from '../../../services/comBattleService'; // import { setComBtlOnUserLeave } from '../../../services/comBattleService';
import Counter from '../../../db/Counter'; import Counter from '../../../db/Counter';
import { getExpByLv } from '../../../pubUtils/data'; import { getExpByLv } from '../../../pubUtils/data';
import { reportTAUserSet } from '../../../services/sdkService'; import { reportTAUserSet } from '../../../services/sdkService';
@@ -223,9 +223,9 @@ export class EntryHandler {
await leaveGuildAuctionChannel(roleId, sid, guildCode); await leaveGuildAuctionChannel(roleId, sid, guildCode);
await leaveWorldAuctionChannel(roleId, sid, serverId); await leaveWorldAuctionChannel(roleId, sid, serverId);
RoleModel.updateRoleInfo(roleId, { quitTime: nowSeconds() }); RoleModel.updateRoleInfo(roleId, { quitTime: nowSeconds() });
if(teamCode) { // 如果有寻宝中的队伍,那么等于战败 // if(teamCode) { // 如果有寻宝中的队伍,那么等于战败
setComBtlOnUserLeave(roleId, teamCode) // setComBtlOnUserLeave(roleId, teamCode)
} // }
saveLoginAndOutLog(LOG_TYPE.LOGINOUT, session); saveLoginAndOutLog(LOG_TYPE.LOGINOUT, session);
} }
+15 -3
View File
@@ -732,7 +732,19 @@ export async function oneTeamNotInBlack(teams: ComBattleTeamType[], roleId: stri
return null; return null;
} }
export async function setComBtlOnUserLeave(roleId: string, teamCode: string) { // export async function setComBtlOnUserLeave(roleId: string, teamCode: string) {
let res = dispatch(teamCode, pinus.app.getServersByType('battle'), 'battle'); // let res = dispatch(teamCode, pinus.app.getServersByType('battle'), 'battle');
await pinus.app.rpc.battle.comBattleRemote.leaveFromBattle.toServer(res.id, roleId, teamCode); // await pinus.app.rpc.battle.comBattleRemote.leaveFromBattle.toServer(res.id, roleId, teamCode);
// }
export async function checkHasMyTeam(roleId: string) {
let battles = pinus.app.getServersByType('battle');
let hasMyTeam = false;
for(let server of battles) {
let checkResult = await pinus.app.rpc.battle.comBattleRemote.checkMyTeam.toServer(server.id, roleId);
if(checkResult) {
hasMyTeam = true; break;
}
}
return hasMyTeam;
} }
+1
View File
@@ -137,6 +137,7 @@ export const STATUS = {
COM_BATTLE_BE_KICKED: { code: 20634, simStr: '您已被队伍踢出,无法加入'}, COM_BATTLE_BE_KICKED: { code: 20634, simStr: '您已被队伍踢出,无法加入'},
COM_BATTLE_CREATE_CE_LIMIT: { code: 20635, simStr: '你的战力不足,不可设置该级别限制' }, COM_BATTLE_CREATE_CE_LIMIT: { code: 20635, simStr: '你的战力不足,不可设置该级别限制' },
COM_BATTLE_TEAM_NOT_DEFAULT: { code: 20636, simStr: '队伍已过期' }, COM_BATTLE_TEAM_NOT_DEFAULT: { code: 20636, simStr: '队伍已过期' },
COM_BATTLE_IS_RUNNING: { code: 20637, simStr: '您有队伍正在进行中' },
// 共斗藏宝图合成 // 共斗藏宝图合成
COM_BLUEPRT_QUALITY_CANNOT_COMPOSE: { code: 20650, simStr: '该品质藏宝图不可合成' }, COM_BLUEPRT_QUALITY_CANNOT_COMPOSE: { code: 20650, simStr: '该品质藏宝图不可合成' },
COM_BLUEPRT_COUNT_ERROR: { code: 20651, simStr: '材料数量不足' }, COM_BLUEPRT_COUNT_ERROR: { code: 20651, simStr: '材料数量不足' },