Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
yushunrui 2023-12-18 15:02:07 +08:00
commit 89b75bbf2b
24 changed files with 2651 additions and 358 deletions

View File

@ -120,7 +120,13 @@ export default async function (call: ApiCall<ReqBingo, ResBingo>) {
}
} else if (shell[0] == 'heroMaxLv') {
let heros = await G.redis.get('hero', call.uid);
//let heros = await G.redis.get('hero', call.uid);
let s = await G.mongodb.collection('hero').find({
uid: call.uid
}).toArray();
let heros = s.map(h => G.mongodb.conversionIdObj(h));
for (let [_id, hero] of Object.entries(heros)) {
await HeroFun.changeHeroAttr(call, hero, {
lv: Object.keys(G.gc.playerLv).length * 3,

View File

@ -13,28 +13,27 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
let _zt = PublicShared.getToDayZeroTime();
let pays = await PayFun.getPayLogs(call.uid, payids);
for (; day <= G.gc.shiwuleichong.tasks.length; day++) {
let pay = pays[G.gc.shiwuleichong.tasks[day].payid];
if (!pay) {
let pay = pays[G.gc.shiwuleichong.tasks[day - 1].payid];
if (!pay || pay.length == 0) {
break
} else {
if (pay.slice(-1)[0].time >= _zt) {
// 如果是最后一天奖励
if (day >= G.gc.shiwuleichong.tasks.length) {
// 充值订单隔天了
if (pay.slice(-1)[0].time < _zt) {
// 重置所有订单
await PayFun.delPayLog(call.uid, ...payids.map(i => {
return {payId: i, val: []}
}))
day = 1;
pays = {};
}
break;
} else if (pay.slice(-1)[0].time >= _zt) {
break
}
}
}
// 如果是最后一天奖励 并且 充值订单隔天了
if (
day == G.gc.shiwuleichong.tasks.length &&
pays[G.gc.shiwuleichong.tasks[day - 1].payid] &&
pays[G.gc.shiwuleichong.tasks[day - 1].payid].slice(-1)[0].time < _zt
) {
// 重置所有订单
await PayFun.delPayLog(call.uid, ...payids.map(i => {
return {payId: i, val: []}
}))
day = 1;
pays = {};
}
call.succ({
day: day,

View File

@ -39,7 +39,7 @@ export default async function (call: ApiCall<ReqChangePos, ResChangePos>) {
}
} else if (call.req.state == 'change') {
if (heroPos[call.req.pos]) {
let unLoadHero = await G.redis.get('hero', call.uid, heroPos[call.req.pos]);
let unLoadHero = await HeroFun.getHero(call, heroPos[call.req.pos]);
unLoadHero && fightHeros.removeOne(id => id == unLoadHero.heroId);
}
if (fightHeros.includes(hero.heroId.toString())) return call.errorCode(-2);

View File

@ -4,7 +4,7 @@ import { ReqGetList, ResGetList } from "../../shared/protocols/hero/PtlGetList";
export default async function (call: ApiCall<ReqGetList, ResGetList>) {
let list: ResGetList['list'] = {};
let kvList: k_v<RedisCollections2['hero']> = {};
//let kvList: k_v<RedisCollections2['hero']> = {};
let arrList = await G.mongodb.collection('hero').find({ uid: call.uid }).toArray();
let heroCon = G.gc.hero;
@ -12,7 +12,7 @@ export default async function (call: ApiCall<ReqGetList, ResGetList>) {
let maxherolv = 0;
arrList.forEach(v => {
let d = G.mongodb.conversionIdObj(v);
kvList[G.formatRedisKey(d._id)] = d;
//kvList[G.formatRedisKey(d._id)] = d;
list[d._id] = d;
if (v.lv > maxherolv) maxherolv = v.lv;
@ -23,7 +23,7 @@ export default async function (call: ApiCall<ReqGetList, ResGetList>) {
await G.mongodb.collection('playerInfo', 'usertasklog').updateOne({ uid: call.conn.uid, type: 'usertasklog' },
{ $set: { maxherolv: maxherolv, herocolor: color } }, { upsert: true });
G.redis.set('hero', call.uid, kvList);
//G.redis.set('hero', call.uid, kvList);
let recLshd = await G.mongodb.collection('playerInfo', 'lshd_hero').findOne({ uid: call.conn.uid, type: 'lshd_hero' });
let { uid, _id, type, ...heros } = (recLshd || {});

View File

@ -39,7 +39,7 @@ export default async function (call: ApiCall<ReqJinJie, ResJinJie, ServiceType>)
let selectHeros: ResGetList['list'][''][] = [];
for (let _id of call.req.idArr) {
let _hero = await G.redis.get('hero', call.uid, _id);
let _hero = await HeroFun.getHero(call, _id);
if (!_hero) return call.error(globalThis.lng.hero_1);
selectHeros.push(_hero);
}

View File

@ -154,7 +154,7 @@
},
"jiubabaodi": {
"numbd": {
"50": [10011],
"30": [10011],
"250": [10012],
"550": [10011],
"1000": [10011],

View File

@ -0,0 +1,62 @@
{
"1": {
"id": 1,
"jieji": 0,
"ewai_buff": 0
},
"2": {
"id": 2,
"jieji": 1,
"ewai_buff": 0
},
"3": {
"id": 3,
"jieji": 2,
"ewai_buff": 0
},
"4": {
"id": 4,
"jieji": 3,
"ewai_buff": 0
},
"5": {
"id": 5,
"jieji": 4,
"ewai_buff": 0.4
},
"6": {
"id": 6,
"jieji": 5,
"ewai_buff": 0.5
},
"7": {
"id": 7,
"jieji": 6,
"ewai_buff": 0.6
},
"8": {
"id": 8,
"jieji": 7,
"ewai_buff": 0.8
},
"9": {
"id": 9,
"jieji": 8,
"ewai_buff": 1
},
"10": {
"id": 10,
"jieji": 9,
"ewai_buff": 1.2
},
"11": {
"id": 11,
"jieji": 10,
"ewai_buff": 1.4
},
"12": {
"id": 12,
"jieji": 11,
"ewai_buff": 1.8
}
}

View File

@ -12,10 +12,10 @@
{
total: 1,
gudKey: 'payExp',
prize: [{a: 'hero', t: '4005', n: 1}]
prize: [{a: 'item', t: '4', n: 10}]
},
{
total: 1,
prize: [{a: 'hero', t: '4002', n: 1}]
prize: [{a: 'hero', t: '4012', n: 1}]
}
]

View File

@ -3276,6 +3276,135 @@
}
},
{
"hdid" : 8000, // 唯一活动id 圣诞活动
"htype" : 8,
"stype" : 800,
"ttype" : 4, // 0 按照开服时间计算1 玩家注册时间计算 4 屏蔽此活动
"stime" : 60,
"rtime" : 90,
"etime" : 90,
"name" : "sdhd_tips_1",
"icon" : "icon_xfdj",
"showtime" : "根据玩家注册时间,游戏返回时复写",
"data" : {
//任务
"task" : {
"1": {
"pval" : 1,
"stype" : "",
"cond": [],
"prize" : [
{
"a" : "item",
"t" : "1",
"n" : 500000
}
],
"des" : "intr_cszl_des_1"
},
"2": {
"pval" : 1,
"stype" : "101",
"cond": [],
"prize" : [
{
"a" : "item",
"t" : "1",
"n" : 500000
}
],
"des" : "intr_cszl_des_1"
},
"3": {
"pval" : 2,
"stype" : "101",
"cond": [],
"prize" : [
{
"a" : "item",
"t" : "1",
"n" : 500000
}
],
"des" : "intr_cszl_des_1"
}
},
//玩游戏需要消耗
"gameneed": [{"a": "attr", "t":"jinbi", "n": 1}],
//玩游戏拿分
"game": [5,10,20,30,50],
//战令
"zhanling":[
{
"val": 2500,
"pt": [{"a": "item", "t":"1", "n": 200000}],
"gj": [{"a": "item", "t":"50101", "n": 1},{"a": "item", "t":"1", "n": 500000}]
},
{
"val": 2,
"pt": [{"a": "attr", "t":"rmbmoney", "n": 500}],
"gj": [{"a": "attr", "t":"jinbi", "n": 1}]
},
{
"val": 3,
"pt": [{"a": "attr", "t":"jinbi", "n": 1}],
"gj": [{"a": "attr", "t":"jinbi", "n": 1}]
}
],
//战令PayID
"zlpayid":"ycmb_1_1",
//活动礼包
"libao": {
"1": {
"payid": "",
"buynum": 2,
"basep": [{"a": "attr", "t":"rmbmoney", "n": 1}],
"des" : "intr_cszl_des_1",
"dlz": [
{
"1": {"a": "attr", "t":"rmbmoney", "n": 1},
"2": {"a": "attr", "t":"rmbmoney", "n": 2},
"3": {"a": "attr", "t":"rmbmoney", "n": 3}
},
{
"1": {"a": "attr", "t":"rmbmoney", "n": 1},
"2": {"a": "attr", "t":"rmbmoney", "n": 2},
"3": {"a": "attr", "t":"rmbmoney", "n": 3}
}
]
},
"2": {
"payid": "ycmb_1_2",
"buynum": 2,
"basep": [{"a": "attr", "t":"rmbmoney", "n": 2}],
"des" : "intr_cszl_des_2",
"dlz": [
{
"1": {"a": "attr", "t":"rmbmoney", "n": 1},
"2": {"a": "attr", "t":"rmbmoney", "n": 2},
"3": {"a": "attr", "t":"rmbmoney", "n": 3}
},
{
"1": {"a": "attr", "t":"rmbmoney", "n": 1},
"2": {"a": "attr", "t":"rmbmoney", "n": 2},
"3": {"a": "attr", "t":"rmbmoney", "n": 3}
}
]
}
},
//签到奖励
"qiandao": [
[{"a": "attr", "t":"jinbi", "n": 1}],
[{"a": "attr", "t":"jinbi", "n": 1}],
[{"a": "attr", "t":"jinbi", "n": 1}],
[{"a": "attr", "t":"jinbi", "n": 1}],
[{"a": "attr", "t":"jinbi", "n": 1}],
[{"a": "attr", "t":"jinbi", "n": 1}],
[{"a": "attr", "t":"jinbi", "n": 1}]
]
}
},
{
"hdid" : 9000, // 唯一活动id 周末礼包
"htype" : 9, // 后端唯一识别标识
"stype" : 900, // 前端唯一识别标识(看前端需要是否修改)
@ -3330,6 +3459,62 @@
}
]
}
},
{
"hdid" : 10000, // 唯一活动id 超值好礼
"htype" : 10, // 后端唯一识别标识
"stype" : 1000, // 前端唯一识别标识(看前端需要是否修改)
"ttype" : 0, // 0 按照开服时间计算1 玩家注册时间计算 4 屏蔽此活动
"stime" : 0, // 活动开始天数
"rtime" : 30, // 活动显示结束天数
"etime" : 30, // 活动实际结束
"name": "czlibao",
"icon": "icon_czlibao",
"showtime" : "仅供参考,会复写正确值", // 自选礼包,如果存在多个活动,计费点不要设置一样;如果是一样,可能会存在付费一次,购买多次。
"data" : {
//活动文本描述
intr: "czlbtips_1",
intr: "czlbtips_2",
//礼包
//礼包
gift: [
{
id: '1',
name: 'czlbtips_4',
need: [],
free: false,
payId: 'czlb_1',
buyNum: 1,
prize:{"1":[{'a': 'item', 't': '13', 'n': 600}],
"2":[{'a': 'item', 't': '13', 'n': 600}],
"3":[{'a': 'item', 't': '13', 'n': 600}]
}
},
{
id: '2',
name: 'czlbtips_5',
need: [],
free: false,
payId: 'czlb_2',
buyNum: 1,
prize: {"1":[{'a': 'item', 't': '13', 'n': 600}],
"2":[{'a': 'item', 't': '13', 'n': 600}],
"3":[{'a': 'item', 't': '13', 'n': 600}]
}
},
{
id: '3',
name: 'czlbtips_6',
need: [],
free: false,
payId: 'czlb_3',
buyNum: 1,
prize: {"1":[{'a': 'item', 't': '13', 'n': 600}],
"2":[{'a': 'item', 't': '13', 'n': 600}],
"3":[{'a': 'item', 't': '13', 'n': 600}]
}
}
]
}
}
]

View File

@ -116,7 +116,7 @@
"6": {
"id": 6,
"name": "intr_item_name_6",
"undefined": "每次进行干部特训需要消耗1个特训指南",
"undefined": "用于干部特训,消耗特训指南挑战成功后可获得干部碎片",
"type": 1,
"sort": 1,
"colour": 4,
@ -155,7 +155,7 @@
"9": {
"id": 9,
"name": "intr_item_name_9",
"undefined": "润滑剂,用于专属武器升星",
"undefined": "稀有材料,可用于专属武器升星",
"type": 1,
"sort": 1,
"colour": 4,
@ -464,7 +464,7 @@
"24": {
"id": 24,
"name": "intr_item_name_24",
"undefined": "使用后直接快速探险2小时",
"undefined": "用于主线探险,使用后直接获得快速探险2小时的收益",
"type": 2,
"sort": 1,
"colour": 5,
@ -1204,7 +1204,7 @@
"607": {
"id": 607,
"name": "intr_item_name_607",
"undefined": "使用后可以自选艾达,加尔西亚,葛丽特中一个干部的碎片",
"undefined": "使用后可以自选艾达,加尔西亚,葛丽特,达奇,汉塞尔中一个干部的碎片",
"type": 2,
"sort": 1,
"colour": 5,
@ -2072,6 +2072,49 @@
"payId": "",
"advancedEffects": "ani_xiangzikuang"
},
"637": {
"id": 637,
"name": "intr_item_name_637",
"type": 2,
"sort": 1,
"colour": 6,
"way": [],
"go": "",
"icon": "icon_heroBox_3",
"sicon": "icon_heroBox_3",
"describe": "intr_item_describe_637",
"useNeed": [],
"usePrize": [],
"selecPrize": [
{
"a": "hero",
"t": "5001",
"n": 1
},
{
"a": "hero",
"t": "5002",
"n": 1
},
{
"a": "hero",
"t": "5003",
"n": 1
},
{
"a": "hero",
"t": "5004",
"n": 1
},
{
"a": "hero",
"t": "5005",
"n": 1
}
],
"payId": "",
"advancedEffects": "ani_xiangzihong"
},
"1001": {
"id": 1001,
"name": "intr_item_name_1001",

View File

@ -1,5 +1,41 @@
{
"dengjijijin": [
{
"type": "dengjijijin",
"total": 10,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 300
}
],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 8000
}
]
},
{
"type": "dengjijijin",
"total": 15,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 300
}
],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
}
]
},
{
"type": "dengjijijin",
"total": 20,
@ -14,7 +50,7 @@
{
"a": "attr",
"t": "rmbmoney",
"n": 1700
"n": 2000
}
]
},
@ -32,7 +68,7 @@
{
"a": "attr",
"t": "rmbmoney",
"n": 1700
"n": 2000
}
]
},
@ -50,7 +86,7 @@
{
"a": "attr",
"t": "rmbmoney",
"n": 1700
"n": 2000
}
]
},
@ -68,7 +104,7 @@
{
"a": "attr",
"t": "rmbmoney",
"n": 1700
"n": 2000
}
]
},
@ -86,7 +122,7 @@
{
"a": "attr",
"t": "rmbmoney",
"n": 1700
"n": 2000
}
]
},
@ -104,43 +140,7 @@
{
"a": "attr",
"t": "rmbmoney",
"n": 1700
}
]
},
{
"type": "dengjijijin",
"total": 50,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 300
}
],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 1700
}
]
},
{
"type": "dengjijijin",
"total": 55,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 300
}
],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 1700
"n": 2000
}
]
}
@ -148,104 +148,104 @@
"guanqiajijin": [
{
"type": "guanqiajijin",
"total": 30,
"total": 10,
"pt": [],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
"a": "item",
"t": "1",
"n": 3000000
}
],
"des": "guanqiajijin_des_1"
},
{
"type": "guanqiajijin",
"total": 50,
"total": 20,
"pt": [],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
"a": "item",
"t": "1",
"n": 3000000
}
],
"des": "guanqiajijin_des_2"
},
{
"type": "guanqiajijin",
"total": 70,
"total": 40,
"pt": [],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
"a": "item",
"t": "1",
"n": 3000000
}
],
"des": "guanqiajijin_des_3"
},
{
"type": "guanqiajijin",
"total": 90,
"total": 60,
"pt": [],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
"a": "item",
"t": "1",
"n": 3000000
}
],
"des": "guanqiajijin_des_4"
},
{
"type": "guanqiajijin",
"total": 110,
"total": 80,
"pt": [],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
"a": "item",
"t": "1",
"n": 3000000
}
],
"des": "guanqiajijin_des_5"
},
{
"type": "guanqiajijin",
"total": 150,
"total": 100,
"pt": [],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
"a": "item",
"t": "1",
"n": 3000000
}
],
"des": "guanqiajijin_des_6"
},
{
"type": "guanqiajijin",
"total": 180,
"total": 120,
"pt": [],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
"a": "item",
"t": "1",
"n": 3000000
}
],
"des": "guanqiajijin_des_7"
},
{
"type": "guanqiajijin",
"total": 250,
"total": 140,
"pt": [],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 2000
"a": "item",
"t": "1",
"n": 3000000
}
],
"des": "guanqiajijin_des_8"
@ -254,37 +254,37 @@
"dayjijin": [
{
"type": "dayjijin",
"total": 5,
"total": 10,
"pt": [
{
"a": "item",
"t": "23",
"n": 20000
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 5
}
]
},
{
"type": "dayjijin",
"total": 15,
"pt": [
{
"a": "item",
"t": "2",
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "2",
"n": 2000
"t": "4",
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 20,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 10
}
]
},
@ -292,35 +292,53 @@
"type": "dayjijin",
"total": 30,
"pt": [
{
"a": "item",
"t": "23",
"n": 20000
}
],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 888
}
]
},
{
"type": "dayjijin",
"total": 45,
"pt": [
{
"a": "item",
"t": "2",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "615",
"n": 1
"t": "4",
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 40,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 50,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 10
}
]
},
@ -329,34 +347,52 @@
"total": 60,
"pt": [
{
"a": "item",
"t": "23",
"n": 20000
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 5
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 75,
"total": 70,
"pt": [
{
"a": "item",
"t": "2",
"n": 300
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "2",
"n": 2000
"t": "4",
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 80,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 10
}
]
},
@ -365,34 +401,52 @@
"total": 90,
"pt": [
{
"a": "item",
"t": "23",
"n": 20000
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 888
"a": "item",
"t": "4",
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 105,
"total": 100,
"pt": [
{
"a": "item",
"t": "2",
"n": 300
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "615",
"n": 1
"t": "4",
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 110,
"pt": [
{
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 10
}
]
},
@ -401,106 +455,52 @@
"total": 120,
"pt": [
{
"a": "item",
"t": "23",
"n": 20000
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 5
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 135,
"total": 130,
"pt": [
{
"a": "item",
"t": "2",
"n": 400
}
],
"tq": [
{
"a": "item",
"t": "2",
"n": 2000
}
]
},
{
"type": "dayjijin",
"total": 150,
"pt": [
{
"a": "item",
"t": "23",
"n": 20000
}
],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 888
}
]
},
{
"type": "dayjijin",
"total": 165,
"pt": [
{
"a": "item",
"t": "2",
"n": 400
}
],
"tq": [
{
"a": "item",
"t": "615",
"n": 1
}
]
},
{
"type": "dayjijin",
"total": 180,
"pt": [
{
"a": "item",
"t": "23",
"n": 20000
"n": 200
}
],
"tq": [
{
"a": "item",
"t": "4",
"n": 5
"n": 10
}
]
},
{
"type": "dayjijin",
"total": 200,
"total": 140,
"pt": [
{
"a": "item",
"t": "2",
"n": 500
"a": "attr",
"t": "rmbmoney",
"n": 200
}
],
"tq": [
{
"a": "attr",
"t": "rmbmoney",
"n": 1888
"a": "item",
"t": "4",
"n": 10
}
]
}

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +1,19 @@
{
//每日充值要求
dayPayNeed: 6,
data: [
{
time: 1296000,
tasks: [
{ total: 1, prize: [{a: 'attr', t: 'jinbi', n: 20000},{a: 'item', t: '1', n: 100000},{a: 'item', t: '4', n: 5}] },
{ total: 2, prize: [{a: 'attr', t: 'jinbi', n: 40000},{a: 'item', t: '1', n: 200000},{a: 'item', t: '12', n: 200}] },
{ total: 3, prize: [{a: 'attr', t: 'jinbi', n: 60000},{a: 'item', t: '1', n: 300000},{a: 'item', t: '4', n: 10}] },
{ total: 4, prize: [{a: 'attr', t: 'jinbi', n: 80000},{a: 'item', t: '1', n: 400000},{a: 'item', t: '12', n: 200}] },
{ total: 5, prize: [{a: 'attr', t: 'jinbi', n: 100000},{a: 'item', t: '1', n: 500000},{a: 'item', t: '12', n: 200}] },
{ total: 6, prize: [{a: 'attr', t: 'jinbi', n: 120000},{a: 'item', t: '1', n: 600000},{a: 'item', t: '607', n: 20}] },
{ total: 7, prize: [{a: 'attr', t: 'jinbi', n: 140000},{a: 'item', t: '1', n: 700000},{a: 'item', t: '12', n: 200}] },
{ total: 8, prize: [{a: 'attr', t: 'jinbi', n: 160000},{a: 'item', t: '1', n: 800000},{a: 'item', t: '12', n: 200}] },
{ total: 9, prize: [{a: 'attr', t: 'jinbi', n: 180000},{a: 'item', t: '1', n: 900000},{a: 'item', t: '4', n: 10}] },
{ total: 10, prize: [{a: 'attr', t: 'jinbi', n: 200000},{a: 'item', t: '1', n: 1000000},{a: 'item', t: '12', n: 200}] },
{ total: 11, prize: [{a: 'attr', t: 'jinbi', n: 220000},{a: 'item', t: '1', n: 1100000},{a: 'item', t: '12', n: 200}] },
{ total: 12, prize: [{a: 'attr', t: 'jinbi', n: 240000},{a: 'item', t: '1', n: 1200000},{a: 'item', t: '4', n: 10}] },
{ total: 13, prize: [{a: 'attr', t: 'jinbi', n: 260000},{a: 'item', t: '1', n: 1300000},{a: 'item', t: '12', n: 200}] },
{ total: 14, prize: [{a: 'attr', t: 'jinbi', n: 280000},{a: 'item', t: '1', n: 1400000},{a: 'item', t: '12', n: 200}] },
{ total: 15, prize: [{a: 'attr', t: 'jinbi', n: 300000},{a: 'item', t: '1', n: 1500000},{a: 'item', t: '600', n: 20}] }
]
},
{
time: 1296000,
tasks: [
{ total: 1, prize: [{a: 'attr', t: 'jinbi', n: 20000},{a: 'item', t: '1', n: 100000},{a: 'item', t: '4', n: 5}] },
{ total: 2, prize: [{a: 'attr', t: 'jinbi', n: 40000},{a: 'item', t: '1', n: 200000},{a: 'item', t: '12', n: 200}] },
{ total: 3, prize: [{a: 'attr', t: 'jinbi', n: 60000},{a: 'item', t: '1', n: 300000},{a: 'item', t: '4', n: 10}] },
{ total: 4, prize: [{a: 'attr', t: 'jinbi', n: 80000},{a: 'item', t: '1', n: 400000},{a: 'item', t: '12', n: 200}] },
{ total: 5, prize: [{a: 'attr', t: 'jinbi', n: 100000},{a: 'item', t: '1', n: 500000},{a: 'item', t: '12', n: 200}] },
{ total: 6, prize: [{a: 'attr', t: 'jinbi', n: 120000},{a: 'item', t: '1', n: 600000},{a: 'item', t: '607', n: 20}] },
{ total: 7, prize: [{a: 'attr', t: 'jinbi', n: 140000},{a: 'item', t: '1', n: 700000},{a: 'item', t: '12', n: 200}] },
{ total: 8, prize: [{a: 'attr', t: 'jinbi', n: 160000},{a: 'item', t: '1', n: 800000},{a: 'item', t: '12', n: 200}] },
{ total: 9, prize: [{a: 'attr', t: 'jinbi', n: 180000},{a: 'item', t: '1', n: 900000},{a: 'item', t: '4', n: 10}] },
{ total: 10, prize: [{a: 'attr', t: 'jinbi', n: 200000},{a: 'item', t: '1', n: 1000000},{a: 'item', t: '12', n: 200}] },
{ total: 11, prize: [{a: 'attr', t: 'jinbi', n: 220000},{a: 'item', t: '1', n: 1100000},{a: 'item', t: '12', n: 200}] },
{ total: 12, prize: [{a: 'attr', t: 'jinbi', n: 240000},{a: 'item', t: '1', n: 1200000},{a: 'item', t: '4', n: 10}] },
{ total: 13, prize: [{a: 'attr', t: 'jinbi', n: 260000},{a: 'item', t: '1', n: 1300000},{a: 'item', t: '12', n: 200}] },
{ total: 14, prize: [{a: 'attr', t: 'jinbi', n: 280000},{a: 'item', t: '1', n: 1400000},{a: 'item', t: '12', n: 200}] },
{ total: 15, prize: [{a: 'attr', t: 'jinbi', n: 300000},{a: 'item', t: '1', n: 1500000},{a: 'item', t: '600', n: 20}] }
]
}
tasks: [
{ day: 1, payid:"jitianlibao_1" },
{ day: 2, payid:"jitianlibao_2" },
{ day: 3, payid:"jitianlibao_3" },
{ day: 4, payid:"jitianlibao_4" },
{ day: 5, payid:"jitianlibao_5" },
{ day: 6, payid:"jitianlibao_6" },
{ day: 7, payid:"jitianlibao_7" },
{ day: 8, payid:"jitianlibao_8" },
{ day: 9, payid:"jitianlibao_9" },
{ day: 10, payid:"jitianlibao_10" },
{ day: 11, payid:"jitianlibao_11" },
{ day: 12, payid:"jitianlibao_12" },
{ day: 13, payid:"jitianlibao_13" },
{ day: 14, payid:"jitianlibao_14" },
{ day: 15, payid:"jitianlibao_15" }
]
}

View File

@ -1,6 +1,7 @@
{
"shouchong1": {
"paynum": 6,
"payid":"shouchong_1",
"cartoon": {
"hero": 5001
},
@ -45,6 +46,7 @@
},
"shouchong2": {
"paynum": 30,
"payid":"shouchong_2",
"cartoon": {
"img": 5001
},
@ -89,6 +91,7 @@
},
"shouchong3": {
"paynum": 98,
"payid":"shouchong_3",
"cartoon": {
"hero": 5002
},

View File

@ -1011,7 +1011,7 @@
"mofa": 0,
"islong": 0
},
"describe": "普通攻击替换为随机攻击3个目标造成基础伤害95%的物理伤害"
"describe": "普通攻击替换为随机攻击2个目标造成基础伤害95%的物理伤害"
},
"4002201": {
"skillid": 4002201,
@ -1029,7 +1029,7 @@
"mofa": 0,
"islong": 0
},
"describe": "普通攻击替换为随机攻击3个目标造成基础伤害114%的物理伤害"
"describe": "普通攻击替换为随机攻击2个目标造成基础伤害114%的物理伤害"
},
"4003200": {
"skillid": 4003200,
@ -1202,7 +1202,7 @@
"order": "rand",
"limit": 6,
"data": {
"pro": 0.11
"pro": 0.13
},
"chkdata": {},
"ext": {},
@ -1217,7 +1217,7 @@
"order": "rand",
"limit": 6,
"data": {
"pro": 0.11
"pro": 0.13
},
"chkdata": {},
"ext": {},

View File

@ -739,7 +739,7 @@
"sxleixing": "zhongdu",
"buff_type": 2,
"xiaoguocanshu": {
"pro": 0.15,
"pro": 0.18,
"type": "hp"
},
"round": 2,
@ -759,7 +759,7 @@
"sxleixing": "zhongdu",
"buff_type": 2,
"xiaoguocanshu": {
"pro": 0.15,
"pro": 0.18,
"type": "hp"
},
"round": 2,

257
src/json/tuisonglibao.json Normal file
View File

@ -0,0 +1,257 @@
{
"1": {
"id": 1,
"type": 1,
"num": [
5
],
"payId": [
"guanqialibao_1",
"guanqialibao_2",
"guanqialibao_3"
],
"time": 3600,
"displayCD": 7200,
"scale": 500
},
"2": {
"id": 2,
"type": 1,
"num": [
10
],
"payId": [
"guanqialibao_1",
"guanqialibao_2"
],
"time": 3600,
"displayCD": 7200,
"scale": 501
},
"3": {
"id": 3,
"type": 1,
"num": [
20
],
"payId": [
"guanqialibao_1",
"guanqialibao_3"
],
"time": 3600,
"displayCD": 7200,
"scale": 502
},
"4": {
"id": 4,
"type": 2,
"num": [
{
"a": "item",
"t": "1"
}
],
"payId": [
"daojulibao_1",
"daojulibao_2"
],
"time": 3600,
"displayCD": 7200,
"scale": 503
},
"5": {
"id": 5,
"type": 2,
"num": [
{
"a": "item",
"t": "2"
}
],
"payId": [
"daojulibao_1",
"daojulibao_3"
],
"time": 3600,
"displayCD": 7200,
"scale": 504
},
"6": {
"id": 6,
"type": 2,
"num": [
{
"a": "attr",
"t": "jinbi"
}
],
"payId": [
"daojulibao_1",
"daojulibao_2",
"daojulibao_3"
],
"time": 3600,
"displayCD": 7200,
"scale": 505
},
"7": {
"id": 7,
"type": 3,
"num": [
1
],
"payId": [
"zhanbailibao_1",
"zhanbailibao_2",
"zhanbailibao_3"
],
"time": 3600,
"displayCD": 7200,
"scale": 506
},
"8": {
"id": 8,
"type": 4,
"num": [
3
],
"payId": [
"choukalibao_1",
"choukalibao_2",
"choukalibao_3"
],
"time": 3600,
"displayCD": 7200,
"scale": 507
},
"9": {
"id": 9,
"type": 5,
"num": [
31
],
"payId": [
"lv30"
],
"time": 3600,
"displayCD": 3600,
"scale": 3300
},
"10": {
"id": 10,
"type": 5,
"num": [
45
],
"payId": [
"lv40"
],
"time": 3600,
"displayCD": 3600,
"scale": 3300
},
"11": {
"id": 11,
"type": 5,
"num": [
50
],
"payId": [
"lv55"
],
"time": 3600,
"displayCD": 3600,
"scale": 2000
},
"12": {
"id": 12,
"type": 5,
"num": [
53
],
"payId": [
"lv58"
],
"time": 3600,
"displayCD": 3600,
"scale": 2000
},
"13": {
"id": 13,
"type": 5,
"num": [
56
],
"payId": [
"lv60"
],
"time": 3600,
"displayCD": 3600,
"scale": 2000
},
"14": {
"id": 14,
"type": 5,
"num": [
60
],
"payId": [
"lv63"
],
"time": 3600,
"displayCD": 3600,
"scale": 2000
},
"15": {
"id": 15,
"type": 5,
"num": [
63
],
"payId": [
"lv66"
],
"time": 3600,
"displayCD": 3600,
"scale": 2000
},
"16": {
"id": 16,
"type": 5,
"num": [
66
],
"payId": [
"lv69"
],
"time": 3600,
"displayCD": 3600,
"scale": 1800
},
"17": {
"id": 17,
"type": 5,
"num": [
68
],
"payId": [
"lv72"
],
"time": 3600,
"displayCD": 3600,
"scale": 1800
},
"18": {
"id": 18,
"type": 5,
"num": [
70
],
"payId": [
"lv75"
],
"time": 3600,
"displayCD": 3600,
"scale": 1800
}
}

View File

@ -2,35 +2,35 @@
{
payId: '128jijin',
prize: [
{a:'item',t:'4',n:50},
{a:'item',t:'617',n:1},
{a:'attr',t:'rmbmoney',n:1000},
{a:'item',t:'9',n:1000},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'9',n:1000},
{a:'item',t:'4',n:10},
{a:'attr',t:'rmbmoney',n:500},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'9',n:1000},
{a:'item',t:'4',n:10},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'9',n:1000},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'9',n:3000},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'9',n:3000},
{a:'attr',t:'rmbmoney',n:500},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'9',n:2000},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'609',n:1},
{a:'item',t:'4',n:10},
{a:'attr',t:'rmbmoney',n:500},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'18',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'6',n:20},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'9',n:3000},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'4',n:10},
{a:'attr',t:'rmbmoney',n:500},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'20',n:200},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'item',t:'9',n:3000},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:300},
{a:'attr',t:'rmbmoney',n:1000},
{a:'attr',t:'rmbmoney',n:500},
{a:'item',t:'628',n:1},
],
//奖励总价值X钻
@ -43,36 +43,36 @@
{
payId: '328jijin',
prize: [
{a:'item',t:'4',n:30},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'item',t:'10',n:300},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'item',t:'628',n:1},
{a:'item',t:'4',n:20},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'item',t:'628',n:1},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'item',t:'628',n:1},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'item',t:'628',n:1},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'item',t:'4',n:20},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'item',t:'611',n:1},
{a:'item',t:'617',n:2},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'10',n:400},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'10',n:400},
{a:'item',t:'4',n:20},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'10',n:400},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'10',n:400},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'10',n:400},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'4',n:20},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'10',n:400},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'10',n:400},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'attr',t:'rmbmoney',n:2000},
{a:'item',t:'10',n:400},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:800},
{a:'attr',t:'rmbmoney',n:1500},
{a:'item',t:'617',n:1},
],
//奖励总价值X钻
num1: 70080,

