From 9154278020d9a0f484a13ad518d3640ba4c2d3c2 Mon Sep 17 00:00:00 2001 From: xichaoyin Date: Thu, 11 Jan 2024 23:54:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=BB=84=E6=97=97=E9=85=92=E9=A6=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/event/huangqijiuguan/fun.ts | 40 +++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/api_s2c/event/huangqijiuguan/fun.ts b/src/api_s2c/event/huangqijiuguan/fun.ts index 548b7cb..1494752 100644 --- a/src/api_s2c/event/huangqijiuguan/fun.ts +++ b/src/api_s2c/event/huangqijiuguan/fun.ts @@ -5,6 +5,7 @@ import { PublicShared } from "../../../shared/public/public" import { EmailFun } from "../../../public/email" import { playerInfo } from "../../../shared/protocols/user/PtlLogin" import { PlayerFun } from "../../../public/player" +import { Player } from "../../../shared/fightControl/Player" // hddata.data export interface Data { @@ -44,6 +45,10 @@ export interface Data { bossTask: { id: number, need: number, prize: atn[] }[] bossRank: { id: string, rank: [number, number], prize: atn[] } + + zhuanhuan: { start: atn, end: atn }[] + end_mail_title: string + end_mail_des: string } export interface PlayerData { @@ -279,13 +284,14 @@ export default class HQJGFun { htype: this.htype, rtime: { $gt: yesterday, $lte: today } }).toArray(); - // 没有活动数 - if (hdinfo.length <= 0) { + // 没有活动数 或者发奖标识已设置 + if (hdinfo.length <= 0 || hdinfo[0].data.sendrank) { return } let hd = hdinfo[0]; let hdid = hdinfo[0].hdid; + let hddata = hdinfo[0].data as Data; if (hd.data.sendrank) { return } @@ -317,6 +323,36 @@ export default class HQJGFun { await G.mongodb.collection("hdinfo").updateOne( { hdid: hdid }, { $set: { "data.sendrank": true } } ); + // 货币兑换 + G.mongodb.collection("user").find().toArray().then(async (users) => { + for (let i = 0; i < users.length; i++) { + let prize = []; + let change = {}; + let user = users[i]; + for (let con of hddata.zhuanhuan) { + let num = user[con.start.t]; + if (num < con.start.n) { + continue + } + change[con.start.t] = 0; + prize.push({ + a: con.end.a, t: con.end.t, n: con.end.n * (num / con.start.n), + }) + } + if (prize.length <= 0) continue + // 扣除消耗 + await PlayerFun.changeAttr(user.uid, change); + G.server?.sendMsgByUid(user.uid, "msg_s2c/PlayerChange", change); + // 发送奖励邮件 + await EmailFun.addEmail({ + uid: user.uid, + type: "system", + prize: prize, + title: hddata.end_mail_title, + content: hddata.end_mail_des, + }) + } + }) console.log( "黄旗酒馆 最大伤害排行奖励结算 执行结束!!!"