fix:
丛林猎手优化
This commit is contained in:
parent
e00e9c4dfc
commit
0e93358e74
@ -4,10 +4,10 @@ import { Rank } from '../../public/rank/rank';
|
|||||||
import { ReqOpen, ResOpen } from "../../shared/protocols/rank/PtlOpen";
|
import { ReqOpen, ResOpen } from "../../shared/protocols/rank/PtlOpen";
|
||||||
import { getToper50RankInfo } from "../hbzb/jfs/fun";
|
import { getToper50RankInfo } from "../hbzb/jfs/fun";
|
||||||
import { getZbsRankList } from "../hbzb/zbs/fun";
|
import { getZbsRankList } from "../hbzb/zbs/fun";
|
||||||
import { re } from "mathjs";
|
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
||||||
let obj = await rankOpenfun(call, call.req)
|
console.log("==============>", call.req)
|
||||||
|
let obj = await rankOpenfun(call, call.req);
|
||||||
call.succ(obj);
|
call.succ(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,17 +73,35 @@ export class SchedulerClslCrossCtor extends Scheduler {
|
|||||||
|
|
||||||
// 每100个玩家划分一个区间
|
// 每100个玩家划分一个区间
|
||||||
let groups: { [group: string]: { st: number, et: number, users: string[] } } = {};
|
let groups: { [group: string]: { st: number, et: number, users: string[] } } = {};
|
||||||
for (let i = 0; i < wzusers.length / this.num; i++) {
|
let group_num = wzusers.length / this.num;
|
||||||
|
|
||||||
|
// 非王者玩家
|
||||||
|
let remaining_users = users.filter(u => u.allStar < this.star);
|
||||||
|
if (group_num >= 1) {
|
||||||
|
let tt = parseInt(group_num + '')
|
||||||
|
for (let i = 1; i <= tt; i++) {
|
||||||
groups['group' + i] = {
|
groups['group' + i] = {
|
||||||
st: wzusers[i * this.num].info.player.cTime,
|
et: wzusers[i * this.num - 1].info.player.cTime,
|
||||||
et: wzusers[(i + 1) * this.num - 1].info.player.cTime,
|
st: wzusers[(i - 1) * this.num].info.player.cTime,
|
||||||
users: wzusers.slice(i * this.num, (i + 1) * this.num).map(u => u.uid),
|
users: wzusers.slice((i - 1) * this.num, i * this.num).map(u => u.uid),
|
||||||
|
}
|
||||||
|
if (i == 1) {
|
||||||
|
groups['group1'].st = 0
|
||||||
|
}
|
||||||
|
if (i == tt) {
|
||||||
|
groups['group' + i].et = G.time + 7 * 14 * 3600;
|
||||||
|
groups['group' + i].users = wzusers.slice((i - 1) * this.num).map(u => u.uid);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
groups['group0'] = {
|
||||||
|
st: 0,
|
||||||
|
et: G.time + 7 * 14 * 3600,
|
||||||
|
users: wzusers.map(u => u.uid),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 剩余玩家
|
// 剩余玩家
|
||||||
let remaining_users = [].concat(wzusers.slice((wzusers.length / this.num) * this.num)); // 王者剩余玩家
|
|
||||||
remaining_users = remaining_users.concat(users.filter(u => u.allStar < this.star)); // 非王者剩余玩家
|
|
||||||
for (let i = 0; i < remaining_users.length; i++) {
|
for (let i = 0; i < remaining_users.length; i++) {
|
||||||
for (let group in groups) {
|
for (let group in groups) {
|
||||||
if (remaining_users[i].info.player.cTime >= groups[group].st && remaining_users[i].info.player.cTime <= groups[group].et) {
|
if (remaining_users[i].info.player.cTime >= groups[group].st && remaining_users[i].info.player.cTime <= groups[group].et) {
|
||||||
@ -101,9 +119,13 @@ export class SchedulerClslCrossCtor extends Scheduler {
|
|||||||
await G.mongodb.collection("clslCrossGroup").updateOne({ week: week }, { $set: { groups: groups } }, { upsert: true });
|
await G.mongodb.collection("clslCrossGroup").updateOne({ week: week }, { $set: { groups: groups } }, { upsert: true });
|
||||||
|
|
||||||
// 初始化丛林猎手排行榜
|
// 初始化丛林猎手排行榜
|
||||||
G.mongodb.collection('clslCrossUser').find({allStar:{$gte:this.star}}).toArray().then(users=>{
|
G.mongodb.collection('clslCrossUser').find({ allStar: { $gte: this.star } }).toArray().then(users => {
|
||||||
users.forEach(u=>{
|
users.forEach(u => {
|
||||||
new RankClslCross(u.group).addNew({valArr:[u.allStar, u.info.player.power], player:u.info, roles:u.info.roles})
|
new RankClslCross(u.group).addNew({
|
||||||
|
valArr: [u.allStar, u.info.player.power],
|
||||||
|
player: u.info.player,
|
||||||
|
roles: u.info.roles,
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ export type ResOpen = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export type rankType = 'jjc' | 'tanxian' | 'zhanli' | 'qjzzd' | 'hbzbLocal' | 'hbzbCross' | 'hbzbZbsCross'
|
export type rankType = 'jjc' | 'tanxian' | 'zhanli' | 'qjzzd' | 'hbzbLocal' | 'hbzbCross' | 'hbzbZbsCross'
|
||||||
| 'slzd1' | 'slzd2' | 'slzd3' | 'slzd4' | 'slzd5' | 'slzd6' | "clslCross"
|
| 'slzd1' | 'slzd2' | 'slzd3' | 'slzd4' | 'slzd5' | 'slzd6' | 'clslCross'
|
||||||
| 'kbzz' | 'xszm' | 'zccg' | 'gbzl' | 'tujian' | 'wzryCross';
|
| 'kbzz' | 'xszm' | 'zccg' | 'gbzl' | 'tujian' | 'wzryCross';
|
||||||
|
|
||||||
export type rankTypeObj = {
|
export type rankTypeObj = {
|
||||||
|
Loading…
Reference in New Issue
Block a user