寻宝:先创建在匹配真人的匹配
This commit is contained in:
@@ -13,7 +13,7 @@ import { Channel, ChannelService, pinus } from 'pinus';
|
||||
import { TREASURE, EXTERIOR, FRIEND } from '../pubUtils/dicParam';
|
||||
import { getFriendLvAdd } from './friendService';
|
||||
import { getRoleIds } from '../pubUtils/friendUtil';
|
||||
import { getTeamSearchByLv, rmRoleFromQueue } from './redisService';
|
||||
import { getComTeamSidByCode, getCreatedTeamByLv, getTeamSearchByLv, rmCreatedTeamFromRedis, rmRoleFromQueue, setCreatedTeamToRedis } from './redisService';
|
||||
import { getRewardByBlueprtId, gameData, getBossHpByBlueprtId, getDicBlueprtById } from '../pubUtils/data';
|
||||
import { getZeroPointD, nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { addItems, getFriendPointObject, handleCost } from './role/rewardService';
|
||||
@@ -392,6 +392,7 @@ export async function dismissTeam(teamStatus: MemComBtlTeam, teamMap: Map<string
|
||||
let rmSt = teamMap.delete(teamCode);
|
||||
if (!rmSt) return resResult(STATUS.COM_BATTLE_DISSMISS_ERR);
|
||||
|
||||
rmCreatedTeamFromRedis(teamCode, teamStatus.lv);
|
||||
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAM_DISMISS, { teamCode });
|
||||
delTeamChannel(teamCode);
|
||||
clearComBtlTimer(teamCode, teamDisTimer); // 队伍解散停止解散计时
|
||||
@@ -533,6 +534,10 @@ export function addRoleStToTeam(comTeam: MemComBtlTeam, roleSt: RoleStatus) {
|
||||
const { roleStatus = [], roleIds = [] } = comTeam;
|
||||
comTeam.roleStatus = [roleSt, ...roleStatus];
|
||||
comTeam.roleIds = [roleSt.roleId, ...roleIds];
|
||||
|
||||
if(!validToJoin(comTeam)) { // 无人可匹配时,删除存在redis中的匹配信息
|
||||
rmCreatedTeamFromRedis(comTeam.teamCode, comTeam.lv);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -558,6 +563,31 @@ export async function addValidSearchingRoles(comTeam: MemComBtlTeam) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function addToSearchingTeams(roleId: string, sid: string, lvs: number[]) {
|
||||
let teamCodes = await getCreatedTeamByLv(lvs);
|
||||
if(teamCodes.length <= 0) return false;
|
||||
|
||||
let {lv, teamCode} = getRandSingleEelm(teamCodes);
|
||||
let battleServer = await getComTeamSidByCode(lv, teamCode);
|
||||
if(!battleServer) return false;
|
||||
|
||||
return await pinus.app.rpc.battle.comBattleRemote.addToSearchingTeams.toServer(battleServer, teamCode, roleId, sid);
|
||||
}
|
||||
|
||||
export async function _addToSearchingTeams(teamCode: string, roleId: string, sid: string) {
|
||||
let teamMap = pinus.app.get('teamMap');
|
||||
let teamStatus: MemComBtlTeam = teamMap && teamMap.get(teamCode);
|
||||
if(!teamStatus) return false;
|
||||
if(!validToJoin(teamStatus, roleId)) return false;
|
||||
const st = await getValidTeammateRoleSt(roleId, teamStatus.roleIds, teamStatus.ceLimit, sid);
|
||||
if (!st) return false;
|
||||
|
||||
addRoleStToTeam(teamStatus, st);
|
||||
await rmRoleFromQueue(roleId, sid); // 匹配成功后删除redis中该用户的匹配记录
|
||||
addUserToTeamChannel(teamCode, false, roleId, sid);
|
||||
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAM_JOIN, { teamInfo: teamStatus });
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 判断队伍是否处于可加入状态
|
||||
* @export
|
||||
@@ -613,11 +643,13 @@ export async function addRobotsToTeam(comTeam: MemComBtlTeam, roleId: string, ro
|
||||
*/
|
||||
export async function addRobotsLater(comTeam: MemComBtlTeam, roleInfo: RoleType, teamMap: Map<string, MemComBtlTeam>, teamDisTimer: Map<string, NodeJS.Timer>) {
|
||||
const teamStatus = comTeam;
|
||||
const { teamCode } = teamStatus;
|
||||
const { teamCode, lv: blueprtLv } = teamStatus;
|
||||
const { roleId, lv } = roleInfo;
|
||||
let { topLineupCe = 1000 } = roleInfo;
|
||||
|
||||
if (validToJoin(teamStatus)) {
|
||||
if (validToJoin(teamStatus)) { // 如果可以匹配
|
||||
await setCreatedTeamToRedis(teamCode, blueprtLv);
|
||||
|
||||
const robotCnt = 3 - teamStatus.roleIds.length;
|
||||
for (let robotIdx = 0; robotIdx < robotCnt; robotIdx++) {
|
||||
const joinTime = getRandValueByMinMax(COM_BTL_CONST.MIN_CAP_TIME, COM_BTL_CONST.MAX_CAP_TIME, 0);
|
||||
|
||||
Reference in New Issue
Block a user