648
src/path_20231215.ts Normal file
View File

@ -0,0 +1,648 @@
import {ctor} from "./global";
import {EmailFun} from "./public/email";
import {initMongoDB} from "./setMongodb";
// 首冲
async function shouChongReSet() {
let shouchong = {
"shouchong1": {
"paynum": 6,
"cartoon": {
"hero": 5001
},
"prize": [
[
{
"a": "hero",
"t": "5001",
"n": 1
},
{
"a": "attr",
"t": "jinbi",
"n": 100000
}
],
[
{
"a": "item",
"t": "12",
"n": 200
},
{
"a": "attr",
"t": "jinbi",
"n": 200000
}
],
[
{
"a": "item",
"t": "12",
"n": 200
},
{
"a": "attr",
"t": "jinbi",
"n": 300000
}
]
]
},
"shouchong2": {
"paynum": 30,
"cartoon": {
"img": 5001
},
"prize": [
[
{
"a": "equip",
"t": "1009",
"n": 1
},
{
"a": "equip",
"t": "2009",
"n": 1
}
],
[
{
"a": "equip",
"t": "3009",
"n": 1
},
{
"a": "item",
"t": "2",
"n": 1000
}
],
[
{
"a": "equip",
"t": "4009",
"n": 1
},
{
"a": "item",
"t": "2",
"n": 1000
}
]
]
},
"shouchong3": {
"paynum": 98,
"cartoon": {
"hero": 5002
},
"prize": [
[
{
"a": "hero",
"t": "5002",
"n": 1
},
{
"a": "item",
"t": "4",
"n": 10
}
],
[
{
"a": "equip",
"t": "1010",
"n": 1
},
{
"a": "item",
"t": "2",
"n": 2000
}
],
[
{
"a": "equip",
"t": "3010",
"n": 1
},
{
"a": "item",
"t": "2",
"n": 2000
}
]
]
}
};
let users = await G.mongodb.collection("user").find({}, {
projection: {uid: 1, payExp: 1}
}).toArray();
for (let i = 0; i < users.length; i++) {
let user = users[i];
let data = await G.mongodb.cEvent("shouchong").findOne({uid: user.uid});
let send_prize = [];
for (let key in shouchong) {
// 充值不足
if (user.payExp < shouchong[key]["paynum"] * 10) {
continue
}
// 奖励已经领取完毕
if (data && data.receive[key] && data.receive[key].length >= shouchong[key]["prize"].length) {
continue
}
// 补发未领取奖励
for (let i = 0; i < shouchong[key]["prize"].length; i++) {
if (data.receive[key][i]) {
continue
}
data.receive[key][i] = G.time;
send_prize.concat(shouchong[key]["prize"][i]);
}
}
if (send_prize.length <= 0) continue;
let title = "首充未领取奖励补发";
let content = "首充未领取奖励补发";
// 发放邮件
await EmailFun.addEmail({
uid: user.uid,
type: "system",
title: title,
content: content,
prize: send_prize,
});
// 设置奖励发放记录
await G.mongodb.cEvent("shouchong").updateOne({
uid: user.uid
}, {"$set": {receive: data.receive, patch: 1}});
}
}
/*线
线*30
线*10000
线*1*500w
* */
async function yuekaSendPrize() {
let w = {
key: {$in: ["chaozhiyueka", "zhizunyueka", "zhongshenka"]},
del_time: {$exists: false}
};
let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter(
// 过滤没有结束时间 或者 有结束时间 但是没有过期的
(pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time)
);
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
users.forEach(user => {
let uid = user.uid;
let proId = user.key;
if (!uid2Prize[uid]) uid2Prize[uid] = [];
switch (proId) {
case "chaozhiyueka":
uid2Prize[uid].push({a: "item", t: "4", n: 30});
break;
case "zhizunyueka":
uid2Prize[uid].push({a: "attr", t: "rmbmoney", n: 10000})
break;
case "zhongshenka":
uid2Prize[uid].push({a: "item", t: "1", n: 5000000})
uid2Prize[uid].push({a: "hero", t: "4012", n: 1})
break;
}
});
let title = "月卡奖励发放";
let content = "月卡奖励发放";
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
// 发放邮件
await EmailFun.addEmail({
uid: uid,
type: "system",
title: title,
content: content,
prize: sendPrize,
});
// 处理重复执行
await G.mongodb.collection("payLogNew").updateMany(
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
)
}
}
/*
1
2*680*1
3*300*30
4*300*1000
5*680*10
* */
async function tequanLiBaoSendPrize() {
let w = {
key: {$in: ["qingbaotequan", "zuozhantequan", "caifutequan", "jiubatequan"]},
del_time: {$exists: false}
};
let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter(
// 过滤没有结束时间 或者 有结束时间 但是没有过期的
(pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time)
);
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
users.forEach(user => {
let uid = user.uid;
let proId = user.key;
if (!uid2Prize[uid]) uid2Prize[uid] = [];
switch (proId) {
case "qingbaotequan":
uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 680});
uid2Prize[uid].push({"a": "item", "t": "609", "n": 1});
break;
case "zuozhantequan":
uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 300});
uid2Prize[uid].push({"a": "item", "t": "24", "n": 30});
break;
case "caifutequan":
uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 300})
uid2Prize[uid].push({"a": "attr", "t": "jinbi", "n": 10000000})
break;
case "jiubatequan":
uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 680});
uid2Prize[uid].push({"a": "item", "t": "4", "n": 10});
break;
}
});
let title = "特权奖励发放";
let content = "特权奖励发放";
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
// 发放邮件
await EmailFun.addEmail({
uid: uid,
type: "system",
title: title,
content: content,
prize: sendPrize,
});
await G.mongodb.collection("payLogNew").updateMany(
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
)
}
}
/*
VIP礼包到未购买状态
* */
async function resetVipLiBao() {
let w = {"type": "chongzhi"};
await G.mongodb.collection("playerInfo").updateMany(w, {"giftBy": {}});
}
/*
1线
2线328*20,
3线648*40,
* */
async function rcjhReSet() {
let proId328 = ["ycmb_1_5", "ycmb_2_4", "ycmb_3_5", "ycmb_4_5", "ycmb_5_5"];
let proId648 = ["ycmb_1_6", "ycmb_2_5", "ycmb_3_6", "ycmb_4_6", "ycmb_5_6"];
let w = {
key: {$in: [].concat(proId328, proId648)},
del_time: {$exists: false}
};
let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter(
// 过滤没有结束时间 或者 有结束时间 但是没有过期的
(pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time)
);
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
users.forEach(user => {
let uid = user.uid;
let proId = user.key;
if (!uid2Prize[uid]) {
uid2Prize[uid] = []
}
if (proId328.includes(proId)) {
uid2Prize[uid].push({"a": "item", "t": "4", "n": 20})
} else if (proId648.includes(proId)) {
uid2Prize[uid].push({"a": "item", "t": "4", "n": 40})
}
});
let title = "人才计划奖励发放";
let content = "人才计划奖励发放";
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
// 发放邮件
await EmailFun.addEmail({
uid: uid,
type: "system",
title: title,
content: content,
prize: sendPrize,
});
await G.mongodb.collection("payLogNew").updateMany(
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
)
}
}
/*
1
2
3
* */
async function dengjiJiJinReSet() {
let w = {key: "dengjijijin", del_time: {$exists: false}}
// 激活了的玩家
let _payList = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter(
// 过滤没有结束时间 或者 有结束时间 但是没有过期的
(pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time)
);
let title = "等级基金未领取奖励发放";
let content = "等级基金未领取奖励发放";
let prizeList = G.gc.jijin["dengjijijin"];
let _users = await G.mongodb.cEvent("dengjijijin").find(
{"uid": {"$in": _payList.map(pay => pay.uid)}}
).toArray()
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
_users.forEach((user) => {
let uid = user.uid;
let idx2Type2Bool = user.rec;
if (!uid2Prize[uid]) uid2Prize[uid] = [];
// 没领的全发
prizeList.forEach((con, idx) => {
// 普通奖励没领
if (!idx2Type2Bool[idx]?.pt) {
uid2Prize[uid].push(...con.pt)
}
// 高级奖励没领
if (!idx2Type2Bool[idx]?.tq) {
uid2Prize[uid].push(...con.pt)
}
});
})
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
// 发放邮件
await EmailFun.addEmail({
uid: uid,
type: "system",
title: title,
content: content,
prize: sendPrize,
});
await G.mongodb.collection("payLogNew").updateMany(
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
)
// 基金数据清除
await G.mongodb.collection("event").updateMany(
{type: "dengjijijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}}
);
}
}
/*
1
2
3
* */
async function guanqiaJiJinReSet() {
let w = {key: "guanqiajijin"};
// 激活了的玩家
let _payList = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter(
// 过滤没有结束时间 或者 有结束时间 但是没有过期的
(pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time)
);
let title = "关卡基金未领取奖励发放";
let content = "关卡基金未领取奖励发放";
let prizeList = G.gc.jijin["guanqiajijin"];
// 没激活不处理
let _users = await G.mongodb.cEvent("guanqiajijin").find(
{
"uid": {"$in": _payList.map(pay => pay.uid)}
},
{projection: {_id: 0}}
).toArray();
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
_users.forEach(user => {
let uid = user.uid;
let idx2Type2Bool = user.rec;
if (!uid2Prize[uid]) uid2Prize[uid] = [];
// 没领的全发
prizeList.forEach((con, idx) => {
// 普通奖励没领
if (!idx2Type2Bool[idx]?.pt) {
uid2Prize[uid].push(...con.pt)
}
// 高级奖励没领
if (!idx2Type2Bool[idx]?.tq) {
uid2Prize[uid].push(...con.tq)
}
});
})
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
// 发放邮件
await EmailFun.addEmail({
uid: uid,
type: "system",
title: title,
content: content,
prize: sendPrize,
});
await G.mongodb.collection("payLogNew").updateMany(
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
)
// 基金数据清除
await G.mongodb.collection("event").updateMany(
{type: "guanqiajijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}}
);
}
}
/*
1
2
3
* */
async function dayjiJiJinReSet() {
let w = {key: "dayjijin"};
// 激活了的玩家
let _payList = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter(
// 过滤没有结束时间 或者 有结束时间 但是没有过期的
(pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time)
);
let title = "通行证基金未领取奖励发放";
let content = "通行证基金未领取奖励发放";
let prizeList = G.gc.jijin["dayjijin"];
// 没激活不处理
let _users = await G.mongodb.cEvent("dayjijin").find(
{uid: {$in: _payList.map(pay => pay.uid)}}
).toArray();
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
_users.forEach(user => {
let uid = user.uid;
let idx2Type2Bool = user.rec;
if (!uid2Prize[uid]) uid2Prize[uid] = [];
// 没领的全发
prizeList.forEach((con, idx) => {
// 普通奖励没领
if (!idx2Type2Bool[idx]?.pt) {
uid2Prize[uid].push(...con.pt)
}
// 高级奖励没领
if (!idx2Type2Bool[idx]?.tq) {
uid2Prize[uid].push(...con.tq)
}
});
})
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
// 发放邮件
await EmailFun.addEmail({
uid: uid,
type: "system",
title: title,
content: content,
prize: sendPrize,
});
await G.mongodb.collection("payLogNew").updateMany(
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
)
// 基金数据清除
await G.mongodb.collection("event").updateMany(
{type: "dayjijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}}
);
}
}
/*
1128328
2
3
* */
async function yueJiJinReSet() {
let proIdList = [
"128jijin",
"328jijin",
];
let w = {key: {$in: proIdList}};
// 激活了的玩家
let _payList = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter(
// 过滤没有结束时间 或者 有结束时间 但是没有过期的
(pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time)
);
// 没激活不处理
let _users = await G.mongodb.collection("event").find(
{
"type": {"$in": proIdList},
"uid": {"$in": _payList.map(pay => pay.uid)}
}
).toArray();
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
let prizeList128 = G.gc.yuedujijin.find(v => v.payId == "128jijin");
let prizeList328 = G.gc.yuedujijin.find(v => v.payId == "328jijin");
_users.forEach(user => {
let uid = user.uid;
let gotarr = user.rec;
if (!uid2Prize[uid]) uid2Prize[uid] = [];
let prizeList = user.type == "128jijin" ? prizeList128.prize : prizeList328.prize;
// 没领的全发
prizeList.forEach((onePrize, idx) => {
// 领过了
if (gotarr.includes(idx)) {
return
}
uid2Prize[uid].push(onePrize)
});
})
let title = "月度基金未领取奖励发放";
let content = "月度基金未领取奖励发放";
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
// 发放邮件
await EmailFun.addEmail({
uid: uid,
type: "system",
title: title,
content: content,
prize: sendPrize,
});
await G.mongodb.collection("payLogNew").updateMany(
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
)
// 基金数据清除
await G.mongodb.collection("event").updateMany(
{type: {$in: proIdList}, uid: uid}, {"$set": {uid: `${uid}_patch_del`}}
);
}
}
async function start() {
//连接mongodb
await initMongoDB();
// 首冲调整
await shouChongReSet();
// 超值月卡、至尊月卡、永久卡的线上玩家脚本
await yuekaSendPrize();
// 特权礼包脚本需求
await tequanLiBaoSendPrize();
// 刷新所有玩家各档位VIP礼包到未购买状态
await resetVipLiBao();
// 人才计划调整
await rcjhReSet();
// 等级基金调整
await dengjiJiJinReSet();
// 关卡基金调整
await guanqiaJiJinReSet();
// 通行证基金调整
await dayjiJiJinReSet();
// 月基金调整
await yueJiJinReSet();
}
//定义全局变量
ctor();
//启动服务
start().then(() => {
process.exit()
});

