丛林猎手优化
This commit is contained in:
xcy 2023-12-28 00:02:12 +08:00
parent e00e9c4dfc
commit 0e93358e74
3 changed files with 35 additions and 13 deletions

View File

@ -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);
}

View File

@ -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,
})
})
})

View File

@ -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 = {