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 { getToper50RankInfo } from "../hbzb/jfs/fun";
|
||||
import { getZbsRankList } from "../hbzb/zbs/fun";
|
||||
import { re } from "mathjs";
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -73,17 +73,35 @@ export class SchedulerClslCrossCtor extends Scheduler {
|
||||
|
||||
// 每100个玩家划分一个区间
|
||||
let groups: { [group: string]: { st: number, et: number, users: string[] } } = {};
|
||||
for (let i = 0; i < wzusers.length / this.num; i++) {
|
||||
groups['group' + i] = {
|
||||
st: wzusers[i * this.num].info.player.cTime,
|
||||
et: wzusers[(i + 1) * this.num - 1].info.player.cTime,
|
||||
users: wzusers.slice(i * this.num, (i + 1) * this.num).map(u => u.uid),
|
||||
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] = {
|
||||
et: wzusers[i * this.num - 1].info.player.cTime,
|
||||
st: wzusers[(i - 1) * this.num].info.player.cTime,
|
||||
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 group in groups) {
|
||||
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 });
|
||||
|
||||
// 初始化丛林猎手排行榜
|
||||
G.mongodb.collection('clslCrossUser').find({allStar:{$gte:this.star}}).toArray().then(users=>{
|
||||
users.forEach(u=>{
|
||||
new RankClslCross(u.group).addNew({valArr:[u.allStar, u.info.player.power], player:u.info, roles:u.info.roles})
|
||||
G.mongodb.collection('clslCrossUser').find({ allStar: { $gte: this.star } }).toArray().then(users => {
|
||||
users.forEach(u => {
|
||||
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'
|
||||
| 'slzd1' | 'slzd2' | 'slzd3' | 'slzd4' | 'slzd5' | 'slzd6' | "clslCross"
|
||||
| 'slzd1' | 'slzd2' | 'slzd3' | 'slzd4' | 'slzd5' | 'slzd6' | 'clslCross'
|
||||
| 'kbzz' | 'xszm' | 'zccg' | 'gbzl' | 'tujian' | 'wzryCross';
|
||||
|
||||
export type rankTypeObj = {
|
||||
|
Loading…
Reference in New Issue
Block a user