View File

@ -17,7 +17,7 @@ export class EquipFun {
//穿戴装备时该装备穿戴在另一个英雄身上
if (change.wearaId != undefined && equip.wearaId && equip.wearaId != change.wearaId && changeHero) {
let takeHero = await G.redis.get('hero', call.uid, equip.wearaId);
let takeHero = await HeroFun.getHero(call, equip.wearaId);
if (takeHero) {
let _equip = Object.assign({}, takeHero.equip);
_equip[G.gc.equip[equip.equipId].type] = '';

View File

@ -24,9 +24,9 @@ export class HeroFun {
hero.zhanli = HeroShared.getHeroZhanLi(hero, call.otherBuff, Object.values(call.conn.gud.heroPos).indexOf(hero._id));
change.zhanli = hero.zhanli;
for (let k in change) {
await G.redis.set('hero', call.uid, hero._id, k as any, change[k]);
}
// for (let k in change) {
// await G.redis.set('hero', call.uid, hero._id, k as any, change[k]);
// }
await G.mongodb.collection('hero').updateOne({uid: call.uid, _id: new ObjectId(hero._id)}, {
$set: {
@ -41,13 +41,13 @@ export class HeroFun {
/**获取英雄 */
static async getHero(call: call, oid: string) {
let data = await G.redis.get('hero', call.uid, oid);
if (!data) { // 如果redis中的hero数据被清理掉 直接查询数据库
//let data = await G.redis.get('hero', call.uid, oid);
//if (!data) { // 如果redis中的hero数据被清理掉 直接查询数据库
let {_id, ...info} = await G.mongodb.collection("hero").findOne({
_id: G.mongodb.conversionId(oid)
})
data = Object.assign({_id: _id.toHexString()}, info)
}
let data = Object.assign({_id: _id.toHexString()}, info)
//}
return data
}

View File

@ -454,12 +454,12 @@ export class PlayerFun {
//hero/apiGetList里会G.redis.set('hero', call.uid, kvList);
//在这之后再执行下面的代码则不会报错
if (await G.redis.type('hero', call.uid) != null) {
G.redis.set('hero', call.uid, id, {
_id: id,
...ops
});
}
// if (await G.redis.type('hero', call.uid) != null) {
// G.redis.set('hero', call.uid, id, {
// _id: id,
// ...ops
// });
// }
call.addEventMsg('msg_s2c/HeroChange', id, {

View File

@ -38,7 +38,7 @@ export class ShiwuFun {
//穿戴饰物时该装备穿戴在另一个英雄身上
if (change.wearId != undefined && shiwu.wearId && shiwu.wearId != change.wearId && changeHero) {
let takeHero = await G.redis.get('hero', call.uid, shiwu.wearId);
let takeHero = await HeroFun.getHero(call, shiwu.wearId);
if (takeHero) {
let _shiwu = Object.assign({}, takeHero.shiwu);
let _pos = Object.keys(_shiwu).filter(pos => _shiwu[pos]._id == shiwu._id)[0];
@ -55,7 +55,7 @@ export class ShiwuFun {
//属性发生变化并且穿戴在英雄身上时
if (change.wearId == undefined && shiwu.wearId) {
let takeHero = await G.redis.get('hero', call.uid, shiwu.wearId);
let takeHero = await HeroFun.getHero(call, shiwu.wearId);
if (takeHero) {
let _shiwu = Object.assign({}, takeHero.shiwu);
let _pos = Object.keys(_shiwu).filter(pos => _shiwu[pos]._id == shiwu._id)[0];

View File

@ -75,8 +75,9 @@ async function clearRedis() {
G.redis.fromatKey('jjc'),
G.redis.fromatKey('user'),
G.redis.fromatKey('item'),
G.redis.fromatKey('hero'),
//G.redis.fromatKey('equip'),
//G.redis.fromatKey('hero'),
//G.redis.fromatKey('shiwu'),
//G.redis.fromatKey('gbtx'),
//G.redis.fromatKey('dxlt'),