Compare commits
22 Commits
ad9e3cca46
...
6be02bee61
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6be02bee61 | ||
![]() |
8f3cb3e091 | ||
![]() |
fc426a283b | ||
![]() |
1f3adac088 | ||
![]() |
e496b3fefb | ||
![]() |
b9be0901fa | ||
![]() |
ecc116bfa1 | ||
![]() |
d71ecf13f9 | ||
![]() |
0dede0ac47 | ||
![]() |
000de548c0 | ||
![]() |
d5d5d72bad | ||
![]() |
aa671a332b | ||
![]() |
b56a0c4591 | ||
![]() |
bf39147538 | ||
![]() |
e9a27e135e | ||
![]() |
f9deacd411 | ||
c2b1a6cb0b | |||
![]() |
7676fc3142 | ||
![]() |
2af3bf426b | ||
![]() |
89af066d12 | ||
![]() |
8dfe0b4ce8 | ||
![]() |
55fae245e9 |
4050
package-lock.json
generated
4050
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -37,6 +37,7 @@
|
|||||||
"axios": "^1.4.0",
|
"axios": "^1.4.0",
|
||||||
"crypto-js": "^4.1.1",
|
"crypto-js": "^4.1.1",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
|
"inspector-api": "^1.4.8",
|
||||||
"ioredis": "^5.3.2",
|
"ioredis": "^5.3.2",
|
||||||
"json5": "^2.2.3",
|
"json5": "^2.2.3",
|
||||||
"mathjs": "^11.4.0",
|
"mathjs": "^11.4.0",
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { ApiCall } from "tsrpc";
|
import { ApiCall } from "tsrpc";
|
||||||
import { Reqheapdump, Resheapdump } from "../../monopoly/protocols/games/Ptlheapdump";
|
import { Reqheapdump, Resheapdump } from "../../monopoly/protocols/games/Ptlheapdump";
|
||||||
var heapdump = require('heapdump');
|
var heapdump = require('heapdump');
|
||||||
|
import Inspector from 'inspector-api'
|
||||||
|
const inspector = new Inspector({ storage: { type: 'fs' } })
|
||||||
|
|
||||||
export default async function (call: ApiCall<Reqheapdump, Resheapdump>) {
|
export default async function (call: ApiCall<Reqheapdump, Resheapdump>) {
|
||||||
|
|
||||||
@ -20,4 +22,24 @@ export default async function (call: ApiCall<Reqheapdump, Resheapdump>) {
|
|||||||
data:"gc..."
|
data:"gc..."
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(call.req.act == "cpustart"){
|
||||||
|
await inspector.profiler.enable()
|
||||||
|
await inspector.profiler.start()
|
||||||
|
console.log('CPU profile has been start')
|
||||||
|
call.succ({
|
||||||
|
code:200,
|
||||||
|
data:"profiler.start"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if(call.req.act == "cpustop"){
|
||||||
|
await inspector.profiler.stop()
|
||||||
|
await inspector.profiler.disable()
|
||||||
|
console.log('CPU profile has been stop')
|
||||||
|
call.succ({
|
||||||
|
code:200,
|
||||||
|
data:"profiler.cpustop"
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
@ -34,7 +34,7 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
|
|
||||||
let users = await G.crossmongodb.collection('huodong_user').find({uid: {$in: rankList.map(i => i._id).filter(i => i._id != 'system')}}).toArray()
|
let users = await G.crossmongodb.collection('huodong_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) || {}}))
|
rankList = rankList.map(i => ({...i, player: users.find(v => v.uid == i.uid) || {}}))
|
||||||
|
|
||||||
// 活动结束前半小时,缓存过期时间改为10秒
|
// 活动结束前半小时,缓存过期时间改为10秒
|
||||||
let exTime = (G.time + 1800) > _hd.etime ? 10 : 60
|
let exTime = (G.time + 1800) > _hd.etime ? 10 : 60
|
||||||
@ -57,7 +57,7 @@ export function sortRankList(rank, list) {
|
|||||||
rank.map(i => {
|
rank.map(i => {
|
||||||
for (let k = i.rank[0] - 1; k < i.rank[1]; k++) {
|
for (let k = i.rank[0] - 1; k < i.rank[1]; k++) {
|
||||||
if (list[k]?.total >= i.need[0].n) {
|
if (list[k]?.total >= i.need[0].n) {
|
||||||
rankList.push({...list[k - ccc], rank: k})
|
rankList.push({...list[k - ccc], rank: k, _id: list[k - ccc].uid})
|
||||||
} else {
|
} else {
|
||||||
rankList.push({_id: 'system', total: i.need[0].n, rank: k, player: {}})
|
rankList.push({_id: 'system', total: i.need[0].n, rank: k, player: {}})
|
||||||
ccc += 1
|
ccc += 1
|
||||||
@ -75,11 +75,11 @@ async function getMyData(call, rankList) {
|
|||||||
let myCut: any = await G.crossmongodb.collection('rmbuse').findOne({uid: call.uid})
|
let myCut: any = await G.crossmongodb.collection('rmbuse').findOne({uid: call.uid})
|
||||||
|
|
||||||
let myUser = await G.mongodb.collection('user').findOne({uid: call.uid})
|
let myUser = await G.mongodb.collection('user').findOne({uid: call.uid})
|
||||||
G.crossmongodb.collection('huodong_user').updateOne({uid: call.uid}, myUser, {upsert: true})
|
G.crossmongodb.collection('huodong_user').updateOne({uid: call.uid}, {$set: myUser}, {upsert: true})
|
||||||
|
|
||||||
if (!myCut) {
|
if (!myCut) {
|
||||||
myCut = {_id: myUser.uid, total: 0}
|
myCut = {_id: myUser.uid, total: 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {player: myUser, ...myCut, total: R.negate(myCut.total), rank: -1}
|
return {player: myUser, ...myCut, total: R.negate(myCut.total), rank: -1, _id: myUser.uid}
|
||||||
}
|
}
|
@ -31,5 +31,5 @@ export default async function (call: ApiCall<ReqDMRec, ResDMRec>) {
|
|||||||
|
|
||||||
call.succ({prize})
|
call.succ({prize})
|
||||||
|
|
||||||
HongDianChange.sendChangeKey(call.uid, ['yuandan']);
|
HongDianChange.sendChangeKey(call.uid, ['huodonghd']);
|
||||||
}
|
}
|
||||||
|
@ -32,5 +32,5 @@ export default async function (call: ApiCall<ReqDZRec, ResDZRec>) {
|
|||||||
|
|
||||||
call.succ({[gift.id]: prize})
|
call.succ({[gift.id]: prize})
|
||||||
|
|
||||||
HongDianChange.sendChangeKey(call.uid, ['yuandan']);
|
HongDianChange.sendChangeKey(call.uid, ['huodonghd']);
|
||||||
}
|
}
|
||||||
|
@ -25,5 +25,5 @@ export default async function (call: ApiCall<ReqExchange, ResExchange>) {
|
|||||||
|
|
||||||
call.succ({})
|
call.succ({})
|
||||||
|
|
||||||
HongDianChange.sendChangeKey(call.uid, ['yuandan']);
|
HongDianChange.sendChangeKey(call.uid, ['huodonghd']);
|
||||||
}
|
}
|
||||||
|
@ -29,9 +29,9 @@ export default async function (call: ApiCall<ReqTaskRec, ResTaskRec>) {
|
|||||||
|
|
||||||
await PlayerFun.sendPrize(call, _prize);
|
await PlayerFun.sendPrize(call, _prize);
|
||||||
let changedata = { data: _mydata, prize: _prize}
|
let changedata = { data: _mydata, prize: _prize}
|
||||||
// 推送红点
|
|
||||||
HongDianChange.sendChangeKey(call.uid, ['huodonghd']);
|
|
||||||
call.succ(changedata);
|
call.succ(changedata);
|
||||||
|
|
||||||
|
// 推送红点
|
||||||
|
HongDianChange.sendChangeKey(call.uid, ['huodonghd']);
|
||||||
}
|
}
|
@ -40,5 +40,5 @@ export default async function (call: ApiCall<ReqZLRec, ResZLRec>) {
|
|||||||
|
|
||||||
call.succ({[call.req.id]: prize})
|
call.succ({[call.req.id]: prize})
|
||||||
|
|
||||||
HongDianChange.sendChangeKey(call.uid, ['yuandan']);
|
HongDianChange.sendChangeKey(call.uid, ['huodonghd']);
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ export class Yuandanfun {
|
|||||||
exchange: {},
|
exchange: {},
|
||||||
taskfinish: [],
|
taskfinish: [],
|
||||||
taskval: await this.getTaskVal(call),
|
taskval: await this.getTaskVal(call),
|
||||||
qiandaoTime: data?.qiandaoTime || 0,
|
qiandaoTime: data?.qiandaoTime || 1,
|
||||||
refreshTime: G.time
|
refreshTime: G.time
|
||||||
},
|
},
|
||||||
}, {upsert: true, returnDocument: 'after'})).value
|
}, {upsert: true, returnDocument: 'after'})).value
|
||||||
|
@ -62,7 +62,7 @@ export default async function (call: ApiCall<ReqRepair, ResRepair>) {
|
|||||||
} else {
|
} else {
|
||||||
cutItem = R.find(R.whereEq({a: "item", t: "21"}))(need)
|
cutItem = R.find(R.whereEq({a: "item", t: "21"}))(need)
|
||||||
}
|
}
|
||||||
let rankKfjs = new RankKfjs(6)
|
let rankKfjs = RankKfjs(6)
|
||||||
rankKfjs.setDataAndCheck({
|
rankKfjs.setDataAndCheck({
|
||||||
player: call.conn.gud,
|
player: call.conn.gud,
|
||||||
valArr: [await rankKfjs.getRankScore(call.uid) + cutItem.n]
|
valArr: [await rankKfjs.getRankScore(call.uid) + cutItem.n]
|
||||||
|
@ -269,7 +269,7 @@ export class HongDianFun {
|
|||||||
for (let i = 1; i <= 7; i++) {
|
for (let i = 1; i <= 7; i++) {
|
||||||
let prize = kfjsFun.getStatus(i)
|
let prize = kfjsFun.getStatus(i)
|
||||||
if (PublicShared.getOpenServerDay() <= prize.conf.showDay[1]) continue
|
if (PublicShared.getOpenServerDay() <= prize.conf.showDay[1]) continue
|
||||||
let rankKfjs = new RankKfjs(i)
|
let rankKfjs = RankKfjs(i)
|
||||||
let myRank = await rankKfjs.getRankSortByOne(call.uid)
|
let myRank = await rankKfjs.getRankSortByOne(call.uid)
|
||||||
if (prize.type > 0 && !data?.record?.[i] && myRank >= 0) {
|
if (prize.type > 0 && !data?.record?.[i] && myRank >= 0) {
|
||||||
canGet[i] = true
|
canGet[i] = true
|
||||||
@ -349,7 +349,7 @@ export class HuoDongHongDianFun {
|
|||||||
ishd = await this.pobinglibao(call, element)
|
ishd = await this.pobinglibao(call, element)
|
||||||
}
|
}
|
||||||
if (element.htype == 14) {
|
if (element.htype == 14) {
|
||||||
// 检测 htype 10 破冰活动红点
|
// 检测 htype 10 元旦活动红点
|
||||||
ishd = await this.yuandan(call, element)
|
ishd = await this.yuandan(call, element)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -392,16 +392,15 @@ export class HuoDongHongDianFun {
|
|||||||
|
|
||||||
if (data?.gameNum < _hd.data.gamefree) return {show: true}
|
if (data?.gameNum < _hd.data.gamefree) return {show: true}
|
||||||
|
|
||||||
if (!PublicShared.chkSameDate(data?.qiandaoTime || 0, G.time)) {
|
if (!PublicShared.chkSameDate(data?.qiandaoTime || 1, G.time)) {
|
||||||
return {show: true}
|
return {show: true}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 1; i++; i <= data.taskval.length) {
|
for (const i in data.taskval) {
|
||||||
if (data?.taskval[i] >= _hd?.data?.task?.[i]?.pval && !data?.taskfinish.find(v => v == i + '')) {
|
if (data?.taskval[i] >= _hd?.data?.task?.[i]?.pval && !data?.taskfinish.find(v => v == i)) {
|
||||||
return {show: true}
|
return {show: true}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {show: false}
|
return {show: false}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ export default async function (call: ApiCall<ReqLottery, ResLottery>) {
|
|||||||
changeData: changeData
|
changeData: changeData
|
||||||
});
|
});
|
||||||
|
|
||||||
let rankKfjs = new RankKfjs(1)
|
let rankKfjs = RankKfjs(1)
|
||||||
rankKfjs.setDataAndCheck({
|
rankKfjs.setDataAndCheck({
|
||||||
player: call.conn.gud,
|
player: call.conn.gud,
|
||||||
valArr: [await rankKfjs.getRankScore(call.uid) + call.req.type]
|
valArr: [await rankKfjs.getRankScore(call.uid) + call.req.type]
|
||||||
|
@ -12,7 +12,7 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
|
|
||||||
const {min, max} = Rank.pageToMin(call.req.page, call.req.offset)
|
const {min, max} = Rank.pageToMin(call.req.page, call.req.offset)
|
||||||
|
|
||||||
let rankKfjs = new RankKfjs(status.type)
|
let rankKfjs = RankKfjs(status.type)
|
||||||
|
|
||||||
let endTime = PublicShared.getToDayZeroTime(PublicShared.getToDayZeroTime(G.openTime) + status.conf.showDay[1] * 86400)
|
let endTime = PublicShared.getToDayZeroTime(PublicShared.getToDayZeroTime(G.openTime) + status.conf.showDay[1] * 86400)
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ export default async function (call: ApiCall<ReqReceive, ResReceive>) {
|
|||||||
if (data?.record?.[call.req.type]) return call.errorCode(-2)
|
if (data?.record?.[call.req.type]) return call.errorCode(-2)
|
||||||
|
|
||||||
// 查询自己排名,发奖
|
// 查询自己排名,发奖
|
||||||
let rankKfjs = new RankKfjs(call.req.type)
|
let rankKfjs = RankKfjs(call.req.type)
|
||||||
let myRank = await rankKfjs.getRankSortByOne(call.uid)
|
let myRank = await rankKfjs.getRankSortByOne(call.uid)
|
||||||
|
|
||||||
let conf = R.find(i => i.rank[0] <= myRank + 1 && i.rank[1] >= myRank + 1)(prize)
|
let conf = R.find(i => i.rank[0] <= myRank + 1 && i.rank[1] >= myRank + 1)(prize)
|
||||||
|
@ -43,7 +43,7 @@ export default async function (call: ApiCall<ReqFight, ResFight>) {
|
|||||||
valArr: [changeInfo.lv]
|
valArr: [changeInfo.lv]
|
||||||
});
|
});
|
||||||
|
|
||||||
let rankKfjs = new RankKfjs(5)
|
let rankKfjs = RankKfjs(5)
|
||||||
rankKfjs.setDataAndCheck({
|
rankKfjs.setDataAndCheck({
|
||||||
player: call.conn.gud,
|
player: call.conn.gud,
|
||||||
valArr: [changeInfo.lv-1]
|
valArr: [changeInfo.lv-1]
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import { ApiCall } from "tsrpc";
|
import {ApiCall} from "tsrpc";
|
||||||
import { ReqGetList, ResGetList } from "../../shared/protocols/peijian/PtlGetList";
|
import {ReqGetList, ResGetList} from "../../shared/protocols/peijian/PtlGetList";
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqGetList, ResGetList>) {
|
export default async function (call: ApiCall<ReqGetList, ResGetList>) {
|
||||||
let _maxLv = 0
|
let _maxLv = 0
|
||||||
let color = {}
|
let color = {}
|
||||||
let peijianCon = G.gc.peijian
|
let peijianCon = G.gc.peijian
|
||||||
|
|
||||||
let dbList = (await G.mongodb.collection('peijian').find({ uid: call.uid }).toArray()).map(p => {
|
let dbList = (await G.mongodb.collection('peijian').find({uid: call.uid}).toArray()).map(p => {
|
||||||
let np = G.mongodb.conversionIdObj(p);
|
let np = G.mongodb.conversionIdObj(p);
|
||||||
let { uid, ...ops } = np;
|
let {uid, ...ops} = np;
|
||||||
|
|
||||||
if (np.lv > _maxLv) _maxLv = np.lv
|
if (np.lv > _maxLv) _maxLv = np.lv
|
||||||
if (!color[peijianCon[np.peijianId].colour]) color[peijianCon[np.peijianId].colour] = 0
|
if (!color[peijianCon[np.peijianId].colour]) color[peijianCon[np.peijianId].colour] = 0
|
||||||
@ -16,15 +16,25 @@ export default async function (call: ApiCall<ReqGetList, ResGetList>) {
|
|||||||
return ops;
|
return ops;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 修复配件穿戴在不存在的英雄身上
|
||||||
|
let heroIds = R.values(call.conn.gud.heroPos)
|
||||||
|
let fixIds = dbList.filter(i => i.wearId && !heroIds.includes(i.wearId)).map(i => G.mongodb.conversionId(i._id))
|
||||||
|
if (fixIds.length) {
|
||||||
|
await G.mongodb.collection('peijian').updateMany({_id: {$in: fixIds}}, {$set: {wearId: ''}})
|
||||||
|
}
|
||||||
|
|
||||||
// 记录玩家最大等级,颜色相关数据 注册任务用
|
// 记录玩家最大等级,颜色相关数据 注册任务用
|
||||||
await G.mongodb.collection('playerInfo', 'usertasklog').updateOne({ uid: call.conn.uid, type: 'usertasklog' },
|
await G.mongodb.collection('playerInfo', 'usertasklog').updateOne({uid: call.conn.uid, type: 'usertasklog'},
|
||||||
{ $set: { maxpeijianlv: _maxLv, peijiancolor: color } }, { upsert: true })
|
{$set: {maxpeijianlv: _maxLv, peijiancolor: color}}, {upsert: true})
|
||||||
|
|
||||||
let list = Object.fromEntries(dbList.map(p => [G.formatRedisKey(p._id), p]));
|
let list = Object.fromEntries(dbList.map(p => [G.formatRedisKey(p._id), p]));
|
||||||
G.redis.set('peijian', call.uid, list);
|
G.redis.set('peijian', call.uid, list);
|
||||||
|
|
||||||
let recLshd = await G.mongodb.collection('playerInfo', 'lshd_peijian').findOne({ uid: call.conn.uid, type: 'lshd_peijian' });
|
let recLshd = await G.mongodb.collection('playerInfo', 'lshd_peijian').findOne({
|
||||||
let { uid, _id, type, ...peijians } = (recLshd || {});
|
uid: call.conn.uid,
|
||||||
|
type: 'lshd_peijian'
|
||||||
|
});
|
||||||
|
let {uid, _id, type, ...peijians} = (recLshd || {});
|
||||||
|
|
||||||
call.conn.lshd.peijian = peijians || {};
|
call.conn.lshd.peijian = peijians || {};
|
||||||
call.succ({
|
call.succ({
|
||||||
|
@ -38,7 +38,7 @@ export default async function (call: ApiCall<ReqFight, ResFight>) {
|
|||||||
|
|
||||||
// (await call.conn.gonghui)?.addExp(20, call.uid);
|
// (await call.conn.gonghui)?.addExp(20, call.uid);
|
||||||
|
|
||||||
let rankKfjs = new RankKfjs(4)
|
let rankKfjs = RankKfjs(4)
|
||||||
rankKfjs.setDataAndCheck({
|
rankKfjs.setDataAndCheck({
|
||||||
player: call.conn.gud,
|
player: call.conn.gud,
|
||||||
valArr: [call.conn.gud.mapId]
|
valArr: [call.conn.gud.mapId]
|
||||||
|
@ -21,8 +21,9 @@ export default async function (call: ApiCall<ReqPing, ResPing>) {
|
|||||||
openDay: PublicShared.getOpenServerDay()
|
openDay: PublicShared.getOpenServerDay()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let gud = call.conn?.gud
|
||||||
G.server.sendMsgByUid(call.uid, 'msg_s2c/PlayerChange', {
|
G.server.sendMsgByUid(call.uid, 'msg_s2c/PlayerChange', {
|
||||||
jinbi: call.conn.gud.jinbi,
|
jinbi: gud?.jinbi,
|
||||||
rmbmoney: call.conn.gud.rmbmoney
|
rmbmoney: gud?.rmbmoney
|
||||||
});
|
});
|
||||||
}
|
}
|
@ -250,7 +250,7 @@ BaseConnection.prototype.refreshPower = async function (this: BaseConnection<Ser
|
|||||||
G.mongodb.collection('user').updateOne({ uid: this.uid }, { $set: dbUpdate });
|
G.mongodb.collection('user').updateOne({ uid: this.uid }, { $set: dbUpdate });
|
||||||
this.sendMsg('msg_s2c/PlayerChange', dbUpdate);
|
this.sendMsg('msg_s2c/PlayerChange', dbUpdate);
|
||||||
|
|
||||||
let rankKfjs = new RankKfjs(7)
|
let rankKfjs = RankKfjs(7)
|
||||||
rankKfjs.setDataAndCheck({
|
rankKfjs.setDataAndCheck({
|
||||||
player: this.gud,
|
player: this.gud,
|
||||||
valArr: [power]
|
valArr: [power]
|
||||||
|
@ -72,10 +72,11 @@ async function main() {
|
|||||||
await patchInit()
|
await patchInit()
|
||||||
let patch = new Path();
|
let patch = new Path();
|
||||||
await patch.run();
|
await patch.run();
|
||||||
setInterval(() => {
|
|
||||||
console.log(new Date().format("MM-dd hh:mm:ss"));
|
|
||||||
}, 1000);
|
|
||||||
console.log("逻辑执行完成,等待退出");
|
console.log("逻辑执行完成,等待退出");
|
||||||
|
setTimeout(function() {
|
||||||
|
console.log('结束程序');
|
||||||
|
process.exit();
|
||||||
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
45
src/fix_patch/patch_rank_delData.ts
Normal file
45
src/fix_patch/patch_rank_delData.ts
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import { patchFun, patchInit } from "../patch";
|
||||||
|
|
||||||
|
class Path{
|
||||||
|
@patchFun
|
||||||
|
async fun1(a:any) {
|
||||||
|
//这里执行脚本的内容,加了patchFun的函数,不允许重复执行
|
||||||
|
console.log("这是第1个脚本里内容");
|
||||||
|
G.ioredis.del(`rank:kfjs1:data`);
|
||||||
|
G.ioredis.del(`rank:kfjs2:data`);
|
||||||
|
G.ioredis.del(`rank:kfjs3:data`);
|
||||||
|
G.ioredis.del(`rank:kfjs4:data`);
|
||||||
|
G.ioredis.del(`rank:kfjs5:data`);
|
||||||
|
G.ioredis.del(`rank:kfjs6:data`);
|
||||||
|
G.ioredis.del(`rank:kfjs7:data`);
|
||||||
|
G.ioredis.del(`rank:slzd1:data`);
|
||||||
|
G.ioredis.del(`rank:slzd2:data`);
|
||||||
|
G.ioredis.del(`rank:slzd3:data`);
|
||||||
|
G.ioredis.del(`rank:slzd4:data`);
|
||||||
|
G.ioredis.del(`rank:slzd5:data`);
|
||||||
|
G.ioredis.del(`rank:slzd6:data`);
|
||||||
|
G.ioredis.del(`rank:qjzzd:data`);
|
||||||
|
G.ioredis.del(`rank:tanxian:data`);
|
||||||
|
G.ioredis.del(`rank:tujian:data`);
|
||||||
|
G.ioredis.del(`rank:zccg:data`);
|
||||||
|
G.ioredis.del(`rank:zhanli:data`);
|
||||||
|
console.log("这是第1个脚本执行完成");
|
||||||
|
return 12
|
||||||
|
}
|
||||||
|
|
||||||
|
async run(){
|
||||||
|
await this.fun1(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main(){
|
||||||
|
await patchInit()
|
||||||
|
let patch = new Path();
|
||||||
|
await patch.run();
|
||||||
|
console.log("逻辑执行完成,等待退出");
|
||||||
|
setTimeout(function() {
|
||||||
|
console.log('结束程序');
|
||||||
|
process.exit();
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
main();
|
@ -25,9 +25,10 @@ async function main(){
|
|||||||
await patchInit()
|
await patchInit()
|
||||||
let patch = new Path();
|
let patch = new Path();
|
||||||
await patch.run();
|
await patch.run();
|
||||||
setInterval(() => {
|
|
||||||
console.log(new Date().format("MM-dd hh:mm:ss"));
|
|
||||||
}, 1000);
|
|
||||||
console.log("逻辑执行完成,等待退出");
|
console.log("逻辑执行完成,等待退出");
|
||||||
|
setTimeout(function() {
|
||||||
|
console.log('结束程序');
|
||||||
|
process.exit();
|
||||||
|
}, 3000);
|
||||||
}
|
}
|
||||||
main();
|
main();
|
||||||
|
@ -54,8 +54,8 @@
|
|||||||
"undefined": "游轮竞技第1名获得,解锁后攻击加成+1%",
|
"undefined": "游轮竞技第1名获得,解锁后攻击加成+1%",
|
||||||
"img": "txk_016",
|
"img": "txk_016",
|
||||||
"cond": [
|
"cond": [
|
||||||
"time",
|
"jjc_rank",
|
||||||
-1
|
1
|
||||||
],
|
],
|
||||||
"intr": "playerheadFrame_des_4",
|
"intr": "playerheadFrame_des_4",
|
||||||
"sort": 4,
|
"sort": 4,
|
||||||
|
@ -27,7 +27,7 @@ async function setHeroLvCount(call) {
|
|||||||
|
|
||||||
let score = R.sum(arrList.map(i => i.lv))
|
let score = R.sum(arrList.map(i => i.lv))
|
||||||
|
|
||||||
let rankKfjs = new RankKfjs(2)
|
let rankKfjs = RankKfjs(2)
|
||||||
rankKfjs.setDataAndCheck({
|
rankKfjs.setDataAndCheck({
|
||||||
player: call.conn.gud,
|
player: call.conn.gud,
|
||||||
valArr: [score]
|
valArr: [score]
|
||||||
@ -37,7 +37,7 @@ async function setHeroLvCount(call) {
|
|||||||
async function setEquipLvCount(call) {
|
async function setEquipLvCount(call) {
|
||||||
let status = getStatus()
|
let status = getStatus()
|
||||||
if (status.type != 3) return
|
if (status.type != 3) return
|
||||||
let rankKfjs = new RankKfjs(3)
|
let rankKfjs = RankKfjs(3)
|
||||||
let equips = await G.mongodb.collection('equip').find({
|
let equips = await G.mongodb.collection('equip').find({
|
||||||
uid: call.uid,
|
uid: call.uid,
|
||||||
wearaId: {$in: R.values(call.conn.gud.heroPos)}
|
wearaId: {$in: R.values(call.conn.gud.heroPos)}
|
||||||
|
@ -227,7 +227,7 @@ export class PlayerFun {
|
|||||||
// 消费竞赛开启时写入跨服数据库
|
// 消费竞赛开启时写入跨服数据库
|
||||||
if (G.huodong.xfjs && !data.isAdd) {
|
if (G.huodong.xfjs && !data.isAdd) {
|
||||||
G.crossmongodb.collection('rmbuse').updateOne({uid: data.uid}, {
|
G.crossmongodb.collection('rmbuse').updateOne({uid: data.uid}, {
|
||||||
time: G.time,
|
$set: {time: G.time},
|
||||||
$inc: {change: data.change}
|
$inc: {change: data.change}
|
||||||
}, {upsert: true});
|
}, {upsert: true});
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,9 @@ import { RankWzryCross } from './rank_wzry';
|
|||||||
import { RankXszm } from './rank_xszm';
|
import { RankXszm } from './rank_xszm';
|
||||||
import { RankZccg } from './rank_zccg';
|
import { RankZccg } from './rank_zccg';
|
||||||
import * as util from 'util'
|
import * as util from 'util'
|
||||||
import { RankKfjs } from "./rank_kfjs";
|
import { RankKfjs_1 } from "./rank_kfjs";
|
||||||
import { clusterRunOnce } from '../../clusterUtils';
|
import { clusterRunOnce } from '../../clusterUtils';
|
||||||
|
import { number } from 'mathjs';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -33,8 +34,7 @@ export abstract class Rank {
|
|||||||
zccg: RankZccg;
|
zccg: RankZccg;
|
||||||
tujian: RankTujian;
|
tujian: RankTujian;
|
||||||
wzryCross: RankWzryCross;
|
wzryCross: RankWzryCross;
|
||||||
kfjs: RankKfjs
|
}> & k_v<Rank> = {};
|
||||||
}> = {};
|
|
||||||
|
|
||||||
queue = new Queue();
|
queue = new Queue();
|
||||||
findKey = 'uid';
|
findKey = 'uid';
|
||||||
@ -109,7 +109,7 @@ export abstract class Rank {
|
|||||||
}
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
Rank.list[this.getType()] = this;
|
Rank.list[this.getType() as string] = this;
|
||||||
this.cotr();
|
this.cotr();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,23 +1,18 @@
|
|||||||
import {rankType} from '../../shared/protocols/rank/PtlOpen';
|
import { rankType } from '../../shared/protocols/rank/PtlOpen';
|
||||||
import {rankInfo} from '../../shared/protocols/type';
|
import { rankInfo } from '../../shared/protocols/type';
|
||||||
import {Rank} from './rank';
|
import { Rank } from './rank';
|
||||||
import kfjsFun from "../kaifujingsai";
|
import kfjsFun from "../kaifujingsai";
|
||||||
|
|
||||||
|
|
||||||
export class RankKfjs extends Rank {
|
export class RankKfjs_1 extends Rank {
|
||||||
|
ctype: string;
|
||||||
|
|
||||||
ortype: string
|
get ortype() {
|
||||||
ctype: string
|
return `kfjs${kfjsFun.getStatus().type}`
|
||||||
|
|
||||||
constructor(ctype) {
|
|
||||||
super();
|
|
||||||
this.ctype = ctype
|
|
||||||
this.ortype = `kfjs${kfjsFun.getStatus().type}`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getType(): rankType {
|
getType(): rankType {
|
||||||
let status = kfjsFun.getStatus(this.ctype)
|
return <rankType>`kfjs1`;
|
||||||
return <rankType>`kfjs${status.type}`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async setDataAndCheck(info: rankInfo) {
|
async setDataAndCheck(info: rankInfo) {
|
||||||
@ -26,4 +21,47 @@ export class RankKfjs extends Rank {
|
|||||||
if (status.type == -1) return
|
if (status.type == -1) return
|
||||||
this.addNew(info)
|
this.addNew(info)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class RankKfjs_2 extends RankKfjs_1 {
|
||||||
|
getType(): rankType {
|
||||||
|
return <rankType>`kfjs2`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class RankKfjs_3 extends RankKfjs_1 {
|
||||||
|
getType(): rankType {
|
||||||
|
return <rankType>`kfjs3`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class RankKfjs_4 extends RankKfjs_1 {
|
||||||
|
getType(): rankType {
|
||||||
|
return <rankType>`kfjs4`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export class RankKfjs_5 extends RankKfjs_1 {
|
||||||
|
getType(): rankType {
|
||||||
|
return <rankType>`kfjs5`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export class RankKfjs_6 extends RankKfjs_1 {
|
||||||
|
getType(): rankType {
|
||||||
|
return <rankType>`kfjs6`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class RankKfjs_7 extends RankKfjs_1 {
|
||||||
|
getType(): rankType {
|
||||||
|
return <rankType>`kfjs7`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export function RankKfjs(type: number) {
|
||||||
|
return <RankKfjs_1>Rank.list[`kfjs${type}`]
|
||||||
}
|
}
|
@ -28,6 +28,7 @@ import { addListener } from './globalListener';
|
|||||||
import { SchedulerManage } from './public/scheduler/scheduler';
|
import { SchedulerManage } from './public/scheduler/scheduler';
|
||||||
import {CrossEmailPull} from "./public/scheduler/scheduler_cross_email_pull";
|
import {CrossEmailPull} from "./public/scheduler/scheduler_cross_email_pull";
|
||||||
import {Scheduler_xfjs_Local_Ctor} from "./public/scheduler/scheduler_xiaofeijingsai";
|
import {Scheduler_xfjs_Local_Ctor} from "./public/scheduler/scheduler_xiaofeijingsai";
|
||||||
|
import { RankKfjs_1, RankKfjs_2, RankKfjs_3, RankKfjs_4, RankKfjs_5, RankKfjs_6, RankKfjs_7 } from './public/rank/rank_kfjs';
|
||||||
export async function startAfter() {
|
export async function startAfter() {
|
||||||
|
|
||||||
//事件监听和定时器初始化
|
//事件监听和定时器初始化
|
||||||
@ -58,6 +59,14 @@ export async function startAfter() {
|
|||||||
new RankSlzd5();
|
new RankSlzd5();
|
||||||
new RankSlzd6();
|
new RankSlzd6();
|
||||||
|
|
||||||
|
new RankKfjs_1();
|
||||||
|
new RankKfjs_2();
|
||||||
|
new RankKfjs_3();
|
||||||
|
new RankKfjs_4();
|
||||||
|
new RankKfjs_5();
|
||||||
|
new RankKfjs_6();
|
||||||
|
new RankKfjs_7();
|
||||||
|
|
||||||
new RankZccg();
|
new RankZccg();
|
||||||
new RankTujian();
|
new RankTujian();
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ export type hongdianKey =
|
|||||||
| 'pobinglibao'
|
| 'pobinglibao'
|
||||||
| 'payForDiamond'
|
| 'payForDiamond'
|
||||||
| 'leichonglibao'
|
| 'leichonglibao'
|
||||||
| 'yuandan';
|
|
||||||
export type hongdianVal = {
|
export type hongdianVal = {
|
||||||
show?: boolean;
|
show?: boolean;
|
||||||
// 看功能需要
|
// 看功能需要
|
||||||
|
@ -15608,13 +15608,6 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
"type": "Literal",
|
"type": "Literal",
|
||||||
"literal": "leichonglibao"
|
"literal": "leichonglibao"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 40,
|
|
||||||
"type": {
|
|
||||||
"type": "Literal",
|
|
||||||
"literal": "yuandan"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user