From e00e9c4dfc2120168c90e0de9f11086a6711135a Mon Sep 17 00:00:00 2001 From: xcy Date: Wed, 27 Dec 2023 16:42:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=9B=E6=9E=97=E7=8B=A9=E7=8C=8E?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_cross/clsl/ApiFindEnemy.ts | 7 ++++--- src/api_cross/clsl/ApiUpLoad.ts | 9 +-------- src/api_s2c/conglinshoulie/ApiFind.ts | 3 ++- src/api_s2c/conglinshoulie/ApiOpen.ts | 6 ++++++ src/json/clsl_com.json5 | 14 +++++++------- src/public/scheduler/scheduler_clsl.ts | 22 +++++++++++++++------- src/setStartAfther.ts | 17 +++++++++-------- 7 files changed, 44 insertions(+), 34 deletions(-) diff --git a/src/api_cross/clsl/ApiFindEnemy.ts b/src/api_cross/clsl/ApiFindEnemy.ts index 743f42f..c097d8f 100644 --- a/src/api_cross/clsl/ApiFindEnemy.ts +++ b/src/api_cross/clsl/ApiFindEnemy.ts @@ -19,9 +19,10 @@ export default async function (call: ApiCall) { // 在自定范围内随机一个对手 let others = await G.mongodb.collection("clslCrossUser").aggregate([ { - $match: [ - { allStar: { $gte: starConf.fighter[0], $lte: starConf.fighter[1] } } - ], + $match: { + allStar: { $gte: starConf.fighter[0], $lte: starConf.fighter[1] } + } + }, { $sample: { size: 1 } } diff --git a/src/api_cross/clsl/ApiUpLoad.ts b/src/api_cross/clsl/ApiUpLoad.ts index 57a47fd..a91a9f9 100644 --- a/src/api_cross/clsl/ApiUpLoad.ts +++ b/src/api_cross/clsl/ApiUpLoad.ts @@ -16,14 +16,7 @@ export default async function (call: ApiCall) { { upsert: true, returnDocument: "after" } )).value; - let week = PublicShared.getToWeek(); - let group_time = G.gc.clsl_com.divideTime; - let week_zero_time = PublicShared.getToWeekMondayZeroTime(); - - if (G.time > week_zero_time + group_time) { - if (!a.group){ - - } + if (a.group){ // 分完组之后就可以更新排行榜了 if (allStar != undefined && ops.info) { let rank; if (Rank.list[`clslCross_${a.group}`]) { diff --git a/src/api_s2c/conglinshoulie/ApiFind.ts b/src/api_s2c/conglinshoulie/ApiFind.ts index 2309485..bd78755 100644 --- a/src/api_s2c/conglinshoulie/ApiFind.ts +++ b/src/api_s2c/conglinshoulie/ApiFind.ts @@ -56,7 +56,7 @@ export default async function (call: ApiCall) { let content = G.gc.clsl_com.email_dan.content; G.gc.clsl_com.danPrize.forEach(conf => { // 段位未达到 或者 奖励已经发放 - if (conf.star > curMaxStar || danPrize.includes[conf.star]) { + if (conf.star > curMaxStar || danPrize.includes(conf.star)) { return } @@ -67,6 +67,7 @@ export default async function (call: ApiCall) { title: title, content: content, prize: conf.prize, + contentInsertArr:[conf.title] }) danPrize.push(conf.star); diff --git a/src/api_s2c/conglinshoulie/ApiOpen.ts b/src/api_s2c/conglinshoulie/ApiOpen.ts index 4824215..d844979 100644 --- a/src/api_s2c/conglinshoulie/ApiOpen.ts +++ b/src/api_s2c/conglinshoulie/ApiOpen.ts @@ -18,6 +18,12 @@ export default async function (call: ApiCall) { fightWinNum: 0, buyFightNum: 0 }; + + // 隔周刷新星级 + if(ops?.refreshTime < PublicShared.getToWeekMondayZeroTime()){ + change.allStar = 0; + change.curMaxStar = 0; + } Object.assign(ops, change); diff --git a/src/json/clsl_com.json5 b/src/json/clsl_com.json5 index 1595c97..c57676d 100644 --- a/src/json/clsl_com.json5 +++ b/src/json/clsl_com.json5 @@ -32,13 +32,13 @@ ], //段位奖励 danPrize: [ - { star: 49, prize: [{ a: 'item', t: '605', n:3 },{ a: 'item', t: '29', n:10 },{ a: 'item', t: '631', n:3 },{ a: 'item', t: '40', n:1 }] }, - { star: 39, prize: [{ a: 'item', t: '605', n:2 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '631', n:2 }] }, - { star: 29, prize: [{ a: 'item', t: '606', n:3 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '631', n:1 }] }, - { star: 21, prize: [{ a: 'item', t: '606', n:2 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:1000 }] }, - { star: 13, prize: [{ a: 'item', t: '606', n:1 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:800 }] }, - { star: 7, prize: [{ a: 'item', t: '29', n:10 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:600 }] }, - { star: 0, prize: [{ a: 'item', t: '29', n:5 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:400 }] } + { star: 49, title: "clsl_7", prize: [{ a: 'item', t: '605', n:3 },{ a: 'item', t: '29', n:10 },{ a: 'item', t: '631', n:3 },{ a: 'item', t: '40', n:1 }] }, + { star: 39, title: "clsl_6", prize: [{ a: 'item', t: '605', n:2 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '631', n:2 }] }, + { star: 29, title: "clsl_5", prize: [{ a: 'item', t: '606', n:3 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '631', n:1 }] }, + { star: 21, title: "clsl_4", prize: [{ a: 'item', t: '606', n:2 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:1000 }] }, + { star: 13, title: "clsl_3", prize: [{ a: 'item', t: '606', n:1 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:800 }] }, + { star: 7, title: "clsl_2", prize: [{ a: 'item', t: '29', n:10 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:600 }] }, + { star: 0, title: "clsl_1", prize: [{ a: 'item', t: '29', n:5 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:400 }] } ], //王者排名邮件信息 email_rank: { diff --git a/src/public/scheduler/scheduler_clsl.ts b/src/public/scheduler/scheduler_clsl.ts index 73936bf..a26f447 100644 --- a/src/public/scheduler/scheduler_clsl.ts +++ b/src/public/scheduler/scheduler_clsl.ts @@ -44,9 +44,13 @@ export class SchedulerClslLocalCtor extends Scheduler { */ export class SchedulerClslCrossCtor extends Scheduler { id: schedulerType = 'clsl_cross_group'; + + num: number = 2; + + type: 'day' | 'week' = 'week'; time = G.gc.clsl_com.divideTime; name = '丛林猎手赛季区间划分 周四00:00'; - type: 'day' | 'week' = 'week'; + star = Object.values(G.gc.clsl_dan).slice(-1)[0].allStar; async read() { @@ -69,16 +73,16 @@ export class SchedulerClslCrossCtor extends Scheduler { // 每100个玩家划分一个区间 let groups: { [group: string]: { st: number, et: number, users: string[] } } = {}; - for (let i = 0; i < wzusers.length / 100; i++) { + for (let i = 0; i < wzusers.length / this.num; i++) { groups['group' + i] = { - st: wzusers[i * 100].info.player.cTime, - et: wzusers[(i + 1) * 100 - 1].info.player.cTime, - users: wzusers.slice(i * 100, (i + 1) * 100).map(u => u.uid), + 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 remaining_users = [].concat(wzusers.slice((wzusers.length / 100) * 100)); // 王者剩余玩家 + 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) { @@ -97,7 +101,11 @@ export class SchedulerClslCrossCtor extends Scheduler { await G.mongodb.collection("clslCrossGroup").updateOne({ week: week }, { $set: { groups: groups } }, { upsert: true }); // 初始化丛林猎手排行榜 - await RankClslCrossInit() + 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}) + }) + }) await this.record(); } diff --git a/src/setStartAfther.ts b/src/setStartAfther.ts index f0ca5c4..25c609c 100644 --- a/src/setStartAfther.ts +++ b/src/setStartAfther.ts @@ -2,7 +2,7 @@ import { GanHaiRed } from './api_s2c/ganhai/ApiOpen'; import { FriendManage } from './public/friend/manage'; import { GHManage } from './public/gonghui/manage'; import { JJCFun } from './public/jjc'; -import { RankClslCross } from './public/rank/rank_clsl'; +import { RankClslCross, RankClslCrossInit } from './public/rank/rank_clsl'; //import { RankHbzbJfsCross, RankHbzbJfsLocal, RankHbzbZbsCross } from './public/rank/rank_hbzb_jfs'; import { RankKbzz } from './public/rank/rank_kbzz'; import { RankPower } from './public/rank/rank_power'; @@ -104,18 +104,19 @@ export async function startAfter() { }); } else if (G.argv.serverType == 'cross') { - RankKbzz.init(); - new RankClslCross(); - // new RankHbzbJfsCross().loadAllPlayer(); - // new RankHbzbZbsCross(); + RankClslCrossInit(); new RankWzryCross(); new SchedulerKbzzGroup().init(); - new Scheduler_hbzb_zbs_cross_clear().init(); - //new Scheduler_hbzb_corss_reset(); - new Scheduler_hbzb_zbs_cross_group().init(); + + new SchedulerClslPrize().init(); new SchedulerClslCrossCtor().init(); + new SchedulerClslLocalCtor ().init(); + + new Scheduler_hbzb_zbs_cross_clear().init(); + new Scheduler_hbzb_zbs_cross_group().init(); + new SchedulerWzryDlDstart().init(); new SchedulerWzryDlDjinji().init(); new SchedulerWzryZuanshiOne().init();