全局修改:topFive字段
This commit is contained in:
@@ -94,7 +94,7 @@ export class ComBattleHandler {
|
|||||||
const { qualityArr, lvRange = 1 } = msg;
|
const { qualityArr, lvRange = 1 } = msg;
|
||||||
const roleInfo = await RoleModel.findByRoleId(roleId);
|
const roleInfo = await RoleModel.findByRoleId(roleId);
|
||||||
const { lv } = roleInfo;
|
const { lv } = roleInfo;
|
||||||
let { topFiveCe = 1000 } = roleInfo;
|
let { topLineupCe = 1000 } = roleInfo;
|
||||||
|
|
||||||
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);
|
||||||
@@ -103,7 +103,7 @@ export class ComBattleHandler {
|
|||||||
return resResult(STATUS.COM_BLUEPRT_QUALITY_ERROR);
|
return resResult(STATUS.COM_BLUEPRT_QUALITY_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
const teams = await ComBattleTeamModel.getOtherTeamByQualityAndSt(roleId, qualityArr, COM_TEAM_STATUS.DEFAULT, lvRange, topFiveCe);
|
const teams = await ComBattleTeamModel.getOtherTeamByQualityAndSt(roleId, qualityArr, COM_TEAM_STATUS.DEFAULT, lvRange, topLineupCe);
|
||||||
const team: ComBattleTeamType = await oneTeamNotInBlack(teams, roleId);
|
const team: ComBattleTeamType = await oneTeamNotInBlack(teams, roleId);
|
||||||
if (team && team.roleIds.length < 3 && team.status === COM_TEAM_STATUS.DEFAULT && team.roleIds.indexOf(roleId) === -1) {
|
if (team && team.roleIds.length < 3 && team.status === COM_TEAM_STATUS.DEFAULT && team.roleIds.indexOf(roleId) === -1) {
|
||||||
return resResult(STATUS.SUCCESS, {teamCode: team.teamCode});
|
return resResult(STATUS.SUCCESS, {teamCode: team.teamCode});
|
||||||
@@ -130,7 +130,7 @@ export class ComBattleHandler {
|
|||||||
addUserToChannel(channel, new ChannelUser(roleId, sid));
|
addUserToChannel(channel, new ChannelUser(roleId, sid));
|
||||||
|
|
||||||
// 创建并添加机器人
|
// 创建并添加机器人
|
||||||
await addRobotsToTeam(comTeam, roleId, topFiveCe, lv, thiz.teamMap, thiz.teamDisTimer, channel, 2);
|
await addRobotsToTeam(comTeam, roleId, topLineupCe, lv, thiz.teamMap, thiz.teamDisTimer, channel, 2);
|
||||||
|
|
||||||
await ComBattleTeamModel.createTeam(comTeam);
|
await ComBattleTeamModel.createTeam(comTeam);
|
||||||
thiz.teamMap.set(teamCode, comTeam);
|
thiz.teamMap.set(teamCode, comTeam);
|
||||||
@@ -172,14 +172,14 @@ export class ComBattleHandler {
|
|||||||
if (!teamStatus || teamStatus.status !== COM_TEAM_STATUS.DEFAULT) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
if (!teamStatus || teamStatus.status !== COM_TEAM_STATUS.DEFAULT) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
||||||
if (teamIsFullToStart(teamStatus)) return resResult(STATUS.COM_BATTLE_MEMBER_LIMIT);
|
if (teamIsFullToStart(teamStatus)) return resResult(STATUS.COM_BATTLE_MEMBER_LIMIT);
|
||||||
if (teamStatus.roleIds.indexOf(roleId) !== -1) return resResult(STATUS.COM_BATTLE_DUP_ENTER);
|
if (teamStatus.roleIds.indexOf(roleId) !== -1) return resResult(STATUS.COM_BATTLE_DUP_ENTER);
|
||||||
let { lv = 1, headHid = 19, topFiveCe = 0, sHid = 19 } = await Role.findByRoleId(roleId);
|
let { lv = 1, headHid = 19, topLineupCe = 0, sHid = 19 } = await Role.findByRoleId(roleId);
|
||||||
|
|
||||||
let { quality } = getGoodById(teamStatus.blueprtId);
|
let { quality } = getGoodById(teamStatus.blueprtId);
|
||||||
if (lv < COM_BTL_CONST.ENABLE_LV) {
|
if (lv < COM_BTL_CONST.ENABLE_LV) {
|
||||||
return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
|
return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
|
||||||
} else if (comBtlLvInvalid(lv, teamStatus.lvRange)) {
|
} else if (comBtlLvInvalid(lv, teamStatus.lvRange)) {
|
||||||
return resResult(STATUS.COM_BATTLE_ASSIST_LV_NOT_ENOUGH);
|
return resResult(STATUS.COM_BATTLE_ASSIST_LV_NOT_ENOUGH);
|
||||||
} else if (topFiveCe < teamStatus.ceLimit) {
|
} else if (topLineupCe < teamStatus.ceLimit) {
|
||||||
return resResult(STATUS.COM_BATTLE_CE_LIMIT);
|
return resResult(STATUS.COM_BATTLE_CE_LIMIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ export class ComBattleHandler {
|
|||||||
|
|
||||||
// 加入队伍
|
// 加入队伍
|
||||||
if (!validToJoin(teamStatus, roleId)) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
if (!validToJoin(teamStatus, roleId)) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
||||||
let roleStatus = new RoleStatus(roleId, roleName, false, isFrd, headHid, sHid, topFiveCe, lv);
|
let roleStatus = new RoleStatus(roleId, roleName, false, isFrd, headHid, sHid, topLineupCe, lv);
|
||||||
const team = await ComBattleTeamModel.addRole(teamCode, roleStatus);
|
const team = await ComBattleTeamModel.addRole(teamCode, roleStatus);
|
||||||
if (!team) {
|
if (!team) {
|
||||||
return resResult(STATUS.COM_BATTLE_JOIN_ERR);
|
return resResult(STATUS.COM_BATTLE_JOIN_ERR);
|
||||||
@@ -357,8 +357,8 @@ export class ComBattleHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!roleSt) return;
|
if (!roleSt) return;
|
||||||
let { topFiveCe, lv } = roleSt;
|
let { topLineupCe, lv } = roleSt;
|
||||||
await addRobotsToTeam(curTeamStatus, roleId, topFiveCe, lv, thiz.teamMap, thiz.teamDisTimer, channel, 3 - curTeamStatus.roleIds.length);
|
await addRobotsToTeam(curTeamStatus, roleId, topLineupCe, lv, thiz.teamMap, thiz.teamDisTimer, channel, 3 - curTeamStatus.roleIds.length);
|
||||||
}
|
}
|
||||||
}, COM_BTL_CONST.ASSIST_TIME);
|
}, COM_BTL_CONST.ASSIST_TIME);
|
||||||
return resResult(STATUS.SUCCESS);
|
return resResult(STATUS.SUCCESS);
|
||||||
|
|||||||
@@ -643,11 +643,11 @@ export class FriendHandler {
|
|||||||
|
|
||||||
let dbHeroes = await HeroModel.findByRole(oppoRoleId);
|
let dbHeroes = await HeroModel.findByRole(oppoRoleId);
|
||||||
let role = await RoleModel.findByRoleId(oppoRoleId, null, true);
|
let role = await RoleModel.findByRoleId(oppoRoleId, null, true);
|
||||||
let { topFive, topFiveCe, towerLv } = role;
|
let { topLineup, topLineupCe, towerLv } = role;
|
||||||
|
|
||||||
let heroes = new Array<PlayerDetailHero>();
|
let heroes = new Array<PlayerDetailHero>();
|
||||||
for(let {hid, lv, star, colorStar, quality } of dbHeroes) {
|
for(let {hid, lv, star, colorStar, quality } of dbHeroes) {
|
||||||
let hasHero = topFive.find(cur => cur.hid == hid);
|
let hasHero = topLineup.find(cur => cur.hid == hid);
|
||||||
if(hasHero) {
|
if(hasHero) {
|
||||||
heroes.push({
|
heroes.push({
|
||||||
actorId: hid, lv, star, colorStar, quality,
|
actorId: hid, lv, star, colorStar, quality,
|
||||||
@@ -657,7 +657,7 @@ export class FriendHandler {
|
|||||||
}
|
}
|
||||||
let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名
|
let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名
|
||||||
|
|
||||||
result = new PlayerDetail({...role, defCe: topFiveCe, heroes});
|
result = new PlayerDetail({...role, defCe: topLineupCe, heroes});
|
||||||
result.setWarStar(role.warStar, rank, towerLv);
|
result.setWarStar(role.warStar, rank, towerLv);
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, result);
|
return resResult(STATUS.SUCCESS, result);
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ export class RoleHandler {
|
|||||||
|
|
||||||
async getRoleInfo(msg: {targetRoleId: string}, session: BackendSession) {
|
async getRoleInfo(msg: {targetRoleId: string}, session: BackendSession) {
|
||||||
let { targetRoleId } = msg;
|
let { targetRoleId } = msg;
|
||||||
let { roleId, roleName, headHid = 1, ce = 0, topFive, topFiveCe = 0 } = await RoleModel.findByRoleId(targetRoleId);
|
let { roleId, roleName, headHid = 1, ce = 0, topLineup, topLineupCe = 0 } = await RoleModel.findByRoleId(targetRoleId);
|
||||||
return resResult(STATUS.SUCCESS, { roleId, roleName, headHid, ce, topFive, topFiveCe });
|
return resResult(STATUS.SUCCESS, { roleId, roleName, headHid, ce, topLineup, topLineupCe });
|
||||||
}
|
}
|
||||||
|
|
||||||
//爵位
|
//爵位
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export function getRandBlueprtId(qualityArr: number[], cnt = 1) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getRandComBtlRobots(topFiveCe: number, ceLimit: number, lv: number, cnt: number) {
|
export function getRandComBtlRobots(topLineupCe: number, ceLimit: number, lv: number, cnt: number) {
|
||||||
let robotHeroes = getRandRobot(cnt); // 随机几个阵容
|
let robotHeroes = getRandRobot(cnt); // 随机几个阵容
|
||||||
let robotInfos = []; // 随机几个机器人信息
|
let robotInfos = []; // 随机几个机器人信息
|
||||||
for (let i = 0; i < cnt; i++) {
|
for (let i = 0; i < cnt; i++) {
|
||||||
@@ -53,7 +53,7 @@ export function getRandComBtlRobots(topFiveCe: number, ceLimit: number, lv: numb
|
|||||||
if (ceLimit) {
|
if (ceLimit) {
|
||||||
robotCe = getRandValueByMinMax(ceLimit * COM_BTL_CONST.ROBOT_CE_LIMIT_MIN, ceLimit * COM_BTL_CONST.ROBOT_CE_LIMIT_MAX, 0);
|
robotCe = getRandValueByMinMax(ceLimit * COM_BTL_CONST.ROBOT_CE_LIMIT_MIN, ceLimit * COM_BTL_CONST.ROBOT_CE_LIMIT_MAX, 0);
|
||||||
} else {
|
} else {
|
||||||
robotCe = getRandValue(topFiveCe || 0, COM_BTL_CONST.ROBOT_CE_RATIO, 0);
|
robotCe = getRandValue(topLineupCe || 0, COM_BTL_CONST.ROBOT_CE_RATIO, 0);
|
||||||
}
|
}
|
||||||
const robotLv = getRandValue(lv, COM_BTL_CONST.ROBOT_CE_RATIO, 0);
|
const robotLv = getRandValue(lv, COM_BTL_CONST.ROBOT_CE_RATIO, 0);
|
||||||
const imgHid = robot[Math.floor(Math.random() * robot.length)];
|
const imgHid = robot[Math.floor(Math.random() * robot.length)];
|
||||||
@@ -473,8 +473,8 @@ async function teammateValid(roleInfo: Partial<RoleType>, roleId: string, roleId
|
|||||||
const isBlack = await teammateInBlackList(roleId, roleIds);
|
const isBlack = await teammateInBlackList(roleId, roleIds);
|
||||||
if(isBlack) return false;
|
if(isBlack) return false;
|
||||||
|
|
||||||
let { topFiveCe } = roleInfo;
|
let { topLineupCe } = roleInfo;
|
||||||
if (topFiveCe < ceLimit) return false;
|
if (topLineupCe < ceLimit) return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -490,12 +490,12 @@ async function teammateValid(roleInfo: Partial<RoleType>, roleId: string, roleId
|
|||||||
*/
|
*/
|
||||||
export async function getValidTeammateRoleSt(roleId: string, roleIds: string[], ceLimit: number, quality: number) {
|
export async function getValidTeammateRoleSt(roleId: string, roleIds: string[], ceLimit: number, quality: number) {
|
||||||
let roleInfo = await RoleModel.findByRoleId(roleId);
|
let roleInfo = await RoleModel.findByRoleId(roleId);
|
||||||
let { roleName, headHid = 19, sHid = 19, topFiveCe, lv } = roleInfo;
|
let { roleName, headHid = 19, sHid = 19, topLineupCe, lv } = roleInfo;
|
||||||
const valid = await teammateValid(roleInfo, roleId, roleIds, ceLimit);
|
const valid = await teammateValid(roleInfo, roleId, roleIds, ceLimit);
|
||||||
if (!valid) return null;
|
if (!valid) return null;
|
||||||
|
|
||||||
let isFrd = await getFrd(roleId, quality);
|
let isFrd = await getFrd(roleId, quality);
|
||||||
const result = new RoleStatus(roleId, roleName, false, isFrd, headHid, sHid, topFiveCe, lv);
|
const result = new RoleStatus(roleId, roleName, false, isFrd, headHid, sHid, topLineupCe, lv);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -574,8 +574,8 @@ export async function hasEnoughBlueprt(roleId: string, blueprtId: number) {
|
|||||||
*/
|
*/
|
||||||
export function addRoleToTeam(comTeam: MemComBtlTeam, roleInfo: RoleType, isCap: boolean, isFrd: boolean) {
|
export function addRoleToTeam(comTeam: MemComBtlTeam, roleInfo: RoleType, isCap: boolean, isFrd: boolean) {
|
||||||
const { roleId, roleName, headHid = 19, sHid = 19, lv } = roleInfo;
|
const { roleId, roleName, headHid = 19, sHid = 19, lv } = roleInfo;
|
||||||
let { topFiveCe = 1000 } = roleInfo;
|
let { topLineupCe = 1000 } = roleInfo;
|
||||||
const roleSt = new RoleStatus(roleId, roleName, isCap, isFrd, headHid, sHid, topFiveCe, lv);
|
const roleSt = new RoleStatus(roleId, roleName, isCap, isFrd, headHid, sHid, topLineupCe, lv);
|
||||||
addRoleStToTeam(comTeam, roleSt);
|
addRoleStToTeam(comTeam, roleSt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -670,7 +670,7 @@ export async function addRobotsLater(comTeam: MemComBtlTeam, roleInfo: RoleType,
|
|||||||
const teamStatus = comTeam;
|
const teamStatus = comTeam;
|
||||||
const { teamCode } = teamStatus;
|
const { teamCode } = teamStatus;
|
||||||
const { roleId, lv } = roleInfo;
|
const { roleId, lv } = roleInfo;
|
||||||
let { topFiveCe = 1000 } = roleInfo;
|
let { topLineupCe = 1000 } = roleInfo;
|
||||||
|
|
||||||
if (validToJoin(teamStatus)) {
|
if (validToJoin(teamStatus)) {
|
||||||
const robotCnt = 3 - teamStatus.roleIds.length;
|
const robotCnt = 3 - teamStatus.roleIds.length;
|
||||||
@@ -679,7 +679,7 @@ export async function addRobotsLater(comTeam: MemComBtlTeam, roleInfo: RoleType,
|
|||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
const curTeamStatus = teamMap.get(teamCode);
|
const curTeamStatus = teamMap.get(teamCode);
|
||||||
if (validToJoin(curTeamStatus)) {
|
if (validToJoin(curTeamStatus)) {
|
||||||
await addRobotsToTeam(curTeamStatus, roleId, topFiveCe, lv, teamMap, teamDisTimer, channel, 1);
|
await addRobotsToTeam(curTeamStatus, roleId, topLineupCe, lv, teamMap, teamDisTimer, channel, 1);
|
||||||
}
|
}
|
||||||
}, joinTime);
|
}, joinTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,17 +12,17 @@ import { defaultHeroes } from './pvpService';
|
|||||||
|
|
||||||
//修改并下发战力
|
//修改并下发战力
|
||||||
export async function calPlayerCeAndSave(sid: string, roleId: string, heros: Array<HeroType>, type?: number, args?: Array<number>) {
|
export async function calPlayerCeAndSave(sid: string, roleId: string, heros: Array<HeroType>, type?: number, args?: Array<number>) {
|
||||||
let {role, pushHeros, topFiveCe} = await pubCalPlayerCeAndSave(roleId, heros, type, args);
|
let {role, pushHeros, topLineupCe} = await pubCalPlayerCeAndSave(roleId, heros, type, args);
|
||||||
//下发战力
|
//下发战力
|
||||||
let uids = [{ uid: roleId, sid }];
|
let uids = [{ uid: roleId, sid }];
|
||||||
pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, { ce: reduceCe(role.ce) , heros: pushHeros, topFiveCe: reduceCe(topFiveCe) }), uids);
|
pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, { ce: reduceCe(role.ce) , heros: pushHeros, topLineupCe: reduceCe(topLineupCe) }), uids);
|
||||||
defaultHeroes(role);
|
defaultHeroes(role);
|
||||||
return heros;
|
return heros;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function calAllHeroCe(sid: string, roleId: string, type?:number, args?:Array<number>) {
|
export async function calAllHeroCe(sid: string, roleId: string, type?:number, args?:Array<number>) {
|
||||||
let {ce, pushHeros, topFiveCe }= await reCalAllHeroCe(roleId, type, args);
|
let {ce, pushHeros, topLineupCe }= await reCalAllHeroCe(roleId, type, args);
|
||||||
let uids = [{ uid: roleId, sid }];
|
let uids = [{ uid: roleId, sid }];
|
||||||
pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, { ce: reduceCe(ce), heros: pushHeros, topFiveCe: reduceCe(topFiveCe) }), uids);
|
pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, { ce: reduceCe(ce), heros: pushHeros, topLineupCe: reduceCe(topLineupCe) }), uids);
|
||||||
return {ce: reduceCe(ce)};
|
return {ce: reduceCe(ce)};
|
||||||
}
|
}
|
||||||
@@ -26,7 +26,7 @@ export async function initPvpInfo(role: RoleType) {
|
|||||||
//初始化最强5人阵容
|
//初始化最强5人阵容
|
||||||
for (let i = PVP_HERO_POS.START; i <= PVP_HERO_POS.END; i++) {
|
for (let i = PVP_HERO_POS.START; i <= PVP_HERO_POS.END; i++) {
|
||||||
let index = i - PVP_HERO_POS.START;
|
let index = i - PVP_HERO_POS.START;
|
||||||
let item = role.topFive[index];
|
let item = role.topLineup[index];
|
||||||
heroes.push({
|
heroes.push({
|
||||||
actorId: item?.hid||0,
|
actorId: item?.hid||0,
|
||||||
hero: item?.hero||null,
|
hero: item?.hero||null,
|
||||||
@@ -39,7 +39,7 @@ export async function initPvpInfo(role: RoleType) {
|
|||||||
let oppPlayers: Array<OppPlayers> = await refreshEnemies(role, 0, 1);
|
let oppPlayers: Array<OppPlayers> = await refreshEnemies(role, 0, 1);
|
||||||
let {seasonNum} = await SystemConfigModel.findSystemConfig();
|
let {seasonNum} = await SystemConfigModel.findSystemConfig();
|
||||||
let challengeCnt = PVP.PVP_CHALLENGE_COUNTS;
|
let challengeCnt = PVP.PVP_CHALLENGE_COUNTS;
|
||||||
let result = await PvpDefenseModel.createPvpDefense({ roleId: role.roleId, roleName: role.roleName, role: role._id, heroes, oppPlayers, defCe: role.topFiveCe, seasonNum, challengeCnt });
|
let result = await PvpDefenseModel.createPvpDefense({ roleId: role.roleId, roleName: role.roleName, role: role._id, heroes, oppPlayers, defCe: role.topLineupCe, seasonNum, challengeCnt });
|
||||||
|
|
||||||
//加入排行榜
|
//加入排行榜
|
||||||
let { roleId, roleName, lv, vLv, headHid, sHid, title } = role;
|
let { roleId, roleName, lv, vLv, headHid, sHid, title } = role;
|
||||||
@@ -236,7 +236,7 @@ async function generPlayerOppHis(pvpdefense: PvpDefenseType, mapWarJson: DicWarJ
|
|||||||
async function matchRobot(oppPlayers: OppPlayers[], mapWarJson: DicWarJson[], role: RoleType, pLv: number, dicOpp: DicPvpOpponent) {
|
async function matchRobot(oppPlayers: OppPlayers[], mapWarJson: DicWarJson[], role: RoleType, pLv: number, dicOpp: DicPvpOpponent) {
|
||||||
console.log('matchRobot', JSON.stringify(oppPlayers))
|
console.log('matchRobot', JSON.stringify(oppPlayers))
|
||||||
|
|
||||||
let { lv: myLv, topFiveCe: myCe, roleId } = role;
|
let { lv: myLv, topLineupCe: myCe, roleId } = role;
|
||||||
let { id: pos, minLv, maxLv, ratio } = dicOpp;
|
let { id: pos, minLv, maxLv, ratio } = dicOpp;
|
||||||
let range = gameData.pvpWar;
|
let range = gameData.pvpWar;
|
||||||
if(range.length <= 0) return false;
|
if(range.length <= 0) return false;
|
||||||
@@ -324,31 +324,31 @@ export async function defaultHeroes ( role:RoleType, challengeCnt?:number, chall
|
|||||||
if (!isUpdate && !isDefaultHero) {
|
if (!isUpdate && !isDefaultHero) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let orders = [1, 2, 3, 4, 5];
|
let orders = [1, 2, 3, 4, 5, 6];
|
||||||
role.topFive.sort(function(a, b) {
|
role.topLineup.sort(function(a, b) {
|
||||||
return b.ce - a.ce;
|
return b.ce - a.ce;
|
||||||
});
|
});
|
||||||
heroes.sort(function(a, b) {
|
heroes.sort(function(a, b) {
|
||||||
return b.ce - b.dataId - a.ce + a.dataId;
|
return b.ce - b.dataId - a.ce + a.dataId;
|
||||||
});
|
});
|
||||||
for (let hero of heroes) {
|
for (let hero of heroes) {
|
||||||
if (!!hero.order&& !!hero.hero && findIndex(role.topFive, {hid: hero.actorId}) != -1) {
|
if (!!hero.order&& !!hero.hero && findIndex(role.topLineup, {hid: hero.actorId}) != -1) {
|
||||||
let index = orders.indexOf(hero.order);
|
let index = orders.indexOf(hero.order);
|
||||||
orders.splice(index, 1);
|
orders.splice(index, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let defCe = 0;
|
let defCe = 0;
|
||||||
let num = 0;
|
let num = 0;
|
||||||
for (let i = 0; i < role.topFive.length; i++) {
|
for (let i = 0; i < role.topLineup.length; i++) {
|
||||||
let item = role.topFive[i];
|
let item = role.topLineup[i];
|
||||||
let index = findIndex(heroes, {actorId: item.hid});
|
let index = findIndex(heroes, {actorId: item.hid});
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
for (let j = num; j < heroes.length; j++) {
|
for (let j = num; j < heroes.length; j++) {
|
||||||
let hero = heroes[j];
|
let hero = heroes[j];
|
||||||
if (num >= 5) {
|
if (num >= 6) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!!findWhere(role.topFive, {hid: hero.actorId})) {
|
if (!!findWhere(role.topLineup, {hid: hero.actorId})) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!orders[0]) {
|
if (!orders[0]) {
|
||||||
@@ -579,7 +579,7 @@ export async function generMyRecInfo(heroScores: HeroScores[], winStreakNum: num
|
|||||||
sHid: role.sHid,
|
sHid: role.sHid,
|
||||||
headHid: role.headHid,
|
headHid: role.headHid,
|
||||||
title: role.title,
|
title: role.title,
|
||||||
ce: reduceCe(role.topFiveCe),
|
ce: reduceCe(role.topLineupCe),
|
||||||
heroes: myHeroRecords,
|
heroes: myHeroRecords,
|
||||||
isSuccess,
|
isSuccess,
|
||||||
score: isSuccess ? addSumScore : 0
|
score: isSuccess ? addSumScore : 0
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
'required uInt32 ce': 1,
|
'required uInt32 ce': 1,
|
||||||
'repeated Hero heros': 2,
|
'repeated Hero heros': 2,
|
||||||
'required uInt32 topFiveCe': 3
|
'required uInt32 topLineupCe': 3
|
||||||
},
|
},
|
||||||
'required string msg': 1,
|
'required string msg': 1,
|
||||||
'required uInt32 code': 2,
|
'required uInt32 code': 2,
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ describe('寻宝创建队伍', function() {
|
|||||||
expect(res.data.teamCode).to.be.a('string');
|
expect(res.data.teamCode).to.be.a('string');
|
||||||
expect(res.data.roleStatus).to.be.an('array');
|
expect(res.data.roleStatus).to.be.an('array');
|
||||||
res.data.roleStatus.forEach(roleSt => {
|
res.data.roleStatus.forEach(roleSt => {
|
||||||
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topFiveCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topLineupCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
||||||
});
|
});
|
||||||
pinusClientT.request('battle.comBattleHandler.searchTeam', searchTeamParms, (searchRes) => {
|
pinusClientT.request('battle.comBattleHandler.searchTeam', searchTeamParms, (searchRes) => {
|
||||||
console.log('searchRes:', searchRes);
|
console.log('searchRes:', searchRes);
|
||||||
@@ -114,7 +114,7 @@ describe('寻宝创建队伍', function() {
|
|||||||
expect(res.data.teamCode).to.be.a('string');
|
expect(res.data.teamCode).to.be.a('string');
|
||||||
expect(res.data.roleStatus).to.be.an('array');
|
expect(res.data.roleStatus).to.be.an('array');
|
||||||
res.data.roleStatus.forEach(roleSt => {
|
res.data.roleStatus.forEach(roleSt => {
|
||||||
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topFiveCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topLineupCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
||||||
});
|
});
|
||||||
const roleIds = res.data.roleStatus.map(roleSt => { return roleSt.roleId });
|
const roleIds = res.data.roleStatus.map(roleSt => { return roleSt.roleId });
|
||||||
if (roleIds.indexOf(roleInfoT.roleId) === -1) {
|
if (roleIds.indexOf(roleInfoT.roleId) === -1) {
|
||||||
@@ -136,7 +136,7 @@ describe('寻宝创建队伍', function() {
|
|||||||
expect(res.data.teamCode).to.be.a('string');
|
expect(res.data.teamCode).to.be.a('string');
|
||||||
expect(res.data.roleStatus).to.be.an('array');
|
expect(res.data.roleStatus).to.be.an('array');
|
||||||
res.data.roleStatus.forEach(roleSt => {
|
res.data.roleStatus.forEach(roleSt => {
|
||||||
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topFiveCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topLineupCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
|
||||||
});
|
});
|
||||||
pinusClient.request('battle.comBattleHandler.dismiss', {teamCode: res.data.teamCode}, (dismissRes) => {
|
pinusClient.request('battle.comBattleHandler.dismiss', {teamCode: res.data.teamCode}, (dismissRes) => {
|
||||||
expect(dismissRes).to.be.an('object');
|
expect(dismissRes).to.be.an('object');
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import { STATUS, HERO_SYSTEM_TYPE } from '@consts';
|
|||||||
import { ITID, COUNTER } from '@consts';
|
import { ITID, COUNTER } from '@consts';
|
||||||
import { ItemModel } from '@db/Item';
|
import { ItemModel } from '@db/Item';
|
||||||
import { gameData, getHeroExpByLv } from '@pubUtils/data';
|
import { gameData, getHeroExpByLv } from '@pubUtils/data';
|
||||||
import { calPlayerCeAndSave, calculateTopFive, calEquipSeids } from '@pubUtils/playerCe';
|
import { calPlayerCeAndSave, calculatetopLineup, calEquipSeids } from '@pubUtils/playerCe';
|
||||||
import { SchoolModel } from '@db/School';
|
import { SchoolModel } from '@db/School';
|
||||||
import { CeAttrNumber } from '@domain/roleField/attribute';
|
import { CeAttrNumber } from '@domain/roleField/attribute';
|
||||||
import { smsModel } from '@db/Sms';
|
import { smsModel } from '@db/Sms';
|
||||||
@@ -517,9 +517,9 @@ export default class GMUsers extends Service {
|
|||||||
if (!hero) continue;
|
if (!hero) continue;
|
||||||
await HeroModel.deleteHero(roleId, hid);
|
await HeroModel.deleteHero(roleId, hid);
|
||||||
let role = await RoleModel.findByRoleId(roleId);
|
let role = await RoleModel.findByRoleId(roleId);
|
||||||
await calculateTopFive(role, hid, 0, null);
|
await calculatetopLineup(role, hid, 0, null);
|
||||||
await PvpDefenseModel.deleteHero(roleId, hid);
|
await PvpDefenseModel.deleteHero(roleId, hid);
|
||||||
await RoleModel.updateRoleInfo(roleId, { topFive: role.topFive, topFiveCe: role.topFiveCe, ce: role.ce - hero.ce });
|
await RoleModel.updateRoleInfo(roleId, { topLineup: role.topLineup, topLineupCe: role.topLineupCe, ce: role.ce - hero.ce });
|
||||||
}
|
}
|
||||||
|
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
export enum ROLE_SELECT {
|
export enum ROLE_SELECT {
|
||||||
// 初始登录数据
|
// 初始登录数据
|
||||||
ENTRY = 'serverId userInfo.uid userInfo.tel userInfo.serverType ce topFiveCe teraphs roleId roleName tili lv exp gold coin vLv title hasGuild funcs eventStatus',
|
ENTRY = 'serverId userInfo.uid userInfo.tel userInfo.serverType ce topLineupCe teraphs roleId roleName tili lv exp gold coin vLv title hasGuild funcs eventStatus',
|
||||||
// 玩家列表显示基础数据
|
// 玩家列表显示基础数据
|
||||||
SHOW_SIMPLE = 'roleId roleName ce headHid sHid lv title job quitTime vLv guildName serverId userInfo.serverType',
|
SHOW_SIMPLE = 'roleId roleName ce headHid sHid lv title job quitTime vLv guildName serverId userInfo.serverType',
|
||||||
// 显示申请需要的信息
|
// 显示申请需要的信息
|
||||||
@@ -11,7 +11,7 @@ export enum ROLE_SELECT {
|
|||||||
GET_LV = 'lv',
|
GET_LV = 'lv',
|
||||||
GET_ROLE_ID = 'roleId',
|
GET_ROLE_ID = 'roleId',
|
||||||
GET_MY_SERVER = 'lv serverId userInfo.serverType',
|
GET_MY_SERVER = 'lv serverId userInfo.serverType',
|
||||||
COM_BATTLE = 'lv headHid sHid topFiveCe'
|
COM_BATTLE = 'lv headHid sHid topLineupCe'
|
||||||
};
|
};
|
||||||
|
|
||||||
export enum HERO_SELECT {
|
export enum HERO_SELECT {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export class RoleStatus {
|
|||||||
sHid: number;
|
sHid: number;
|
||||||
// 前五战力
|
// 前五战力
|
||||||
@prop({ required: true, default: 0 })
|
@prop({ required: true, default: 0 })
|
||||||
topFiveCe: number;
|
topLineupCe: number;
|
||||||
// 主公等级
|
// 主公等级
|
||||||
@prop({ required: true, default: 1 })
|
@prop({ required: true, default: 1 })
|
||||||
lv: number;
|
lv: number;
|
||||||
@@ -50,7 +50,7 @@ export class RoleStatus {
|
|||||||
@prop({ required: true, default: 0 })
|
@prop({ required: true, default: 0 })
|
||||||
frdRatio: number = 0;
|
frdRatio: number = 0;
|
||||||
|
|
||||||
constructor(roleId: string, roleName: string, isCap: boolean, isFrd: boolean, headHid: number, sHid: number, topFiveCe: number, lv: number, heroes = [], isRobot = false) {
|
constructor(roleId: string, roleName: string, isCap: boolean, isFrd: boolean, headHid: number, sHid: number, topLineupCe: number, lv: number, heroes = [], isRobot = false) {
|
||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
this.roleName = roleName;
|
this.roleName = roleName;
|
||||||
this.isCap = isCap;
|
this.isCap = isCap;
|
||||||
@@ -58,7 +58,7 @@ export class RoleStatus {
|
|||||||
this.isFrd = isFrd;
|
this.isFrd = isFrd;
|
||||||
this.headHid = headHid;
|
this.headHid = headHid;
|
||||||
this.sHid = sHid;
|
this.sHid = sHid;
|
||||||
this.topFiveCe = topFiveCe;
|
this.topLineupCe = topLineupCe;
|
||||||
this.lv = lv;
|
this.lv = lv;
|
||||||
this.heroes = heroes;
|
this.heroes = heroes;
|
||||||
this.killed = [];
|
this.killed = [];
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export default class PvpDefense extends BaseModel {
|
|||||||
|
|
||||||
public static async findByScale(roleId: string, min: number, max: number) {
|
public static async findByScale(roleId: string, min: number, max: number) {
|
||||||
const result: PvpDefenseType[] = await PvpDefenseModel.find({ roleId: { $ne: roleId }, defCe: { $lte: max, $gte: min } })
|
const result: PvpDefenseType[] = await PvpDefenseModel.find({ roleId: { $ne: roleId }, defCe: { $lte: max, $gte: min } })
|
||||||
.populate('role', 'headHid sHid topFiveCe roleId roleName lv globalCeAttr')
|
.populate('role', 'headHid sHid topLineupCe roleId roleName lv globalCeAttr')
|
||||||
.populate('heroes.hero')
|
.populate('heroes.hero')
|
||||||
.sort({ updatedAt: -1 }).limit(100).lean({ getters: true });
|
.sort({ updatedAt: -1 }).limit(100).lean({ getters: true });
|
||||||
return result;
|
return result;
|
||||||
@@ -151,7 +151,7 @@ export default class PvpDefense extends BaseModel {
|
|||||||
|
|
||||||
public static async findByRoleIdIncludeAll(roleId: string) {
|
public static async findByRoleIdIncludeAll(roleId: string) {
|
||||||
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId })
|
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId })
|
||||||
.populate('role', 'headHid sHid topFiveCe roleId roleName lv globalCeAttr')
|
.populate('role', 'headHid sHid topLineupCe roleId roleName lv globalCeAttr')
|
||||||
.populate('heroes.hero')
|
.populate('heroes.hero')
|
||||||
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName headHid sHid rankLv title lv pLv defCe heroes').lean({ getters: true });
|
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName headHid sHid rankLv title lv pLv defCe heroes').lean({ getters: true });
|
||||||
return result;
|
return result;
|
||||||
@@ -159,7 +159,7 @@ export default class PvpDefense extends BaseModel {
|
|||||||
|
|
||||||
public static async findByTeamLv(min: number, max: number) {
|
public static async findByTeamLv(min: number, max: number) {
|
||||||
const result: PvpDefenseType[] = await PvpDefenseModel.find({ pLv: { $gte: min, $lte: max } })
|
const result: PvpDefenseType[] = await PvpDefenseModel.find({ pLv: { $gte: min, $lte: max } })
|
||||||
.populate('role', 'headHid sHid topFiveCe roleId roleName lv globalCeAttr')
|
.populate('role', 'headHid sHid topLineupCe roleId roleName lv globalCeAttr')
|
||||||
.populate('heroes.hero')
|
.populate('heroes.hero')
|
||||||
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName headHid sHid rankLv pLv title lv defCe heroes')
|
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName headHid sHid rankLv pLv title lv defCe heroes')
|
||||||
.lean({ getters: true });
|
.lean({ getters: true });
|
||||||
@@ -169,7 +169,7 @@ export default class PvpDefense extends BaseModel {
|
|||||||
public static async updateInfoAndInclude(roleId: string, update: pvpUpdateInter) {
|
public static async updateInfoAndInclude(roleId: string, update: pvpUpdateInter) {
|
||||||
delete update._id;
|
delete update._id;
|
||||||
let result: PvpDefenseType = await PvpDefenseModel.findOneAndUpdate({roleId}, {$set:update}, {new: true})
|
let result: PvpDefenseType = await PvpDefenseModel.findOneAndUpdate({roleId}, {$set:update}, {new: true})
|
||||||
.populate('role', 'headHid sHid topFiveCe roleId roleName lv')
|
.populate('role', 'headHid sHid topLineupCe roleId roleName lv')
|
||||||
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName headHid sHid rankLv pLv title lv defCe heroes').lean({ getters: true });
|
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName headHid sHid rankLv pLv title lv defCe heroes').lean({ getters: true });
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,9 +117,9 @@ export default class Role extends BaseModel {
|
|||||||
@prop({ required: true, default: new CeAttrRole(), _id: false })
|
@prop({ required: true, default: new CeAttrRole(), _id: false })
|
||||||
globalCeAttr: CeAttrRole; // 总战力
|
globalCeAttr: CeAttrRole; // 总战力
|
||||||
@prop({ required: true, default: 0, set: (val: number) => val, get: (val: number) => reduceCe(val) })
|
@prop({ required: true, default: 0, set: (val: number) => val, get: (val: number) => reduceCe(val) })
|
||||||
topFiveCe: number; // 最强5人战力
|
topLineupCe: number; // 最强x人战力
|
||||||
@prop({ required: true, type: TopHero, default: [], _id: false })
|
@prop({ required: true, type: TopHero, default: [], _id: false })
|
||||||
topFive: Array<TopHero>; // 总战力
|
topLineup: Array<TopHero>; // 总战力
|
||||||
@prop({ required: true, default: 100 })
|
@prop({ required: true, default: 100 })
|
||||||
tili: number; // 体力值
|
tili: number; // 体力值
|
||||||
|
|
||||||
|
|||||||
@@ -323,9 +323,9 @@ export function getFuncsSwitch(id:number) {
|
|||||||
|
|
||||||
export function getPLvByScore(score: number) {
|
export function getPLvByScore(score: number) {
|
||||||
let lv = 0;
|
let lv = 0;
|
||||||
for(let {teamLv, topFiveMin, topFiveMax} of gameData.pvpTeamLevel) {
|
for(let {teamLv, topLineupMin, topLineupMax} of gameData.pvpTeamLevel) {
|
||||||
if(score >= topFiveMin) lv = teamLv;
|
if(score >= topLineupMin) lv = teamLv;
|
||||||
if(score < topFiveMax) break;
|
if(score < topLineupMax) break;
|
||||||
}
|
}
|
||||||
return lv;
|
return lv;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ export interface DicPvpTeamLevel {
|
|||||||
// 队伍等级
|
// 队伍等级
|
||||||
readonly teamLv: number;
|
readonly teamLv: number;
|
||||||
// 最高五人军功和下限
|
// 最高五人军功和下限
|
||||||
readonly topFiveMin: number;
|
readonly topLineupMin: number;
|
||||||
// 最高五人军功和上限
|
// 最高五人军功和上限
|
||||||
readonly topFiveMax: number;
|
readonly topLineupMax: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
const str = readJsonFile(FILENAME.DIC_PVP_TEAM_LEVEL);
|
const str = readJsonFile(FILENAME.DIC_PVP_TEAM_LEVEL);
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ export async function calPlayerCeAndSave(roleId: string, heros: Array<HeroType>,
|
|||||||
let incHeroCe = calPlayerCe(role.globalCeAttr, hero, type, args);
|
let incHeroCe = calPlayerCe(role.globalCeAttr, hero, type, args);
|
||||||
|
|
||||||
incPlayerCe += incHeroCe;
|
incPlayerCe += incHeroCe;
|
||||||
await calculateTopFive(role, hero.hid, hero.ce, hero._id); // 计算更新最强五人战力
|
await calculatetopLineup(role, hero.hid, hero.ce, hero._id); // 计算更新最强五人战力
|
||||||
await HeroModel.updateHeroInfo(roleId, hero.hid, hero);
|
await HeroModel.updateHeroInfo(roleId, hero.hid, hero);
|
||||||
await PvpDefenseModel.updateCe(roleId, hero.hid, hero.ce); // 更新pvp防守阵战力
|
await PvpDefenseModel.updateCe(roleId, hero.hid, hero.ce); // 更新pvp防守阵战力
|
||||||
pushHeros.push({
|
pushHeros.push({
|
||||||
@@ -118,49 +118,49 @@ export async function calPlayerCeAndSave(roleId: string, heros: Array<HeroType>,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
role.ce += incPlayerCe;
|
role.ce += incPlayerCe;
|
||||||
let { topFive, topFiveCe } = role;
|
let { topLineup, topLineupCe } = role;
|
||||||
await RoleModel.updateRoleInfo(roleId, { globalCeAttr: role.globalCeAttr, ce: role.ce, topFive, topFiveCe });
|
await RoleModel.updateRoleInfo(roleId, { globalCeAttr: role.globalCeAttr, ce: role.ce, topLineup, topLineupCe });
|
||||||
await GuildModel.updateCe(roleId, incPlayerCe);
|
await GuildModel.updateCe(roleId, incPlayerCe);
|
||||||
return { pushHeros, role, topFiveCe }
|
return { pushHeros, role, topLineupCe }
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function calculateTopFive(role: RoleType, hid: number, ce: number, heroId: string) {
|
export async function calculatetopLineup(role: RoleType, hid: number, ce: number, heroId: string) {
|
||||||
let topFive = role?.topFive || new Array();
|
let topLineup = role?.topLineup || new Array();
|
||||||
|
|
||||||
topFive.sort((a, b) => { return b.ce - a.ce }); // 0-6,最大-最小
|
topLineup.sort((a, b) => { return b.ce - a.ce }); // 0-6,最大-最小
|
||||||
let index = topFive.findIndex(cur => cur.hid == hid);
|
let index = topLineup.findIndex(cur => cur.hid == hid);
|
||||||
if(index != -1 && !heroId) {
|
if(index != -1 && !heroId) {
|
||||||
let heroes = await HeroModel.getTopHero(role.roleId, 6);
|
let heroes = await HeroModel.getTopHero(role.roleId, 6);
|
||||||
topFive = heroes.map(cur => { return { hid: cur.hid, ce: cur.ce, hero: cur._id } });
|
topLineup = heroes.map(cur => { return { hid: cur.hid, ce: cur.ce, hero: cur._id } });
|
||||||
} else {
|
} else {
|
||||||
if (index == -1) { // 不在最强列表
|
if (index == -1) { // 不在最强列表
|
||||||
if (topFive.length < 6) { // 不满6人
|
if (topLineup.length < 6) { // 不满6人
|
||||||
topFive.push({ hid, ce, hero: heroId });
|
topLineup.push({ hid, ce, hero: heroId });
|
||||||
} else if (topFive.length == 6) {
|
} else if (topLineup.length == 6) {
|
||||||
if (ce > topFive[topFive.length - 1].ce) { // 跻身最强6人
|
if (ce > topLineup[topLineup.length - 1].ce) { // 跻身最强6人
|
||||||
topFive.pop();
|
topLineup.pop();
|
||||||
topFive.push({ hid, ce, hero: heroId });
|
topLineup.push({ hid, ce, hero: heroId });
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
topFive.splice(6, topFive.length - 6);
|
topLineup.splice(6, topLineup.length - 6);
|
||||||
}
|
}
|
||||||
} else { // 原来就是最强6人
|
} else { // 原来就是最强6人
|
||||||
if (ce < topFive[topFive.length - 1].ce) { // 滑出最强
|
if (ce < topLineup[topLineup.length - 1].ce) { // 滑出最强
|
||||||
let heroes = await HeroModel.getTopHero(role.roleId, 6);
|
let heroes = await HeroModel.getTopHero(role.roleId, 6);
|
||||||
topFive = heroes.map(cur => { return { hid: cur.hid, ce: cur.ce, hero: cur._id } });
|
topLineup = heroes.map(cur => { return { hid: cur.hid, ce: cur.ce, hero: cur._id } });
|
||||||
} else {
|
} else {
|
||||||
topFive[index].ce = ce;
|
topLineup[index].ce = ce;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let topFiveCe = topFive.reduce((pre, cur) => {
|
let topLineupCe = topLineup.reduce((pre, cur) => {
|
||||||
return pre + cur.ce
|
return pre + cur.ce
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
role.topFive = topFive;
|
role.topLineup = topLineup;
|
||||||
role.topFiveCe = topFiveCe;
|
role.topLineupCe = topLineupCe;
|
||||||
return role;
|
return role;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -706,7 +706,7 @@ export async function reCalAllHeroCe(roleId: string, type: number, args: Array<n
|
|||||||
await HeroModel.updateHeroInfo(roleId, hero.hid, { ce: hero.ce });
|
await HeroModel.updateHeroInfo(roleId, hero.hid, { ce: hero.ce });
|
||||||
}
|
}
|
||||||
role = await RoleModel.updateRoleInfo(roleId, { globalCeAttr: role.globalCeAttr, ce: role.ce });
|
role = await RoleModel.updateRoleInfo(roleId, { globalCeAttr: role.globalCeAttr, ce: role.ce });
|
||||||
return { pushHeros, ce: role.ce, topFiveCe: role.topFiveCe }
|
return { pushHeros, ce: role.ce, topLineupCe: role.topLineupCe }
|
||||||
}
|
}
|
||||||
|
|
||||||
function calHeroAddSkin(args: Array<number>, ceAttr: CeAttrRole) {
|
function calHeroAddSkin(args: Array<number>, ceAttr: CeAttrRole) {
|
||||||
|
|||||||
@@ -2,421 +2,421 @@
|
|||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"teamLv": 1,
|
"teamLv": 1,
|
||||||
"topFiveMin": 0,
|
"topLineupMin": 0,
|
||||||
"topFiveMax": 500
|
"topLineupMax": 500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"teamLv": 2,
|
"teamLv": 2,
|
||||||
"topFiveMin": 501,
|
"topLineupMin": 501,
|
||||||
"topFiveMax": 1020
|
"topLineupMax": 1020
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"teamLv": 3,
|
"teamLv": 3,
|
||||||
"topFiveMin": 1021,
|
"topLineupMin": 1021,
|
||||||
"topFiveMax": 1560
|
"topLineupMax": 1560
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"teamLv": 4,
|
"teamLv": 4,
|
||||||
"topFiveMin": 1561,
|
"topLineupMin": 1561,
|
||||||
"topFiveMax": 2120
|
"topLineupMax": 2120
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
"teamLv": 5,
|
"teamLv": 5,
|
||||||
"topFiveMin": 2121,
|
"topLineupMin": 2121,
|
||||||
"topFiveMax": 2700
|
"topLineupMax": 2700
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
"id": 6,
|
||||||
"teamLv": 6,
|
"teamLv": 6,
|
||||||
"topFiveMin": 2701,
|
"topLineupMin": 2701,
|
||||||
"topFiveMax": 3300
|
"topLineupMax": 3300
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 7,
|
"id": 7,
|
||||||
"teamLv": 7,
|
"teamLv": 7,
|
||||||
"topFiveMin": 3301,
|
"topLineupMin": 3301,
|
||||||
"topFiveMax": 3920
|
"topLineupMax": 3920
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 8,
|
"id": 8,
|
||||||
"teamLv": 8,
|
"teamLv": 8,
|
||||||
"topFiveMin": 3921,
|
"topLineupMin": 3921,
|
||||||
"topFiveMax": 4560
|
"topLineupMax": 4560
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
"id": 9,
|
||||||
"teamLv": 9,
|
"teamLv": 9,
|
||||||
"topFiveMin": 4561,
|
"topLineupMin": 4561,
|
||||||
"topFiveMax": 5220
|
"topLineupMax": 5220
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 10,
|
"id": 10,
|
||||||
"teamLv": 10,
|
"teamLv": 10,
|
||||||
"topFiveMin": 5221,
|
"topLineupMin": 5221,
|
||||||
"topFiveMax": 5900
|
"topLineupMax": 5900
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 11,
|
"id": 11,
|
||||||
"teamLv": 11,
|
"teamLv": 11,
|
||||||
"topFiveMin": 5901,
|
"topLineupMin": 5901,
|
||||||
"topFiveMax": 6600
|
"topLineupMax": 6600
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 12,
|
"id": 12,
|
||||||
"teamLv": 12,
|
"teamLv": 12,
|
||||||
"topFiveMin": 6601,
|
"topLineupMin": 6601,
|
||||||
"topFiveMax": 7320
|
"topLineupMax": 7320
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 13,
|
"id": 13,
|
||||||
"teamLv": 13,
|
"teamLv": 13,
|
||||||
"topFiveMin": 7321,
|
"topLineupMin": 7321,
|
||||||
"topFiveMax": 8060
|
"topLineupMax": 8060
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 14,
|
"id": 14,
|
||||||
"teamLv": 14,
|
"teamLv": 14,
|
||||||
"topFiveMin": 8061,
|
"topLineupMin": 8061,
|
||||||
"topFiveMax": 8820
|
"topLineupMax": 8820
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
"id": 15,
|
||||||
"teamLv": 15,
|
"teamLv": 15,
|
||||||
"topFiveMin": 8821,
|
"topLineupMin": 8821,
|
||||||
"topFiveMax": 9600
|
"topLineupMax": 9600
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 16,
|
"id": 16,
|
||||||
"teamLv": 16,
|
"teamLv": 16,
|
||||||
"topFiveMin": 9601,
|
"topLineupMin": 9601,
|
||||||
"topFiveMax": 10400
|
"topLineupMax": 10400
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 17,
|
"id": 17,
|
||||||
"teamLv": 17,
|
"teamLv": 17,
|
||||||
"topFiveMin": 10401,
|
"topLineupMin": 10401,
|
||||||
"topFiveMax": 11220
|
"topLineupMax": 11220
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 18,
|
"id": 18,
|
||||||
"teamLv": 18,
|
"teamLv": 18,
|
||||||
"topFiveMin": 11221,
|
"topLineupMin": 11221,
|
||||||
"topFiveMax": 12060
|
"topLineupMax": 12060
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 19,
|
"id": 19,
|
||||||
"teamLv": 19,
|
"teamLv": 19,
|
||||||
"topFiveMin": 12061,
|
"topLineupMin": 12061,
|
||||||
"topFiveMax": 12920
|
"topLineupMax": 12920
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 20,
|
"id": 20,
|
||||||
"teamLv": 20,
|
"teamLv": 20,
|
||||||
"topFiveMin": 12921,
|
"topLineupMin": 12921,
|
||||||
"topFiveMax": 13800
|
"topLineupMax": 13800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 21,
|
"id": 21,
|
||||||
"teamLv": 21,
|
"teamLv": 21,
|
||||||
"topFiveMin": 13801,
|
"topLineupMin": 13801,
|
||||||
"topFiveMax": 14700
|
"topLineupMax": 14700
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 22,
|
"id": 22,
|
||||||
"teamLv": 22,
|
"teamLv": 22,
|
||||||
"topFiveMin": 14701,
|
"topLineupMin": 14701,
|
||||||
"topFiveMax": 15620
|
"topLineupMax": 15620
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 23,
|
"id": 23,
|
||||||
"teamLv": 23,
|
"teamLv": 23,
|
||||||
"topFiveMin": 15621,
|
"topLineupMin": 15621,
|
||||||
"topFiveMax": 16560
|
"topLineupMax": 16560
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 24,
|
"id": 24,
|
||||||
"teamLv": 24,
|
"teamLv": 24,
|
||||||
"topFiveMin": 16501,
|
"topLineupMin": 16501,
|
||||||
"topFiveMax": 17520
|
"topLineupMax": 17520
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 25,
|
"id": 25,
|
||||||
"teamLv": 25,
|
"teamLv": 25,
|
||||||
"topFiveMin": 17521,
|
"topLineupMin": 17521,
|
||||||
"topFiveMax": 18500
|
"topLineupMax": 18500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 26,
|
"id": 26,
|
||||||
"teamLv": 26,
|
"teamLv": 26,
|
||||||
"topFiveMin": 18501,
|
"topLineupMin": 18501,
|
||||||
"topFiveMax": 19500
|
"topLineupMax": 19500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 27,
|
"id": 27,
|
||||||
"teamLv": 27,
|
"teamLv": 27,
|
||||||
"topFiveMin": 19501,
|
"topLineupMin": 19501,
|
||||||
"topFiveMax": 20520
|
"topLineupMax": 20520
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 28,
|
"id": 28,
|
||||||
"teamLv": 28,
|
"teamLv": 28,
|
||||||
"topFiveMin": 20521,
|
"topLineupMin": 20521,
|
||||||
"topFiveMax": 21560
|
"topLineupMax": 21560
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 29,
|
"id": 29,
|
||||||
"teamLv": 29,
|
"teamLv": 29,
|
||||||
"topFiveMin": 21561,
|
"topLineupMin": 21561,
|
||||||
"topFiveMax": 22620
|
"topLineupMax": 22620
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 30,
|
"id": 30,
|
||||||
"teamLv": 30,
|
"teamLv": 30,
|
||||||
"topFiveMin": 22621,
|
"topLineupMin": 22621,
|
||||||
"topFiveMax": 23700
|
"topLineupMax": 23700
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 31,
|
"id": 31,
|
||||||
"teamLv": 31,
|
"teamLv": 31,
|
||||||
"topFiveMin": 23701,
|
"topLineupMin": 23701,
|
||||||
"topFiveMax": 24800
|
"topLineupMax": 24800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 32,
|
"id": 32,
|
||||||
"teamLv": 32,
|
"teamLv": 32,
|
||||||
"topFiveMin": 24801,
|
"topLineupMin": 24801,
|
||||||
"topFiveMax": 25920
|
"topLineupMax": 25920
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 33,
|
"id": 33,
|
||||||
"teamLv": 33,
|
"teamLv": 33,
|
||||||
"topFiveMin": 25921,
|
"topLineupMin": 25921,
|
||||||
"topFiveMax": 27060
|
"topLineupMax": 27060
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 34,
|
"id": 34,
|
||||||
"teamLv": 34,
|
"teamLv": 34,
|
||||||
"topFiveMin": 27061,
|
"topLineupMin": 27061,
|
||||||
"topFiveMax": 28220
|
"topLineupMax": 28220
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 35,
|
"id": 35,
|
||||||
"teamLv": 35,
|
"teamLv": 35,
|
||||||
"topFiveMin": 28221,
|
"topLineupMin": 28221,
|
||||||
"topFiveMax": 29400
|
"topLineupMax": 29400
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 36,
|
"id": 36,
|
||||||
"teamLv": 36,
|
"teamLv": 36,
|
||||||
"topFiveMin": 29401,
|
"topLineupMin": 29401,
|
||||||
"topFiveMax": 30600
|
"topLineupMax": 30600
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 37,
|
"id": 37,
|
||||||
"teamLv": 37,
|
"teamLv": 37,
|
||||||
"topFiveMin": 30601,
|
"topLineupMin": 30601,
|
||||||
"topFiveMax": 31820
|
"topLineupMax": 31820
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 38,
|
"id": 38,
|
||||||
"teamLv": 38,
|
"teamLv": 38,
|
||||||
"topFiveMin": 31821,
|
"topLineupMin": 31821,
|
||||||
"topFiveMax": 33060
|
"topLineupMax": 33060
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 39,
|
"id": 39,
|
||||||
"teamLv": 39,
|
"teamLv": 39,
|
||||||
"topFiveMin": 33061,
|
"topLineupMin": 33061,
|
||||||
"topFiveMax": 34100
|
"topLineupMax": 34100
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 40,
|
"id": 40,
|
||||||
"teamLv": 40,
|
"teamLv": 40,
|
||||||
"topFiveMin": 34321,
|
"topLineupMin": 34321,
|
||||||
"topFiveMax": 35260
|
"topLineupMax": 35260
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 41,
|
"id": 41,
|
||||||
"teamLv": 41,
|
"teamLv": 41,
|
||||||
"topFiveMin": 35601,
|
"topLineupMin": 35601,
|
||||||
"topFiveMax": 36900
|
"topLineupMax": 36900
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 42,
|
"id": 42,
|
||||||
"teamLv": 42,
|
"teamLv": 42,
|
||||||
"topFiveMin": 36901,
|
"topLineupMin": 36901,
|
||||||
"topFiveMax": 38220
|
"topLineupMax": 38220
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 43,
|
"id": 43,
|
||||||
"teamLv": 43,
|
"teamLv": 43,
|
||||||
"topFiveMin": 38221,
|
"topLineupMin": 38221,
|
||||||
"topFiveMax": 39560
|
"topLineupMax": 39560
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 44,
|
"id": 44,
|
||||||
"teamLv": 44,
|
"teamLv": 44,
|
||||||
"topFiveMin": 39561,
|
"topLineupMin": 39561,
|
||||||
"topFiveMax": 40920
|
"topLineupMax": 40920
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 45,
|
"id": 45,
|
||||||
"teamLv": 45,
|
"teamLv": 45,
|
||||||
"topFiveMin": 40921,
|
"topLineupMin": 40921,
|
||||||
"topFiveMax": 42300
|
"topLineupMax": 42300
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 46,
|
"id": 46,
|
||||||
"teamLv": 46,
|
"teamLv": 46,
|
||||||
"topFiveMin": 42301,
|
"topLineupMin": 42301,
|
||||||
"topFiveMax": 43700
|
"topLineupMax": 43700
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 47,
|
"id": 47,
|
||||||
"teamLv": 47,
|
"teamLv": 47,
|
||||||
"topFiveMin": 43701,
|
"topLineupMin": 43701,
|
||||||
"topFiveMax": 45120
|
"topLineupMax": 45120
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 48,
|
"id": 48,
|
||||||
"teamLv": 48,
|
"teamLv": 48,
|
||||||
"topFiveMin": 45121,
|
"topLineupMin": 45121,
|
||||||
"topFiveMax": 46560
|
"topLineupMax": 46560
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 49,
|
"id": 49,
|
||||||
"teamLv": 49,
|
"teamLv": 49,
|
||||||
"topFiveMin": 46561,
|
"topLineupMin": 46561,
|
||||||
"topFiveMax": 48020
|
"topLineupMax": 48020
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 50,
|
"id": 50,
|
||||||
"teamLv": 50,
|
"teamLv": 50,
|
||||||
"topFiveMin": 48021,
|
"topLineupMin": 48021,
|
||||||
"topFiveMax": 49500
|
"topLineupMax": 49500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 51,
|
"id": 51,
|
||||||
"teamLv": 51,
|
"teamLv": 51,
|
||||||
"topFiveMin": 49501,
|
"topLineupMin": 49501,
|
||||||
"topFiveMax": 51000
|
"topLineupMax": 51000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 52,
|
"id": 52,
|
||||||
"teamLv": 52,
|
"teamLv": 52,
|
||||||
"topFiveMin": 51001,
|
"topLineupMin": 51001,
|
||||||
"topFiveMax": 52520
|
"topLineupMax": 52520
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 53,
|
"id": 53,
|
||||||
"teamLv": 53,
|
"teamLv": 53,
|
||||||
"topFiveMin": 52521,
|
"topLineupMin": 52521,
|
||||||
"topFiveMax": 54060
|
"topLineupMax": 54060
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 54,
|
"id": 54,
|
||||||
"teamLv": 54,
|
"teamLv": 54,
|
||||||
"topFiveMin": 54061,
|
"topLineupMin": 54061,
|
||||||
"topFiveMax": 55620
|
"topLineupMax": 55620
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 55,
|
"id": 55,
|
||||||
"teamLv": 55,
|
"teamLv": 55,
|
||||||
"topFiveMin": 55621,
|
"topLineupMin": 55621,
|
||||||
"topFiveMax": 57200
|
"topLineupMax": 57200
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 56,
|
"id": 56,
|
||||||
"teamLv": 56,
|
"teamLv": 56,
|
||||||
"topFiveMin": 57201,
|
"topLineupMin": 57201,
|
||||||
"topFiveMax": 58800
|
"topLineupMax": 58800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 57,
|
"id": 57,
|
||||||
"teamLv": 57,
|
"teamLv": 57,
|
||||||
"topFiveMin": 58801,
|
"topLineupMin": 58801,
|
||||||
"topFiveMax": 60420
|
"topLineupMax": 60420
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 58,
|
"id": 58,
|
||||||
"teamLv": 58,
|
"teamLv": 58,
|
||||||
"topFiveMin": 60421,
|
"topLineupMin": 60421,
|
||||||
"topFiveMax": 62060
|
"topLineupMax": 62060
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 59,
|
"id": 59,
|
||||||
"teamLv": 59,
|
"teamLv": 59,
|
||||||
"topFiveMin": 62061,
|
"topLineupMin": 62061,
|
||||||
"topFiveMax": 63720
|
"topLineupMax": 63720
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 60,
|
"id": 60,
|
||||||
"teamLv": 60,
|
"teamLv": 60,
|
||||||
"topFiveMin": 63721,
|
"topLineupMin": 63721,
|
||||||
"topFiveMax": 65400
|
"topLineupMax": 65400
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 61,
|
"id": 61,
|
||||||
"teamLv": 61,
|
"teamLv": 61,
|
||||||
"topFiveMin": 65401,
|
"topLineupMin": 65401,
|
||||||
"topFiveMax": 67100
|
"topLineupMax": 67100
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 62,
|
"id": 62,
|
||||||
"teamLv": 62,
|
"teamLv": 62,
|
||||||
"topFiveMin": 67101,
|
"topLineupMin": 67101,
|
||||||
"topFiveMax": 68820
|
"topLineupMax": 68820
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 63,
|
"id": 63,
|
||||||
"teamLv": 63,
|
"teamLv": 63,
|
||||||
"topFiveMin": 68821,
|
"topLineupMin": 68821,
|
||||||
"topFiveMax": 70560
|
"topLineupMax": 70560
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 64,
|
"id": 64,
|
||||||
"teamLv": 64,
|
"teamLv": 64,
|
||||||
"topFiveMin": 70561,
|
"topLineupMin": 70561,
|
||||||
"topFiveMax": 72320
|
"topLineupMax": 72320
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 65,
|
"id": 65,
|
||||||
"teamLv": 65,
|
"teamLv": 65,
|
||||||
"topFiveMin": 72321,
|
"topLineupMin": 72321,
|
||||||
"topFiveMax": 74100
|
"topLineupMax": 74100
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 66,
|
"id": 66,
|
||||||
"teamLv": 66,
|
"teamLv": 66,
|
||||||
"topFiveMin": 74101,
|
"topLineupMin": 74101,
|
||||||
"topFiveMax": 75900
|
"topLineupMax": 75900
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 67,
|
"id": 67,
|
||||||
"teamLv": 67,
|
"teamLv": 67,
|
||||||
"topFiveMin": 75901,
|
"topLineupMin": 75901,
|
||||||
"topFiveMax": 77720
|
"topLineupMax": 77720
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 68,
|
"id": 68,
|
||||||
"teamLv": 68,
|
"teamLv": 68,
|
||||||
"topFiveMin": 77721,
|
"topLineupMin": 77721,
|
||||||
"topFiveMax": 79560
|
"topLineupMax": 79560
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 69,
|
"id": 69,
|
||||||
"teamLv": 69,
|
"teamLv": 69,
|
||||||
"topFiveMin": 79561,
|
"topLineupMin": 79561,
|
||||||
"topFiveMax": 81420
|
"topLineupMax": 81420
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 70,
|
"id": 70,
|
||||||
"teamLv": 70,
|
"teamLv": 70,
|
||||||
"topFiveMin": 81421,
|
"topLineupMin": 81421,
|
||||||
"topFiveMax": 83300
|
"topLineupMax": 83300
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
Reference in New Issue
Block a user