Merge remote-tracking branch 'origin/feature/xiaofeijingsai' into release
# Conflicts: # src/shared/protocols/serviceProto.ts
This commit is contained in:
commit
5ed699a64a
91
src/api_s2c/event/xiaofeijingsai/ApiOpen.ts
Normal file
91
src/api_s2c/event/xiaofeijingsai/ApiOpen.ts
Normal file
@ -0,0 +1,91 @@
|
||||
import {ApiCall} from "tsrpc";
|
||||
import {ReqOpen, ResOpen} from "../../../shared/protocols/event/xiaofeijingsai/PtlOpen";
|
||||
import {HuoDongFun} from "../../../public/huodongfun";
|
||||
|
||||
/**
|
||||
* 消费竞赛
|
||||
* redis缓存120秒
|
||||
* 返回活动日期内的
|
||||
* @param call
|
||||
*/
|
||||
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
||||
|
||||
let ioList = await G.ioredis.get(`rank:xiaofeijingsai`);
|
||||
if (ioList) {
|
||||
let myData = await getMyData(call, JSON.parse(ioList))
|
||||
return call.succ({list: JSON.parse(ioList), myData})
|
||||
}
|
||||
|
||||
let _hd = (await HuoDongFun.gethdList(call, 11))[0]
|
||||
if (!_hd) return call.errorCode(-1)
|
||||
|
||||
let limit = _hd.data?.rank?.slice(-1)?.[0]?.rank?.slice(-1)?.[0] || call.req.limit || 100
|
||||
|
||||
let rmbuse = await G.mongodb.collection('rmbuse').aggregate([
|
||||
{$match: {isAdd: false, cTime: {$gte: _hd.stime, $lte: _hd.etime}}},
|
||||
{$group: {_id: "$uid", total: {$sum: "$change"}}},
|
||||
{$sort: {total: 1}},
|
||||
{$limit: limit}
|
||||
]).toArray()
|
||||
|
||||
let list: any = rmbuse.map(i => ({...i, total: R.negate(i.total)}))
|
||||
|
||||
|
||||
let rankList = sortRankList(_hd.data.rank, list)
|
||||
|
||||
let users = await G.mongodb.collection('user').find({uid: {$in: rankList.map(i => i._id).filter(i => i._id != 'system')}}).toArray()
|
||||
|
||||
rankList = rankList.map(i => ({...i, player: users.find(v => v.uid == i._id) || {}}))
|
||||
|
||||
// 活动结束前半小时,缓存过期时间改为10秒
|
||||
let exTime = (G.time + 1800) > _hd.etime ? 10 : 120
|
||||
|
||||
G.ioredis.setex(`rank:xiaofeijingsai`, exTime, JSON.stringify(rankList));
|
||||
|
||||
let myData = await getMyData(call, rankList, _hd)
|
||||
|
||||
call.succ({list: rankList, myData})
|
||||
}
|
||||
|
||||
/**
|
||||
* 需要满足消耗条件才能添加到排行榜,不满足的时候排行榜加system占位
|
||||
* @param rank
|
||||
* @param list
|
||||
*/
|
||||
export function sortRankList(rank, list) {
|
||||
let rankList = []
|
||||
let ccc = 0
|
||||
rank.map(i => {
|
||||
for (let k = i.rank[0] - 1; k < i.rank[1]; k++) {
|
||||
if (list[k]?.total >= i.need[0].n) {
|
||||
rankList.push({...list[k - ccc], rank: k})
|
||||
} else {
|
||||
rankList.push({_id: 'system', total: i.need[0].n, rank: k, player: {}})
|
||||
ccc += 1
|
||||
}
|
||||
}
|
||||
})
|
||||
return R.sort((a, b) => a.rank - b.rank)(rankList)
|
||||
}
|
||||
|
||||
// 获取自己的信息
|
||||
async function getMyData(call, rankList, _hd?) {
|
||||
let myData = rankList.find(i => i._id == call.uid)
|
||||
if (myData) return myData
|
||||
|
||||
if (!_hd) {
|
||||
_hd = (await HuoDongFun.gethdList(call, 11))[0]
|
||||
}
|
||||
let myCut = (await G.mongodb.collection('rmbuse').aggregate([
|
||||
{$match: {uid: call.uid, isAdd: false, cTime: {$gte: _hd.stime, $lte: _hd.etime}}},
|
||||
{$group: {_id: "$uid", total: {$sum: "$change"}}}
|
||||
]).toArray())[0]
|
||||
|
||||
let myUser = await G.mongodb.collection('user').findOne({uid: call.uid})
|
||||
|
||||
if (!myCut) {
|
||||
myCut = {_id: myUser.uid, total: 0}
|
||||
}
|
||||
|
||||
return {player: myUser, ...myCut, total: R.negate(myCut.total), rank: -1}
|
||||
}
|
@ -122,11 +122,21 @@
|
||||
"shengdanBullet": {
|
||||
"id": "shengdanBullet",
|
||||
"name": "intr_attr_name_14",
|
||||
"undefined": "圣诞子弹",
|
||||
"undefined": "圣诞打靶币",
|
||||
"colour": 5,
|
||||
"icon": "icon_chegaipq",
|
||||
"sicon": "icon_chegaipq",
|
||||
"describe": "intr_attr_describe_14",
|
||||
"advancedEffects": "ani_xiangzikuang"
|
||||
},
|
||||
"jingxuanbi": {
|
||||
"id": "jingxuanbi",
|
||||
"name": "intr_attr_name_15",
|
||||
"undefined": "每日精选兑换币",
|
||||
"colour": 4,
|
||||
"icon": "icon_chegaipq",
|
||||
"sicon": "icon_chegaipq",
|
||||
"describe": "intr_attr_describe_15",
|
||||
"advancedEffects": ""
|
||||
}
|
||||
}
|
@ -33,10 +33,10 @@
|
||||
},
|
||||
//136礼包
|
||||
'136Gift': [
|
||||
{ payId: '136Gift1', prize: [] },
|
||||
{ payId: '136Gift1', prize: [], bonus: [{"a": "attr", "t": "jingxuanbi", "n": 10}] },
|
||||
{ prize: [{"a": "attr", "t": "rmbmoney", "n": 10},{"a": "item", "t": "12", "n": 10},{"a": "attr", "t": "jinbi", "n": 10000}] },
|
||||
{ payId: '136Gift2', prize: [] },
|
||||
{ payId: '136Gift3', prize: [] },
|
||||
{ payId: '136Gift4', prize: [] },
|
||||
{ payId: '136Gift2', prize: [], bonus: [{"a": "attr", "t": "jingxuanbi", "n": 10}] },
|
||||
{ payId: '136Gift3', prize: [], bonus: [{"a": "attr", "t": "jingxuanbi", "n": 10}] },
|
||||
{ payId: '136Gift4', prize: [], bonus: [{"a": "attr", "t": "jingxuanbi", "n": 10}] },
|
||||
],
|
||||
}
|
@ -2582,6 +2582,90 @@
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^634": {
|
||||
"itemId": "item^634",
|
||||
"name": "紫橙干部碎片随机箱",
|
||||
"i18nKey": "intr_item_name_634",
|
||||
"detailI18nKey": "intr_item_describe_634",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 5
|
||||
}
|
||||
},
|
||||
"item^635": {
|
||||
"itemId": "item^635",
|
||||
"name": "紫橙装备碎片随机箱",
|
||||
"i18nKey": "intr_item_name_635",
|
||||
"detailI18nKey": "intr_item_describe_635",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 120,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 5
|
||||
}
|
||||
},
|
||||
"item^636": {
|
||||
"itemId": "item^636",
|
||||
"name": "紫橙红干部碎片随机箱",
|
||||
"i18nKey": "intr_item_name_636",
|
||||
"detailI18nKey": "intr_item_describe_636",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 244,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 5
|
||||
}
|
||||
},
|
||||
"item^637": {
|
||||
"itemId": "item^637",
|
||||
"name": "超级红色干部自选箱",
|
||||
"i18nKey": "intr_item_name_637",
|
||||
"detailI18nKey": "intr_item_describe_637",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 30000,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 6
|
||||
}
|
||||
},
|
||||
"item^5001": {
|
||||
"itemId": "item^5001",
|
||||
"name": "莱薇碎片",
|
||||
@ -6845,6 +6929,489 @@
|
||||
"rarity": 2
|
||||
}
|
||||
},
|
||||
"item^50001": {
|
||||
"itemId": "item^50001",
|
||||
"name": "火力覆盖",
|
||||
"i18nKey": "playerheadFrame_name_3",
|
||||
"detailI18nKey": "intr_item_describe_50001",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50002": {
|
||||
"itemId": "item^50002",
|
||||
"name": "双枪",
|
||||
"i18nKey": "playerheadFrame_name_4",
|
||||
"detailI18nKey": "intr_item_describe_50002",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50003": {
|
||||
"itemId": "item^50003",
|
||||
"name": "武装炫耀",
|
||||
"i18nKey": "playerheadFrame_name_6",
|
||||
"detailI18nKey": "intr_item_describe_50003",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50004": {
|
||||
"itemId": "item^50004",
|
||||
"name": "血海",
|
||||
"i18nKey": "playerheadFrame_name_7",
|
||||
"detailI18nKey": "intr_item_describe_50004",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50005": {
|
||||
"itemId": "item^50005",
|
||||
"name": "破笼而出",
|
||||
"i18nKey": "playerheadFrame_name_8",
|
||||
"detailI18nKey": "intr_item_describe_50005",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50006": {
|
||||
"itemId": "item^50006",
|
||||
"name": "擂台",
|
||||
"i18nKey": "playerheadFrame_name_9",
|
||||
"detailI18nKey": "intr_item_describe_50006",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50007": {
|
||||
"itemId": "item^50007",
|
||||
"name": "破土而出",
|
||||
"i18nKey": "playerheadFrame_name_10",
|
||||
"detailI18nKey": "intr_item_describe_50007",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50008": {
|
||||
"itemId": "item^50008",
|
||||
"name": "赠礼",
|
||||
"i18nKey": "playerheadFrame_name_11",
|
||||
"detailI18nKey": "intr_item_describe_50008",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50009": {
|
||||
"itemId": "item^50009",
|
||||
"name": "圣诞氛围",
|
||||
"i18nKey": "playerheadFrame_name_23",
|
||||
"detailI18nKey": "intr_item_describe_50009",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50010": {
|
||||
"itemId": "item^50010",
|
||||
"name": "披星戴月",
|
||||
"i18nKey": "playerheadFrame_name_24",
|
||||
"detailI18nKey": "intr_item_describe_50010",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50101": {
|
||||
"itemId": "item^50101",
|
||||
"name": "冰天雪地",
|
||||
"i18nKey": "playerChatFrame_name_6",
|
||||
"detailI18nKey": "intr_item_describe_50101",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50102": {
|
||||
"itemId": "item^50102",
|
||||
"name": "海浪奔涌",
|
||||
"i18nKey": "playerChatFrame_name_7",
|
||||
"detailI18nKey": "intr_item_describe_50102",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50103": {
|
||||
"itemId": "item^50103",
|
||||
"name": "名扬四海",
|
||||
"i18nKey": "playerheadFrame_name_15",
|
||||
"detailI18nKey": "intr_item_describe_50103",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50104": {
|
||||
"itemId": "item^50104",
|
||||
"name": "圣诞快乐",
|
||||
"i18nKey": "playerChatFrame_name_8",
|
||||
"detailI18nKey": "intr_item_describe_50104",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50201": {
|
||||
"itemId": "item^50201",
|
||||
"name": "招贤纳士",
|
||||
"i18nKey": "playerheadFrame_name_16",
|
||||
"detailI18nKey": "intr_item_describe_50201",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50202": {
|
||||
"itemId": "item^50202",
|
||||
"name": "势如破竹",
|
||||
"i18nKey": "playerheadFrame_name_17",
|
||||
"detailI18nKey": "intr_item_describe_50202",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50203": {
|
||||
"itemId": "item^50203",
|
||||
"name": "被甲执兵",
|
||||
"i18nKey": "playerheadFrame_name_18",
|
||||
"detailI18nKey": "intr_item_describe_50203",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50204": {
|
||||
"itemId": "item^50204",
|
||||
"name": "锋芒毕露",
|
||||
"i18nKey": "playerheadFrame_name_19",
|
||||
"detailI18nKey": "intr_item_describe_50204",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50205": {
|
||||
"itemId": "item^50205",
|
||||
"name": "所向披靡",
|
||||
"i18nKey": "playerheadFrame_name_20",
|
||||
"detailI18nKey": "intr_item_describe_50205",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50206": {
|
||||
"itemId": "item^50206",
|
||||
"name": "传世藏品",
|
||||
"i18nKey": "playerheadFrame_name_21",
|
||||
"detailI18nKey": "intr_item_describe_50206",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50207": {
|
||||
"itemId": "item^50207",
|
||||
"name": "金戈铁马",
|
||||
"i18nKey": "playerheadFrame_name_22",
|
||||
"detailI18nKey": "intr_item_describe_50207",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"item^50301": {
|
||||
"itemId": "item^50301",
|
||||
"name": "圣诞庆典:男",
|
||||
"i18nKey": "playerModel_name_3",
|
||||
"detailI18nKey": "intr_item_describe_50301",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 5
|
||||
}
|
||||
},
|
||||
"item^50302": {
|
||||
"itemId": "item^50302",
|
||||
"name": "圣诞庆典:女",
|
||||
"i18nKey": "playerModel_name_4",
|
||||
"detailI18nKey": "intr_item_describe_50302",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "item",
|
||||
"typeName": "道具",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 5
|
||||
}
|
||||
},
|
||||
"equip^1001": {
|
||||
"itemId": "equip^1001",
|
||||
"name": "棉布头盔",
|
||||
@ -10015,5 +10582,152 @@
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 3
|
||||
}
|
||||
},
|
||||
"attr^nexp": {
|
||||
"itemId": "attr^nexp",
|
||||
"name": "主角经验",
|
||||
"i18nKey": "intr_attr_name_3",
|
||||
"detailI18nKey": "intr_attr_describe_3",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "attr",
|
||||
"typeName": "货币",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"attr^rongyu": {
|
||||
"itemId": "attr^rongyu",
|
||||
"name": "荣誉勋章",
|
||||
"i18nKey": "intr_attr_name_4",
|
||||
"detailI18nKey": "intr_attr_describe_4",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "attr",
|
||||
"typeName": "货币",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
},
|
||||
"attr^payExp": {
|
||||
"itemId": "attr^payExp",
|
||||
"name": "VIP经验",
|
||||
"i18nKey": "intr_attr_name_5",
|
||||
"detailI18nKey": "intr_attr_describe_5",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "attr",
|
||||
"typeName": "货币",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 5
|
||||
}
|
||||
},
|
||||
"attr^guijinshu": {
|
||||
"itemId": "attr^guijinshu",
|
||||
"name": "贵金属",
|
||||
"i18nKey": "intr_attr_name_6",
|
||||
"detailI18nKey": "intr_attr_describe_6",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "attr",
|
||||
"typeName": "货币",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 3
|
||||
}
|
||||
},
|
||||
"attr^shengdanExp": {
|
||||
"itemId": "attr^shengdanExp",
|
||||
"name": "圣诞战令经验",
|
||||
"i18nKey": "intr_attr_name_13",
|
||||
"detailI18nKey": "intr_attr_describe_13",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "attr",
|
||||
"typeName": "货币",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 5
|
||||
}
|
||||
},
|
||||
"attr^shengdanBullet": {
|
||||
"itemId": "attr^shengdanBullet",
|
||||
"name": "圣诞打靶币",
|
||||
"i18nKey": "intr_attr_name_14",
|
||||
"detailI18nKey": "intr_attr_describe_14",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "attr",
|
||||
"typeName": "货币",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 5
|
||||
}
|
||||
},
|
||||
"attr^jingxuanbi": {
|
||||
"itemId": "attr^jingxuanbi",
|
||||
"name": "每日精选兑换币",
|
||||
"i18nKey": "intr_attr_name_15",
|
||||
"detailI18nKey": "intr_attr_describe_15",
|
||||
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
|
||||
"value": 0,
|
||||
"typeId": "attr",
|
||||
"typeName": "货币",
|
||||
"isStoreSupported": true,
|
||||
"isAiSupported": true,
|
||||
"attributes": {
|
||||
"storeDisplayPrice": null,
|
||||
"storeCategory": "",
|
||||
"setQuantity": 1,
|
||||
"purchaseLimit": 0,
|
||||
"sellMinCp": 100,
|
||||
"sellMaxCp": 500,
|
||||
"rarity": 4
|
||||
}
|
||||
}
|
||||
}
|
@ -3978,7 +3978,7 @@
|
||||
"hdid" : 11000, // 唯一活动id 消费竞赛
|
||||
"htype" : 11, // 后端唯一识别标识
|
||||
"stype" : 1100, // 前端唯一识别标识(看前端需要是否修改)
|
||||
"ttype" : 0, // 0 按照开服时间计算,1 玩家注册时间计算 4 屏蔽此活动
|
||||
"ttype" : 4, // 0 按照开服时间计算,1 玩家注册时间计算 4 屏蔽此活动
|
||||
"stime" : 0, // 活动开始天数
|
||||
"rtime" : 30, // 活动显示结束天数
|
||||
"etime" : 30, // 活动实际结束
|
||||
@ -3988,27 +3988,31 @@
|
||||
"data" : {
|
||||
//活动文本描述
|
||||
intr: "xfjstips_1",
|
||||
intr: "xfjstips_2",
|
||||
//排名
|
||||
intr2: "xfjstips_2",
|
||||
//奖励邮件标题
|
||||
mailTitle: "intr_xfjs_mailTitle",
|
||||
//奖励邮件内容
|
||||
mailDes: "intr_xfjs_mailDes",
|
||||
//排名
|
||||
rank: [
|
||||
{
|
||||
id: '1',
|
||||
name: 'xfjstips_3',
|
||||
rank:[1],
|
||||
rank:[1,1],
|
||||
need: [{'a': 'attr', 't': 'rmbmoney', 'n': 20000}],
|
||||
prize: [{'a': 'item', 't': '13', 'n': 600}]
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
name: 'xfjstips_4',
|
||||
rank:[2],
|
||||
rank:[2,2],
|
||||
need: [{'a': 'attr', 't': 'rmbmoney', 'n': 18000}],
|
||||
prize: [{'a': 'item', 't': '13', 'n': 600}]
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
name: 'xfjstips_5',
|
||||
rank:[3],
|
||||
rank:[3,3],
|
||||
need: [{'a': 'attr', 't': 'rmbmoney', 'n': 16000}],
|
||||
prize: [{'a': 'item', 't': '13', 'n': 600}]
|
||||
},
|
||||
@ -4025,6 +4029,13 @@
|
||||
rank:[11,30],
|
||||
need: [{'a': 'attr', 't': 'rmbmoney', 'n': 12000}],
|
||||
prize: [{'a': 'item', 't': '13', 'n': 600}]
|
||||
},
|
||||
{
|
||||
id: '6',
|
||||
name: 'xfjstips_8',
|
||||
rank:[31,9999],
|
||||
need: [{'a': 'attr', 't': 'rmbmoney', 'n': 12000}],
|
||||
prize: [{'a': 'item', 't': '13', 'n': 600}]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -4033,7 +4044,7 @@
|
||||
"hdid" : 12000, // 唯一活动id 累计购买礼包
|
||||
"htype" : 12, // 后端唯一识别标识
|
||||
"stype" : 1200, // 前端唯一识别标识(看前端需要是否修改)
|
||||
"ttype" : 0, // 0 按照开服时间计算,1 玩家注册时间计算 4 屏蔽此活动
|
||||
"ttype" : 4, // 0 按照开服时间计算,1 玩家注册时间计算 4 屏蔽此活动
|
||||
"stime" : 0, // 活动开始天数
|
||||
"rtime" : 30, // 活动显示结束天数
|
||||
"etime" : 30, // 活动实际结束
|
||||
@ -4041,17 +4052,14 @@
|
||||
"icon": "icon_ljlibao",
|
||||
"showtime" : "仅供参考,会复写正确值", // 自选礼包,如果存在多个活动,计费点不要设置一样;如果是一样,可能会存在付费一次,购买多次。
|
||||
"data" : {
|
||||
//活动文本描述
|
||||
intr: "ljlibaotips_1",
|
||||
intr: "ljlibaotips_2",
|
||||
//礼包
|
||||
gift: [
|
||||
{
|
||||
id: '1',
|
||||
name: 'ljlibaotips_3',
|
||||
need:[],
|
||||
need:[],
|
||||
free: false,
|
||||
payId: 'ljlibao_1',
|
||||
//返利比
|
||||
scale: 200,
|
||||
buynum: 1,
|
||||
prize:[
|
||||
@ -4064,7 +4072,6 @@
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
name: 'ljlibaotips_4',
|
||||
need:[],
|
||||
free: false,
|
||||
payId: 'ljlibao_2',
|
||||
@ -4080,7 +4087,6 @@
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
name: 'ljlibaotips_5',
|
||||
need:[],
|
||||
free: false,
|
||||
payId: 'ljlibao_3',
|
||||
@ -4096,7 +4102,6 @@
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
name: 'ljlibaotips_6',
|
||||
need:[],
|
||||
free: false,
|
||||
payId: 'ljlibao_4',
|
||||
@ -4117,7 +4122,6 @@
|
||||
},
|
||||
{
|
||||
id: '5',
|
||||
name: 'ljlibaotips_7',
|
||||
need:[],
|
||||
free: false,
|
||||
payId: 'ljlibao_5',
|
||||
@ -4138,7 +4142,6 @@
|
||||
},
|
||||
{
|
||||
id: '6',
|
||||
name: 'ljlibaotips_8',
|
||||
need:[],
|
||||
free: false,
|
||||
payId: 'ljlibao_6',
|
||||
@ -4159,7 +4162,6 @@
|
||||
},
|
||||
{
|
||||
id: '7',
|
||||
name: 'ljlibaotips_9',
|
||||
need:[],
|
||||
free: false,
|
||||
payId: 'ljlibao_7',
|
||||
@ -4179,7 +4181,11 @@
|
||||
]
|
||||
},
|
||||
],
|
||||
//买X次可以领大奖
|
||||
payRewardNum: 5,
|
||||
//自选框掉落池
|
||||
//配几组就显示有几个格子
|
||||
//配置的是可选的道具
|
||||
dlz: [
|
||||
{
|
||||
"1": {"a": "item", "t":"600", "n": 20},
|
||||
@ -4224,5 +4230,58 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"hdid" : 13000, // 唯一活动id 充值分红包
|
||||
"htype" : 13, // 后端唯一识别标识
|
||||
"stype" : 1300, // 前端唯一识别标识(看前端需要是否修改)
|
||||
"ttype" : 4, // 0 按照开服时间计算,1 玩家注册时间计算 4 屏蔽此活动
|
||||
"stime" : 0, // 活动开始天数
|
||||
"rtime" : 30, // 活动显示结束天数
|
||||
"etime" : 30, // 活动实际结束
|
||||
"name": "fenhongbao",
|
||||
"icon": "icon_fenhongbao",
|
||||
"showtime" : "仅供参考,会复写正确值", // 自选礼包,如果存在多个活动,计费点不要设置一样;如果是一样,可能会存在付费一次,购买多次。
|
||||
"data" : {
|
||||
//活动文本描述
|
||||
intr: "zuanshihongbao_5",
|
||||
//分红包所需最低钻石数
|
||||
price: 1000,
|
||||
reset: 0,
|
||||
//奖池总数量
|
||||
totalmoney: 100000,
|
||||
groupConf: {
|
||||
//档位
|
||||
base: {
|
||||
loglimit:2000,
|
||||
arr:[
|
||||
{
|
||||
//权重
|
||||
"weight": 50,
|
||||
//获得范围
|
||||
"numrange": [1000,1500]
|
||||
},
|
||||
{
|
||||
//权重
|
||||
"weight": 30,
|
||||
//获得范围
|
||||
"numrange": [1500,2000]
|
||||
},
|
||||
{
|
||||
//权重
|
||||
"weight": 15,
|
||||
//获得范围
|
||||
"numrange": [2000,3000]
|
||||
},
|
||||
{
|
||||
//权重
|
||||
"weight": 5,
|
||||
//获得范围
|
||||
"numrange": [3000,8000]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
@ -1365,5 +1365,18 @@
|
||||
"display": {
|
||||
"lv": 15
|
||||
}
|
||||
},
|
||||
"leigoulibao": {
|
||||
"name": "leigoulibao",
|
||||
"undefined": "累购礼包",
|
||||
"and": {
|
||||
"lv": 15
|
||||
},
|
||||
"or": {},
|
||||
"time": 0,
|
||||
"tips": "openCond_tips_96",
|
||||
"display": {
|
||||
"lv": 15
|
||||
}
|
||||
}
|
||||
}
|
@ -4119,7 +4119,7 @@
|
||||
"name": "pay_name_djlb_2",
|
||||
"undefined": "枪油补充包",
|
||||
"time": 86400,
|
||||
"buys": 0,
|
||||
"buys": 3,
|
||||
"needVip": 0,
|
||||
"front": {},
|
||||
"currency": "CNY"
|
||||
@ -4145,7 +4145,7 @@
|
||||
"name": "pay_name_djlb_1",
|
||||
"undefined": "能量饮料补充包",
|
||||
"time": 86400,
|
||||
"buys": 0,
|
||||
"buys": 2,
|
||||
"needVip": 0,
|
||||
"front": {},
|
||||
"currency": "CNY"
|
||||
@ -4171,7 +4171,7 @@
|
||||
"name": "pay_name_djlb_12",
|
||||
"undefined": "弹壳补充包",
|
||||
"time": 86400,
|
||||
"buys": 0,
|
||||
"buys": 3,
|
||||
"needVip": 0,
|
||||
"front": {},
|
||||
"currency": "CNY"
|
||||
@ -4197,7 +4197,7 @@
|
||||
"name": "pay_name_djlb_18",
|
||||
"undefined": "装备蓝图补充包",
|
||||
"time": 86400,
|
||||
"buys": 0,
|
||||
"buys": 3,
|
||||
"needVip": 0,
|
||||
"front": {},
|
||||
"currency": "CNY"
|
||||
@ -4217,7 +4217,7 @@
|
||||
"name": "pay_name_mingwang_2",
|
||||
"undefined": "名望礼包_68元",
|
||||
"time": 86400,
|
||||
"buys": 0,
|
||||
"buys": 1,
|
||||
"needVip": 0,
|
||||
"front": {},
|
||||
"currency": "CNY"
|
||||
@ -4237,7 +4237,7 @@
|
||||
"name": "pay_name_mingwang_3",
|
||||
"undefined": "名望礼包_648元",
|
||||
"time": 86400,
|
||||
"buys": 0,
|
||||
"buys": 2,
|
||||
"needVip": 0,
|
||||
"front": {},
|
||||
"currency": "CNY"
|
||||
@ -4257,7 +4257,7 @@
|
||||
"name": "pay_name_mingwang_4",
|
||||
"undefined": "名望礼包_128元",
|
||||
"time": -1,
|
||||
"buys": 0,
|
||||
"buys": 1,
|
||||
"needVip": 0,
|
||||
"front": {},
|
||||
"currency": "CNY"
|
||||
|
@ -511,7 +511,9 @@
|
||||
"freeRefreshInterval": 0,
|
||||
"freeRefreshNum": 0,
|
||||
"shopItems": [
|
||||
10001
|
||||
10001,
|
||||
10002,
|
||||
10003
|
||||
],
|
||||
"showItem": [
|
||||
{
|
||||
|
@ -6281,8 +6281,8 @@
|
||||
"openDay": 1,
|
||||
"buyNeed": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "15",
|
||||
"a": "attr",
|
||||
"t": "jingxuanbi",
|
||||
"n": 2800
|
||||
}
|
||||
],
|
||||
@ -6296,6 +6296,60 @@
|
||||
"vipAddbuyNum": []
|
||||
}
|
||||
],
|
||||
"10002": [
|
||||
{
|
||||
"id": 10002,
|
||||
"a": "item",
|
||||
"t": 1,
|
||||
"n": 10000,
|
||||
"p": 1,
|
||||
"colour": 4,
|
||||
"buyNum": -1,
|
||||
"openDay": 1,
|
||||
"buyNeed": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "jingxuanbi",
|
||||
"n": 1000
|
||||
}
|
||||
],
|
||||
"sale": 10,
|
||||
"needVip": 0,
|
||||
"needZCCG": 0,
|
||||
"lv": [
|
||||
1,
|
||||
9999
|
||||
],
|
||||
"vipAddbuyNum": []
|
||||
}
|
||||
],
|
||||
"10003": [
|
||||
{
|
||||
"id": 10003,
|
||||
"a": "item",
|
||||
"t": 2,
|
||||
"n": 10000,
|
||||
"p": 1,
|
||||
"colour": 4,
|
||||
"buyNum": -1,
|
||||
"openDay": 1,
|
||||
"buyNeed": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "jingxuanbi",
|
||||
"n": 1500
|
||||
}
|
||||
],
|
||||
"sale": 10,
|
||||
"needVip": 0,
|
||||
"needZCCG": 0,
|
||||
"lv": [
|
||||
1,
|
||||
9999
|
||||
],
|
||||
"vipAddbuyNum": []
|
||||
}
|
||||
],
|
||||
"120001": [
|
||||
{
|
||||
"id": 120001,
|
||||
|
@ -211,7 +211,7 @@
|
||||
"cost": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "jingxuanbi",
|
||||
"n": 1
|
||||
}
|
||||
]
|
||||
|
@ -37,7 +37,8 @@ export type schedulerType =
|
||||
| 'hbzb_zbs_clear'
|
||||
| 'hbzb_zbs_group'
|
||||
| 'wzry_zuanshi16to8'
|
||||
| "cross_email_pull";
|
||||
| "cross_email_pull"
|
||||
| "xiaofeijingsai_local_ctor";
|
||||
|
||||
export class SchedulerManage {
|
||||
static logTime = false;
|
||||
@ -102,7 +103,7 @@ export abstract class Scheduler {
|
||||
|
||||
}
|
||||
|
||||
init(){
|
||||
init() {
|
||||
Scheduler.schedulers.push(this);
|
||||
this.read().then(_ => {
|
||||
this.log(`state: 准备完毕 预计下次执行时间:${new Date(this.startTime * 1000).format("YYYY-MM-DD hh:mm:ss")}`);
|
||||
|
69
src/public/scheduler/scheduler_xiaofeijingsai.ts
Normal file
69
src/public/scheduler/scheduler_xiaofeijingsai.ts
Normal file
@ -0,0 +1,69 @@
|
||||
import {Scheduler, schedulerType} from './scheduler';
|
||||
import {PublicShared} from "../../shared/public/public";
|
||||
import {Wjjl} from "../../module/collection_wjjl";
|
||||
import {ZhanLingTasks} from "../zhanling";
|
||||
import {setGud} from '../gud';
|
||||
import {HuoDongFun} from "../huodongfun";
|
||||
import {EmailFun} from "../email";
|
||||
import {sortRankList} from "../../api_s2c/event/xiaofeijingsai/ApiOpen";
|
||||
|
||||
/**
|
||||
* 消费竞赛发奖定时器
|
||||
* 每天0点5分检测活动结束
|
||||
*/
|
||||
export class Scheduler_xfjs_Local_Ctor extends Scheduler {
|
||||
id: schedulerType = 'xiaofeijingsai_local_ctor';
|
||||
time = 300;
|
||||
name = '消费竞赛发奖定时器';
|
||||
type: 'day' | 'week' = 'day';
|
||||
|
||||
// todo 测试
|
||||
// get nextTime() {
|
||||
// return G.time + 30;
|
||||
// }
|
||||
|
||||
async read() {
|
||||
await this.ctorStartTime();
|
||||
this.isReady = false;
|
||||
}
|
||||
|
||||
async start() {
|
||||
let _hd = (await G.mongodb.collection('hdinfo').find({
|
||||
htype: 11,
|
||||
ttype: 0,
|
||||
etime: {$lt: G.time, $gt: 99999999},
|
||||
$or: [{isSendPrize: {$exists: false}}, {isSendPrize: false}],
|
||||
}).sort({etime: -1}).limit(1).toArray())[0]
|
||||
|
||||
if (!_hd) return
|
||||
|
||||
let limit = _hd.data?.rank?.slice(-1)?.[0]?.rank?.slice(-1)?.[0] || 100
|
||||
let rmbuse = await G.mongodb.collection('rmbuse').aggregate([
|
||||
{$match: {isAdd: false, cTime: {$gte: _hd.stime, $lte: _hd.etime}}},
|
||||
{$group: {_id: "$uid", total: {$sum: "$change"}}},
|
||||
{$sort: {total: 1}},
|
||||
{$limit: limit}
|
||||
]).toArray()
|
||||
|
||||
let list: any = rmbuse.map(i => ({...i, total: R.negate(i.total)}))
|
||||
|
||||
let ranklist = sortRankList(_hd.data.rank, list)
|
||||
|
||||
R.forEach(i => {
|
||||
let users = R.slice(i.rank[0] - 1, i.rank[1])(ranklist)
|
||||
users.map(v => {
|
||||
if (v._id == 'system') return
|
||||
EmailFun.addEmail({
|
||||
uid: v._id,
|
||||
type: 'system',
|
||||
title: _hd.data.mailTitle,
|
||||
content: _hd.data.mailDes,
|
||||
prize: i.prize,
|
||||
contentInsertArr: [v.rank + 1]
|
||||
});
|
||||
})
|
||||
})(_hd.data.rank)
|
||||
|
||||
await G.mongodb.collection('hdinfo').findOneAndUpdate({hdid: _hd.hdid}, {$set: {isSendPrize: true}})
|
||||
}
|
||||
}
|
@ -505,7 +505,7 @@ export async function setDbIndexes() {
|
||||
index.key,
|
||||
option
|
||||
);
|
||||
console.log('创建索引成功', coll, index);
|
||||
// console.log('创建索引成功', coll, index);
|
||||
} catch (error) {
|
||||
if (error.codeName == 'IndexKeySpecsConflict') {
|
||||
//当相同索引存在,但是配置(如:unique expireAfterSeconds)不同时,会收到这个报错
|
||||
@ -519,7 +519,7 @@ export async function setDbIndexes() {
|
||||
index.key,
|
||||
option
|
||||
);
|
||||
console.log('创建索引成功', coll, index);
|
||||
// console.log('创建索引成功', coll, index);
|
||||
} catch (error) {
|
||||
console.log('创建索引失败==>', coll, index, error.message);
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import { clusterRunOnce } from './clusterUtils';
|
||||
import { addListener } from './globalListener';
|
||||
import { SchedulerManage } from './public/scheduler/scheduler';
|
||||
import {CrossEmailPull} from "./public/scheduler/scheduler_cross_email_pull";
|
||||
import {Scheduler_xfjs_Local_Ctor} from "./public/scheduler/scheduler_xiaofeijingsai";
|
||||
export async function startAfter() {
|
||||
|
||||
//事件监听和定时器初始化
|
||||
@ -70,6 +71,7 @@ export async function startAfter() {
|
||||
new Scheduler_hbzb_zbs_local_prize().init();
|
||||
new Scheduler_hbzb_zbs_local_ready().init();
|
||||
new SchedulerKbzzAutoApply().init();
|
||||
new Scheduler_xfjs_Local_Ctor().init();
|
||||
|
||||
new SchedulerSlzdClean().init();
|
||||
new SchedulerSlzdPrize().init();
|
||||
|
18
src/shared/protocols/event/xiaofeijingsai/PtlOpen.ts
Normal file
18
src/shared/protocols/event/xiaofeijingsai/PtlOpen.ts
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* 消费竞赛
|
||||
*/
|
||||
export type ReqOpen = {
|
||||
limit?: number
|
||||
};
|
||||
|
||||
export type ResOpen = {
|
||||
list: data[]
|
||||
myData: data
|
||||
};
|
||||
|
||||
type data = {
|
||||
_id: string,
|
||||
total: number,
|
||||
rank: number,
|
||||
player: any
|
||||
}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user