Compare commits
No commits in common. "12e21ce0f10b88059a5e7d0df724a4da5425db70" and "ab872cf18526e5d8f50207c270e93e0e928df678" have entirely different histories.
12e21ce0f1
...
ab872cf185
5
.vscode/extensions.json
vendored
5
.vscode/extensions.json
vendored
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"recommendations": [
|
|
||||||
"ms-ceintl.vscode-language-pack-zh-hans"
|
|
||||||
]
|
|
||||||
}
|
|
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"editor.suggest.snippetsPreventQuickSuggestions": false,
|
|
||||||
"aiXcoder.showTrayIcon": true
|
|
||||||
}
|
|
@ -1,49 +1,16 @@
|
|||||||
import { ApiCall } from "tsrpc";
|
import { ApiCall } from "tsrpc";
|
||||||
import { ReqFindEnemy, ResFindEnemy } from "../../cross/protocols/clsl/PtlFindEnemy";
|
import { ReqFindEnemy, ResFindEnemy } from "../../cross/protocols/clsl/PtlFindEnemy";
|
||||||
import { formatNpcData } from '../../shared/fightControl/fightFun';
|
import { formatNpcData } from '../../shared/fightControl/fightFun';
|
||||||
import { PublicShared } from "../../shared/public/public";
|
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqFindEnemy, ResFindEnemy>) {
|
export default async function (call: ApiCall<ReqFindEnemy, ResFindEnemy>) {
|
||||||
let p = PublicShared.randomNum(1, 1000);
|
let my = await G.mongodb.collection('clslCrossUser').findOne({ uid: call.req.uid });
|
||||||
let starConf = getStarConf(call.req.myStasr);
|
let starConf = getStarConf(my.allStar);
|
||||||
|
let others = await G.mongodb.collection('clslCrossUser').find({ uid: { $nin: [call.req.uid] } }).toArray();
|
||||||
let enemy: { allStar: number, info: any };
|
let enemy = others.random();
|
||||||
|
|
||||||
// 本次随机到npc概率判断
|
|
||||||
if (p <= starConf.pro * 1000) {
|
|
||||||
enemy = {
|
|
||||||
allStar: call.req.myStasr,
|
|
||||||
info: formatNpcData(starConf.npc)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 在自定范围内随机一个对手
|
|
||||||
let others = await G.mongodb.collection("clslCrossUser").aggregate([
|
|
||||||
{
|
|
||||||
$match: {
|
|
||||||
allStar: { $gte: starConf.fighter[0], $lte: starConf.fighter[1] }
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
$sample: { size: 1 }
|
|
||||||
}
|
|
||||||
|
|
||||||
]).toArray();
|
|
||||||
|
|
||||||
if (others.length <= 0) {
|
|
||||||
enemy = {
|
|
||||||
allStar: call.req.myStasr,
|
|
||||||
info: formatNpcData(starConf.npc)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
enemy = {
|
|
||||||
allStar: others[0].allStar,
|
|
||||||
info: others[0].info,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
call.succ({
|
call.succ({
|
||||||
allStar: enemy.allStar,
|
allStar: enemy?.allStar || my.allStar,
|
||||||
info: enemy.info || formatNpcData(starConf.npc)
|
info: enemy?.info || formatNpcData(starConf.npc)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import { FightFun } from '../../public/fight';
|
|||||||
|
|
||||||
export default async function (call: ApiCall<ReqLog, ResLog>) {
|
export default async function (call: ApiCall<ReqLog, ResLog>) {
|
||||||
if (call.req.result) {
|
if (call.req.result) {
|
||||||
FightFun.saveLog(call.req.uid, 'clsl', call.req.result);
|
// FightFun.saveLog(call.req.uid, 'clsl', call.req.result);
|
||||||
call.succ({});
|
call.succ({});
|
||||||
} else {
|
} else {
|
||||||
call.succ({
|
call.succ({
|
||||||
|
@ -1,37 +1,10 @@
|
|||||||
import { ApiCall } from "tsrpc";
|
import { ApiCall } from "tsrpc";
|
||||||
import { ReqRank, ResRank } from "../../cross/protocols/clsl/PtlRank";
|
import { ReqRank, ResRank } from "../../cross/protocols/clsl/PtlRank";
|
||||||
import { Rank } from '../../public/rank/rank';
|
import { Rank } from '../../public/rank/rank';
|
||||||
import { PublicShared } from "../../shared/public/public";
|
|
||||||
import { RankClslCross } from "../../public/rank/rank_clsl";
|
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqRank, ResRank>) {
|
export default async function (call: ApiCall<ReqRank, ResRank>) {
|
||||||
let group_time = G.gc.clsl_com.divideTime;
|
|
||||||
let week_zero_time = PublicShared.getToWeekMondayZeroTime();
|
|
||||||
|
|
||||||
if (G.time < week_zero_time + group_time) {
|
|
||||||
call.succ({ rankList: [], myRank: { rank: -1, player: {}, valArr: [] } })
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
let a = await G.mongodb.collection('clslCrossUser').findOne({
|
|
||||||
uid: call.req.uid
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!a || !a.group){
|
|
||||||
call.succ({ rankList: [], myRank: { rank: -1, player: {}, valArr: [] } })
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
let rank: Rank;
|
|
||||||
if (Rank.list[`clslCross_${a.group}`]) {
|
|
||||||
rank = Rank.list[`clslCross_${a.group}`]
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
rank = new RankClslCross(a.group)
|
|
||||||
}
|
|
||||||
|
|
||||||
let page = call.req.page || 0
|
let page = call.req.page || 0
|
||||||
let offset = call.req.offset || -1 // 预防未查询到的调用,按原逻辑查询全部,避免引起未知问题
|
let offset = call.req.offset || -1 // 预防未查询到的调用,按原逻辑查询全部,避免引起未知问题
|
||||||
let { min, max } = Rank.pageToMin(page, offset)
|
let {min, max} = Rank.pageToMin(page, offset)
|
||||||
call.succ(await rank.getRankList(call.req.uid, { min, max }));
|
call.succ(await Rank.list.clslCross.getRankList(call.req.gud.uid, { min, max }));
|
||||||
}
|
}
|
9
src/api_cross/clsl/ApiRankUids.ts
Normal file
9
src/api_cross/clsl/ApiRankUids.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import { ApiCall } from "tsrpc";
|
||||||
|
import { ReqRankUids, ResRankUids } from "../../cross/protocols/clsl/PtlRankUids";
|
||||||
|
import { Rank } from '../../public/rank/rank';
|
||||||
|
|
||||||
|
export default async function (call: ApiCall<ReqRankUids, ResRankUids>) {
|
||||||
|
// 返回排名的uids, 应用场景是定时器发送奖励,不分页。
|
||||||
|
let uids = await Rank.list.clslCross.getRankListIdKeyAll()
|
||||||
|
call.succ({uids});
|
||||||
|
}
|
@ -1,49 +1,23 @@
|
|||||||
import { ApiCall } from "tsrpc";
|
import { ApiCall } from "tsrpc";
|
||||||
import { ReqUpLoad, ResUpLoad } from "../../cross/protocols/clsl/PtlUpLoad";
|
import { ReqUpLoad, ResUpLoad } from "../../cross/protocols/clsl/PtlUpLoad";
|
||||||
import { Rank } from '../../public/rank/rank';
|
import { Rank } from '../../public/rank/rank';
|
||||||
import { PublicShared } from "../../shared/public/public";
|
|
||||||
import { RankClslCross } from "../../public/rank/rank_clsl";
|
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqUpLoad, ResUpLoad>) {
|
export default async function (call: ApiCall<ReqUpLoad, ResUpLoad>) {
|
||||||
let { allStar, uid, ...ops } = call.req;
|
let { allStar, uid, ...ops } = call.req;
|
||||||
|
|
||||||
let a = (await G.mongodb.collection('clslCrossUser').findOneAndUpdate(
|
let a = await G.mongodb.collection('clslCrossUser').findOneAndUpdate(
|
||||||
{ uid: uid },
|
{ uid: uid },
|
||||||
{
|
{
|
||||||
$inc: { allStar: allStar || 0 },
|
$inc: { allStar: allStar || 0 },
|
||||||
$set: ops
|
$set: ops
|
||||||
},
|
},
|
||||||
{ upsert: true, returnDocument: "after" }
|
{ upsert: true }
|
||||||
)).value;
|
);
|
||||||
|
|
||||||
// 周四 并且没有分组 更新玩家分组
|
|
||||||
if ((PublicShared.getWeek(G.time) || 7) >= 4 && !a.group) {
|
|
||||||
// 查询分组数据
|
|
||||||
let week = PublicShared.getToWeek();
|
|
||||||
let group = await G.mongodb.collection('clslCrossGroup').findOne({ week: week });
|
|
||||||
for (let groupid in group.groups) {
|
|
||||||
let groupinfo = group.groups[groupid];
|
|
||||||
if (a.info.player.cTime >= groupinfo.st && a.info.player.cTime < groupinfo.et) {
|
|
||||||
a.group = groupid;
|
|
||||||
G.mongodb.collection('clslCrossUser').updateOne({ uid: uid }, { $set: { group: a.group } });
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (a.group) { // 分完组之后就可以更新排行榜了
|
if (allStar != undefined && ops.info) {
|
||||||
if (allStar != undefined && ops.info) {
|
Rank.list.clslCross.addNew({
|
||||||
let rank;
|
player: a.value.info.player,
|
||||||
if (Rank.list[`clslCross_${a.group}`]) {
|
valArr: [(await G.mongodb.collection('clslCrossUser').findOne({ uid: uid })).allStar]
|
||||||
rank = Rank.list[`clslCross_${a.group}`]
|
});
|
||||||
}
|
|
||||||
else {
|
|
||||||
rank = new RankClslCross(a.group)
|
|
||||||
}
|
|
||||||
rank.addNew({
|
|
||||||
player: a.info.player,
|
|
||||||
valArr: [a.allStar, a.info.player.power]
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -32,7 +32,7 @@ export default async function (call: ApiCall<Reqdetails, Resdetails>) {
|
|||||||
let _tmp = {
|
let _tmp = {
|
||||||
ranking: index,
|
ranking: index,
|
||||||
participantId: elementUser.uid,
|
participantId: elementUser.uid,
|
||||||
value: await (await PayFun.getPayDaysAllPayNum(elementUser.uid, element.stime, element.etime)).toString()
|
value: await (await PayFun.getPayDaysAllPayNum(elementUser.uid, element.stime, element.rtime)).toString()
|
||||||
}
|
}
|
||||||
accountingData.push(_tmp)
|
accountingData.push(_tmp)
|
||||||
}
|
}
|
||||||
|
@ -1,91 +1,43 @@
|
|||||||
import { ApiCall } from "tsrpc";
|
import {ApiCall} from "tsrpc";
|
||||||
import { FightFun } from '../../public/fight';
|
import {FightFun} from '../../public/fight';
|
||||||
import { PlayerFun } from '../../public/player';
|
import {PlayerFun} from '../../public/player';
|
||||||
import { ReqFind, ResFind } from "../../shared/protocols/conglinshoulie/PtlFind";
|
import {ReqFind, ResFind} from "../../shared/protocols/conglinshoulie/PtlFind";
|
||||||
import { PublicShared } from '../../shared/public/public';
|
import {PublicShared} from '../../shared/public/public';
|
||||||
import { addStar, clslDb } from './ApiOpen';
|
import {addStar, clslDb} from './ApiOpen';
|
||||||
import { EmailFun } from "../../public/email";
|
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqFind, ResFind>) {
|
export default async function (call: ApiCall<ReqFind, ResFind>) {
|
||||||
let weekZeroTime = PublicShared.getToWeekMondayZeroTime();
|
let weekZeroTime = PublicShared.getToWeekMondayZeroTime();
|
||||||
|
if (G.time < weekZeroTime + G.gc.clsl_com.fightTime[0] || G.time > weekZeroTime + G.gc.clsl_com.fightTime[1]) return call.errorCode(-1);
|
||||||
|
|
||||||
// 未到开启时间
|
let db = await clslDb().findOne({uid: call.uid, type: 'clsl'});
|
||||||
if (G.time < weekZeroTime + G.gc.clsl_com.fightTime[0] || G.time > weekZeroTime + G.gc.clsl_com.fightTime[1]) {
|
|
||||||
return call.errorCode(-1)
|
|
||||||
};
|
|
||||||
|
|
||||||
// 获取自己的数据
|
|
||||||
let db = await clslDb().findOne({ uid: call.uid, type: 'clsl' });
|
|
||||||
|
|
||||||
let curStar = db?.allStar || 0;
|
let curStar = db?.allStar || 0;
|
||||||
let useNum = db?.useFightNum || 0;
|
let useNum = db?.useFightNum || 0;
|
||||||
let buyNum = db?.buyFightNum || 0;
|
let buyNum = db?.buyFightNum || 0;
|
||||||
let danPrize = db?.danPrize || [];
|
|
||||||
let curMaxStar = db?.curMaxStar || 0;
|
|
||||||
|
|
||||||
// 战斗次数不足
|
|
||||||
if (useNum >= buyNum + G.gc.clsl_com.fightNum) {
|
|
||||||
return call.errorCode(-2);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 自己战斗数据
|
|
||||||
let my = await call.conn.getDefaultFightData();
|
|
||||||
|
|
||||||
// 获取一个对手
|
|
||||||
let other = (await G.clientCross.callApi('clsl/FindEnemy', { uid: call.uid, myStasr: curStar })).res;
|
|
||||||
|
|
||||||
let result = FightFun.fight([my, other.info]);
|
|
||||||
|
|
||||||
let starConf = G.gc.clsl_dan[curStar] || Object.values(G.gc.clsl_dan).slice(-1)[0];
|
let starConf = G.gc.clsl_dan[curStar] || Object.values(G.gc.clsl_dan).slice(-1)[0];
|
||||||
|
|
||||||
let updata = { $inc: { useFightNum: 1 } };
|
if (useNum >= buyNum + G.gc.clsl_com.fightNum) return call.errorCode(-2);
|
||||||
|
|
||||||
// 更新战斗胜利的次数
|
let my = await call.conn.getDefaultFightData();
|
||||||
if (result.winSide == 0) {
|
let other = (await G.clientCross.callApi('clsl/FindEnemy', {uid: call.uid})).res;
|
||||||
updata.$inc["fightWinNum"] = 1;
|
let result = FightFun.fight([my, other.info]);
|
||||||
|
|
||||||
// 首次达到某个段位
|
if ((result.winSide != 0 && starConf.failCut) || result.winSide == 0) {
|
||||||
if (curStar + 1 > curMaxStar) {
|
addStar(call, result.winSide == 0 ? 1 : -starConf.failCut, my);
|
||||||
curMaxStar += 1;
|
|
||||||
updata.$inc["curMaxStar"] = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 段位奖励邮件
|
result.initData[0].star = curStar
|
||||||
let title = G.gc.clsl_com.email_dan.title;
|
result.initData[1].star = other.allStar
|
||||||
let content = G.gc.clsl_com.email_dan.content;
|
|
||||||
G.gc.clsl_com.danPrize.forEach(conf => {
|
|
||||||
// 段位未达到 或者 奖励已经发放
|
|
||||||
if (conf.star > curMaxStar || danPrize.includes(conf.star)) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 发放邮件
|
result.winSide == 0 && clslDb().updateOne({uid: call.uid, type: 'clsl'}, {$inc: {fightWinNum: 1}});
|
||||||
EmailFun.addEmail({
|
clslDb().updateOne({uid: call.uid, type: 'clsl'}, {$inc: {useFightNum: 1}});
|
||||||
uid: call.uid,
|
|
||||||
type: 'system',
|
|
||||||
title: title,
|
|
||||||
content: content,
|
|
||||||
prize: conf.prize,
|
|
||||||
contentInsertArr:[conf.title]
|
|
||||||
})
|
|
||||||
|
|
||||||
danPrize.push(conf.star);
|
|
||||||
updata["$set"] = { danPrize: danPrize };
|
|
||||||
})
|
|
||||||
|
|
||||||
// 输了掉星 或者 赢了加星 同时更新排行数据
|
|
||||||
addStar(call, result.winSide == 0 ? 1 : -starConf.failCut, my, updata);
|
|
||||||
|
|
||||||
result.initData[0].star = curStar;
|
|
||||||
result.initData[1].star = other.allStar;
|
|
||||||
|
|
||||||
// 发送战斗奖励
|
|
||||||
await PlayerFun.sendPrize(call, starConf.fightPrize);
|
await PlayerFun.sendPrize(call, starConf.fightPrize);
|
||||||
|
|
||||||
// 记录战斗日志
|
G.clientCross?.callApi('clsl/Log', {uid: call.uid, result: result});
|
||||||
G.clientCross?.callApi('clsl/Log', { uid: call.uid, result: result });
|
G.clientCross?.callApi('clsl/Log', {uid: other.info.player.uid, result: result});
|
||||||
G.clientCross?.callApi('clsl/Log', { uid: other.info.player.uid, result: result });
|
|
||||||
|
|
||||||
call.succ({ enemy: other, result: result });
|
call.succ({
|
||||||
|
enemy: other,
|
||||||
|
result: result
|
||||||
|
});
|
||||||
}
|
}
|
@ -9,8 +9,8 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
let db = await clslDb().findOne({ uid: call.uid, type: 'clsl' });
|
let db = await clslDb().findOne({ uid: call.uid, type: 'clsl' });
|
||||||
let { _id, uid, type, ...ops } = db || {} as WithId<OptionalId<CollectionPlayerInfo<"clsl">>>;
|
let { _id, uid, type, ...ops } = db || {} as WithId<OptionalId<CollectionPlayerInfo<"clsl">>>;
|
||||||
|
|
||||||
// 刷新 挑战次数、购买挑战次数、胜利次数任务
|
|
||||||
if (!db || ops?.refreshTime < PublicShared.getToDayZeroTime()) {
|
if (!db || ops?.refreshTime < PublicShared.getToDayZeroTime()) {
|
||||||
|
|
||||||
let change: Partial<typeof ops> = {
|
let change: Partial<typeof ops> = {
|
||||||
refreshTime: G.time,
|
refreshTime: G.time,
|
||||||
useFightNum: 0,
|
useFightNum: 0,
|
||||||
@ -19,13 +19,6 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
buyFightNum: 0
|
buyFightNum: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
// 隔周刷新星级
|
|
||||||
if (ops?.refreshTime < PublicShared.getToWeekMondayZeroTime()) {
|
|
||||||
change.allStar = 0;
|
|
||||||
change.danPrize = [];
|
|
||||||
change.curMaxStar = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.assign(ops, change);
|
Object.assign(ops, change);
|
||||||
|
|
||||||
clslDb().updateOne({ uid: call.uid, type: 'clsl' }, { $set: change }, { upsert: true });
|
clslDb().updateOne({ uid: call.uid, type: 'clsl' }, { $set: change }, { upsert: true });
|
||||||
@ -36,10 +29,7 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
call.succ({
|
call.succ({
|
||||||
week: PublicShared.getWeek(G.time) || 7,
|
|
||||||
allStar: ops?.allStar || 0,
|
allStar: ops?.allStar || 0,
|
||||||
danPrize: ops?.danPrize || [],
|
|
||||||
curMaxStar: ops?.curMaxStar || 0,
|
|
||||||
buyFightNum: ops?.buyFightNum || 0,
|
buyFightNum: ops?.buyFightNum || 0,
|
||||||
useFightNum: ops?.useFightNum || 0,
|
useFightNum: ops?.useFightNum || 0,
|
||||||
fightWinNum: ops?.fightWinNum || 0,
|
fightWinNum: ops?.fightWinNum || 0,
|
||||||
@ -51,15 +41,7 @@ export function clslDb() {
|
|||||||
return G.mongodb.cPlayerInfo('clsl');
|
return G.mongodb.cPlayerInfo('clsl');
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function addStar(call: ApiCall, star: number, info?: joinFightData, update?: any) {
|
export async function addStar(call: ApiCall, star: number, info?: joinFightData) {
|
||||||
update = update || {};
|
clslDb().updateOne({ uid: call.uid, type: 'clsl' }, { $inc: { allStar: star } }, { upsert: true });
|
||||||
|
|
||||||
if (update.$inc) {
|
|
||||||
update.$inc["allStar"] = star
|
|
||||||
} else {
|
|
||||||
update["$inc"] = { allStar: star }
|
|
||||||
}
|
|
||||||
|
|
||||||
clslDb().updateOne({ uid: call.uid, type: 'clsl' }, update, { upsert: true });
|
|
||||||
G.clientCross.callApi('clsl/UpLoad', { uid: call.uid, allStar: star, info: info || await call.conn.getDefaultFightData() });
|
G.clientCross.callApi('clsl/UpLoad', { uid: call.uid, allStar: star, info: info || await call.conn.getDefaultFightData() });
|
||||||
}
|
}
|
@ -19,20 +19,20 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
if (!db) {
|
if (!db) {
|
||||||
await G.mongodb.cEvent(_dbType).updateOne(
|
await G.mongodb.cEvent(_dbType).updateOne(
|
||||||
{uid: call.uid, type: _dbType},
|
{uid: call.uid, type: _dbType},
|
||||||
{$set: {sTime: sTime, recIndex: [], round: 0}},
|
{$set: {sTime: sTime, recIndex: []}},
|
||||||
{upsert: true}
|
{upsert: true}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
db = await checkNextRound(call, db, _hdinfo)
|
db = await checkNextRound(call, db, _hdinfo.data.tasks)
|
||||||
|
|
||||||
let payNum = (await PayFun.getPayDaysAllPayNum(call.uid, _hdinfo.stime, _hdinfo.rtime)) * 10
|
let payNum = (await PayFun.getPayDaysAllPayNum(call.uid, _hdinfo.stime, _hdinfo.rtime)) * 10
|
||||||
payNum = payNum - (db?.round || 0) * R.sort((a, b) => b.total - a.total)(_hdinfo.data.tasks)[0].total
|
payNum = payNum - (db.round || 0) * R.sort((a, b) => b.total - a.total)(_hdinfo.data.tasks)[0].total
|
||||||
|
|
||||||
call.succ({
|
call.succ({
|
||||||
sTime: sTime,
|
sTime: sTime,
|
||||||
recIndex: db?.recIndex || [],
|
recIndex: db?.recIndex || [],
|
||||||
payNum: payNum,
|
payNum: payNum,
|
||||||
hdinfo: _hdinfo,
|
hdinfo: _hdinfo,
|
||||||
round: db?.round || 0
|
round: db.round || 0
|
||||||
});
|
});
|
||||||
}
|
}
|
@ -20,7 +20,7 @@ export default async function (call: ApiCall<ReqRec, ResRec>) {
|
|||||||
let db = await G.mongodb.cEvent(_dbType).findOne({uid: call.uid, type: _dbType});
|
let db = await G.mongodb.cEvent(_dbType).findOne({uid: call.uid, type: _dbType});
|
||||||
if (db.recIndex.includes(call.req.index)) return call.error('', {code: -2});
|
if (db.recIndex.includes(call.req.index)) return call.error('', {code: -2});
|
||||||
|
|
||||||
let payNum = (await PayFun.getPayDaysAllPayNum(call.uid, _hdinfo.stime, _hdinfo.etime)) * 10;
|
let payNum = (await PayFun.getPayDaysAllPayNum(call.uid, _hdinfo.stime, _hdinfo.rtime)) * 10;
|
||||||
payNum = payNum - (db.round || 0) * R.sort((a, b) => b.total - a.total)(_hdinfo.data.tasks)[0].total
|
payNum = payNum - (db.round || 0) * R.sort((a, b) => b.total - a.total)(_hdinfo.data.tasks)[0].total
|
||||||
if (payNum < conf.total) return call.error('', {code: -3});
|
if (payNum < conf.total) return call.error('', {code: -3});
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ export default async function (call: ApiCall<ReqRec, ResRec>) {
|
|||||||
{$push: {recIndex: call.req.index}}
|
{$push: {recIndex: call.req.index}}
|
||||||
);
|
);
|
||||||
|
|
||||||
await checkNextRound(call, db, _hdinfo)
|
await checkNextRound(call, db, _hdinfo.data.tasks)
|
||||||
|
|
||||||
HongDianChange.sendChangeKey(call.uid, ['huodonghd'])
|
HongDianChange.sendChangeKey(call.uid, ['huodonghd'])
|
||||||
call.succ({
|
call.succ({
|
||||||
@ -39,13 +39,9 @@ export default async function (call: ApiCall<ReqRec, ResRec>) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function checkNextRound(call: ApiCall, event, _hdinfo) {
|
export async function checkNextRound(call: ApiCall, event, tasks) {
|
||||||
if ((event?.recIndex?.length || 0) < _hdinfo.data.tasks.length) return event
|
|
||||||
let payNum = (await PayFun.getPayDaysAllPayNum(call.uid, _hdinfo.stime, _hdinfo.etime)) * 10
|
|
||||||
payNum = payNum - (event?.round || 0) * R.sort((a, b) => b.total - a.total)(_hdinfo.data.tasks)[0].total
|
|
||||||
if (payNum < 0) return event
|
|
||||||
|
|
||||||
let _dbType: `leijichongzhi${number}` = `leijichongzhi${call.req.hdid}`
|
let _dbType: `leijichongzhi${number}` = `leijichongzhi${call.req.hdid}`
|
||||||
|
if ((event?.recIndex?.length || 0) < tasks.length) return event
|
||||||
return (await G.mongodb.cEvent(_dbType).findOneAndUpdate(
|
return (await G.mongodb.cEvent(_dbType).findOneAndUpdate(
|
||||||
{uid: call.uid, type: _dbType},
|
{uid: call.uid, type: _dbType},
|
||||||
{$set: {recIndex: []}, $inc: {round: 1}}, {returnDocument: 'after'}
|
{$set: {recIndex: []}, $inc: {round: 1}}, {returnDocument: 'after'}
|
||||||
|
@ -656,7 +656,7 @@ export class HuoDongHongDianFun {
|
|||||||
let _con = hdCon.data.tasks;
|
let _con = hdCon.data.tasks;
|
||||||
let db = await G.mongodb.cEvent(_dbType).findOne({uid: call.uid, type: _dbType});
|
let db = await G.mongodb.cEvent(_dbType).findOne({uid: call.uid, type: _dbType});
|
||||||
let _mydata = db || {sTime: PublicShared.getToDayZeroTime(G.time), recIndex: []};
|
let _mydata = db || {sTime: PublicShared.getToDayZeroTime(G.time), recIndex: []};
|
||||||
let payNum = await PayFun.getPayDaysAllPayNum(call.uid, hdCon.stime, hdCon.etime);
|
let payNum = await PayFun.getPayDaysAllPayNum(call.uid, hdCon.stime, hdCon.rtime);
|
||||||
for (let index = 0; index < _con.length; index++) {
|
for (let index = 0; index < _con.length; index++) {
|
||||||
const element = _con[index];
|
const element = _con[index];
|
||||||
if (_mydata.recIndex.includes(index)) continue;
|
if (_mydata.recIndex.includes(index)) continue;
|
||||||
|
@ -4,9 +4,6 @@ import {PlayerFun} from "../../public/player";
|
|||||||
import {ReqYanShi, ResYanShi} from "../../shared/protocols/kuangdong/PtlYanShi";
|
import {ReqYanShi, ResYanShi} from "../../shared/protocols/kuangdong/PtlYanShi";
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqYanShi, ResYanShi>) {
|
export default async function (call: ApiCall<ReqYanShi, ResYanShi>) {
|
||||||
|
|
||||||
return call.errorCode(1)
|
|
||||||
|
|
||||||
let hdid = call.req.hdid
|
let hdid = call.req.hdid
|
||||||
let con = await KuangDongfun.getCon(hdid)
|
let con = await KuangDongfun.getCon(hdid)
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ export default async function (call: ApiCall<ReqPkBoss, ResPkBoss>) {
|
|||||||
let _bossMaxHp = _bossData.maxhp
|
let _bossMaxHp = _bossData.maxhp
|
||||||
let _bossDelHp = _bossData.delhp
|
let _bossDelHp = _bossData.delhp
|
||||||
/**格式化boss属性 */
|
/**格式化boss属性 */
|
||||||
let hpjc = Number(((_bossMaxHp - _bossDelHp) / _bossMaxHp).toFixed(2)) || 0.01 // 继承血量比
|
let hpjc = Number(((_bossMaxHp - _bossDelHp) / _bossMaxHp).toFixed(2)) || 0.01 // 继承血量比
|
||||||
let _bossFightId = _con.army // boss 战斗id
|
let _bossFightId = _con.army // boss 战斗id
|
||||||
let _npcFightData = await LingZhuLaiXifun.getBossFightInof(_bossFightId, Number(hpjc))
|
let _npcFightData = await LingZhuLaiXifun.getBossFightInof(_bossFightId, Number(hpjc))
|
||||||
// let _npcFightData = await LingZhuLaiXifun.getBossFightInof(25, Number(hpjc)) // 测试数据
|
// let _npcFightData = await LingZhuLaiXifun.getBossFightInof(25, Number(hpjc)) // 测试数据
|
||||||
@ -63,6 +63,7 @@ export default async function (call: ApiCall<ReqPkBoss, ResPkBoss>) {
|
|||||||
{ type: 'lingzhulaixi' },
|
{ type: 'lingzhulaixi' },
|
||||||
{ $set: G.mongodb.createTreeObj({ key: `maxdps.${call.req.bid}`, val: 0 }) }
|
{ $set: G.mongodb.createTreeObj({ key: `maxdps.${call.req.bid}`, val: 0 }) }
|
||||||
)
|
)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// 超过回合,直接赋值输
|
// 超过回合,直接赋值输
|
||||||
result.winSide = 1
|
result.winSide = 1
|
||||||
@ -92,13 +93,11 @@ export default async function (call: ApiCall<ReqPkBoss, ResPkBoss>) {
|
|||||||
_mySetDat = {
|
_mySetDat = {
|
||||||
maxdps: _myData.maxdps,
|
maxdps: _myData.maxdps,
|
||||||
time: _myData.time,
|
time: _myData.time,
|
||||||
|
num: _myData.num + 1
|
||||||
}
|
}
|
||||||
_bossData.delhp += result.totalDamage[0]
|
_bossData.delhp += result.totalDamage[0]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 无论挑战成功失败都扣除战斗次数
|
|
||||||
_mySetDat["num"] = _myData.num + 1;
|
|
||||||
|
|
||||||
// 设置boss数据
|
// 设置boss数据
|
||||||
await LingZhuLaiXifun.setBossData(_bossData.bid, _setData)
|
await LingZhuLaiXifun.setBossData(_bossData.bid, _setData)
|
||||||
await LingZhuLaiXifun.setMyData(call, { $set: _mySetDat })
|
await LingZhuLaiXifun.setMyData(call, { $set: _mySetDat })
|
||||||
|
@ -4,7 +4,6 @@ import { PlayerFun } from "../../public/player";
|
|||||||
import { ReqSaoDang, ResSaoDang } from "../../shared/protocols/lingzhulaixi/PtlSaoDang";
|
import { ReqSaoDang, ResSaoDang } from "../../shared/protocols/lingzhulaixi/PtlSaoDang";
|
||||||
import { PublicShared } from "../../shared/public/public";
|
import { PublicShared } from "../../shared/public/public";
|
||||||
import { HongDianChange } from "../hongdian/fun";
|
import { HongDianChange } from "../hongdian/fun";
|
||||||
import {ActionLog} from "../../public/actionLog/actionLog";
|
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
|
export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
|
||||||
let _con = await LingZhuLaiXifun.getCon(call.req.bid)
|
let _con = await LingZhuLaiXifun.getCon(call.req.bid)
|
||||||
@ -92,8 +91,6 @@ export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
|
|||||||
prize = PublicShared.mergePrize(prize)
|
prize = PublicShared.mergePrize(prize)
|
||||||
await PlayerFun.sendPrize(call, prize)
|
await PlayerFun.sendPrize(call, prize)
|
||||||
|
|
||||||
ActionLog.addDayLog(call.uid, { key: "lingzhulaixi/PkBoss", val: _num });
|
|
||||||
|
|
||||||
// 扣除挑战次数
|
// 扣除挑战次数
|
||||||
_myData.num += _num
|
_myData.num += _num
|
||||||
|
|
||||||
|
@ -6,8 +6,7 @@ import { getToper50RankInfo } from "../hbzb/jfs/fun";
|
|||||||
import { getZbsRankList } from "../hbzb/zbs/fun";
|
import { getZbsRankList } from "../hbzb/zbs/fun";
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
||||||
console.log("==============>", call.req)
|
let obj = await rankOpenfun(call, call.req)
|
||||||
let obj = await rankOpenfun(call, call.req);
|
|
||||||
call.succ(obj);
|
call.succ(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25,7 +24,7 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
export async function rankOpenfun(call, req: ReqOpen): Promise<ResOpen> {
|
export async function rankOpenfun(call, req: ReqOpen): Promise<ResOpen> {
|
||||||
let obj: ResOpen = {};
|
let obj: ResOpen = {};
|
||||||
// 数组,兼容旧的参数
|
// 数组,兼容旧的参数
|
||||||
if (req instanceof Array) {
|
if(req instanceof Array) {
|
||||||
var types = req
|
var types = req
|
||||||
var page = 0
|
var page = 0
|
||||||
var offset = 1
|
var offset = 1
|
||||||
@ -40,7 +39,7 @@ export async function rankOpenfun(call, req: ReqOpen): Promise<ResOpen> {
|
|||||||
const { min, max } = Rank.pageToMin(page, offset)
|
const { min, max } = Rank.pageToMin(page, offset)
|
||||||
for (let type of types) {
|
for (let type of types) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'jjc':
|
case 'jjc':
|
||||||
// 获取前50名ranklist数据
|
// 获取前50名ranklist数据
|
||||||
let rankList = await JJCFun.getRankList(min, max);
|
let rankList = await JJCFun.getRankList(min, max);
|
||||||
// 获取自己的排名
|
// 获取自己的排名
|
||||||
@ -69,23 +68,21 @@ export async function rankOpenfun(call, req: ReqOpen): Promise<ResOpen> {
|
|||||||
case 'slzd4':
|
case 'slzd4':
|
||||||
case 'slzd5':
|
case 'slzd5':
|
||||||
case 'slzd6':
|
case 'slzd6':
|
||||||
obj[type] = await Rank.list[type].getRankList(call.conn.gud.ghId, { min, max });
|
obj[type] = await Rank.list[type].getRankList(call.conn.gud.ghId, {min, max});
|
||||||
break;
|
break;
|
||||||
case 'kbzz':
|
case 'kbzz':
|
||||||
let resCall = await G.clientCross.callApi('kbzz/Rank', { uid: call.uid, page, offset });
|
let resCall = await G.clientCross.callApi('kbzz/Rank', { uid: call.uid, page, offset});
|
||||||
if (!resCall.isSucc) {
|
if (!resCall.isSucc) {
|
||||||
return call.error('', { code: -2, message: globalThis.lng.rank_kbzz });
|
return call.error('', { code: -2, message: globalThis.lng.rank_kbzz });
|
||||||
}
|
}
|
||||||
obj[type] = resCall.res;
|
obj[type] = resCall.res;
|
||||||
break;
|
break;
|
||||||
case 'clslCross':
|
case 'clslCross':
|
||||||
let res = await G.clientCross.callApi('clsl/Rank', {
|
//let resCallClsl = await G.clientCross.callApi('clsl/Rank', { gud: call.conn.gud, page, offset});
|
||||||
uid: call.uid, page: page, offset: offset
|
//obj[type] = resCallClsl.res;
|
||||||
});
|
|
||||||
obj[type] = res.res;
|
|
||||||
break;
|
break;
|
||||||
case 'wzryCross':
|
case 'wzryCross':
|
||||||
let resCallWzry = await G.clientCross.callApi('wzry/Rank', { gud: call.conn.gud, page, offset });
|
let resCallWzry = await G.clientCross.callApi('wzry/Rank', { gud: call.conn.gud, page, offset});
|
||||||
obj[type] = resCallWzry.res;
|
obj[type] = resCallWzry.res;
|
||||||
break;
|
break;
|
||||||
case "hbzbLocal":
|
case "hbzbLocal":
|
||||||
@ -96,7 +93,7 @@ export async function rankOpenfun(call, req: ReqOpen): Promise<ResOpen> {
|
|||||||
obj[type] = await getZbsRankList(call.uid) as any;
|
obj[type] = await getZbsRankList(call.uid) as any;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
obj[type] = await Rank.list[type].getRankList(call.uid, { min, max });
|
obj[type] = await Rank.list[type].getRankList(call.uid, {min, max});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import {ApiCall} from "tsrpc";
|
import { ApiCall } from "tsrpc";
|
||||||
import {PlayerFun} from '../../public/player';
|
import { PlayerFun } from '../../public/player';
|
||||||
import {TanXianFun} from '../../public/tanxian';
|
import { TanXianFun } from '../../public/tanxian';
|
||||||
import {TeQuanFun} from "../../public/tequan";
|
import { TeQuanFun } from "../../public/tequan";
|
||||||
import {ReqFastGuaJi, ResFastGuaJi} from "../../shared/protocols/tanxian/PtlFastGuaJi";
|
import { ReqFastGuaJi, ResFastGuaJi } from "../../shared/protocols/tanxian/PtlFastGuaJi";
|
||||||
import {TanXianShared} from '../../shared/public/tanxian';
|
import { TanXianShared } from '../../shared/public/tanxian';
|
||||||
import {event_dldh_addPrize} from '../event/diaoluoduihuan/ApiOpen';
|
import { event_dldh_addPrize } from '../event/diaoluoduihuan/ApiOpen';
|
||||||
import {HongDianChange} from "../hongdian/fun";
|
import { HongDianChange } from "../hongdian/fun";
|
||||||
import {getEventPrize} from './ApiEvent';
|
import { getEventPrize } from './ApiEvent';
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqFastGuaJi, ResFastGuaJi>) {
|
export default async function (call: ApiCall<ReqFastGuaJi, ResFastGuaJi>) {
|
||||||
|
|
||||||
@ -18,14 +18,10 @@ export default async function (call: ApiCall<ReqFastGuaJi, ResFastGuaJi>) {
|
|||||||
let freeNum = G.gc.tanxian_com.fastGuaJiFreeNum + tqFree
|
let freeNum = G.gc.tanxian_com.fastGuaJiFreeNum + tqFree
|
||||||
|
|
||||||
// let notFree = data.useFastGuaJiNum >= freeNum && ((data?.zztqfreeNum || 0) >= tqFree && tqFree) && (data?.useFreeGuaJiNum || 0) <= freeNum
|
// let notFree = data.useFastGuaJiNum >= freeNum && ((data?.zztqfreeNum || 0) >= tqFree && tqFree) && (data?.useFreeGuaJiNum || 0) <= freeNum
|
||||||
let notFree = (data?.useFreeGuaJiNum || 0) >= freeNum
|
let notFree = (data?.useFreeGuaJiNum || 0) >= freeNum
|
||||||
if (notFree) {
|
if (notFree) {
|
||||||
let num = G.gc.tanxian_com.fastGuaJiNeed[data.useFastGuaJiNum - freeNum] || 0;
|
let num = G.gc.tanxian_com.fastGuaJiNeed[data.useFastGuaJiNum - freeNum ] || 0;
|
||||||
let need = [{
|
let need = [{ a: 'attr', t: 'rmbmoney', n: num ? num : G.gc.tanxian_com.fastGuaJiNeed[G.gc.tanxian_com.fastGuaJiNeed.length - 1] }];
|
||||||
a: 'attr',
|
|
||||||
t: 'rmbmoney',
|
|
||||||
n: num ? num : G.gc.tanxian_com.fastGuaJiNeed[G.gc.tanxian_com.fastGuaJiNeed.length - 1]
|
|
||||||
}];
|
|
||||||
await PlayerFun.checkNeedIsMeet(call, need);
|
await PlayerFun.checkNeedIsMeet(call, need);
|
||||||
await PlayerFun.cutNeed(call, need);
|
await PlayerFun.cutNeed(call, need);
|
||||||
}
|
}
|
||||||
@ -36,15 +32,15 @@ export default async function (call: ApiCall<ReqFastGuaJi, ResFastGuaJi>) {
|
|||||||
let eventPrize = getEventPrize(call.conn.gud.lv, G.gc.tanxian_com.fastGuaJiTime, call.conn.gud.mapId, call.conn.gud.wxcLv?.lv);
|
let eventPrize = getEventPrize(call.conn.gud.lv, G.gc.tanxian_com.fastGuaJiTime, call.conn.gud.mapId, call.conn.gud.wxcLv?.lv);
|
||||||
let _p = [].concat(prize.prize, prize.dlz, eventPrize.prize);
|
let _p = [].concat(prize.prize, prize.dlz, eventPrize.prize);
|
||||||
// 过滤物品数量为0的道具。
|
// 过滤物品数量为0的道具。
|
||||||
_p = _p.filter(x => x.n > 0)
|
_p = _p.filter(x => x.n > 0)
|
||||||
// await event_dldh_addPrize(_p, call, G.gc.tanxian_com.fastGuaJiTime);
|
// await event_dldh_addPrize(_p, call, G.gc.tanxian_com.fastGuaJiTime);
|
||||||
await PlayerFun.sendPrize(call, _p);
|
await PlayerFun.sendPrize(call, _p);
|
||||||
|
|
||||||
// let setData = { useFastGuaJiNum: data.useFastGuaJiNum + 1, useFreeGuaJiNum: (data?.useFreeGuaJiNum || 0) + (notFree ? 0 : 1)}
|
let setData = { useFastGuaJiNum: data.useFastGuaJiNum + 1, useFreeGuaJiNum: (data?.useFreeGuaJiNum || 0) + (notFree ? 0 : 1)}
|
||||||
let setData = {$inc: {useFastGuaJiNum: 1, useFreeGuaJiNum: (notFree ? 0 : 1)}}
|
if ((data?.zztqfreeNum || 0) < tqFree && tqFree) setData["zztqfreeNum"] = tqFree
|
||||||
// if ((data?.zztqfreeNum || 0) < tqFree && tqFree) setData["zztqfreeNum"] = tqFree
|
TanXianFun.changeData(call, setData);
|
||||||
if ((data?.zztqfreeNum || 0) < tqFree && tqFree) setData["$set"] = {zztqfreeNum: tqFree}
|
|
||||||
await TanXianFun.changeDataNew(call, setData);
|
// (await call.conn.gonghui)?.addExp(20, call.uid);
|
||||||
|
|
||||||
HongDianChange.sendChangeKey(call.uid, ['taskhd', 'huodonghd']);
|
HongDianChange.sendChangeKey(call.uid, ['taskhd', 'huodonghd']);
|
||||||
|
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
import {ApiCall} from "tsrpc";
|
import { ApiCall } from "tsrpc";
|
||||||
import { addGameLog } from "../../gameLog";
|
import { HeroFun } from '../../public/hero';
|
||||||
import {HeroFun} from '../../public/hero';
|
import { XstaskFun } from '../../public/xstask';
|
||||||
import {XstaskFun} from '../../public/xstask';
|
import { ReqOnekeyReceive, ResOnekeyReceive } from "../../shared/protocols/xstask/PtlOnekeyReceive";
|
||||||
import {ReqOnekeyReceive, ResOnekeyReceive} from "../../shared/protocols/xstask/PtlOnekeyReceive";
|
import { HeroShared } from '../../shared/public/hero';
|
||||||
import {HeroShared} from '../../shared/public/hero';
|
import { HongDianChange } from "../hongdian/fun";
|
||||||
import {HongDianChange} from "../hongdian/fun";
|
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>) {
|
export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>) {
|
||||||
|
|
||||||
@ -14,9 +13,6 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
|
|||||||
|
|
||||||
if (args.length < 1 || _ids.isDuplication() || heroIds.isDuplication()) return call.error(globalThis.lng.kbzz_1);
|
if (args.length < 1 || _ids.isDuplication() || heroIds.isDuplication()) return call.error(globalThis.lng.kbzz_1);
|
||||||
|
|
||||||
let event = await G.mongodb.cEvent('xstask').findOne({uid: call.uid, type: 'xstask'});
|
|
||||||
if (event?.receiveNum >= 8) return call.error(globalThis.lng.xstask_11);
|
|
||||||
|
|
||||||
//所有的任务
|
//所有的任务
|
||||||
let taskList = await XstaskFun.getAllTask(call.uid);
|
let taskList = await XstaskFun.getAllTask(call.uid);
|
||||||
//所有的任务id
|
//所有的任务id
|
||||||
@ -34,9 +30,7 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
|
|||||||
if (heroList.length != heroIds.length) return call.error(globalThis.lng.xstask_6);
|
if (heroList.length != heroIds.length) return call.error(globalThis.lng.xstask_6);
|
||||||
|
|
||||||
let change: ResOnekeyReceive = {};
|
let change: ResOnekeyReceive = {};
|
||||||
let lockNum = event?.receiveNum || 0
|
|
||||||
for (let receive of args) {
|
for (let receive of args) {
|
||||||
if (lockNum >= 8) continue
|
|
||||||
let task = taskList.find(task => task._id == receive._id);
|
let task = taskList.find(task => task._id == receive._id);
|
||||||
let taskConf = G.gc.xstask[task.taskId];
|
let taskConf = G.gc.xstask[task.taskId];
|
||||||
|
|
||||||
@ -46,9 +40,7 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
|
|||||||
let star = heros.map(h => G.gc.hero[h.heroId].star).reduce((a, b) => a + b);
|
let star = heros.map(h => G.gc.hero[h.heroId].star).reduce((a, b) => a + b);
|
||||||
if (star < taskConf.needStar) return call.error(globalThis.lng.xstask_8);
|
if (star < taskConf.needStar) return call.error(globalThis.lng.xstask_8);
|
||||||
|
|
||||||
change[receive._id] = {time: G.time, heros: receive.heroIds};
|
change[receive._id] = { time: G.time, heros: receive.heroIds };
|
||||||
XstaskFun.receiveNum(call.uid)
|
|
||||||
lockNum += 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.entries(change).forEach(([k, v]) => {
|
Object.entries(change).forEach(([k, v]) => {
|
||||||
@ -57,6 +49,4 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
|
|||||||
HongDianChange.sendChangeKey(call.uid, ['xstaskhd', 'huodonghd']);
|
HongDianChange.sendChangeKey(call.uid, ['xstaskhd', 'huodonghd']);
|
||||||
|
|
||||||
call.succ(change);
|
call.succ(change);
|
||||||
|
|
||||||
addGameLog(call.uid, "_onekeyReceive", {}, change)
|
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
import {ApiCall} from "tsrpc";
|
import { ApiCall } from "tsrpc";
|
||||||
import {playerInfoType} from '../../module/collection_palyerInfo';
|
import { playerInfoType } from '../../module/collection_palyerInfo';
|
||||||
import {TeQuanFun} from '../../public/tequan';
|
import { TeQuanFun } from '../../public/tequan';
|
||||||
import {XstaskFun} from '../../public/xstask';
|
import { XstaskFun } from '../../public/xstask';
|
||||||
import {ReqOpen, ResOpen} from "../../shared/protocols/xstask/PtlOpen";
|
import { ReqOpen, ResOpen } from "../../shared/protocols/xstask/PtlOpen";
|
||||||
import {PublicShared} from '../../shared/public/public';
|
import { PublicShared } from '../../shared/public/public';
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
||||||
let needAddTask: number;
|
let needAddTask: number;
|
||||||
@ -19,7 +19,7 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
useFreeRefreshNum: 0
|
useFreeRefreshNum: 0
|
||||||
};
|
};
|
||||||
needAddTask = G.gc.xstaskcom.lv[changeInfo.lv].maxTaskNum;
|
needAddTask = G.gc.xstaskcom.lv[changeInfo.lv].maxTaskNum;
|
||||||
XstaskFun.changeInfo(call.uid, {$set: {...changeInfo}});
|
XstaskFun.changeInfo(call.uid, { $set: { ...changeInfo } });
|
||||||
} else if (PublicShared.getToDayZeroTime() > taskInfo.lastRefreshTime) {
|
} else if (PublicShared.getToDayZeroTime() > taskInfo.lastRefreshTime) {
|
||||||
changeInfo = {
|
changeInfo = {
|
||||||
lastRefreshTime: G.time,
|
lastRefreshTime: G.time,
|
||||||
@ -32,15 +32,14 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
|||||||
|
|
||||||
needAddTask = G.gc.xstaskcom.lv[taskInfo.lv].maxTaskNum - retainTask.length;
|
needAddTask = G.gc.xstaskcom.lv[taskInfo.lv].maxTaskNum - retainTask.length;
|
||||||
|
|
||||||
XstaskFun.changeInfo(call.uid, {$set: {...changeInfo}});
|
XstaskFun.changeInfo(call.uid, { $set: { ...changeInfo } });
|
||||||
XstaskFun.delTasks(call.uid, delTask.map(task => task._id));
|
XstaskFun.delTasks(call.uid, delTask.map(task => task._id));
|
||||||
XstaskFun.receiveNum(call.uid, true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// needAddTask += await TeQuanFun.getXsTaskNum(call);
|
// needAddTask += await TeQuanFun.getXsTaskNum(call);
|
||||||
needAddTask && await XstaskFun.addTasks(call.uid, XstaskFun.randomTasks(taskInfo?.lv || changeInfo.lv, needAddTask));
|
needAddTask && await XstaskFun.addTasks(call.uid, XstaskFun.randomTasks(taskInfo?.lv || changeInfo.lv, needAddTask));
|
||||||
|
|
||||||
let {_id, uid, type, ...info} = taskInfo || changeInfo as typeof taskInfo;
|
let { _id, uid, type, ...info } = taskInfo || changeInfo as typeof taskInfo;
|
||||||
call.succ({
|
call.succ({
|
||||||
...info,
|
...info,
|
||||||
taskList: await XstaskFun.getAllTask(call.uid),
|
taskList: await XstaskFun.getAllTask(call.uid),
|
||||||
|
@ -1,16 +1,13 @@
|
|||||||
import {ApiCall} from "tsrpc";
|
import { ApiCall } from "tsrpc";
|
||||||
import {HeroFun} from '../../public/hero';
|
import { HeroFun } from '../../public/hero';
|
||||||
import {XstaskFun} from '../../public/xstask';
|
import { XstaskFun } from '../../public/xstask';
|
||||||
import {ReqReceive, ResReceive} from "../../shared/protocols/xstask/PtlReceive";
|
import { ReqReceive, ResReceive } from "../../shared/protocols/xstask/PtlReceive";
|
||||||
import {HongDianChange} from "../hongdian/fun";
|
import { HongDianChange } from "../hongdian/fun";
|
||||||
|
|
||||||
export default async function (call: ApiCall<ReqReceive, ResReceive>) {
|
export default async function (call: ApiCall<ReqReceive, ResReceive>) {
|
||||||
if (call.req.heroIds.length < 1) return call.error(globalThis.lng.xstask_9);
|
if (call.req.heroIds.length < 1) return call.error(globalThis.lng.xstask_9);
|
||||||
if (call.req.heroIds.isDuplication()) return call.error(globalThis.lng.xstask_10);
|
if (call.req.heroIds.isDuplication()) return call.error(globalThis.lng.xstask_10);
|
||||||
|
|
||||||
let event = await G.mongodb.cEvent('xstask').findOne({uid: call.uid, type: 'xstask'});
|
|
||||||
if (event?.receiveNum >= 8) return call.error(globalThis.lng.xstask_11);
|
|
||||||
|
|
||||||
let task = await XstaskFun.getTask(call.uid, call.req._id);
|
let task = await XstaskFun.getTask(call.uid, call.req._id);
|
||||||
let taskConf = G.gc.xstask[task?.taskId];
|
let taskConf = G.gc.xstask[task?.taskId];
|
||||||
if (!task) return call.error(globalThis.lng.xstask_1);
|
if (!task) return call.error(globalThis.lng.xstask_1);
|
||||||
@ -31,7 +28,6 @@ export default async function (call: ApiCall<ReqReceive, ResReceive>) {
|
|||||||
heros: call.req.heroIds
|
heros: call.req.heroIds
|
||||||
};
|
};
|
||||||
|
|
||||||
XstaskFun.receiveNum(call.uid)
|
|
||||||
XstaskFun.receiveTask(call.uid, call.req._id, change);
|
XstaskFun.receiveTask(call.uid, call.req._id, change);
|
||||||
HongDianChange.sendChangeKey(call.uid, ['xstaskhd', 'huodonghd']);
|
HongDianChange.sendChangeKey(call.uid, ['xstaskhd', 'huodonghd']);
|
||||||
|
|
||||||
|
@ -12,9 +12,6 @@ export default async function (call: ApiCall<ReqRefresh, ResRefresh>) {
|
|||||||
|
|
||||||
if (delNum < 1) return call.error(globalThis.lng.xstask_11);
|
if (delNum < 1) return call.error(globalThis.lng.xstask_11);
|
||||||
|
|
||||||
let event = await G.mongodb.cEvent('xstask').findOne({uid: call.uid, type: 'xstask'});
|
|
||||||
if (event?.receiveNum >= 8) return call.error(globalThis.lng.xstask_11);
|
|
||||||
|
|
||||||
let change: ResRefresh = {};
|
let change: ResRefresh = {};
|
||||||
let needDel = taskList.filter(task => task.receiveData == undefined || task.receiveData.rec == true);
|
let needDel = taskList.filter(task => task.receiveData == undefined || task.receiveData.rec == true);
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ import { joinFightData } from '../../../shared/fightControl/fightType';
|
|||||||
|
|
||||||
export type ReqFindEnemy = {
|
export type ReqFindEnemy = {
|
||||||
uid: string;
|
uid: string;
|
||||||
myStasr:number;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ResFindEnemy = {
|
export type ResFindEnemy = {
|
||||||
|
@ -3,7 +3,7 @@ import { player } from '../../../shared/protocols/user/type';
|
|||||||
|
|
||||||
|
|
||||||
export type ReqRank = {
|
export type ReqRank = {
|
||||||
uid: string;
|
gud: player;
|
||||||
page?: number;
|
page?: number;
|
||||||
offset?: number;
|
offset?: number;
|
||||||
};
|
};
|
||||||
|
9
src/cross/protocols/clsl/PtlRankUids.ts
Normal file
9
src/cross/protocols/clsl/PtlRankUids.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
export type ReqRankUids = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
export type ResRankUids = {
|
||||||
|
uids: string[];
|
||||||
|
};
|
@ -2,6 +2,7 @@ import { ServiceProto } from 'tsrpc-proto';
|
|||||||
import { ReqFindEnemy, ResFindEnemy } from './clsl/PtlFindEnemy';
|
import { ReqFindEnemy, ResFindEnemy } from './clsl/PtlFindEnemy';
|
||||||
import { ReqLog, ResLog } from './clsl/PtlLog';
|
import { ReqLog, ResLog } from './clsl/PtlLog';
|
||||||
import { ReqRank, ResRank } from './clsl/PtlRank';
|
import { ReqRank, ResRank } from './clsl/PtlRank';
|
||||||
|
import { ReqRankUids, ResRankUids } from './clsl/PtlRankUids';
|
||||||
import { ReqUpLoad, ResUpLoad } from './clsl/PtlUpLoad';
|
import { ReqUpLoad, ResUpLoad } from './clsl/PtlUpLoad';
|
||||||
import { ReqDelCrossEmail, ResDelCrossEmail } from './email/PtlDelCrossEmail';
|
import { ReqDelCrossEmail, ResDelCrossEmail } from './email/PtlDelCrossEmail';
|
||||||
import { ReqGetCrossEmail, ResGetCrossEmail } from './email/PtlGetCrossEmail';
|
import { ReqGetCrossEmail, ResGetCrossEmail } from './email/PtlGetCrossEmail';
|
||||||
@ -53,6 +54,10 @@ export interface ServiceType {
|
|||||||
req: ReqRank,
|
req: ReqRank,
|
||||||
res: ResRank
|
res: ResRank
|
||||||
},
|
},
|
||||||
|
"clsl/RankUids": {
|
||||||
|
req: ReqRankUids,
|
||||||
|
res: ResRankUids
|
||||||
|
},
|
||||||
"clsl/UpLoad": {
|
"clsl/UpLoad": {
|
||||||
req: ReqUpLoad,
|
req: ReqUpLoad,
|
||||||
res: ResUpLoad
|
res: ResUpLoad
|
||||||
@ -206,181 +211,186 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"name": "clsl/UpLoad",
|
"name": "clsl/RankUids",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"name": "email/DelCrossEmail",
|
"name": "clsl/UpLoad",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
"name": "email/GetCrossEmail",
|
"name": "email/DelCrossEmail",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
"id": 6,
|
||||||
"name": "hbzb/jfs/GetEnemy",
|
"name": "email/GetCrossEmail",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 7,
|
"id": 7,
|
||||||
"name": "hbzb/jfs/GetLog",
|
"name": "hbzb/jfs/GetEnemy",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 8,
|
"id": 8,
|
||||||
"name": "hbzb/jfs/GetRankList",
|
"name": "hbzb/jfs/GetLog",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
"id": 9,
|
||||||
"name": "hbzb/jfs/GetUser",
|
"name": "hbzb/jfs/GetRankList",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 10,
|
"id": 10,
|
||||||
"name": "hbzb/GetUser",
|
"name": "hbzb/jfs/GetUser",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 11,
|
"id": 11,
|
||||||
"name": "hbzb/UpdateHbzbCrossUser",
|
"name": "hbzb/GetUser",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 12,
|
"id": 12,
|
||||||
"name": "hbzb/zbs/GetEnemy",
|
"name": "hbzb/UpdateHbzbCrossUser",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 13,
|
"id": 13,
|
||||||
"name": "hbzb/zbs/GetLog",
|
"name": "hbzb/zbs/GetEnemy",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 14,
|
"id": 14,
|
||||||
"name": "hbzb/zbs/GetRankList",
|
"name": "hbzb/zbs/GetLog",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
"id": 15,
|
||||||
"name": "hbzb/zbs/GetStatus",
|
"name": "hbzb/zbs/GetRankList",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 16,
|
"id": 16,
|
||||||
"name": "hbzb/zbs/SendJjcTop",
|
"name": "hbzb/zbs/GetStatus",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 17,
|
"id": 17,
|
||||||
"name": "kbzz/Apply",
|
"name": "hbzb/zbs/SendJjcTop",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 18,
|
"id": 18,
|
||||||
"name": "kbzz/GetUser",
|
"name": "kbzz/Apply",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 19,
|
"id": 19,
|
||||||
"name": "kbzz/GroupRank",
|
"name": "kbzz/GetUser",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 20,
|
"id": 20,
|
||||||
"name": "kbzz/Rank",
|
"name": "kbzz/GroupRank",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 21,
|
"id": 21,
|
||||||
"name": "kbzz/Refresh",
|
"name": "kbzz/Rank",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 22,
|
"id": 22,
|
||||||
"name": "kbzz/State",
|
"name": "kbzz/Refresh",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 23,
|
"id": 23,
|
||||||
"name": "kbzz/UpUser",
|
"name": "kbzz/State",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 24,
|
"id": 24,
|
||||||
|
"name": "kbzz/UpUser",
|
||||||
|
"type": "api"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 25,
|
||||||
"name": "msg_cross/CrossChat",
|
"name": "msg_cross/CrossChat",
|
||||||
"type": "msg"
|
"type": "msg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 25,
|
"id": 26,
|
||||||
"name": "msg_cross/HbzbChangeRank",
|
"name": "msg_cross/HbzbChangeRank",
|
||||||
"type": "msg"
|
"type": "msg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 26,
|
"id": 27,
|
||||||
"name": "msg_cross/HbzbJfsLog",
|
"name": "msg_cross/HbzbJfsLog",
|
||||||
"type": "msg"
|
"type": "msg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 27,
|
"id": 28,
|
||||||
"name": "msg_cross/HbzbSendUser",
|
"name": "msg_cross/HbzbSendUser",
|
||||||
"type": "msg"
|
"type": "msg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 28,
|
"id": 29,
|
||||||
"name": "msg_cross/HbzbZbsLog",
|
"name": "msg_cross/HbzbZbsLog",
|
||||||
"type": "msg"
|
"type": "msg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 29,
|
"id": 30,
|
||||||
"name": "wzry/BaoMing",
|
"name": "wzry/BaoMing",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 30,
|
"id": 31,
|
||||||
"name": "wzry/catFightLog",
|
"name": "wzry/catFightLog",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 31,
|
"id": 32,
|
||||||
"name": "wzry/DldRefre",
|
"name": "wzry/DldRefre",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 32,
|
"id": 33,
|
||||||
"name": "wzry/getJingCai",
|
"name": "wzry/getJingCai",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 33,
|
"id": 34,
|
||||||
"name": "wzry/Rank",
|
"name": "wzry/Rank",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 34,
|
"id": 35,
|
||||||
"name": "wzry/SetWzFight",
|
"name": "wzry/SetWzFight",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 35,
|
"id": 36,
|
||||||
"name": "wzry/UpdateFight",
|
"name": "wzry/UpdateFight",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 36,
|
"id": 37,
|
||||||
"name": "wzry/WzFightData",
|
"name": "wzry/WzFightData",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 37,
|
"id": 38,
|
||||||
"name": "wzry/WzFightGroup",
|
"name": "wzry/WzFightGroup",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 38,
|
"id": 39,
|
||||||
"name": "wzry/Wzzd",
|
"name": "wzry/Wzzd",
|
||||||
"type": "api"
|
"type": "api"
|
||||||
}
|
}
|
||||||
@ -395,13 +405,6 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
"type": {
|
"type": {
|
||||||
"type": "String"
|
"type": "String"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"name": "myStasr",
|
|
||||||
"type": {
|
|
||||||
"type": "Number"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -2750,9 +2753,10 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
"properties": [
|
"properties": [
|
||||||
{
|
{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"name": "uid",
|
"name": "gud",
|
||||||
"type": {
|
"type": {
|
||||||
"type": "String"
|
"type": "Reference",
|
||||||
|
"target": "../../shared/protocols/user/type/player"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -2773,6 +2777,14 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"../../shared/protocols/user/type/player": {
|
||||||
|
"type": "IndexedAccess",
|
||||||
|
"index": "gud",
|
||||||
|
"objectType": {
|
||||||
|
"type": "Reference",
|
||||||
|
"target": "../../shared/protocols/user/PtlLogin/ResLogin"
|
||||||
|
}
|
||||||
|
},
|
||||||
"clsl/PtlRank/ResRank": {
|
"clsl/PtlRank/ResRank": {
|
||||||
"type": "IndexedAccess",
|
"type": "IndexedAccess",
|
||||||
"index": "",
|
"index": "",
|
||||||
@ -2885,6 +2897,24 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"clsl/PtlRankUids/ReqRankUids": {
|
||||||
|
"type": "Interface"
|
||||||
|
},
|
||||||
|
"clsl/PtlRankUids/ResRankUids": {
|
||||||
|
"type": "Interface",
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "uids",
|
||||||
|
"type": {
|
||||||
|
"type": "Array",
|
||||||
|
"elementType": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"clsl/PtlUpLoad/ReqUpLoad": {
|
"clsl/PtlUpLoad/ReqUpLoad": {
|
||||||
"type": "Partial",
|
"type": "Partial",
|
||||||
"target": {
|
"target": {
|
||||||
@ -3228,14 +3258,6 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"../../shared/protocols/user/type/player": {
|
|
||||||
"type": "IndexedAccess",
|
|
||||||
"index": "gud",
|
|
||||||
"objectType": {
|
|
||||||
"type": "Reference",
|
|
||||||
"target": "../../shared/protocols/user/PtlLogin/ResLogin"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hbzb/jfs/PtlGetEnemy/ResGetEnemy": {
|
"hbzb/jfs/PtlGetEnemy/ResGetEnemy": {
|
||||||
"type": "Interface",
|
"type": "Interface",
|
||||||
"properties": [
|
"properties": [
|
||||||
|
@ -251,7 +251,7 @@ BaseConnection.prototype.refreshPower = async function (this: BaseConnection<Ser
|
|||||||
this.sendMsg('msg_s2c/PlayerChange', dbUpdate);
|
this.sendMsg('msg_s2c/PlayerChange', dbUpdate);
|
||||||
|
|
||||||
let rankKfjs = RankKfjs(7)
|
let rankKfjs = RankKfjs(7)
|
||||||
rankKfjs?.setDataAndCheck({
|
rankKfjs.setDataAndCheck({
|
||||||
player: this.gud,
|
player: this.gud,
|
||||||
valArr: [power]
|
valArr: [power]
|
||||||
});
|
});
|
||||||
@ -333,7 +333,7 @@ ApiCall.prototype.addEventMsg = function (this: ApiCall) {
|
|||||||
if (Object.keys(this.otherBuff).intersection(Object.keys(msg)).length > 0) this.conn.refreshPower();
|
if (Object.keys(this.otherBuff).intersection(Object.keys(msg)).length > 0) this.conn.refreshPower();
|
||||||
break;
|
break;
|
||||||
case 'msg_s2c/LshdChange':
|
case 'msg_s2c/LshdChange':
|
||||||
this.conn?.lshd?.[msgKey] && PublicShared.mergeProperty(this.conn.lshd[msgKey], msg);
|
this.conn.lshd[msgKey] && PublicShared.mergeProperty(this.conn.lshd[msgKey], msg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,68 +0,0 @@
|
|||||||
import {patchInit} from "../patch";
|
|
||||||
// import {addGameLog, connGameLogDB} from "../gameLog";
|
|
||||||
import {MongoClient} from "mongodb";
|
|
||||||
|
|
||||||
class Path {
|
|
||||||
|
|
||||||
async fun1(a: any) {
|
|
||||||
|
|
||||||
let logDB = await connGameLogDB();
|
|
||||||
|
|
||||||
console.log(11111,'开始查询')
|
|
||||||
|
|
||||||
let ab = await logDB.collection('gameLog').aggregate([
|
|
||||||
{$match: {"type": "kuangdong/YanShi", "req.hdid": {$lte: 21}}},
|
|
||||||
{$group: {_id: "$uid", total: {$sum: 1}}}
|
|
||||||
]).toArray()
|
|
||||||
|
|
||||||
let auids = ab.map(i => ({
|
|
||||||
uid: i._id,
|
|
||||||
type: 'yanshiNum',
|
|
||||||
time: G.time,
|
|
||||||
num: i.total,
|
|
||||||
data: {
|
|
||||||
...i
|
|
||||||
}
|
|
||||||
}))
|
|
||||||
|
|
||||||
console.log(auids)
|
|
||||||
// @ts-ignore
|
|
||||||
G.crossmongodb.collection('fupanLog').insertMany(auids)
|
|
||||||
|
|
||||||
return auids
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
async run() {
|
|
||||||
await this.fun1(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function connGameLogDB() {
|
|
||||||
console.log('connect gamelog mongodb ......');
|
|
||||||
let logDBUrl:string;
|
|
||||||
if(G.config.isG123){
|
|
||||||
logDBUrl = "mongodb://root:lffu2bD%5eGn2%5eE%2bE7@blacklagoon-mongo-log-primary.pro.g123-cpp.com:3717,blacklagoon-mongo-log-secondary.pro.g123-cpp.com:3717?replicaSet=mgset-351742307";
|
|
||||||
}else{
|
|
||||||
logDBUrl = "mongodb://root:lyMaple525458@10.0.1.20:27017/heijiao_gamelog?authSource=admin";
|
|
||||||
}
|
|
||||||
let client = await MongoClient.connect(logDBUrl,{
|
|
||||||
maxPoolSize:10,
|
|
||||||
maxIdleTimeMS: 5*60*1000
|
|
||||||
});
|
|
||||||
return client.db(`gameLog${G.config.serverId}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
async function main() {
|
|
||||||
await patchInit()
|
|
||||||
let patch = new Path();
|
|
||||||
await patch.run();
|
|
||||||
console.log("逻辑执行完成,等待退出");
|
|
||||||
setTimeout(function () {
|
|
||||||
console.log('结束程序');
|
|
||||||
process.exit();
|
|
||||||
}, 3000);
|
|
||||||
}
|
|
||||||
|
|
||||||
main();
|
|
@ -1,59 +0,0 @@
|
|||||||
import {log} from "console";
|
|
||||||
import {patchFun, patchInit} from "../patch";
|
|
||||||
import {TanXianFun} from "../public/tanxian";
|
|
||||||
import {PublicShared} from "../shared/public/public";
|
|
||||||
import {addGameLog} from "../gameLog";
|
|
||||||
|
|
||||||
class Path {
|
|
||||||
|
|
||||||
async fun1(a: any) {
|
|
||||||
|
|
||||||
// 查询今天登录的用户
|
|
||||||
let today_login_users = await G.mongodb.collection("actionLog").find(
|
|
||||||
{"log.use_attr_rmbmoney": {$gte: 100000}},
|
|
||||||
{projection: {uid: 1, "log.use_attr_rmbmoney": 1}}
|
|
||||||
).toArray();
|
|
||||||
|
|
||||||
let uids = today_login_users.map(i => i.uid)
|
|
||||||
|
|
||||||
let users = await G.mongodb.collection("user").find({
|
|
||||||
uid: {$in: uids},
|
|
||||||
vip: {$lte: 6}
|
|
||||||
}, {projection: {uid: 1, vip: 1, lv: 1}}).toArray()
|
|
||||||
|
|
||||||
let auids = users.map(i => ({
|
|
||||||
uid: i.uid,
|
|
||||||
type: 'shuazuanshi',
|
|
||||||
time: G.time,
|
|
||||||
data: {
|
|
||||||
vip: i.vip,
|
|
||||||
lv: i.lv,
|
|
||||||
rmbmoney: today_login_users.find(v => v.uid == i.uid)?.log?.use_attr_rmbmoney
|
|
||||||
}
|
|
||||||
}))
|
|
||||||
|
|
||||||
console.log(auids)
|
|
||||||
// @ts-ignore
|
|
||||||
G.crossmongodb.collection('fupanLog').insertMany(auids)
|
|
||||||
|
|
||||||
return auids
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
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();
|
|
@ -1,8 +1,7 @@
|
|||||||
import { Db, MongoClient } from "mongodb";
|
import { Db, MongoClient } from "mongodb";
|
||||||
import { Logger } from "tsrpc";
|
|
||||||
|
|
||||||
export let logDB:Db;
|
let logDB:Db;
|
||||||
export let errorLogDB:Db;
|
let errorLogDB:Db;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是G123的测试服
|
* 是否是G123的测试服
|
||||||
@ -11,7 +10,7 @@ function isG123stg(){
|
|||||||
return G.config.mongodbUrl.indexOf('.stg.')!=-1;
|
return G.config.mongodbUrl.indexOf('.stg.')!=-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function connGameLogDB() {
|
async function connGameLogDB() {
|
||||||
console.log('connect gamelog mongodb ......');
|
console.log('connect gamelog mongodb ......');
|
||||||
let logDBUrl:string;
|
let logDBUrl:string;
|
||||||
if(G.config.isG123){
|
if(G.config.isG123){
|
||||||
@ -29,34 +28,18 @@ export async function connGameLogDB() {
|
|||||||
return logDB;
|
return logDB;
|
||||||
}
|
}
|
||||||
|
|
||||||
export let mylogger: Logger = {
|
|
||||||
debug(...args: any[]){
|
|
||||||
console.debug(...args);
|
|
||||||
},
|
|
||||||
log(...args: any[]){
|
|
||||||
console.log(...args);
|
|
||||||
},
|
|
||||||
warn(...args: any[]){
|
|
||||||
console.warn(...args);
|
|
||||||
},
|
|
||||||
error(...args: any[]){
|
|
||||||
addErrorLog( args );
|
|
||||||
console.error(...args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
process.on('uncaughtException',function(err:Error){
|
process.on('uncaughtException',function(err:Error){
|
||||||
addErrorLog( (err?.stack || err)?.toString() );
|
addErrorLog((err.stack).toString());
|
||||||
})
|
})
|
||||||
|
|
||||||
process.on('unhandledRejection', function (err:Error, promise) {
|
process.on('unhandledRejection', function (err:Error, promise) {
|
||||||
addErrorLog( (err?.stack || err)?.toString() );
|
addErrorLog((err.stack).toString());
|
||||||
})
|
})
|
||||||
|
|
||||||
async function addErrorLog(errData:any){
|
async function addErrorLog(errData:any){
|
||||||
try{
|
try{
|
||||||
//g123测试版连接不上db,不抓取
|
//g123测试版连接不上db,不抓取
|
||||||
if(!errData)return;
|
|
||||||
if(isG123stg())return;
|
if(isG123stg())return;
|
||||||
let log = {
|
let log = {
|
||||||
serverId : G.config.serverId,
|
serverId : G.config.serverId,
|
||||||
@ -73,28 +56,6 @@ async function addErrorLog(errData:any){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function addWatchDogLog(data:object[]){
|
|
||||||
try{
|
|
||||||
//g123测试版连接不上db,不抓取
|
|
||||||
if(!data)return;
|
|
||||||
if(isG123stg())return;
|
|
||||||
let log = {
|
|
||||||
serverId : G.config.serverId,
|
|
||||||
pid : process.pid,
|
|
||||||
cTime : Math.floor(Date.now()/1000)
|
|
||||||
}
|
|
||||||
data.map(item=>{
|
|
||||||
Object.assign(item,log)
|
|
||||||
})
|
|
||||||
if(!errorLogDB){
|
|
||||||
await connGameLogDB();
|
|
||||||
}
|
|
||||||
errorLogDB.collection('nodeJsErrorLog').insertMany(data);
|
|
||||||
}catch(e){
|
|
||||||
console.error('addWatchDogLog',e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 增加游戏日志
|
* 增加游戏日志
|
||||||
* @param uid 玩家uid
|
* @param uid 玩家uid
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"jinbi": {
|
"jinbi": {
|
||||||
"id": "jinbi",
|
"id": "jinbi",
|
||||||
"name": "intr_attr_name_1",
|
"name": "intr_attr_name_1",
|
||||||
"undefined": "通用货币,能购买大多数商品",
|
"undefined": "美金",
|
||||||
"colour": 3,
|
"colour": 3,
|
||||||
"icon": "icon_jinbi",
|
"icon": "icon_jinbi",
|
||||||
"sicon": "icon_jinbi",
|
"sicon": "icon_jinbi",
|
||||||
@ -12,7 +12,7 @@
|
|||||||
"rmbmoney": {
|
"rmbmoney": {
|
||||||
"id": "rmbmoney",
|
"id": "rmbmoney",
|
||||||
"name": "intr_attr_name_2",
|
"name": "intr_attr_name_2",
|
||||||
"undefined": "稀有货币,没有人可以抗拒它",
|
"undefined": "钻石",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_zuanshi",
|
"icon": "icon_zuanshi",
|
||||||
"sicon": "icon_zuanshi",
|
"sicon": "icon_zuanshi",
|
||||||
@ -22,7 +22,7 @@
|
|||||||
"nexp": {
|
"nexp": {
|
||||||
"id": "nexp",
|
"id": "nexp",
|
||||||
"name": "intr_attr_name_3",
|
"name": "intr_attr_name_3",
|
||||||
"undefined": "用于提升主角等级",
|
"undefined": "主角经验",
|
||||||
"colour": 4,
|
"colour": 4,
|
||||||
"icon": "icon_zjjy",
|
"icon": "icon_zjjy",
|
||||||
"sicon": "icon_zjjy",
|
"sicon": "icon_zjjy",
|
||||||
@ -32,7 +32,7 @@
|
|||||||
"rongyu": {
|
"rongyu": {
|
||||||
"id": "rongyu",
|
"id": "rongyu",
|
||||||
"name": "intr_attr_name_4",
|
"name": "intr_attr_name_4",
|
||||||
"undefined": "荣誉的象征,可以在荣誉商店兑换道具",
|
"undefined": "荣誉勋章",
|
||||||
"colour": 4,
|
"colour": 4,
|
||||||
"icon": "icon_rongyu",
|
"icon": "icon_rongyu",
|
||||||
"sicon": "icon_rongyu",
|
"sicon": "icon_rongyu",
|
||||||
@ -42,7 +42,7 @@
|
|||||||
"payExp": {
|
"payExp": {
|
||||||
"id": "payExp",
|
"id": "payExp",
|
||||||
"name": "intr_attr_name_5",
|
"name": "intr_attr_name_5",
|
||||||
"undefined": "稀有货币,没有人可以抗拒它",
|
"undefined": "VIP经验",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_gzjy",
|
"icon": "icon_gzjy",
|
||||||
"sicon": "icon_gzjy",
|
"sicon": "icon_gzjy",
|
||||||
@ -52,7 +52,7 @@
|
|||||||
"guijinshu": {
|
"guijinshu": {
|
||||||
"id": "guijinshu",
|
"id": "guijinshu",
|
||||||
"name": "intr_attr_name_6",
|
"name": "intr_attr_name_6",
|
||||||
"undefined": "通过精炼饰品获得的稀有贵金属,可以在饰品商店兑换饰品",
|
"undefined": "贵金属",
|
||||||
"colour": 3,
|
"colour": 3,
|
||||||
"icon": "icon_xyjsh",
|
"icon": "icon_xyjsh",
|
||||||
"sicon": "icon_xyjsh",
|
"sicon": "icon_xyjsh",
|
||||||
@ -62,7 +62,7 @@
|
|||||||
"shilifrd": {
|
"shilifrd": {
|
||||||
"id": "shilifrd",
|
"id": "shilifrd",
|
||||||
"name": "intr_attr_name_11",
|
"name": "intr_attr_name_11",
|
||||||
"undefined": "势力的繁荣度越高,势力等级越高",
|
"undefined": "势力繁荣度",
|
||||||
"colour": 4,
|
"colour": 4,
|
||||||
"icon": "icon_slfrd",
|
"icon": "icon_slfrd",
|
||||||
"sicon": "icon_slfrd",
|
"sicon": "icon_slfrd",
|
||||||
@ -72,7 +72,7 @@
|
|||||||
"clsl_sd": {
|
"clsl_sd": {
|
||||||
"id": "clsl_sd",
|
"id": "clsl_sd",
|
||||||
"name": "intr_attr_name_12",
|
"name": "intr_attr_name_12",
|
||||||
"undefined": "丛林狩猎的段位胜点,胜点数量足够后可进阶",
|
"undefined": "丛林狩猎胜点",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_clsl_xx",
|
"icon": "icon_clsl_xx",
|
||||||
"sicon": "icon_clsl_xx",
|
"sicon": "icon_clsl_xx",
|
||||||
@ -82,7 +82,7 @@
|
|||||||
"nahanzhuwei": {
|
"nahanzhuwei": {
|
||||||
"id": "nahanzhuwei",
|
"id": "nahanzhuwei",
|
||||||
"name": "tlsd_guess_name_1",
|
"name": "tlsd_guess_name_1",
|
||||||
"undefined": "参与竞猜后获得莱微碎片*1和美金*500000",
|
"undefined": "呐喊助威",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_heroBox_11",
|
"icon": "icon_heroBox_11",
|
||||||
"sicon": "icon_heroBox_11",
|
"sicon": "icon_heroBox_11",
|
||||||
@ -92,7 +92,7 @@
|
|||||||
"aidebaobao": {
|
"aidebaobao": {
|
||||||
"id": "aidebaobao",
|
"id": "aidebaobao",
|
||||||
"name": "tlsd_guess_name_2",
|
"name": "tlsd_guess_name_2",
|
||||||
"undefined": "参与竞猜后获得莱微碎片*1,配件蓝图*1和美金*800000",
|
"undefined": "爱的抱抱",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_heroBox_11",
|
"icon": "icon_heroBox_11",
|
||||||
"sicon": "icon_heroBox_11",
|
"sicon": "icon_heroBox_11",
|
||||||
@ -102,7 +102,7 @@
|
|||||||
"woweishenkuang": {
|
"woweishenkuang": {
|
||||||
"id": "woweishenkuang",
|
"id": "woweishenkuang",
|
||||||
"name": "tlsd_guess_name_3",
|
"name": "tlsd_guess_name_3",
|
||||||
"undefined": "参与竞猜后获得莱微碎片*1,配件蓝图*3和美金*1000000",
|
"undefined": "我为神狂",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_heroBox_11",
|
"icon": "icon_heroBox_11",
|
||||||
"sicon": "icon_heroBox_11",
|
"sicon": "icon_heroBox_11",
|
||||||
@ -112,7 +112,7 @@
|
|||||||
"shengdanExp": {
|
"shengdanExp": {
|
||||||
"id": "shengdanExp",
|
"id": "shengdanExp",
|
||||||
"name": "intr_attr_name_13",
|
"name": "intr_attr_name_13",
|
||||||
"undefined": "一年一度的圣诞庆典获得的圣诞欢乐值,可以提升庆典圣诞树奖励进度",
|
"undefined": "圣诞战令经验",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_sdhd_item_1",
|
"icon": "icon_sdhd_item_1",
|
||||||
"sicon": "icon_sdhd_item_1",
|
"sicon": "icon_sdhd_item_1",
|
||||||
@ -122,7 +122,7 @@
|
|||||||
"shengdanBullet": {
|
"shengdanBullet": {
|
||||||
"id": "shengdanBullet",
|
"id": "shengdanBullet",
|
||||||
"name": "intr_attr_name_14",
|
"name": "intr_attr_name_14",
|
||||||
"undefined": "圣诞活动获得的庆典喷漆,可以在“百发百中”兑换射击次数",
|
"undefined": "圣诞打靶币",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_chegaipq",
|
"icon": "icon_chegaipq",
|
||||||
"sicon": "icon_chegaipq",
|
"sicon": "icon_chegaipq",
|
||||||
@ -132,7 +132,7 @@
|
|||||||
"jingxuanbi": {
|
"jingxuanbi": {
|
||||||
"id": "jingxuanbi",
|
"id": "jingxuanbi",
|
||||||
"name": "intr_attr_name_15",
|
"name": "intr_attr_name_15",
|
||||||
"undefined": "只能在黑市使用的票券,可以在黑市里的每日精选兑换商店购买稀有道具",
|
"undefined": "每日精选兑换币",
|
||||||
"colour": 4,
|
"colour": 4,
|
||||||
"icon": "icon_hspj",
|
"icon": "icon_hspj",
|
||||||
"sicon": "icon_hspj",
|
"sicon": "icon_hspj",
|
||||||
@ -142,7 +142,7 @@
|
|||||||
"weiwang": {
|
"weiwang": {
|
||||||
"id": "weiwang",
|
"id": "weiwang",
|
||||||
"name": "intr_attr_name_16",
|
"name": "intr_attr_name_16",
|
||||||
"undefined": "影响力提升了周围同伴的信任,可以在影响力系统中提升属性值",
|
"undefined": "影响力",
|
||||||
"colour": 4,
|
"colour": 4,
|
||||||
"icon": "icon_weiwang",
|
"icon": "icon_weiwang",
|
||||||
"sicon": "icon_weiwang",
|
"sicon": "icon_weiwang",
|
||||||
@ -152,31 +152,11 @@
|
|||||||
"yuandanyouxi": {
|
"yuandanyouxi": {
|
||||||
"id": "yuandanyouxi",
|
"id": "yuandanyouxi",
|
||||||
"name": "intr_attr_name_17",
|
"name": "intr_attr_name_17",
|
||||||
"undefined": "在新年活动中获得的庆典币,可以在机遇礼盒兑换游玩次数",
|
"undefined": "元旦游戏币",
|
||||||
"colour": 5,
|
"colour": 5,
|
||||||
"icon": "icon_xnjb",
|
"icon": "icon_xnjb",
|
||||||
"sicon": "icon_xnjb",
|
"sicon": "icon_xnjb",
|
||||||
"describe": "intr_attr_describe_17",
|
"describe": "intr_attr_describe_17",
|
||||||
"advancedEffects": "ani_xiangzikuang"
|
"advancedEffects": "ani_xiangzikuang"
|
||||||
},
|
|
||||||
"huangqijinbi": {
|
|
||||||
"id": "huangqijinbi",
|
|
||||||
"name": "intr_attr_name_18",
|
|
||||||
"undefined": "在黄旗酒馆活动中获得的庆典币,可以在黄旗招募中兑换招募次数",
|
|
||||||
"colour": 5,
|
|
||||||
"icon": "icon_hqjb",
|
|
||||||
"sicon": "icon_hqjb",
|
|
||||||
"describe": "intr_attr_describe_18",
|
|
||||||
"advancedEffects": "ani_xiangzikuang"
|
|
||||||
},
|
|
||||||
"huangqiduihuan": {
|
|
||||||
"id": "huangqiduihuan",
|
|
||||||
"name": "intr_attr_name_19",
|
|
||||||
"undefined": "在黄旗酒馆活动中获得的兑换票券,可以在神秘兑换中购买商品",
|
|
||||||
"colour": 5,
|
|
||||||
"icon": "icon_hqdhq",
|
|
||||||
"sicon": "icon_hqdhq",
|
|
||||||
"describe": "intr_attr_describe_19",
|
|
||||||
"advancedEffects": "ani_xiangzikuang"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2774,7 +2774,7 @@
|
|||||||
"id": 4003,
|
"id": 4003,
|
||||||
"a": "item",
|
"a": "item",
|
||||||
"t": 28,
|
"t": 28,
|
||||||
"n": 100,
|
"n": 1,
|
||||||
"p": 6
|
"p": 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -4505,12 +4505,82 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"10021": [
|
"10021": [
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4001,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4002,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4003,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4004,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4005,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4007,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4009,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4011,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": 10021,
|
"id": 10021,
|
||||||
"a": "hero",
|
"a": "hero",
|
||||||
"t": 4012,
|
"t": 4012,
|
||||||
"n": 1,
|
"n": 1,
|
||||||
"p": 20
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4014,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10021,
|
||||||
|
"a": "hero",
|
||||||
|
"t": 4015,
|
||||||
|
"n": 1,
|
||||||
|
"p": 20
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"20001": [
|
"20001": [
|
||||||
|
@ -1925,36 +1925,6 @@
|
|||||||
"initiative": 1,
|
"initiative": 1,
|
||||||
"location": 1
|
"location": 1
|
||||||
},
|
},
|
||||||
"186": {
|
|
||||||
"id": 186,
|
|
||||||
"triggerType": "openCond",
|
|
||||||
"typeId": "weiwang",
|
|
||||||
"Type": "finger",
|
|
||||||
"path": "Canvas/draw/uiRoot/uiView_mainMenu/mainMenu/btnLayout/zd",
|
|
||||||
"undefined": "点探险",
|
|
||||||
"initiative": 1,
|
|
||||||
"location": 2
|
|
||||||
},
|
|
||||||
"187": {
|
|
||||||
"id": 187,
|
|
||||||
"triggerType": "openCond",
|
|
||||||
"typeId": "weiwang",
|
|
||||||
"Type": "finger",
|
|
||||||
"path": "Canvas/draw/uiRoot/uiView_tanxian/tanxian/tx_map1/btn_ww",
|
|
||||||
"undefined": "点影响力按钮",
|
|
||||||
"initiative": 1,
|
|
||||||
"location": 1
|
|
||||||
},
|
|
||||||
"188": {
|
|
||||||
"id": 188,
|
|
||||||
"triggerType": "openCond",
|
|
||||||
"typeId": "weiwang",
|
|
||||||
"Type": "finger",
|
|
||||||
"path": "Canvas/draw/uiRoot/uiView_weiwang/weiwang/xia/shengji/btn_sj",
|
|
||||||
"undefined": "点升级按钮",
|
|
||||||
"initiative": 1,
|
|
||||||
"location": 1
|
|
||||||
},
|
|
||||||
"20001": {
|
"20001": {
|
||||||
"id": 20001,
|
"id": 20001,
|
||||||
"triggerType": "lose",
|
"triggerType": "lose",
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
{
|
|
||||||
"1": {
|
|
||||||
"id": 1,
|
|
||||||
"heroId": 5001,
|
|
||||||
"name": "heroSkin_name_1",
|
|
||||||
"undefined": "传说·兔女郎",
|
|
||||||
"model": 50011,
|
|
||||||
"card": 50011,
|
|
||||||
"head": 50011,
|
|
||||||
"colour": 5
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"id": 2,
|
|
||||||
"heroId": 5002,
|
|
||||||
"name": "heroSkin_name_2",
|
|
||||||
"model": 50021,
|
|
||||||
"card": 50021,
|
|
||||||
"head": 50021,
|
|
||||||
"colour": 5
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"id": 3,
|
|
||||||
"heroId": 5003,
|
|
||||||
"name": "heroSkin_name_3",
|
|
||||||
"model": 50031,
|
|
||||||
"card": 50031,
|
|
||||||
"head": 50031,
|
|
||||||
"colour": 5
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"id": 4,
|
|
||||||
"heroId": 5004,
|
|
||||||
"name": "heroSkin_name_4",
|
|
||||||
"model": 50041,
|
|
||||||
"card": 50041,
|
|
||||||
"head": 50041,
|
|
||||||
"colour": 5
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"id": 5,
|
|
||||||
"heroId": 5005,
|
|
||||||
"name": "heroSkin_name_5",
|
|
||||||
"model": 50051,
|
|
||||||
"card": 50051,
|
|
||||||
"head": 50051,
|
|
||||||
"colour": 5
|
|
||||||
},
|
|
||||||
"6": {
|
|
||||||
"id": 6,
|
|
||||||
"heroId": 4002,
|
|
||||||
"name": "heroSkin_name_6",
|
|
||||||
"model": 40021,
|
|
||||||
"card": 40021,
|
|
||||||
"head": 40021,
|
|
||||||
"colour": 4
|
|
||||||
},
|
|
||||||
"7": {
|
|
||||||
"id": 7,
|
|
||||||
"heroId": 4006,
|
|
||||||
"name": "heroSkin_name_7",
|
|
||||||
"model": 40061,
|
|
||||||
"card": 40061,
|
|
||||||
"head": 40061,
|
|
||||||
"colour": 4
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"id": 8,
|
|
||||||
"heroId": 4007,
|
|
||||||
"name": "heroSkin_name_8",
|
|
||||||
"model": 40071,
|
|
||||||
"card": 40071,
|
|
||||||
"head": 40071,
|
|
||||||
"colour": 4
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,806 +0,0 @@
|
|||||||
{
|
|
||||||
"4": {
|
|
||||||
"1": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 1,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8000
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.008
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 2,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8001
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.009
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 3,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8002
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.01
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 4,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8003
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.011
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 5,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8004
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.012
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"6": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 6,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8005
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.013
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"7": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 7,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8006
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.014
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 8,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8007
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.015
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"9": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 9,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8008
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.016
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"10": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 10,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8009
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.017
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"11": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 11,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8010
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.018
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"12": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 12,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8011
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.019
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"13": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 13,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8012
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.02
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"14": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 14,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8013
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.021
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"15": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 15,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8014
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.022
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"16": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 16,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8015
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.023
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"17": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 17,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8016
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.024
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"18": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 18,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8017
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.025
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"19": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 19,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8018
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.026
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"20": {
|
|
||||||
"colour": 4,
|
|
||||||
"lv": 20,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8019
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"atk": 30,
|
|
||||||
"baoshangpro": 0.027
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"1": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 1,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8000
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 20
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 2,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8001
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 21
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 3,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8002
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 22
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 4,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8003
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 23
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 5,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8004
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 24
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"6": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 6,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8005
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 25
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"7": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 7,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8006
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 26
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 8,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8007
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 27
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"9": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 9,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8008
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 28
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"10": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 10,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8009
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 29
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"11": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 11,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8010
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 30
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"12": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 12,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8011
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 31
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"13": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 13,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8012
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 32
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"14": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 14,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8013
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 33
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"15": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 15,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8014
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 34
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"16": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 16,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8015
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 35
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"17": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 17,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8016
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 36
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"18": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 18,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8017
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 37
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"19": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 19,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8018
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 38
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"20": {
|
|
||||||
"colour": 5,
|
|
||||||
"lv": 20,
|
|
||||||
"need": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 8019
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buff": {
|
|
||||||
"def": 30,
|
|
||||||
"maxdps": 39
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -835,13 +835,13 @@
|
|||||||
"name": "zc_btn_hs",
|
"name": "zc_btn_hs",
|
||||||
"undefined": "黑市",
|
"undefined": "黑市",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"zc_btn_jg": {
|
"zc_btn_jg": {
|
||||||
@ -887,78 +887,78 @@
|
|||||||
"name": "shouchong",
|
"name": "shouchong",
|
||||||
"undefined": "首充",
|
"undefined": "首充",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"mapId": 8
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_64",
|
"tips": "openCond_tips_64",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"mapId": 8
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"kaifukuanghuan": {
|
"kaifukuanghuan": {
|
||||||
"name": "kaifukuanghuan",
|
"name": "kaifukuanghuan",
|
||||||
"undefined": "开服狂欢",
|
"undefined": "开服狂欢",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cz_jijin": {
|
"cz_jijin": {
|
||||||
"name": "cz_jijin",
|
"name": "cz_jijin",
|
||||||
"undefined": "基金入口",
|
"undefined": "基金入口",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_64",
|
"tips": "openCond_tips_64",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jijin": {
|
"jijin": {
|
||||||
"name": "jijin",
|
"name": "jijin",
|
||||||
"undefined": "基金",
|
"undefined": "基金",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_64",
|
"tips": "openCond_tips_64",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jijin_gkjj": {
|
"jijin_gkjj": {
|
||||||
"name": "jijin_gkjj",
|
"name": "jijin_gkjj",
|
||||||
"undefined": "关卡基金",
|
"undefined": "关卡基金",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_64",
|
"tips": "openCond_tips_64",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jijin_tbtxz": {
|
"jijin_tbtxz": {
|
||||||
"name": "jijin_tbtxz",
|
"name": "jijin_tbtxz",
|
||||||
"undefined": "特别通行证",
|
"undefined": "特别通行证",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_64",
|
"tips": "openCond_tips_64",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jijin_tszl": {
|
"jijin_tszl": {
|
||||||
@ -980,13 +980,13 @@
|
|||||||
"name": "yuedujijin",
|
"name": "yuedujijin",
|
||||||
"undefined": "月度基金",
|
"undefined": "月度基金",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_71",
|
"tips": "openCond_tips_71",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"zhanling": {
|
"zhanling": {
|
||||||
@ -1006,130 +1006,130 @@
|
|||||||
"name": "dengludali",
|
"name": "dengludali",
|
||||||
"undefined": "登录大礼(7日)",
|
"undefined": "登录大礼(7日)",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 13
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_73",
|
"tips": "openCond_tips_73",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 13
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yibaichou": {
|
"yibaichou": {
|
||||||
"name": "yibaichou",
|
"name": "yibaichou",
|
||||||
"undefined": "百抽活动",
|
"undefined": "百抽活动",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 7
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_74",
|
"tips": "openCond_tips_74",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 7
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"xinfupeiyang": {
|
"xinfupeiyang": {
|
||||||
"name": "xinfupeiyang",
|
"name": "xinfupeiyang",
|
||||||
"undefined": "心腹培养",
|
"undefined": "心腹培养",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"mapId": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_75",
|
"tips": "openCond_tips_75",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"mapId": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"huobanzhaomu": {
|
"huobanzhaomu": {
|
||||||
"name": "huobanzhaomu",
|
"name": "huobanzhaomu",
|
||||||
"undefined": "伙伴招募",
|
"undefined": "伙伴招募",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"mapId": 50
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_76",
|
"tips": "openCond_tips_76",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"mapId": 50
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"xinshoulibao": {
|
"xinshoulibao": {
|
||||||
"name": "xinshoulibao",
|
"name": "xinshoulibao",
|
||||||
"undefined": "冲刺礼包",
|
"undefined": "冲刺礼包",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 21
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_77",
|
"tips": "openCond_tips_77",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 21
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"leijichongzhi": {
|
"leijichongzhi": {
|
||||||
"name": "leijichongzhi",
|
"name": "leijichongzhi",
|
||||||
"undefined": "累计充值",
|
"undefined": "累计充值",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"mapId": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_78",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"mapId": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"diaoluoduihuan": {
|
"diaoluoduihuan": {
|
||||||
"name": "diaoluoduihuan",
|
"name": "diaoluoduihuan",
|
||||||
"undefined": "掉落兑换",
|
"undefined": "掉落兑换",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"openTime": 8
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_79",
|
"tips": "openCond_tips_79",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"openTime": 8
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rencaijihua": {
|
"rencaijihua": {
|
||||||
"name": "rencaijihua",
|
"name": "rencaijihua",
|
||||||
"undefined": "人才计划",
|
"undefined": "人才计划",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 13
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_80",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 13
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"zc_img6": {
|
"zc_img6": {
|
||||||
"name": "zc_img6",
|
"name": "zc_img6",
|
||||||
"undefined": "每日签到",
|
"undefined": "每日签到",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 13
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_81",
|
"tips": "openCond_tips_81",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 13
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dianfengrongyao": {
|
"dianfengrongyao": {
|
||||||
"name": "dianfengrongyao",
|
"name": "dianfengrongyao",
|
||||||
"undefined": "巅峰荣耀",
|
"undefined": "巅峰荣耀",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_82",
|
"tips": "openCond_tips_82",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tuisonglibao": {
|
"tuisonglibao": {
|
||||||
@ -1149,130 +1149,130 @@
|
|||||||
"name": "hs_btn_tqlb",
|
"name": "hs_btn_tqlb",
|
||||||
"undefined": "特权礼包",
|
"undefined": "特权礼包",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_84",
|
"tips": "openCond_tips_84",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hs_btn_ndj": {
|
"hs_btn_ndj": {
|
||||||
"name": "hs_btn_ndj",
|
"name": "hs_btn_ndj",
|
||||||
"undefined": "扭蛋机",
|
"undefined": "扭蛋机",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_85",
|
"tips": "openCond_tips_85",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hs_btn_yk": {
|
"hs_btn_yk": {
|
||||||
"name": "hs_btn_yk",
|
"name": "hs_btn_yk",
|
||||||
"undefined": "月卡",
|
"undefined": "月卡",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_86",
|
"tips": "openCond_tips_86",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hs_btn_zsk": {
|
"hs_btn_zsk": {
|
||||||
"name": "hs_btn_zsk",
|
"name": "hs_btn_zsk",
|
||||||
"undefined": "终身卡",
|
"undefined": "终身卡",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_87",
|
"tips": "openCond_tips_87",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hs_btn_mrjx": {
|
"hs_btn_mrjx": {
|
||||||
"name": "hs_btn_mrjx",
|
"name": "hs_btn_mrjx",
|
||||||
"undefined": "每日精选",
|
"undefined": "每日精选",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_88",
|
"tips": "openCond_tips_88",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hs_btn_jthl": {
|
"hs_btn_jthl": {
|
||||||
"name": "hs_btn_jthl",
|
"name": "hs_btn_jthl",
|
||||||
"undefined": "积天豪礼",
|
"undefined": "积天豪礼",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_89",
|
"tips": "openCond_tips_89",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hs_btn_zlb": {
|
"hs_btn_zlb": {
|
||||||
"name": "hs_btn_zlb",
|
"name": "hs_btn_zlb",
|
||||||
"undefined": "周礼包",
|
"undefined": "周礼包",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_90",
|
"tips": "openCond_tips_90",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"shangcheng": {
|
"shangcheng": {
|
||||||
"name": "shangcheng",
|
"name": "shangcheng",
|
||||||
"undefined": "商城",
|
"undefined": "商城",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_64",
|
"tips": "openCond_tips_64",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"mapId": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fuli": {
|
"fuli": {
|
||||||
"name": "fuli",
|
"name": "fuli",
|
||||||
"undefined": "福利",
|
"undefined": "福利",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 7
|
"lv": 13
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_92",
|
"tips": "openCond_tips_92",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 7
|
"lv": 13
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"xianshihuodong": {
|
"xianshihuodong": {
|
||||||
"name": "xianshihuodong",
|
"name": "xianshihuodong",
|
||||||
"undefined": "限时活动",
|
"undefined": "限时活动",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_93",
|
"tips": "openCond_tips_93",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hb_btn_yjtz": {
|
"hb_btn_yjtz": {
|
||||||
@ -1285,111 +1285,111 @@
|
|||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_94",
|
"tips": "openCond_tips_94",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 30
|
"lv": 7
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"kaifujingsai": {
|
"kaifujingsai": {
|
||||||
"name": "kaifujingsai",
|
"name": "kaifujingsai",
|
||||||
"undefined": "开服竞赛",
|
"undefined": "开服竞赛",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 20
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_95",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"zhoumolibao": {
|
"zhoumolibao": {
|
||||||
"name": "zhoumolibao",
|
"name": "zhoumolibao",
|
||||||
"undefined": "周末礼包",
|
"undefined": "周末礼包",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"shengdanhuodong": {
|
"shengdanhuodong": {
|
||||||
"name": "shengdanhuodong",
|
"name": "shengdanhuodong",
|
||||||
"undefined": "圣诞活动",
|
"undefined": "圣诞活动",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yuandanhuodong": {
|
"yuandanhuodong": {
|
||||||
"name": "yuandanhuodong",
|
"name": "yuandanhuodong",
|
||||||
"undefined": "元旦活动",
|
"undefined": "元旦活动",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"czlibao": {
|
"czlibao": {
|
||||||
"name": "czlibao",
|
"name": "czlibao",
|
||||||
"undefined": "超值礼包破冰",
|
"undefined": "超值礼包破冰",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"xiaofeijingsai": {
|
"xiaofeijingsai": {
|
||||||
"name": "xiaofeijingsai",
|
"name": "xiaofeijingsai",
|
||||||
"undefined": "钻石消费竞赛",
|
"undefined": "钻石消费竞赛",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"leigoulibao": {
|
"leigoulibao": {
|
||||||
"name": "leigoulibao",
|
"name": "leigoulibao",
|
||||||
"undefined": "累购礼包",
|
"undefined": "累购礼包",
|
||||||
"and": {
|
"and": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"lv": 10
|
"lv": 15
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"weiwang": {
|
"weiwang": {
|
||||||
"name": "weiwang",
|
"name": "weiwang",
|
||||||
"undefined": "威望",
|
"undefined": "威望",
|
||||||
"and": {
|
"and": {
|
||||||
"mapId": 15
|
"lv": 15
|
||||||
},
|
},
|
||||||
"or": {},
|
"or": {},
|
||||||
"time": 0,
|
"time": 0,
|
||||||
"tips": "openCond_tips_96",
|
"tips": "openCond_tips_96",
|
||||||
"display": {
|
"display": {
|
||||||
"mapId": 15
|
"lv": 15
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -915,37 +915,6 @@
|
|||||||
"front": {},
|
"front": {},
|
||||||
"currency": "CNY"
|
"currency": "CNY"
|
||||||
},
|
},
|
||||||
"lv10": {
|
|
||||||
"id": "lv10",
|
|
||||||
"money": 0.5,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "rmbmoney",
|
|
||||||
"n": 100
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "hero",
|
|
||||||
"t": "4012",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_lv10",
|
|
||||||
"undefined": "等级豪礼(等级10)",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 1,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"lv15": {
|
"lv15": {
|
||||||
"id": "lv15",
|
"id": "lv15",
|
||||||
"money": 0.5,
|
"money": 0.5,
|
||||||
@ -6704,205 +6673,5 @@
|
|||||||
"needVip": 0,
|
"needVip": 0,
|
||||||
"front": {},
|
"front": {},
|
||||||
"currency": "CNY"
|
"currency": "CNY"
|
||||||
},
|
|
||||||
"hqjg_libao_1": {
|
|
||||||
"id": "hqjg_libao_1",
|
|
||||||
"money": 0.5,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_1",
|
|
||||||
"undefined": "黄旗酒馆_1",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_2": {
|
|
||||||
"id": "hqjg_libao_2",
|
|
||||||
"money": 1,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 10
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_2",
|
|
||||||
"undefined": "黄旗酒馆_2",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_3": {
|
|
||||||
"id": "hqjg_libao_3",
|
|
||||||
"money": 6,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 60
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_3",
|
|
||||||
"undefined": "黄旗酒馆_3",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_4": {
|
|
||||||
"id": "hqjg_libao_4",
|
|
||||||
"money": 18,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 180
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_4",
|
|
||||||
"undefined": "黄旗酒馆_4",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_5": {
|
|
||||||
"id": "hqjg_libao_5",
|
|
||||||
"money": 30,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 300
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_5",
|
|
||||||
"undefined": "黄旗酒馆_5",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_6": {
|
|
||||||
"id": "hqjg_libao_6",
|
|
||||||
"money": 68,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 680
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_6",
|
|
||||||
"undefined": "黄旗酒馆_6",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_7": {
|
|
||||||
"id": "hqjg_libao_7",
|
|
||||||
"money": 128,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 1280
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_7",
|
|
||||||
"undefined": "黄旗酒馆_7",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_8": {
|
|
||||||
"id": "hqjg_libao_8",
|
|
||||||
"money": 198,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 1980
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_8",
|
|
||||||
"undefined": "黄旗酒馆_8",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_9": {
|
|
||||||
"id": "hqjg_libao_9",
|
|
||||||
"money": 328,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 3280
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_9",
|
|
||||||
"undefined": "黄旗酒馆_9",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
},
|
|
||||||
"hqjg_libao_10": {
|
|
||||||
"id": "hqjg_libao_10",
|
|
||||||
"money": 648,
|
|
||||||
"payExp": [
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "payExp",
|
|
||||||
"n": 6480
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prize": [],
|
|
||||||
"firstPayPrize": [],
|
|
||||||
"name": "pay_name_hqjg_libao_10",
|
|
||||||
"undefined": "黄旗酒馆_10",
|
|
||||||
"time": -1,
|
|
||||||
"buys": 0,
|
|
||||||
"needVip": 0,
|
|
||||||
"front": {},
|
|
||||||
"currency": "CNY"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,12 +2,12 @@
|
|||||||
"1": {
|
"1": {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"name": "playerChatFrame_name_1",
|
"name": "playerChatFrame_name_1",
|
||||||
"undefined": "玩家初始默认聊天框",
|
|
||||||
"img": "lt_dhk1",
|
"img": "lt_dhk1",
|
||||||
"cond": [
|
"cond": [
|
||||||
"lv",
|
"lv",
|
||||||
1
|
1
|
||||||
],
|
],
|
||||||
|
"undefined": "进入游戏默认获得",
|
||||||
"intr": "playerChatFrame_des_1",
|
"intr": "playerChatFrame_des_1",
|
||||||
"sort": 1,
|
"sort": 1,
|
||||||
"buff": {
|
"buff": {
|
||||||
@ -19,12 +19,12 @@
|
|||||||
"2": {
|
"2": {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"name": "playerChatFrame_name_2",
|
"name": "playerChatFrame_name_2",
|
||||||
"undefined": "主角等级达到30级获得,解锁后防御加成+1%",
|
|
||||||
"img": "lt_dhk3",
|
"img": "lt_dhk3",
|
||||||
"cond": [
|
"cond": [
|
||||||
"lv",
|
"lv",
|
||||||
30
|
30
|
||||||
],
|
],
|
||||||
|
"undefined": "角色等级达到30级获得",
|
||||||
"intr": "playerChatFrame_des_2",
|
"intr": "playerChatFrame_des_2",
|
||||||
"sort": 2,
|
"sort": 2,
|
||||||
"buff": {
|
"buff": {
|
||||||
@ -36,12 +36,12 @@
|
|||||||
"3": {
|
"3": {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"name": "playerChatFrame_name_3",
|
"name": "playerChatFrame_name_3",
|
||||||
"undefined": "主角等级达到50级获得,解锁后防御加成+1%",
|
|
||||||
"img": "lt_dhk4",
|
"img": "lt_dhk4",
|
||||||
"cond": [
|
"cond": [
|
||||||
"lv",
|
"lv",
|
||||||
50
|
50
|
||||||
],
|
],
|
||||||
|
"undefined": "角色等级达到50级获得",
|
||||||
"intr": "playerChatFrame_des_3",
|
"intr": "playerChatFrame_des_3",
|
||||||
"sort": 3,
|
"sort": 3,
|
||||||
"buff": {
|
"buff": {
|
||||||
@ -53,12 +53,12 @@
|
|||||||
"4": {
|
"4": {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"name": "playerChatFrame_name_4",
|
"name": "playerChatFrame_name_4",
|
||||||
"undefined": "图鉴数量达到30个获得,解锁后防御加成+1%",
|
|
||||||
"img": "lt_dhk5",
|
"img": "lt_dhk5",
|
||||||
"cond": [
|
"cond": [
|
||||||
"tujianLv",
|
"tujianLv",
|
||||||
7
|
7
|
||||||
],
|
],
|
||||||
|
"undefined": "图鉴数量达到30个获得",
|
||||||
"intr": "playerChatFrame_des_4",
|
"intr": "playerChatFrame_des_4",
|
||||||
"sort": 5,
|
"sort": 5,
|
||||||
"buff": {
|
"buff": {
|
||||||
@ -70,12 +70,12 @@
|
|||||||
"5": {
|
"5": {
|
||||||
"id": 5,
|
"id": 5,
|
||||||
"name": "playerChatFrame_name_5",
|
"name": "playerChatFrame_name_5",
|
||||||
"undefined": "VIP5获得,解锁后攻击加成+1%",
|
|
||||||
"img": "lt_dhk7",
|
"img": "lt_dhk7",
|
||||||
"cond": [
|
"cond": [
|
||||||
"vip",
|
"vip",
|
||||||
5
|
5
|
||||||
],
|
],
|
||||||
|
"undefined": "VIP5获得",
|
||||||
"intr": "playerChatFrame_des_5",
|
"intr": "playerChatFrame_des_5",
|
||||||
"sort": 4,
|
"sort": 4,
|
||||||
"buff": {
|
"buff": {
|
||||||
@ -87,12 +87,12 @@
|
|||||||
"6": {
|
"6": {
|
||||||
"id": 6,
|
"id": 6,
|
||||||
"name": "playerChatFrame_name_6",
|
"name": "playerChatFrame_name_6",
|
||||||
"undefined": "跨服势力战最高品质据点第一势力成员,解锁后攻击加成+1%、生命加成+1%(限时7天)",
|
|
||||||
"img": "lt_dhk11",
|
"img": "lt_dhk11",
|
||||||
"cond": [
|
"cond": [
|
||||||
"time",
|
"time",
|
||||||
604800
|
604800
|
||||||
],
|
],
|
||||||
|
"undefined": "跨服势力战最高品质据点第一势力成员",
|
||||||
"intr": "playerChatFrame_des_6",
|
"intr": "playerChatFrame_des_6",
|
||||||
"sort": 6,
|
"sort": 6,
|
||||||
"buff": {
|
"buff": {
|
||||||
@ -105,12 +105,12 @@
|
|||||||
"7": {
|
"7": {
|
||||||
"id": 7,
|
"id": 7,
|
||||||
"name": "playerChatFrame_name_7",
|
"name": "playerChatFrame_name_7",
|
||||||
"undefined": "名望等级达到七阶获得,解锁后防御加成+1%",
|
|
||||||
"img": "lt_dhk13",
|
"img": "lt_dhk13",
|
||||||
"cond": [
|
"cond": [
|
||||||
"renown",
|
"renown",
|
||||||
61
|
61
|
||||||
],
|
],
|
||||||
|
"undefined": "名望等级达到七阶获得",
|
||||||
"intr": "playerChatFrame_des_7",
|
"intr": "playerChatFrame_des_7",
|
||||||
"sort": 7,
|
"sort": 7,
|
||||||
"buff": {
|
"buff": {
|
||||||
@ -122,12 +122,12 @@
|
|||||||
"8": {
|
"8": {
|
||||||
"id": 8,
|
"id": 8,
|
||||||
"name": "playerChatFrame_name_8",
|
"name": "playerChatFrame_name_8",
|
||||||
"undefined": "圣诞庆典活动获得,解锁后防御加成+1%",
|
|
||||||
"img": "lt_dhk14",
|
"img": "lt_dhk14",
|
||||||
"cond": [
|
"cond": [
|
||||||
"time",
|
"time",
|
||||||
-1
|
-1
|
||||||
],
|
],
|
||||||
|
"undefined": "圣诞庆典获得",
|
||||||
"intr": "playerChatFrame_des_8",
|
"intr": "playerChatFrame_des_8",
|
||||||
"sort": 8,
|
"sort": 8,
|
||||||
"buff": {
|
"buff": {
|
||||||
@ -139,12 +139,12 @@
|
|||||||
"9": {
|
"9": {
|
||||||
"id": 9,
|
"id": 9,
|
||||||
"name": "playerChatFrame_name_9",
|
"name": "playerChatFrame_name_9",
|
||||||
"undefined": "新年庆典活动获得,解锁后防御加成+1%",
|
|
||||||
"img": "lt_dhk15",
|
"img": "lt_dhk15",
|
||||||
"cond": [
|
"cond": [
|
||||||
"time",
|
"time",
|
||||||
-1
|
-1
|
||||||
],
|
],
|
||||||
|
"undefined": "新年庆典获得",
|
||||||
"intr": "playerChatFrame_des_9",
|
"intr": "playerChatFrame_des_9",
|
||||||
"sort": 9,
|
"sort": 9,
|
||||||
"buff": {
|
"buff": {
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"name": "playerModel_name_1",
|
"name": "playerModel_name_1",
|
||||||
"undefined": "主角初始默认的男形象",
|
|
||||||
"head": 10001,
|
"head": 10001,
|
||||||
"img": "zhu_10001",
|
"img": "zhu_10001",
|
||||||
"cond": [
|
"cond": [
|
||||||
@ -21,7 +20,6 @@
|
|||||||
"id": 2,
|
"id": 2,
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"name": "playerModel_name_2",
|
"name": "playerModel_name_2",
|
||||||
"undefined": "主角初始默认的女形象",
|
|
||||||
"head": 10002,
|
"head": 10002,
|
||||||
"img": "zhu_10002",
|
"img": "zhu_10002",
|
||||||
"cond": [
|
"cond": [
|
||||||
@ -39,7 +37,6 @@
|
|||||||
"id": 3,
|
"id": 3,
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"name": "playerModel_name_3",
|
"name": "playerModel_name_3",
|
||||||
"undefined": "圣诞庆典活动获得,解锁后防御加成+2%",
|
|
||||||
"head": 100011,
|
"head": 100011,
|
||||||
"img": 100011,
|
"img": 100011,
|
||||||
"cond": [
|
"cond": [
|
||||||
@ -59,7 +56,6 @@
|
|||||||
"id": 4,
|
"id": 4,
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"name": "playerModel_name_4",
|
"name": "playerModel_name_4",
|
||||||
"undefined": "圣诞庆典活动获得,解锁后攻击加成+2%",
|
|
||||||
"head": 100021,
|
"head": 100021,
|
||||||
"img": 100021,
|
"img": 100021,
|
||||||
"cond": [
|
"cond": [
|
||||||
|
@ -3,600 +3,360 @@
|
|||||||
"id": 1,
|
"id": 1,
|
||||||
"renownlevel": 1,
|
"renownlevel": 1,
|
||||||
"maxlevel": 250,
|
"maxlevel": 250,
|
||||||
"cost": [
|
"cost": 5,
|
||||||
{
|
"atk": 2,
|
||||||
"a": "attr",
|
|
||||||
"t": "weiwang",
|
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
"def": 1,
|
||||||
"hp": 4
|
"hp": 8
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"renownlevel": 2,
|
"renownlevel": 2,
|
||||||
"maxlevel": 750,
|
"maxlevel": 500,
|
||||||
"cost": [
|
"cost": 6,
|
||||||
{
|
"atk": 2,
|
||||||
"a": "attr",
|
|
||||||
"t": "weiwang",
|
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
"def": 1,
|
||||||
"hp": 4
|
"hp": 9
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"renownlevel": 3,
|
"renownlevel": 3,
|
||||||
"maxlevel": 1500,
|
"maxlevel": 750,
|
||||||
"cost": [
|
"cost": 7,
|
||||||
{
|
"atk": 2,
|
||||||
"a": "attr",
|
|
||||||
"t": "weiwang",
|
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
"def": 1,
|
||||||
"hp": 4
|
"hp": 10
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
"renownlevel": 4,
|
"renownlevel": 4,
|
||||||
"maxlevel": 2500,
|
"maxlevel": 1000,
|
||||||
"cost": [
|
"cost": 9,
|
||||||
{
|
"atk": 4,
|
||||||
"a": "attr",
|
"def": 2,
|
||||||
"t": "weiwang",
|
"hp": 11
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 4
|
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"id": 5,
|
"id": 5,
|
||||||
"renownlevel": 5,
|
"renownlevel": 5,
|
||||||
"maxlevel": 3750,
|
"maxlevel": 1250,
|
||||||
"cost": [
|
"cost": 11,
|
||||||
{
|
"atk": 4,
|
||||||
"a": "attr",
|
"def": 2,
|
||||||
"t": "weiwang",
|
"hp": 12
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 4
|
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"id": 6,
|
"id": 6,
|
||||||
"renownlevel": 6,
|
"renownlevel": 6,
|
||||||
"maxlevel": 5250,
|
"maxlevel": 1500,
|
||||||
"cost": [
|
"cost": 13,
|
||||||
{
|
"atk": 4,
|
||||||
"a": "attr",
|
"def": 2,
|
||||||
"t": "weiwang",
|
"hp": 13
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 4
|
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"id": 7,
|
"id": 7,
|
||||||
"renownlevel": 7,
|
"renownlevel": 7,
|
||||||
"maxlevel": 7000,
|
"maxlevel": 1750,
|
||||||
"cost": [
|
"cost": 15,
|
||||||
{
|
"atk": 6,
|
||||||
"a": "attr",
|
"def": 3,
|
||||||
"t": "weiwang",
|
"hp": 14
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 4
|
|
||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"id": 8,
|
"id": 8,
|
||||||
"renownlevel": 8,
|
"renownlevel": 8,
|
||||||
"maxlevel": 9000,
|
"maxlevel": 2000,
|
||||||
"cost": [
|
"cost": 17,
|
||||||
{
|
"atk": 6,
|
||||||
"a": "attr",
|
"def": 3,
|
||||||
"t": "weiwang",
|
"hp": 15
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 4
|
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"id": 9,
|
"id": 9,
|
||||||
"renownlevel": 9,
|
"renownlevel": 9,
|
||||||
"maxlevel": 11500,
|
"maxlevel": 2500,
|
||||||
"cost": [
|
"cost": 19,
|
||||||
{
|
"atk": 6,
|
||||||
"a": "attr",
|
"def": 3,
|
||||||
"t": "weiwang",
|
"hp": 16
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 4
|
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"id": 10,
|
"id": 10,
|
||||||
"renownlevel": 10,
|
"renownlevel": 10,
|
||||||
"maxlevel": 14500,
|
"maxlevel": 3000,
|
||||||
"cost": [
|
"cost": 21,
|
||||||
{
|
"atk": 8,
|
||||||
"a": "attr",
|
"def": 4,
|
||||||
"t": "weiwang",
|
"hp": 17
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 4
|
|
||||||
},
|
},
|
||||||
"11": {
|
"11": {
|
||||||
"id": 11,
|
"id": 11,
|
||||||
"renownlevel": 11,
|
"renownlevel": 11,
|
||||||
"maxlevel": 18000,
|
"maxlevel": 3500,
|
||||||
"cost": [
|
"cost": 23,
|
||||||
{
|
"atk": 8,
|
||||||
"a": "attr",
|
"def": 4,
|
||||||
"t": "weiwang",
|
"hp": 18
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 5
|
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"id": 12,
|
"id": 12,
|
||||||
"renownlevel": 12,
|
"renownlevel": 12,
|
||||||
"maxlevel": 22000,
|
"maxlevel": 4000,
|
||||||
"cost": [
|
"cost": 25,
|
||||||
{
|
"atk": 8,
|
||||||
"a": "attr",
|
"def": 4,
|
||||||
"t": "weiwang",
|
"hp": 19
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 5
|
|
||||||
},
|
},
|
||||||
"13": {
|
"13": {
|
||||||
"id": 13,
|
"id": 13,
|
||||||
"renownlevel": 13,
|
"renownlevel": 13,
|
||||||
"maxlevel": 26500,
|
"maxlevel": 4500,
|
||||||
"cost": [
|
"cost": 27,
|
||||||
{
|
"atk": 10,
|
||||||
"a": "attr",
|
"def": 5,
|
||||||
"t": "weiwang",
|
"hp": 20
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 5
|
|
||||||
},
|
},
|
||||||
"14": {
|
"14": {
|
||||||
"id": 14,
|
"id": 14,
|
||||||
"renownlevel": 14,
|
"renownlevel": 14,
|
||||||
"maxlevel": 31500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 30,
|
||||||
{
|
"atk": 10,
|
||||||
"a": "attr",
|
"def": 5,
|
||||||
"t": "weiwang",
|
"hp": 21
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 5
|
|
||||||
},
|
},
|
||||||
"15": {
|
"15": {
|
||||||
"id": 15,
|
"id": 15,
|
||||||
"renownlevel": 15,
|
"renownlevel": 15,
|
||||||
"maxlevel": 36500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 33,
|
||||||
{
|
"atk": 10,
|
||||||
"a": "attr",
|
"def": 5,
|
||||||
"t": "weiwang",
|
"hp": 21
|
||||||
"n": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.2,
|
|
||||||
"def": 1,
|
|
||||||
"hp": 5
|
|
||||||
},
|
},
|
||||||
"16": {
|
"16": {
|
||||||
"id": 16,
|
"id": 16,
|
||||||
"renownlevel": 16,
|
"renownlevel": 16,
|
||||||
"maxlevel": 41500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 36,
|
||||||
{
|
"atk": 12,
|
||||||
"a": "attr",
|
"def": 6,
|
||||||
"t": "weiwang",
|
"hp": 22
|
||||||
"n": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 6
|
|
||||||
},
|
},
|
||||||
"17": {
|
"17": {
|
||||||
"id": 17,
|
"id": 17,
|
||||||
"renownlevel": 17,
|
"renownlevel": 17,
|
||||||
"maxlevel": 46500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 39,
|
||||||
{
|
"atk": 12,
|
||||||
"a": "attr",
|
"def": 6,
|
||||||
"t": "weiwang",
|
"hp": 22
|
||||||
"n": 9
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 6
|
|
||||||
},
|
},
|
||||||
"18": {
|
"18": {
|
||||||
"id": 18,
|
"id": 18,
|
||||||
"renownlevel": 18,
|
"renownlevel": 18,
|
||||||
"maxlevel": 51500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 42,
|
||||||
{
|
"atk": 12,
|
||||||
"a": "attr",
|
"def": 6,
|
||||||
"t": "weiwang",
|
"hp": 22
|
||||||
"n": 13
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 6
|
|
||||||
},
|
},
|
||||||
"19": {
|
"19": {
|
||||||
"id": 19,
|
"id": 19,
|
||||||
"renownlevel": 19,
|
"renownlevel": 19,
|
||||||
"maxlevel": 56500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 45,
|
||||||
{
|
"atk": 14,
|
||||||
"a": "attr",
|
"def": 7,
|
||||||
"t": "weiwang",
|
"hp": 23
|
||||||
"n": 17
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 6
|
|
||||||
},
|
},
|
||||||
"20": {
|
"20": {
|
||||||
"id": 20,
|
"id": 20,
|
||||||
"renownlevel": 20,
|
"renownlevel": 20,
|
||||||
"maxlevel": 61500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 48,
|
||||||
{
|
"atk": 14,
|
||||||
"a": "attr",
|
"def": 7,
|
||||||
"t": "weiwang",
|
"hp": 23
|
||||||
"n": 21
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 6
|
|
||||||
},
|
},
|
||||||
"21": {
|
"21": {
|
||||||
"id": 21,
|
"id": 21,
|
||||||
"renownlevel": 21,
|
"renownlevel": 21,
|
||||||
"maxlevel": 66500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 51,
|
||||||
{
|
"atk": 14,
|
||||||
"a": "attr",
|
"def": 7,
|
||||||
"t": "weiwang",
|
"hp": 23
|
||||||
"n": 23
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 7
|
|
||||||
},
|
},
|
||||||
"22": {
|
"22": {
|
||||||
"id": 22,
|
"id": 22,
|
||||||
"renownlevel": 22,
|
"renownlevel": 22,
|
||||||
"maxlevel": 71500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 54,
|
||||||
{
|
"atk": 14,
|
||||||
"a": "attr",
|
"def": 7,
|
||||||
"t": "weiwang",
|
"hp": 23
|
||||||
"n": 25
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 7
|
|
||||||
},
|
},
|
||||||
"23": {
|
"23": {
|
||||||
"id": 23,
|
"id": 23,
|
||||||
"renownlevel": 23,
|
"renownlevel": 23,
|
||||||
"maxlevel": 76500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 57,
|
||||||
{
|
"atk": 16,
|
||||||
"a": "attr",
|
"def": 8,
|
||||||
"t": "weiwang",
|
"hp": 24
|
||||||
"n": 27
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 7
|
|
||||||
},
|
},
|
||||||
"24": {
|
"24": {
|
||||||
"id": 24,
|
"id": 24,
|
||||||
"renownlevel": 24,
|
"renownlevel": 24,
|
||||||
"maxlevel": 81500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 60,
|
||||||
{
|
"atk": 16,
|
||||||
"a": "attr",
|
"def": 8,
|
||||||
"t": "weiwang",
|
"hp": 24
|
||||||
"n": 29
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 7
|
|
||||||
},
|
},
|
||||||
"25": {
|
"25": {
|
||||||
"id": 25,
|
"id": 25,
|
||||||
"renownlevel": 25,
|
"renownlevel": 25,
|
||||||
"maxlevel": 86500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 63,
|
||||||
{
|
"atk": 16,
|
||||||
"a": "attr",
|
"def": 8,
|
||||||
"t": "weiwang",
|
"hp": 24
|
||||||
"n": 30
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 7
|
|
||||||
},
|
},
|
||||||
"26": {
|
"26": {
|
||||||
"id": 26,
|
"id": 26,
|
||||||
"renownlevel": 26,
|
"renownlevel": 26,
|
||||||
"maxlevel": 91500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 66,
|
||||||
{
|
"atk": 16,
|
||||||
"a": "attr",
|
"def": 8,
|
||||||
"t": "weiwang",
|
"hp": 24
|
||||||
"n": 32
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"27": {
|
"27": {
|
||||||
"id": 27,
|
"id": 27,
|
||||||
"renownlevel": 27,
|
"renownlevel": 27,
|
||||||
"maxlevel": 96500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 69,
|
||||||
{
|
"atk": 16,
|
||||||
"a": "attr",
|
"def": 8,
|
||||||
"t": "weiwang",
|
"hp": 24
|
||||||
"n": 34
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"28": {
|
"28": {
|
||||||
"id": 28,
|
"id": 28,
|
||||||
"renownlevel": 28,
|
"renownlevel": 28,
|
||||||
"maxlevel": 101500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 72,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 9,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 36
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"29": {
|
"29": {
|
||||||
"id": 29,
|
"id": 29,
|
||||||
"renownlevel": 29,
|
"renownlevel": 29,
|
||||||
"maxlevel": 106500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 75,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 9,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 38
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"30": {
|
"30": {
|
||||||
"id": 30,
|
"id": 30,
|
||||||
"renownlevel": 30,
|
"renownlevel": 30,
|
||||||
"maxlevel": 111500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 78,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 9,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 40
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"31": {
|
"31": {
|
||||||
"id": 31,
|
"id": 31,
|
||||||
"renownlevel": 31,
|
"renownlevel": 31,
|
||||||
"maxlevel": 116500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 81,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 9,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 42
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"32": {
|
"32": {
|
||||||
"id": 32,
|
"id": 32,
|
||||||
"renownlevel": 32,
|
"renownlevel": 32,
|
||||||
"maxlevel": 121500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 84,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 9,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 44
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"33": {
|
"33": {
|
||||||
"id": 33,
|
"id": 33,
|
||||||
"renownlevel": 33,
|
"renownlevel": 33,
|
||||||
"maxlevel": 126500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 87,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 10,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 46
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"34": {
|
"34": {
|
||||||
"id": 34,
|
"id": 34,
|
||||||
"renownlevel": 34,
|
"renownlevel": 34,
|
||||||
"maxlevel": 131500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 90,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 10,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 48
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"35": {
|
"35": {
|
||||||
"id": 35,
|
"id": 35,
|
||||||
"renownlevel": 35,
|
"renownlevel": 35,
|
||||||
"maxlevel": 136500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 93,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 10,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 50
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"36": {
|
"36": {
|
||||||
"id": 36,
|
"id": 36,
|
||||||
"renownlevel": 36,
|
"renownlevel": 36,
|
||||||
"maxlevel": 141500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 97,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 10,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 52
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"37": {
|
"37": {
|
||||||
"id": 37,
|
"id": 37,
|
||||||
"renownlevel": 37,
|
"renownlevel": 37,
|
||||||
"maxlevel": 146500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 101,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 10,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 54
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"38": {
|
"38": {
|
||||||
"id": 38,
|
"id": 38,
|
||||||
"renownlevel": 38,
|
"renownlevel": 38,
|
||||||
"maxlevel": 151500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 105,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 10,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 56
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"39": {
|
"39": {
|
||||||
"id": 39,
|
"id": 39,
|
||||||
"renownlevel": 39,
|
"renownlevel": 39,
|
||||||
"maxlevel": 156500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 109,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 10,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 58
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
},
|
},
|
||||||
"40": {
|
"40": {
|
||||||
"id": 40,
|
"id": 40,
|
||||||
"renownlevel": 40,
|
"renownlevel": 40,
|
||||||
"maxlevel": 161500,
|
"maxlevel": 5000,
|
||||||
"cost": [
|
"cost": 113,
|
||||||
{
|
"atk": 18,
|
||||||
"a": "attr",
|
"def": 10,
|
||||||
"t": "weiwang",
|
"hp": 25
|
||||||
"n": 60
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atk": 1.4,
|
|
||||||
"def": 1.2,
|
|
||||||
"hp": 8
|
|
||||||
}
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
@ -388,10 +388,10 @@
|
|||||||
"type": 5,
|
"type": 5,
|
||||||
"typeName": "tuisonglibao_name_1",
|
"typeName": "tuisonglibao_name_1",
|
||||||
"num": [
|
"num": [
|
||||||
10
|
15
|
||||||
],
|
],
|
||||||
"payId": [
|
"payId": [
|
||||||
"lv10"
|
"lv15"
|
||||||
],
|
],
|
||||||
"time": 10800,
|
"time": 10800,
|
||||||
"displayCD": 10800,
|
"displayCD": 10800,
|
||||||
|
@ -14,10 +14,9 @@
|
|||||||
"n": 10000
|
"n": 10000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 3,
|
||||||
"intr": "intr_xuanshangrenwu_intr_1",
|
"intr": "intr_xuanshangrenwu_intr_1",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"id": 2,
|
"id": 2,
|
||||||
@ -34,10 +33,9 @@
|
|||||||
"n": 80
|
"n": 80
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 3,
|
"p": 4,
|
||||||
"intr": "intr_xuanshangrenwu_intr_2",
|
"intr": "intr_xuanshangrenwu_intr_2",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
@ -56,8 +54,7 @@
|
|||||||
],
|
],
|
||||||
"p": 5,
|
"p": 5,
|
||||||
"intr": "intr_xuanshangrenwu_intr_3",
|
"intr": "intr_xuanshangrenwu_intr_3",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"id": 4,
|
"id": 4,
|
||||||
@ -74,10 +71,9 @@
|
|||||||
"n": 30
|
"n": 30
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 1,
|
"p": 6,
|
||||||
"intr": "intr_xuanshangrenwu_intr_4",
|
"intr": "intr_xuanshangrenwu_intr_4",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 3
|
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"id": 5,
|
"id": 5,
|
||||||
@ -94,10 +90,9 @@
|
|||||||
"n": 20000
|
"n": 20000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 3,
|
"p": 7,
|
||||||
"intr": "intr_xuanshangrenwu_intr_5",
|
"intr": "intr_xuanshangrenwu_intr_5",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"id": 6,
|
"id": 6,
|
||||||
@ -114,10 +109,9 @@
|
|||||||
"n": 60
|
"n": 60
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 8,
|
||||||
"intr": "intr_xuanshangrenwu_intr_4",
|
"intr": "intr_xuanshangrenwu_intr_4",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 3
|
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"id": 7,
|
"id": 7,
|
||||||
@ -134,10 +128,9 @@
|
|||||||
"n": 20000
|
"n": 20000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 3,
|
"p": 9,
|
||||||
"intr": "intr_xuanshangrenwu_intr_5",
|
"intr": "intr_xuanshangrenwu_intr_5",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"id": 8,
|
"id": 8,
|
||||||
@ -154,10 +147,9 @@
|
|||||||
"n": 40000
|
"n": 40000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 10,
|
||||||
"intr": "intr_xuanshangrenwu_intr_6",
|
"intr": "intr_xuanshangrenwu_intr_6",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"id": 9,
|
"id": 9,
|
||||||
@ -174,10 +166,9 @@
|
|||||||
"n": 110
|
"n": 110
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 1,
|
"p": 11,
|
||||||
"intr": "intr_xuanshangrenwu_intr_7",
|
"intr": "intr_xuanshangrenwu_intr_7",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"id": 10,
|
"id": 10,
|
||||||
@ -194,10 +185,9 @@
|
|||||||
"n": 30000
|
"n": 30000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 3,
|
"p": 12,
|
||||||
"intr": "intr_xuanshangrenwu_intr_8",
|
"intr": "intr_xuanshangrenwu_intr_8",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"11": {
|
"11": {
|
||||||
"id": 11,
|
"id": 11,
|
||||||
@ -214,10 +204,9 @@
|
|||||||
"n": 30000
|
"n": 30000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 13,
|
||||||
"intr": "intr_xuanshangrenwu_intr_6",
|
"intr": "intr_xuanshangrenwu_intr_6",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"id": 12,
|
"id": 12,
|
||||||
@ -234,10 +223,9 @@
|
|||||||
"n": 140
|
"n": 140
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 3,
|
"p": 14,
|
||||||
"intr": "intr_xuanshangrenwu_intr_7",
|
"intr": "intr_xuanshangrenwu_intr_7",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"13": {
|
"13": {
|
||||||
"id": 13,
|
"id": 13,
|
||||||
@ -254,10 +242,9 @@
|
|||||||
"n": 60000
|
"n": 60000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 3,
|
"p": 15,
|
||||||
"intr": "intr_xuanshangrenwu_intr_8",
|
"intr": "intr_xuanshangrenwu_intr_8",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"14": {
|
"14": {
|
||||||
"id": 14,
|
"id": 14,
|
||||||
@ -274,10 +261,9 @@
|
|||||||
"n": 40000
|
"n": 40000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 16,
|
||||||
"intr": "intr_xuanshangrenwu_intr_9",
|
"intr": "intr_xuanshangrenwu_intr_9",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"15": {
|
"15": {
|
||||||
"id": 15,
|
"id": 15,
|
||||||
@ -294,10 +280,9 @@
|
|||||||
"n": 90
|
"n": 90
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 2,
|
"p": 17,
|
||||||
"intr": "intr_xuanshangrenwu_intr_10",
|
"intr": "intr_xuanshangrenwu_intr_10",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 3
|
|
||||||
},
|
},
|
||||||
"16": {
|
"16": {
|
||||||
"id": 16,
|
"id": 16,
|
||||||
@ -314,10 +299,9 @@
|
|||||||
"n": 40000
|
"n": 40000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 4,
|
"p": 18,
|
||||||
"intr": "intr_xuanshangrenwu_intr_8",
|
"intr": "intr_xuanshangrenwu_intr_8",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"17": {
|
"17": {
|
||||||
"id": 17,
|
"id": 17,
|
||||||
@ -334,10 +318,9 @@
|
|||||||
"n": 50000
|
"n": 50000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 19,
|
||||||
"intr": "intr_xuanshangrenwu_intr_9",
|
"intr": "intr_xuanshangrenwu_intr_9",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"18": {
|
"18": {
|
||||||
"id": 18,
|
"id": 18,
|
||||||
@ -354,10 +337,9 @@
|
|||||||
"n": 120
|
"n": 120
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 1,
|
"p": 20,
|
||||||
"intr": "intr_xuanshangrenwu_intr_10",
|
"intr": "intr_xuanshangrenwu_intr_10",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 3
|
|
||||||
},
|
},
|
||||||
"19": {
|
"19": {
|
||||||
"id": 19,
|
"id": 19,
|
||||||
@ -374,10 +356,9 @@
|
|||||||
"n": 80000
|
"n": 80000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 4,
|
"p": 21,
|
||||||
"intr": "intr_xuanshangrenwu_intr_11",
|
"intr": "intr_xuanshangrenwu_intr_11",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"20": {
|
"20": {
|
||||||
"id": 20,
|
"id": 20,
|
||||||
@ -394,10 +375,9 @@
|
|||||||
"n": 170
|
"n": 170
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 4,
|
"p": 22,
|
||||||
"intr": "intr_xuanshangrenwu_intr_12",
|
"intr": "intr_xuanshangrenwu_intr_12",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"21": {
|
"21": {
|
||||||
"id": 21,
|
"id": 21,
|
||||||
@ -414,10 +394,9 @@
|
|||||||
"n": 100000
|
"n": 100000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 3,
|
"p": 23,
|
||||||
"intr": "intr_xuanshangrenwu_intr_11",
|
"intr": "intr_xuanshangrenwu_intr_11",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"22": {
|
"22": {
|
||||||
"id": 22,
|
"id": 22,
|
||||||
@ -434,10 +413,9 @@
|
|||||||
"n": 200
|
"n": 200
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 2,
|
"p": 24,
|
||||||
"intr": "intr_xuanshangrenwu_intr_12",
|
"intr": "intr_xuanshangrenwu_intr_12",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"23": {
|
"23": {
|
||||||
"id": 23,
|
"id": 23,
|
||||||
@ -454,10 +432,9 @@
|
|||||||
"n": 150
|
"n": 150
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 1,
|
"p": 25,
|
||||||
"intr": "intr_xuanshangrenwu_intr_13",
|
"intr": "intr_xuanshangrenwu_intr_13",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 3
|
|
||||||
},
|
},
|
||||||
"24": {
|
"24": {
|
||||||
"id": 24,
|
"id": 24,
|
||||||
@ -474,10 +451,9 @@
|
|||||||
"n": 50000
|
"n": 50000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 26,
|
||||||
"intr": "intr_xuanshangrenwu_intr_14",
|
"intr": "intr_xuanshangrenwu_intr_14",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"25": {
|
"25": {
|
||||||
"id": 25,
|
"id": 25,
|
||||||
@ -494,10 +470,9 @@
|
|||||||
"n": 60000
|
"n": 60000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 2,
|
"p": 27,
|
||||||
"intr": "intr_xuanshangrenwu_intr_15",
|
"intr": "intr_xuanshangrenwu_intr_15",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"26": {
|
"26": {
|
||||||
"id": 26,
|
"id": 26,
|
||||||
@ -514,10 +489,9 @@
|
|||||||
"n": 60000
|
"n": 60000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 28,
|
||||||
"intr": "intr_xuanshangrenwu_intr_14",
|
"intr": "intr_xuanshangrenwu_intr_14",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"27": {
|
"27": {
|
||||||
"id": 27,
|
"id": 27,
|
||||||
@ -534,10 +508,9 @@
|
|||||||
"n": 75000
|
"n": 75000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 5,
|
"p": 29,
|
||||||
"intr": "intr_xuanshangrenwu_intr_15",
|
"intr": "intr_xuanshangrenwu_intr_15",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"28": {
|
"28": {
|
||||||
"id": 28,
|
"id": 28,
|
||||||
@ -554,10 +527,9 @@
|
|||||||
"n": 180
|
"n": 180
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 1,
|
"p": 30,
|
||||||
"intr": "intr_xuanshangrenwu_intr_16",
|
"intr": "intr_xuanshangrenwu_intr_16",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 3
|
|
||||||
},
|
},
|
||||||
"29": {
|
"29": {
|
||||||
"id": 29,
|
"id": 29,
|
||||||
@ -574,10 +546,9 @@
|
|||||||
"n": 230
|
"n": 230
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 2,
|
"p": 31,
|
||||||
"intr": "intr_xuanshangrenwu_intr_17",
|
"intr": "intr_xuanshangrenwu_intr_17",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
},
|
},
|
||||||
"30": {
|
"30": {
|
||||||
"id": 30,
|
"id": 30,
|
||||||
@ -594,9 +565,8 @@
|
|||||||
"n": 120000
|
"n": 120000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"p": 4,
|
"p": 32,
|
||||||
"intr": "intr_xuanshangrenwu_intr_18",
|
"intr": "intr_xuanshangrenwu_intr_18",
|
||||||
"img": "icon_jinbi",
|
"img": "icon_jinbi"
|
||||||
"appearNum": 0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -103,7 +103,7 @@ type gc_choujiang = {
|
|||||||
type gc_chuanshuozhilu = { "hid": string, "time": number, "task": { "idx": number, "total": number, "type": string, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "des": string, [x: string]: any }[], "box": { "total": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], [x: string]: any }, [x: string]: any }[]
|
type gc_chuanshuozhilu = { "hid": string, "time": number, "task": { "idx": number, "total": number, "type": string, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "des": string, [x: string]: any }[], "box": { "total": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], [x: string]: any }, [x: string]: any }[]
|
||||||
|
|
||||||
type gc_clsl_com = {
|
type gc_clsl_com = {
|
||||||
"divide": { "day": [number, number], "group": number, [x: string]: any }[], "divideTime": number, "fightTime": [number, number], "prizeTime": number, "fightWinPrize": { "total": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "star": number, [x: string]: any }[], "fightNum": number, "vipBuyFightNum": [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], "buyFightNumNeed": { "a": string, "t": string, "n": number, [x: string]: any }[], "rankPrize": { "rank": [number, number], "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "title": string, [x: string]: any }[], "danPrize": { "star": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], [x: string]: any }[], "email_rank": { "title": string, "content": string, [x: string]: any }, "email_dan": { "title": string, "content": string, [x: string]: any }, [x: string]: any
|
"divide": { "day": [number, number], "group": number, [x: string]: any }[], "divideTime": number, "fightTime": [number, number], "prizeTime": number, "fightWinPrize": { "total": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "star": number, [x: string]: any }[], "fightNum": number, "vipBuyFightNum": [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], "buyFightNumNeed": { "a": string, "t": string, "n": number, [x: string]: any }[], "rankPrize": { "rank": [number, number], "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "title": string, [x: string]: any }[], "danPrize": { "star": [number, number], "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], [x: string]: any }[], "email_rank": { "title": string, "content": string, [x: string]: any }, "email_dan": { "title": string, "content": string, [x: string]: any }, [x: string]: any
|
||||||
}
|
}
|
||||||
|
|
||||||
type gc_clsl_dan = k_v<{
|
type gc_clsl_dan = k_v<{
|
||||||
@ -122,11 +122,7 @@ type gc_clsl_dan = k_v<{
|
|||||||
/** 战斗奖励 */
|
/** 战斗奖励 */
|
||||||
'fightPrize': { "a": string, "t": string, "n": number, [x: string]: any }[]
|
'fightPrize': { "a": string, "t": string, "n": number, [x: string]: any }[]
|
||||||
/** 机器人 */
|
/** 机器人 */
|
||||||
'npc': number,
|
'npc': number
|
||||||
/** 随机机器人概率*/
|
|
||||||
'pro':number
|
|
||||||
/** 对手范围 */
|
|
||||||
'fighter':number[]
|
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
type gc_com = k_v<{
|
type gc_com = k_v<{
|
||||||
|
@ -6,9 +6,4 @@ export type CollectionCllsCrossUser = {
|
|||||||
area: number;
|
area: number;
|
||||||
allStar: number;
|
allStar: number;
|
||||||
info: joinFightData;
|
info: joinFightData;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type CollectionCllsCrossGroup = {
|
|
||||||
week: string;
|
|
||||||
groups: { [group: string]: { st: number, et: number } };
|
|
||||||
}
|
|
@ -58,10 +58,6 @@ export type eventType = {
|
|||||||
payForDiamond: {
|
payForDiamond: {
|
||||||
[time: number]: number
|
[time: number]: number
|
||||||
}
|
}
|
||||||
xstask: {
|
|
||||||
refreshTime: number,
|
|
||||||
receiveNum: number
|
|
||||||
}
|
|
||||||
|
|
||||||
} & {
|
} & {
|
||||||
[k: `${number}jijin`]: ResOpenYuedujijin;
|
[k: `${number}jijin`]: ResOpenYuedujijin;
|
||||||
|
@ -4,7 +4,7 @@ import {rankType} from '../shared/protocols/rank/PtlOpen';
|
|||||||
import {CollectionChatLog} from './collection_chatlog';
|
import {CollectionChatLog} from './collection_chatlog';
|
||||||
import {CollectionActionLog} from './collection_actionLog';
|
import {CollectionActionLog} from './collection_actionLog';
|
||||||
import {CollectionCardlog} from './collection_cardlog';
|
import {CollectionCardlog} from './collection_cardlog';
|
||||||
import {CollectionCllsCrossGroup, CollectionCllsCrossUser} from './collection_clsl';
|
import {CollectionCllsCrossUser} from './collection_clsl';
|
||||||
import {CollectionCrosskv} from './collection_crosskv';
|
import {CollectionCrosskv} from './collection_crosskv';
|
||||||
import {CollectionDayPay} from './collection_dayPay';
|
import {CollectionDayPay} from './collection_dayPay';
|
||||||
import {CollectionDxlt} from './collection_dxlt';
|
import {CollectionDxlt} from './collection_dxlt';
|
||||||
@ -115,8 +115,7 @@ export type MongodbCollections = {
|
|||||||
any: { type: string, data: any[]; };
|
any: { type: string, data: any[]; };
|
||||||
zhanling: CollectionZhanLing;
|
zhanling: CollectionZhanLing;
|
||||||
|
|
||||||
clslCrossGroup: CollectionCllsCrossGroup;
|
clslCrossUser: CollectionCllsCrossUser;
|
||||||
clslCrossUser: CollectionCllsCrossUser & { group: string };
|
|
||||||
lingzhulaixi: CollectionLingZhuLaiXi;
|
lingzhulaixi: CollectionLingZhuLaiXi;
|
||||||
wzry_user_cross: CollectionWzryCross;
|
wzry_user_cross: CollectionWzryCross;
|
||||||
wzry_fight: CollectionWzryCrossFight;
|
wzry_fight: CollectionWzryCrossFight;
|
||||||
|
@ -709,21 +709,21 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
"id": 13,
|
"id": 13,
|
||||||
"type": {
|
"type": {
|
||||||
"type": "Literal",
|
"type": "Literal",
|
||||||
"literal": "clslCross"
|
"literal": "kbzz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 14,
|
"id": 14,
|
||||||
"type": {
|
"type": {
|
||||||
"type": "Literal",
|
"type": "Literal",
|
||||||
"literal": "kbzz"
|
"literal": "xszm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
"id": 15,
|
||||||
"type": {
|
"type": {
|
||||||
"type": "Literal",
|
"type": "Literal",
|
||||||
"literal": "xszm"
|
"literal": "clslCross"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1,93 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"key":"jiuba/Lottery",
|
|
||||||
"limit":300,
|
|
||||||
"tips":"酒馆抽取次数达到300次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"got_jinbi",
|
|
||||||
"limit":2000000000,
|
|
||||||
"tips":"jinbi获取达到20亿"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"got_rmbmoney",
|
|
||||||
"limit":30000,
|
|
||||||
"tips":"钻石获取达到3万"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"use_attr_rmbmoney",
|
|
||||||
"limit":100000,
|
|
||||||
"tips":"钻石消耗达到10万"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"tanxian/FastGuaJi",
|
|
||||||
"limit":40,
|
|
||||||
"tips":"快速探险达到40次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"xstask/Receive/Num",
|
|
||||||
"limit":8,
|
|
||||||
"tips":"接取悬赏任务超过8个"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"dixiaqianzhuang/Qf",
|
|
||||||
"limit":500,
|
|
||||||
"tips":"地下钱庄使用次数超过500次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"peijiancangku/Jump",
|
|
||||||
"limit":500,
|
|
||||||
"tips":"指定高级仓库超过50次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"meirishilian/Fight",
|
|
||||||
"limit":30,
|
|
||||||
"tips":"物资缴获挑战和扫荡累计超过30次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"pata/SaoDang",
|
|
||||||
"limit":5,
|
|
||||||
"tips":"黑暗塔扫荡次数超过5次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"lingzhulaixi/PkBoss",
|
|
||||||
"limit":15,
|
|
||||||
"tips":"讨伐海盗挑战次数超过15次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"gonghui/FbFight",
|
|
||||||
"limit":5,
|
|
||||||
"tips":"势力战斗boss超过5次"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"key":"shop/Buy/2",
|
|
||||||
"limit":50,
|
|
||||||
"tips":"势力商店购买超过50次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"shop/Buy/1",
|
|
||||||
"limit":20,
|
|
||||||
"tips":"杂货商店购买超过20次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"shop/Buy/10",
|
|
||||||
"limit":20,
|
|
||||||
"tips":"荣誉商店购买超过20次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"shop/Buy/4",
|
|
||||||
"limit":10,
|
|
||||||
"tips":"饰品商店购买超过10次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"shop/Buy/11",
|
|
||||||
"limit":5,
|
|
||||||
"tips":"功绩商店购买超过5次"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key":"shop/Buy/3",
|
|
||||||
"limit":5,
|
|
||||||
"tips":"战争商店购买超过5次"
|
|
||||||
}
|
|
||||||
]
|
|
@ -230,7 +230,7 @@ export class EmailFun {
|
|||||||
})).insertedId.toHexString();
|
})).insertedId.toHexString();
|
||||||
sendEmail._id = _id;
|
sendEmail._id = _id;
|
||||||
|
|
||||||
G.server?.broadcastMsg('msg_s2c/Email', sendEmail);
|
G.server.broadcastMsg('msg_s2c/Email', sendEmail);
|
||||||
|
|
||||||
return _id;
|
return _id;
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ export class FightFun {
|
|||||||
* @param result
|
* @param result
|
||||||
*/
|
*/
|
||||||
static async saveLog(uid: string, type: string, result: fightResult) {
|
static async saveLog(uid: string, type: string, result: fightResult) {
|
||||||
let writeList = ['ganhai', 'jjc', 'hbzbJfs', 'hbzbZbs', 'slzd', 'clsl']
|
let writeList = ['ganhai', 'jjc', 'hbzbJfs', 'hbzbZbs', 'slzd']
|
||||||
if (uid.indexOf('npc') != -1 || !writeList.includes(type)) return;
|
if (uid.indexOf('npc') != -1 || !writeList.includes(type)) return;
|
||||||
|
|
||||||
G.mongodb.collection('fightLog').insertOne({uid, type, ...result})
|
G.mongodb.collection('fightLog').insertOne({uid, type, ...result})
|
||||||
|
@ -13,7 +13,7 @@ import {getConf as zmlbGetConf} from '../api_s2c/event/zhoumolibao/ApiOpen';
|
|||||||
import {Christmasfun} from "../api_s2c/event/christmas/fun";
|
import {Christmasfun} from "../api_s2c/event/christmas/fun";
|
||||||
|
|
||||||
async function checkPayIsActive(payId: string, logs: payLog[], payArgs) {
|
async function checkPayIsActive(payId: string, logs: payLog[], payArgs) {
|
||||||
let conf: any = await PayFun.getConf(payId, payArgs);
|
let conf: any = await this.getConf(payId, payArgs);
|
||||||
if (!conf) return false;
|
if (!conf) return false;
|
||||||
|
|
||||||
let lastLog = logs.last();
|
let lastLog = logs.last();
|
||||||
|
@ -18,7 +18,6 @@ import {getItemByItemId, getItemNum} from './item';
|
|||||||
import {getGud, setGud} from './gud';
|
import {getGud, setGud} from './gud';
|
||||||
import {addGameLog} from "../gameLog";
|
import {addGameLog} from "../gameLog";
|
||||||
import {PushGiftFun} from "./pushgift";
|
import {PushGiftFun} from "./pushgift";
|
||||||
import { ActionLog } from './actionLog/actionLog';
|
|
||||||
|
|
||||||
|
|
||||||
export type call = {
|
export type call = {
|
||||||
@ -179,12 +178,6 @@ export class PlayerFun {
|
|||||||
G.emit("Class_task_156", 'Class_task_156', call, -atn.n, 0);
|
G.emit("Class_task_156", 'Class_task_156', call, -atn.n, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (atn.t == 'rmbmoney' || atn.t == 'jinbi') && atn.n > 0 ){
|
|
||||||
//统计今日获取的金币和钻石
|
|
||||||
ActionLog.addDayLog(call.conn.uid, { key: 'got_'+atn.t, val: atn.n });
|
|
||||||
}
|
|
||||||
|
|
||||||
// 增加vip经验的任务监听
|
// 增加vip经验的任务监听
|
||||||
if (atn.t == "payExp" && atn.n > 0) {
|
if (atn.t == "payExp" && atn.n > 0) {
|
||||||
G.emit("Class_task_157", 'Class_task_157', call, atn.n, 0);
|
G.emit("Class_task_157", 'Class_task_157', call, atn.n, 0);
|
||||||
@ -408,6 +401,7 @@ export class PlayerFun {
|
|||||||
*/
|
*/
|
||||||
static async cutEquip(call: call, _idArr: string[]) {
|
static async cutEquip(call: call, _idArr: string[]) {
|
||||||
for (let _id of _idArr) {
|
for (let _id of _idArr) {
|
||||||
|
G.redis.del('equip', call.uid, _id);
|
||||||
G.mongodb.collection('equip').deleteOne({uid: call.uid, _id: new ObjectId(_id)});
|
G.mongodb.collection('equip').deleteOne({uid: call.uid, _id: new ObjectId(_id)});
|
||||||
call.addEventMsg('msg_s2c/EquipChange', _id, {num: 0});
|
call.addEventMsg('msg_s2c/EquipChange', _id, {num: 0});
|
||||||
|
|
||||||
@ -478,6 +472,7 @@ export class PlayerFun {
|
|||||||
static async cutHero(call: call, _idArr: string[]) {
|
static async cutHero(call: call, _idArr: string[]) {
|
||||||
for (let _id of _idArr) {
|
for (let _id of _idArr) {
|
||||||
await HeroFun.delHero(call, _id);
|
await HeroFun.delHero(call, _id);
|
||||||
|
G.redis.del('hero', call.uid, _id);
|
||||||
G.mongodb.collection('hero').deleteOne({uid: call.uid, _id: new ObjectId(_id)});
|
G.mongodb.collection('hero').deleteOne({uid: call.uid, _id: new ObjectId(_id)});
|
||||||
call.addEventMsg('msg_s2c/HeroChange', _id, {num: 0});
|
call.addEventMsg('msg_s2c/HeroChange', _id, {num: 0});
|
||||||
addGameLog(call.uid, "_cutHero", {}, {_id: _id})
|
addGameLog(call.uid, "_cutHero", {}, {_id: _id})
|
||||||
|
@ -108,12 +108,8 @@ export abstract class Rank {
|
|||||||
return this.getType();
|
return this.getType();
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(param?: any) {
|
constructor() {
|
||||||
// 将param属性赋值给this
|
|
||||||
param && Object.assign(this, param);
|
|
||||||
Rank.list[this.getType() as string] = this;
|
Rank.list[this.getType() as string] = this;
|
||||||
|
|
||||||
// 初始化排行榜
|
|
||||||
this.cotr();
|
this.cotr();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +135,7 @@ export abstract class Rank {
|
|||||||
|
|
||||||
//将db里的数据,写入到 rank:xxx:sort里
|
//将db里的数据,写入到 rank:xxx:sort里
|
||||||
//写入的单条数据为: {uid:score}
|
//写入的单条数据为: {uid:score}
|
||||||
|
|
||||||
// 首先清理redis中sort数据 在从数据库中初始化
|
// 首先清理redis中sort数据 在从数据库中初始化
|
||||||
await G.ioredis.del(this.getRedisKeySort);
|
await G.ioredis.del(this.getRedisKeySort);
|
||||||
|
|
||||||
@ -257,57 +253,61 @@ export abstract class Rank {
|
|||||||
if (uids && uids.length > 0) {
|
if (uids && uids.length > 0) {
|
||||||
let res = await this.db.find({ idKey: { $in: uids }, type: this.getType() }).toArray()
|
let res = await this.db.find({ idKey: { $in: uids }, type: this.getType() }).toArray()
|
||||||
|
|
||||||
if (this.type.indexOf("slzd") != -1) {
|
switch (this.getType()) {
|
||||||
let ghid = [];
|
case "slzd1":
|
||||||
res = res.map(item => {
|
case "slzd2":
|
||||||
if (!item.data?.player?.ghid || item.data.utime + 60 < G.time) {
|
case "slzd3":
|
||||||
ghid.push(G.mongodb.conversionId(item.idKey));
|
case "slzd4":
|
||||||
}
|
case "slzd5":
|
||||||
return item;
|
case "slzd6":
|
||||||
})
|
let ghid = [];
|
||||||
if (ghid.length > 0) {
|
res = res.map(item => {
|
||||||
let ghinfo = await G.mongodb.collection("gonghui").find(
|
if (!item.data?.player?.ghid || item.data.utime + 60 < G.time) {
|
||||||
{ _id: { $in: ghid } }, { projection: { name: 1 } }
|
ghid.push(G.mongodb.conversionId(item.idKey));
|
||||||
).toArray();
|
}
|
||||||
ghinfo.forEach(item => {
|
return item;
|
||||||
let index = res.findIndex(x => x.idKey == item._id.toHexString());
|
|
||||||
res[index].data.player = {
|
|
||||||
ghName: item.name,
|
|
||||||
ghId: item._id.toHexString(),
|
|
||||||
};
|
|
||||||
this.db.updateOne({ idKey: item._id.toHexString(), type: this.getType() }, { $set: { "data.player": res[index].data.player } });
|
|
||||||
})
|
})
|
||||||
}
|
if (ghid.length > 0) {
|
||||||
} else if (this.type.indexOf('clslCross') != -1) {
|
let ghinfo = await G.mongodb.collection("gonghui").find(
|
||||||
// 丛林猎手 跨服排行榜 不需要更新
|
{ _id: { $in: ghid } }, { projection: { name: 1 } }
|
||||||
} else {
|
).toArray();
|
||||||
let updateUids = [];
|
ghinfo.forEach(item => {
|
||||||
res = res.map(item => {
|
let index = res.findIndex(x => x.idKey == item._id.toHexString());
|
||||||
// 没有player 或者 player 过期
|
res[index].data.player = {
|
||||||
if (!item.data?.player || item.data.utime + 60 < G.time) {
|
ghName: item.name,
|
||||||
updateUids.push(item.idKey);
|
ghId: item._id.toHexString(),
|
||||||
|
};
|
||||||
|
this.db.updateOne({ idKey: item._id.toHexString(), type: this.getType() }, { $set: { "data.player": res[index].data.player } });
|
||||||
|
})
|
||||||
}
|
}
|
||||||
return item;
|
break;
|
||||||
});
|
default: // 排行数据更新逻辑 默认更新playerInfo
|
||||||
|
let updateUids = [];
|
||||||
|
res = res.map(item => {
|
||||||
|
// 没有player 或者 player 过期
|
||||||
|
if (!item.data?.player || item.data.utime + 60 < G.time) {
|
||||||
|
updateUids.push(item.idKey);
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
let newUserArr = await G.mongodb.collection('user').find(
|
||||||
|
{ uid: { $in: updateUids } }, { projection: { _id: 0 } }
|
||||||
|
).toArray();
|
||||||
|
|
||||||
let newUserArr = await G.mongodb.collection('user').find(
|
newUserArr.forEach(item => {
|
||||||
{ uid: { $in: updateUids } }, { projection: { _id: 0 } }
|
// 每次遍历查找?
|
||||||
).toArray();
|
let index = res.findIndex(x => x.idKey == item.uid);
|
||||||
|
|
||||||
newUserArr.forEach(item => {
|
res[index].data.player = item;
|
||||||
// 每次遍历查找?
|
this.db.updateOne({ idKey: item.uid, type: this.getType() }, { $set: { "data.player": item } });
|
||||||
let index = res.findIndex(x => x.idKey == item.uid);
|
|
||||||
|
|
||||||
res[index].data.player = item;
|
// 跟新redis score
|
||||||
this.db.updateOne({ idKey: item.uid, type: this.getType() }, { $set: { "data.player": item } });
|
// this.setRankData(item.uid, res[index].data as any);
|
||||||
|
})
|
||||||
// 跟新redis score
|
|
||||||
// this.setRankData(item.uid, res[index].data as any);
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按照redis uids 排序顺序排序
|
// 按照redis uids 排序顺序排序
|
||||||
return res.sort((a, b) => uids.indexOf(a.idKey) - uids.indexOf(b.idKey)).map(ele => ele.data);
|
return res.sort((a,b)=>uids.indexOf(a.idKey)-uids.indexOf(b.idKey)).map(ele => ele.data);
|
||||||
}
|
}
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
@ -405,10 +405,10 @@ export abstract class Rank {
|
|||||||
|
|
||||||
// 清空相关rank数据
|
// 清空相关rank数据
|
||||||
async clear() {
|
async clear() {
|
||||||
// this.queue.enqueue(async () => {
|
this.queue.enqueue(async () => {
|
||||||
// G.redis.rawDel(this.getRedisKey)
|
// G.redis.rawDel(this.getRedisKey)
|
||||||
G.redis.rawDel(this.getRedisKeySort);
|
G.redis.rawDel(this.getRedisKeySort);
|
||||||
this.db.deleteMany({ type: this.type });
|
await this.db.deleteMany({ type: this.type });
|
||||||
// });
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,58 +1,58 @@
|
|||||||
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 { PublicShared } from '../../shared/public/public';
|
import { player } from '../../shared/protocols/user/type';
|
||||||
import { Rank } from './rank';
|
import { Rank } from './rank';
|
||||||
|
|
||||||
|
|
||||||
export class RankClslCross extends Rank {
|
export class RankClslCross extends Rank {
|
||||||
group: string;
|
|
||||||
|
countMaxNum = 99999;
|
||||||
minStar = Object.values(G.gc.clsl_dan)[Object.keys(G.gc.clsl_dan).length - 1].allStar;
|
minStar = Object.values(G.gc.clsl_dan)[Object.keys(G.gc.clsl_dan).length - 1].allStar;
|
||||||
|
getType(): rankType {
|
||||||
constructor(group: string = 'group0') {
|
return 'clslCross';
|
||||||
super({ group });
|
|
||||||
}
|
|
||||||
|
|
||||||
getType(): rankType { return `clslCross_${this.group}` as rankType }
|
|
||||||
|
|
||||||
getValArr(info: rankInfo): number | string {
|
|
||||||
// 星级
|
|
||||||
let star = info?.valArr[0] || 0;
|
|
||||||
|
|
||||||
// 战力
|
|
||||||
let zhanli1 = info?.valArr[1] || 0;
|
|
||||||
|
|
||||||
// 将星级作为整数部分,战力作为小数部分长度为10位 进行拼接
|
|
||||||
let val = `${star}.${zhanli1.toString().padStart(10, '0')}`;
|
|
||||||
|
|
||||||
return Number(val)
|
|
||||||
}
|
|
||||||
|
|
||||||
async getRankData(uid: string) {
|
|
||||||
let data: rankInfo;
|
|
||||||
return (await this.db.findOne({ "idKey": uid, "type": this.getType() }))?.data
|
|
||||||
}
|
}
|
||||||
|
// compare(other: rankInfo, cur: rankInfo): boolean {
|
||||||
|
// return cur.valArr[0] > other.valArr[0];
|
||||||
|
// }
|
||||||
|
// compareSort(a: rankInfo, b: rankInfo): number {
|
||||||
|
// return b.valArr[0] - a.valArr[0];
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 积分, 排名依据
|
||||||
|
// getValArr(info: rankInfo):number|string {
|
||||||
|
// return info?.valArr[0] || 0
|
||||||
|
// }
|
||||||
|
|
||||||
|
// async getRankList(uid: string, {gud, min, max}) {
|
||||||
|
// let rankList = await this.getRankListRange(min, max);
|
||||||
|
// let rank = await this.getRankSortByOne(uid);
|
||||||
|
// let score = await this.getRankScore(uid)
|
||||||
|
// return {
|
||||||
|
// rankList: rankList,
|
||||||
|
// myRank: {
|
||||||
|
// rank: rank,
|
||||||
|
// player: gud,
|
||||||
|
// valArr: [score]
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
|
||||||
async addNew(info: rankInfo) {
|
async addNew(info: rankInfo) {
|
||||||
// 积分大于配置的最小参数,更新数据
|
this.queue.enqueue(async () => {
|
||||||
if (info.valArr[0] >= this.minStar) {
|
// 积分大于配置的最小参数,更新数据
|
||||||
this.setRankData(info.player[this.findKey], info)
|
if (info.valArr[0] >= this.minStar) {
|
||||||
this.db.updateOne({ type: this.type, idKey: info.player[this.findKey] }, { $set: { data: info } }, { upsert: true });
|
this.setRankData(info.player[this.findKey], info)
|
||||||
}
|
this.db.updateOne({ type: this.type, idKey: info.player[this.findKey] }, { $set: { data: info } }, { upsert: true });
|
||||||
}
|
// rankList.sort(this.compareSort);
|
||||||
}
|
}
|
||||||
|
// 积分小于配置,且用户数据存在时,删除
|
||||||
/**
|
else if (info.valArr[0] < this.minStar) {
|
||||||
* 从林猎手 排行榜检测初始化
|
let rankInfo = await this.getRankData(info.player[this.findKey])
|
||||||
*/
|
if(rankInfo?.player) {
|
||||||
export async function RankClslCrossInit() {
|
this.db.deleteOne({ type: this.type, idKey: info.player[this.findKey] });
|
||||||
let week = PublicShared.getToWeek();
|
this.delRankData(info.player[this.findKey])
|
||||||
let group_time = G.gc.clsl_com.divideTime;
|
}
|
||||||
let week_zero_time = PublicShared.getToWeekMondayZeroTime();
|
}
|
||||||
|
});
|
||||||
if (G.time > week_zero_time + group_time) {
|
|
||||||
let groups = await G.mongodb.collection('clslCrossGroup').findOne({ week: week });
|
|
||||||
Object.keys(groups.groups).forEach(group => {
|
|
||||||
new RankClslCross(group);
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -13,9 +13,9 @@ export type schedulerType =
|
|||||||
| 'hbzb_cross_reset'
|
| 'hbzb_cross_reset'
|
||||||
| 'hbzb_zbs_ready'
|
| 'hbzb_zbs_ready'
|
||||||
| 'kbzz'
|
| 'kbzz'
|
||||||
| 'clsl_prize'
|
|
||||||
| 'clsl_cross_ctor'
|
| 'clsl_cross_ctor'
|
||||||
| 'clsl_cross_group'
|
| 'clsl_local_ctor'
|
||||||
|
| 'clsl_prize'
|
||||||
| 'wzry_autobaoming'
|
| 'wzry_autobaoming'
|
||||||
| 'wzry_dldstart'
|
| 'wzry_dldstart'
|
||||||
| 'wzry_dldjinji'
|
| 'wzry_dldjinji'
|
||||||
@ -38,7 +38,6 @@ export type schedulerType =
|
|||||||
| 'hbzb_zbs_group'
|
| 'hbzb_zbs_group'
|
||||||
| 'wzry_zuanshi16to8'
|
| 'wzry_zuanshi16to8'
|
||||||
| "cross_email_pull"
|
| "cross_email_pull"
|
||||||
| "watch_dog"
|
|
||||||
| "xiaofeijingsai_local_ctor";
|
| "xiaofeijingsai_local_ctor";
|
||||||
|
|
||||||
export class SchedulerManage {
|
export class SchedulerManage {
|
||||||
|
@ -1,60 +1,13 @@
|
|||||||
import {PublicShared} from '../../shared/public/public';
|
import { EmailFun } from '../email';
|
||||||
import {EmailFun} from '../email';
|
import { Rank } from '../rank/rank';
|
||||||
import {RankClslCross} from '../rank/rank_clsl';
|
import { Scheduler, schedulerType } from './scheduler';
|
||||||
import {Scheduler, schedulerType} from './scheduler';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 丛林猎手赛季重置
|
|
||||||
*/
|
|
||||||
export class SchedulerClslLocalCtor extends Scheduler {
|
|
||||||
id: schedulerType = 'clsl_cross_ctor';
|
|
||||||
|
|
||||||
time = 0;
|
|
||||||
name = '丛林猎手赛季重置';
|
|
||||||
type: 'day' | 'week' = 'week';
|
|
||||||
|
|
||||||
async read() {
|
|
||||||
await this.ctorStartTime();
|
|
||||||
this.isReady = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
async start() {
|
|
||||||
let week = PublicShared.getToWeek(
|
|
||||||
PublicShared.getToWeekMondayZeroTime(G.time - 3600)
|
|
||||||
);
|
|
||||||
|
|
||||||
// 修改clslCrossUser表中的uid为del_uid_week 并且 设置ttltime为当前时间
|
|
||||||
await G.mongodb.collection('clslCrossUser').updateMany(
|
|
||||||
{
|
|
||||||
ttltime: {$exists: false}
|
|
||||||
}, {$rename: {"uid": `del_uid_${week}`}, $set: {"ttltime": new Date()}}
|
|
||||||
);
|
|
||||||
|
|
||||||
// 获取分组信息 重置排行榜
|
|
||||||
let groups = await G.mongodb.collection('clslCrossGroup').findOne({week});
|
|
||||||
Object.keys(groups.groups).forEach((group) => {
|
|
||||||
// 清理排行数据
|
|
||||||
new RankClslCross(group).clear();
|
|
||||||
})
|
|
||||||
|
|
||||||
await this.record();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 丛林猎手赛季划分
|
|
||||||
* 达到王者段位的所有玩家 按照创号时间从早到晚排序 每100个玩家划分一个区间
|
|
||||||
*/
|
|
||||||
export class SchedulerClslCrossCtor extends Scheduler {
|
export class SchedulerClslCrossCtor extends Scheduler {
|
||||||
id: schedulerType = 'clsl_cross_group';
|
id: schedulerType = 'clsl_cross_ctor';
|
||||||
|
|
||||||
num: number = 2;
|
|
||||||
|
|
||||||
type: 'day' | 'week' = 'week';
|
|
||||||
time = G.gc.clsl_com.divideTime;
|
time = G.gc.clsl_com.divideTime;
|
||||||
name = '丛林猎手赛季区间划分 周四00:00';
|
name = '丛林猎手赛季初始化';
|
||||||
|
type: 'day' | 'week' = 'week';
|
||||||
star = Object.values(G.gc.clsl_dan).slice(-1)[0].allStar;
|
|
||||||
|
|
||||||
async read() {
|
async read() {
|
||||||
await this.ctorStartTime();
|
await this.ctorStartTime();
|
||||||
@ -62,96 +15,30 @@ export class SchedulerClslCrossCtor extends Scheduler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async start() {
|
async start() {
|
||||||
let week = PublicShared.getToWeek();
|
|
||||||
let users = await G.mongodb.collection('clslCrossUser').find({
|
|
||||||
ttltime: {$exists: false}
|
|
||||||
}, {
|
|
||||||
projection: {
|
|
||||||
"uid": 1,
|
|
||||||
"allStar": 1,
|
|
||||||
"info.player.cTime": 1
|
|
||||||
}
|
|
||||||
}).toArray();
|
|
||||||
|
|
||||||
// 筛选出所有王者分段 按照建号时间排序
|
G.mongodb.collection('clslCrossUser').updateMany({}, { $set: { allStar: 0 } });
|
||||||
let wzusers = users.filter(u => u.allStar >= this.star).sort((a, b) => a.info.player.cTime - b.info.player.cTime);
|
Rank.list.clslCross.clear();
|
||||||
|
|
||||||
// 每100个玩家划分一个区间
|
|
||||||
let groups: { [group: string]: { st: number, et: number, users: string[] } } = {};
|
|
||||||
let group_num = wzusers.length / this.num;
|
|
||||||
|
|
||||||
// 非王者玩家
|
|
||||||
let remaining_users = users.filter(u => u.allStar < this.star);
|
|
||||||
if (group_num >= 1) {
|
|
||||||
let tt = parseInt(group_num + '')
|
|
||||||
for (let i = 1; i <= tt; i++) {
|
|
||||||
groups['group' + i] = {
|
|
||||||
et: wzusers[i * this.num - 1].info.player.cTime,
|
|
||||||
st: wzusers[(i - 1) * this.num].info.player.cTime,
|
|
||||||
users: wzusers.slice((i - 1) * this.num, i * this.num).map(u => u.uid),
|
|
||||||
}
|
|
||||||
if (i == 1) {
|
|
||||||
groups['group1'].st = 0
|
|
||||||
}
|
|
||||||
if (i == tt) {
|
|
||||||
groups['group' + i].et = G.time + 7 * 14 * 3600;
|
|
||||||
groups['group' + i].users = wzusers.slice((i - 1) * this.num).map(u => u.uid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
;
|
|
||||||
} else {
|
|
||||||
groups['group0'] = {
|
|
||||||
st: 0,
|
|
||||||
et: G.time + 7 * 14 * 3600,
|
|
||||||
users: wzusers.map(u => u.uid),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 剩余玩家
|
|
||||||
for (let i = 0; i < remaining_users.length; i++) {
|
|
||||||
for (let group in groups) {
|
|
||||||
if (remaining_users[i].info.player.cTime >= groups[group].st && remaining_users[i].info.player.cTime <= groups[group].et) {
|
|
||||||
groups[group].users.push(remaining_users[i].uid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新玩家分组id
|
|
||||||
for (let group in groups) {
|
|
||||||
await G.mongodb.collection('clslCrossUser').updateMany({uid: {$in: groups[group].users}}, {$set: {group: group}});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 记录分组
|
|
||||||
await G.mongodb.collection("clslCrossGroup").updateOne({week: week}, {$set: {groups: groups}}, {upsert: true});
|
|
||||||
|
|
||||||
// 初始化丛林猎手排行榜
|
|
||||||
G.mongodb.collection('clslCrossUser').find({
|
|
||||||
allStar: {$gte: this.star}, ttltime: {$exists: false}
|
|
||||||
}).toArray().then(users => {
|
|
||||||
users.forEach(u => {
|
|
||||||
new RankClslCross(u.group).addNew({
|
|
||||||
valArr: [u.allStar, u.info.player.power],
|
|
||||||
player: u.info.player,
|
|
||||||
roles: u.info.roles,
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
await this.record();
|
await this.record();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class SchedulerClslLocalCtor extends SchedulerClslCrossCtor {
|
||||||
|
id: schedulerType = 'clsl_local_ctor';
|
||||||
|
|
||||||
|
async start() {
|
||||||
|
|
||||||
|
G.mongodb.cPlayerInfo('clsl').updateMany({ type: 'clsl' }, { $set: { allStar: 0 } });
|
||||||
|
|
||||||
|
await this.record();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 丛林猎手赛季发奖
|
|
||||||
*/
|
|
||||||
export class SchedulerClslPrize extends Scheduler {
|
export class SchedulerClslPrize extends Scheduler {
|
||||||
id: schedulerType = 'clsl_prize';
|
id: schedulerType = 'clsl_prize';
|
||||||
|
time = G.gc.clsl_com.prizeTime;
|
||||||
name = '丛林猎手赛季发奖';
|
name = '丛林猎手赛季发奖';
|
||||||
type: 'day' | 'week' = 'week';
|
type: 'day' | 'week' = 'week';
|
||||||
time = G.gc.clsl_com.prizeTime;
|
|
||||||
star = Object.values(G.gc.clsl_dan).slice(-1)[0].allStar;
|
|
||||||
|
|
||||||
async read() {
|
async read() {
|
||||||
await this.ctorStartTime();
|
await this.ctorStartTime();
|
||||||
@ -159,32 +46,41 @@ export class SchedulerClslPrize extends Scheduler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async start() {
|
async start() {
|
||||||
// 排名奖励
|
|
||||||
let group2users: { [group: string]: string[] } = {};
|
|
||||||
(await G.mongodb.collection('clslCrossUser').find({allStar: {$gte: this.star}}).toArray()).forEach(u => {
|
|
||||||
if (u.group in group2users) {
|
|
||||||
group2users[u.group].push(u.uid);
|
|
||||||
} else {
|
|
||||||
group2users[u.group] = [u.uid];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.values(group2users).forEach((uids, index) => {
|
// 段位奖励
|
||||||
G.gc.clsl_com.rankPrize.forEach((conf) => {
|
let locals = await G.mongodb.cPlayerInfo('clsl').find({ type: 'clsl' }).toArray();
|
||||||
let players = uids.slice(conf.rank[0] - 1, conf.rank[1]);
|
G.gc.clsl_com.danPrize.forEach((conf) => {
|
||||||
players.forEach((uid, index) => {
|
let sends = locals.filter(l => l.allStar >= conf.star[0]).map(s => s.uid);
|
||||||
EmailFun.addEmail({
|
// locals.remove(l => sends.includes(l.uid));
|
||||||
uid: uid,
|
|
||||||
type: 'system',
|
sends.forEach(uid => {
|
||||||
title: G.gc.clsl_com.email_rank.title,
|
EmailFun.addEmail({
|
||||||
content: G.gc.clsl_com.email_rank.content,
|
uid: uid,
|
||||||
prize: conf.prize,
|
type: 'system',
|
||||||
contentInsertArr: [conf.rank[0] + index]
|
title: G.gc.clsl_com.email_dan.title,
|
||||||
}, true);
|
content: G.gc.clsl_com.email_dan.content,
|
||||||
|
prize: conf.prize,
|
||||||
|
contentInsertArr: [conf.star]
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 排名奖励
|
||||||
|
let crossUids = (await G.clientCross.callApi('clsl/RankUids', {})).res.uids;
|
||||||
|
G.gc.clsl_com.rankPrize.forEach((conf) => {
|
||||||
|
let players = crossUids.slice(conf.rank[0] - 1, conf.rank[1]);
|
||||||
|
players.forEach((uid, index) => {
|
||||||
|
EmailFun.addEmail({
|
||||||
|
uid: uid,
|
||||||
|
type: 'system',
|
||||||
|
title: G.gc.clsl_com.email_rank.title,
|
||||||
|
content: G.gc.clsl_com.email_rank.content,
|
||||||
|
prize: conf.prize,
|
||||||
|
contentInsertArr: [conf.rank[0] + index]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
await this.record();
|
await this.record();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,105 +0,0 @@
|
|||||||
import {resolve} from "path";
|
|
||||||
import {PublicShared} from "../../shared/public/public";
|
|
||||||
import {Scheduler, schedulerType} from "./scheduler";
|
|
||||||
import {existsSync, readFileSync} from "fs";
|
|
||||||
import {addWatchDogLog, errorLogDB} from "../../gameLog";
|
|
||||||
|
|
||||||
export class WatchDog extends Scheduler {
|
|
||||||
id: schedulerType = "watch_dog";
|
|
||||||
time = 420; // 监控频率,每x秒一次
|
|
||||||
name = "数据看门狗"
|
|
||||||
type = ""
|
|
||||||
|
|
||||||
async read() {
|
|
||||||
await this.ctorStartTime();
|
|
||||||
this.isReady = false;
|
|
||||||
this.startTime = this.nextTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
async start() {
|
|
||||||
let confFile = resolve(__dirname, '../../oss/watchdog.json');
|
|
||||||
if (!existsSync(confFile)) {
|
|
||||||
//配置文件不存在
|
|
||||||
await this.ctorStartTime()
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let conf;
|
|
||||||
try {
|
|
||||||
conf = await JSON.parse(readFileSync(confFile, 'utf-8'));
|
|
||||||
} catch (e) {
|
|
||||||
//配置文件不是json
|
|
||||||
await this.ctorStartTime()
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
//获取今天0点之后在线的玩家
|
|
||||||
let users = await G.mongodb.collection("user").find({
|
|
||||||
lv: {$gt: 10},
|
|
||||||
newonlinetime: {$gte: G.time - 1800, $lte: G.time + 30}
|
|
||||||
}, {
|
|
||||||
projection: {
|
|
||||||
uid: 1,
|
|
||||||
name: 1,
|
|
||||||
lv: 1,
|
|
||||||
vip: 1,
|
|
||||||
sid: 1
|
|
||||||
}
|
|
||||||
}).toArray();
|
|
||||||
|
|
||||||
if (!users.length) {
|
|
||||||
//没有符合的玩家
|
|
||||||
await this.ctorStartTime()
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let uids = users.map(i => i.uid);
|
|
||||||
let uinfo = {};
|
|
||||||
users.map(i => uinfo[i.uid] = i);
|
|
||||||
|
|
||||||
let actionLogs = await G.mongodb.collection("actionLog").find({
|
|
||||||
type: 'day',
|
|
||||||
uid: {$in: uids},
|
|
||||||
}, {
|
|
||||||
projection: {
|
|
||||||
uid: 1,
|
|
||||||
log: 1
|
|
||||||
}
|
|
||||||
}).toArray();
|
|
||||||
|
|
||||||
let warns = [];
|
|
||||||
for (let j = 0; j < conf.length; j++) {
|
|
||||||
for (let i = 0; i < actionLogs.length; i++) {
|
|
||||||
let key = conf[j].key;
|
|
||||||
let myval = actionLogs[i]?.log?.[key] || 0
|
|
||||||
let uid = actionLogs[i].uid
|
|
||||||
if (myval > conf[j].limit) {
|
|
||||||
//触发了警报
|
|
||||||
warns.push({
|
|
||||||
type: 'watchDog',
|
|
||||||
uid: uid,
|
|
||||||
name: uinfo[uid]?.name,
|
|
||||||
lv: uinfo[uid]?.lv,
|
|
||||||
vip: uinfo[uid]?.vip,
|
|
||||||
key: key,
|
|
||||||
value: myval,
|
|
||||||
tips: conf[j].tips
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (warns.length > 0) {
|
|
||||||
addWatchDogLog(warns);
|
|
||||||
}
|
|
||||||
|
|
||||||
await this.ctorStartTime()
|
|
||||||
}
|
|
||||||
|
|
||||||
get nextTime(): number {
|
|
||||||
return G.time + this.time;
|
|
||||||
}
|
|
||||||
|
|
||||||
async ctorStartTime() {
|
|
||||||
this.isStart = false;
|
|
||||||
this.startTime = this.nextTime;
|
|
||||||
}
|
|
||||||
}
|
|
@ -113,7 +113,7 @@ export class SchedulerWzryDlDjinji extends SchedulerWzryAutoBaoMing {
|
|||||||
}
|
}
|
||||||
let _userList = []
|
let _userList = []
|
||||||
//0号位 -1的这一条,表示晋级奖励
|
//0号位 -1的这一条,表示晋级奖励
|
||||||
let prize = G.gc.wangzherongyao.wangzhe.jiangli.dld[0]?.p || []
|
let prize = G.gc.wangzherongyao.wangzhe.jiangli.dld[0].p
|
||||||
|
|
||||||
for (let index = 0; index < _zuanshiUser.length; index++) {
|
for (let index = 0; index < _zuanshiUser.length; index++) {
|
||||||
const element = _zuanshiUser[index];
|
const element = _zuanshiUser[index];
|
||||||
@ -306,7 +306,7 @@ export class SchedulerWzryZuanshiSendPrize extends SchedulerWzryAutoBaoMing {
|
|||||||
_u.push(element.uid)
|
_u.push(element.uid)
|
||||||
if (element.data.player.uid.indexOf('npc_') != -1) continue
|
if (element.data.player.uid.indexOf('npc_') != -1) continue
|
||||||
if (element?.isprize?.[this.typeprzie]) continue
|
if (element?.isprize?.[this.typeprzie]) continue
|
||||||
let prize = _prizeCon[this.idx[element.deep]]?.p || [];
|
let prize = _prizeCon[this.idx[element.deep]].p
|
||||||
|
|
||||||
//注意:这里的调用addEmail时,cross参数用的是true
|
//注意:这里的调用addEmail时,cross参数用的是true
|
||||||
//因为这个定时器是在跨服上执行的,邮件先临时放到跨服
|
//因为这个定时器是在跨服上执行的,邮件先临时放到跨服
|
||||||
|
@ -1,31 +1,16 @@
|
|||||||
import {ApiCall} from 'tsrpc';
|
import {ApiCall} from 'tsrpc';
|
||||||
import {ResOpen} from '../shared/protocols/tanxian/PtlOpen';
|
import {ResOpen} from '../shared/protocols/tanxian/PtlOpen';
|
||||||
import {TeQuanFun} from './tequan';
|
import {TeQuanFun} from './tequan';
|
||||||
import {addGameLog} from "../gameLog";
|
|
||||||
|
|
||||||
type dataChange = Partial<ResOpen>;
|
type dataChange = Partial<ResOpen>;
|
||||||
|
|
||||||
export class TanXianFun {
|
export class TanXianFun {
|
||||||
/**
|
/**修改探险数据 */
|
||||||
* 修改探险数据
|
|
||||||
* 此改动是为了不影响旧的数据结构
|
|
||||||
* 下面changeDataNew和此方法一样
|
|
||||||
*/
|
|
||||||
static async changeData(call: ApiCall, change: dataChange) {
|
static async changeData(call: ApiCall, change: dataChange) {
|
||||||
let {_id, uid, ...data} = (await G.mongodb.collection('tanxian').findOneAndUpdate({uid: call.uid}, {$set: {...change}}, {returnDocument: 'after'})).value;
|
G.mongodb.collection('tanxian').updateOne({uid: call.uid}, {$set: {...change}});
|
||||||
G.ioredis.setex(`tanxian:${uid}`, 600, JSON.stringify(data));
|
let data = await this.getData(call);
|
||||||
}
|
Object.assign(data, change);
|
||||||
|
G.ioredis.setex(`tanxian:${call.uid}`, 600, JSON.stringify(data));
|
||||||
/**
|
|
||||||
* 此方法是为了不影响旧的数据结构
|
|
||||||
* 用inc去叠加用户限制的次数
|
|
||||||
* @param call
|
|
||||||
* @param change
|
|
||||||
*/
|
|
||||||
static async changeDataNew(call: ApiCall, change) {
|
|
||||||
let {_id, uid, ...data} = (await G.mongodb.collection('tanxian').findOneAndUpdate({uid: call.uid}, change, {returnDocument: 'after'})).value;
|
|
||||||
G.ioredis.setex(`tanxian:${uid}`, 600, JSON.stringify(data));
|
|
||||||
addGameLog(call.uid, "_fastguajiChange", {}, data)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**获取探险数据 */
|
/**获取探险数据 */
|
||||||
|
@ -40,7 +40,7 @@ export class WangZheRongYaofun {
|
|||||||
/**获取报名人数 */
|
/**获取报名人数 */
|
||||||
static async getBaoMingNum() {
|
static async getBaoMingNum() {
|
||||||
let zkey: string = PublicShared.getToWeek();
|
let zkey: string = PublicShared.getToWeek();
|
||||||
let _num = G.mongodb.collection('playerInfo', 'wzry').countDocuments({ type:'wzry', isbm: 1 });
|
let _num = G.mongodb.collection('playerInfo', 'wzry').countDocuments({ isbm: 1 });
|
||||||
return _num;
|
return _num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,31 +1,25 @@
|
|||||||
import {OptionalId, UpdateFilter} from 'mongodb';
|
import { OptionalId, UpdateFilter } from 'mongodb';
|
||||||
import {ApiCall} from 'tsrpc';
|
import { ApiCall } from 'tsrpc';
|
||||||
import {playerInfoType} from '../module/collection_palyerInfo';
|
import { playerInfoType } from '../module/collection_palyerInfo';
|
||||||
import {CollectionXstask} from '../module/collection_xstask';
|
import { CollectionXstask } from '../module/collection_xstask';
|
||||||
import {PublicShared} from '../shared/public/public';
|
import { PublicShared } from '../shared/public/public';
|
||||||
import {ActionLog} from "./actionLog/actionLog";
|
|
||||||
|
|
||||||
|
|
||||||
export class XstaskFun {
|
export class XstaskFun {
|
||||||
/**所有玩家的悬赏任务缓存 */
|
/**所有玩家的悬赏任务缓存 */
|
||||||
static uidTask: k_v<CollectionXstask[]> = {};
|
static uidTask: k_v<CollectionXstask[]> = {};
|
||||||
|
|
||||||
/**获取单个悬赏任务 */
|
/**获取单个悬赏任务 */
|
||||||
static async getTask(uid: string, _id: string) {
|
static async getTask(uid: string, _id: string) {
|
||||||
return this.uidTask[uid]?.find(task => task._id == _id) || await G.mongodb.collection('xstask').findOne({
|
return this.uidTask[uid]?.find(task => task._id == _id) || await G.mongodb.collection('xstask').findOne({ uid: uid, _id: G.mongodb.conversionId(_id) });
|
||||||
uid: uid,
|
|
||||||
_id: G.mongodb.conversionId(_id)
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**获取所有悬赏任务 */
|
/**获取所有悬赏任务 */
|
||||||
static async getAllTask(uid: string) {
|
static async getAllTask(uid: string) {
|
||||||
let taskList = this.uidTask[uid];
|
let taskList = this.uidTask[uid];
|
||||||
|
|
||||||
if (!taskList) {
|
if (!taskList) {
|
||||||
taskList = this.uidTask[uid] = (await G.mongodb.collection('xstask').find({uid: uid}).toArray()).map(task => G.mongodb.conversionIdObj(task));
|
taskList = this.uidTask[uid] = (await G.mongodb.collection('xstask').find({ uid: uid }).toArray()).map(task => G.mongodb.conversionIdObj(task));
|
||||||
}
|
};
|
||||||
;
|
|
||||||
|
|
||||||
return taskList;
|
return taskList;
|
||||||
}
|
}
|
||||||
@ -33,22 +27,16 @@ export class XstaskFun {
|
|||||||
/**完成任务标记 */
|
/**完成任务标记 */
|
||||||
static async finishTask(uid: string, _id: string) {
|
static async finishTask(uid: string, _id: string) {
|
||||||
// 修改数据库
|
// 修改数据库
|
||||||
G.mongodb.collection('xstask').updateOne({
|
G.mongodb.collection('xstask').updateOne({ uid: uid, _id: G.mongodb.conversionId(_id) }, { $set: { 'receiveData.rec': true } });
|
||||||
uid: uid,
|
|
||||||
_id: G.mongodb.conversionId(_id)
|
|
||||||
}, {$set: {'receiveData.rec': true}});
|
|
||||||
// 修改缓存
|
// 修改缓存
|
||||||
let index = this.uidTask[uid]?.findIndex(task => task._id == _id);
|
let index = this.uidTask[uid]?.findIndex(task => task._id == _id);
|
||||||
this.uidTask[uid][index].receiveData.rec = true
|
this.uidTask[uid][index].receiveData.rec = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
/**更新任务单个 */
|
/**更新任务单个 */
|
||||||
static async updateTask(uid: string, _id: string, taskId: string) {
|
static async updateTask(uid: string, _id: string, taskId: string) {
|
||||||
G.mongodb.collection('xstask').updateOne({
|
G.mongodb.collection('xstask').updateOne({ uid: uid, _id: G.mongodb.conversionId(_id) }, { $unset: { receiveData: 1 }, $set: {taskId: taskId} });
|
||||||
uid: uid,
|
|
||||||
_id: G.mongodb.conversionId(_id)
|
|
||||||
}, {$unset: {receiveData: 1}, $set: {taskId: taskId}});
|
|
||||||
let index = this.uidTask[uid]?.findIndex(task => task._id == _id);
|
let index = this.uidTask[uid]?.findIndex(task => task._id == _id);
|
||||||
delete this.uidTask[uid][index].receiveData;
|
delete this.uidTask[uid][index].receiveData;
|
||||||
this.uidTask[uid][index].taskId = taskId;
|
this.uidTask[uid][index].taskId = taskId;
|
||||||
@ -60,15 +48,13 @@ export class XstaskFun {
|
|||||||
let task = this.uidTask[uid]?.find(task => task._id == _id);
|
let task = this.uidTask[uid]?.find(task => task._id == _id);
|
||||||
task && this.uidTask[uid].removeOne(task);
|
task && this.uidTask[uid].removeOne(task);
|
||||||
|
|
||||||
G.mongodb.collection('xstask').deleteOne({uid: uid, _id: G.mongodb.conversionId(_id)});
|
G.mongodb.collection('xstask').deleteOne({ uid: uid, _id: G.mongodb.conversionId(_id) });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**删除多个悬赏任务 */
|
/**删除多个悬赏任务 */
|
||||||
static async delTasks(uid: string, _id: string[]) {
|
static async delTasks(uid: string, _id: string[]) {
|
||||||
|
|
||||||
for (let id of _id) await this.delTask(uid, id);
|
for (let id of _id) await this.delTask(uid, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**添加多个悬赏任务 */
|
/**添加多个悬赏任务 */
|
||||||
static async addTasks(uid: string, taskArr: { taskId: string; }[]) {
|
static async addTasks(uid: string, taskArr: { taskId: string; }[]) {
|
||||||
|
|
||||||
@ -90,17 +76,12 @@ export class XstaskFun {
|
|||||||
|
|
||||||
return this.uidTask[uid];
|
return this.uidTask[uid];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**派遣任务任务 */
|
/**派遣任务任务 */
|
||||||
static async receiveTask(uid: string, _id: string, d: CollectionXstask['receiveData']) {
|
static async receiveTask(uid: string, _id: string, d: CollectionXstask['receiveData']) {
|
||||||
let cache = this.uidTask[uid]?.find(task => task._id == _id);
|
let cache = this.uidTask[uid]?.find(task => task._id == _id);
|
||||||
if (cache) cache.receiveData = d;
|
if (cache) cache.receiveData = d;
|
||||||
G.mongodb.collection('xstask').updateOne({
|
G.mongodb.collection('xstask').updateOne({ uid: uid, _id: G.mongodb.conversionId(_id) }, { $set: { receiveData: d } });
|
||||||
uid: uid,
|
|
||||||
_id: G.mongodb.conversionId(_id)
|
|
||||||
}, {$set: {receiveData: d}});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**获取所有已被派遣的英雄 */
|
/**获取所有已被派遣的英雄 */
|
||||||
static async getAllReceiveHero(uid: string) {
|
static async getAllReceiveHero(uid: string) {
|
||||||
let heroIds: string[] = [];
|
let heroIds: string[] = [];
|
||||||
@ -110,22 +91,19 @@ export class XstaskFun {
|
|||||||
|
|
||||||
return heroIds;
|
return heroIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**获取悬赏任务记录信息 */
|
/**获取悬赏任务记录信息 */
|
||||||
static async getInfo(uid: string) {
|
static async getInfo(uid: string) {
|
||||||
return await G.mongodb.collection('playerInfo', 'xstask').findOne({uid: uid, type: 'xstask'});
|
return await G.mongodb.collection('playerInfo', 'xstask').findOne({ uid: uid, type: 'xstask' });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**修改悬赏任务记录信息 */
|
/**修改悬赏任务记录信息 */
|
||||||
static async changeInfo(uid: string, change: Pick<UpdateFilter<OptionalId<playerInfoType['xstask']>>, '$inc' | '$set'>) {
|
static async changeInfo(uid: string, change: Pick<UpdateFilter<OptionalId<playerInfoType['xstask']>>, '$inc' | '$set'>) {
|
||||||
|
|
||||||
G.mongodb.collection('playerInfo', 'xstask').updateOne(
|
G.mongodb.collection('playerInfo', 'xstask').updateOne(
|
||||||
{uid: uid, type: 'xstask'},
|
{ uid: uid, type: 'xstask' },
|
||||||
change,
|
change,
|
||||||
{upsert: true}
|
{ upsert: true }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**随机任务 */
|
/**随机任务 */
|
||||||
static randomTasks(lv: number, num: number) {
|
static randomTasks(lv: number, num: number) {
|
||||||
let tasks = Object.values(G.gc.xstask).filter(task => G.gc.xstaskcom.lv[lv].taskColor.includes(task.colour)).sort(function () {
|
let tasks = Object.values(G.gc.xstask).filter(task => G.gc.xstaskcom.lv[lv].taskColor.includes(task.colour)).sort(function () {
|
||||||
@ -158,19 +136,4 @@ export class XstaskFun {
|
|||||||
}
|
}
|
||||||
return _res;
|
return _res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 刷新每天派遣次数,每天上限8次
|
|
||||||
*/
|
|
||||||
static async receiveNum(uid: string, refresh = false) {
|
|
||||||
if (refresh) {
|
|
||||||
G.mongodb.cEvent('xstask').updateOne({uid: uid, type: 'xstask'},
|
|
||||||
{$set: {refreshTime: G.time, receiveNum: 0}}, {upsert: true});
|
|
||||||
} else {
|
|
||||||
ActionLog.addDayLog(uid, { key: "xstask/Receive/Num", val: 1 });
|
|
||||||
G.mongodb.cEvent('xstask').updateOne({uid: uid, type: 'xstask'},
|
|
||||||
{$inc: {receiveNum: 1}}, {upsert: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -406,15 +406,7 @@ const crossIndexs: Partial<{ [k in keyof MongodbCollections]: IndexDescription[]
|
|||||||
],
|
],
|
||||||
clslCrossUser: [
|
clslCrossUser: [
|
||||||
{
|
{
|
||||||
key: { uid: 1 },
|
key: {uid: 1}, unique: true
|
||||||
},
|
|
||||||
{
|
|
||||||
key: { ttltime: 1 }, expireAfterSeconds: 7 * 24 * 3600
|
|
||||||
}
|
|
||||||
],
|
|
||||||
clslCrossGroup: [
|
|
||||||
{
|
|
||||||
key: { week: 1 },
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
rankList: [
|
rankList: [
|
||||||
|
@ -2,7 +2,7 @@ import { GanHaiRed } from './api_s2c/ganhai/ApiOpen';
|
|||||||
import { FriendManage } from './public/friend/manage';
|
import { FriendManage } from './public/friend/manage';
|
||||||
import { GHManage } from './public/gonghui/manage';
|
import { GHManage } from './public/gonghui/manage';
|
||||||
import { JJCFun } from './public/jjc';
|
import { JJCFun } from './public/jjc';
|
||||||
import { RankClslCross, RankClslCrossInit } from './public/rank/rank_clsl';
|
import { RankClslCross } from './public/rank/rank_clsl';
|
||||||
//import { RankHbzbJfsCross, RankHbzbJfsLocal, RankHbzbZbsCross } from './public/rank/rank_hbzb_jfs';
|
//import { RankHbzbJfsCross, RankHbzbJfsLocal, RankHbzbZbsCross } from './public/rank/rank_hbzb_jfs';
|
||||||
import { RankKbzz } from './public/rank/rank_kbzz';
|
import { RankKbzz } from './public/rank/rank_kbzz';
|
||||||
import { RankPower } from './public/rank/rank_power';
|
import { RankPower } from './public/rank/rank_power';
|
||||||
@ -29,7 +29,6 @@ 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';
|
import { RankKfjs_1, RankKfjs_2, RankKfjs_3, RankKfjs_4, RankKfjs_5, RankKfjs_6, RankKfjs_7 } from './public/rank/rank_kfjs';
|
||||||
import { WatchDog } from './public/scheduler/scheduler_watchdog';
|
|
||||||
export async function startAfter() {
|
export async function startAfter() {
|
||||||
|
|
||||||
//事件监听和定时器初始化
|
//事件监听和定时器初始化
|
||||||
@ -94,7 +93,6 @@ export async function startAfter() {
|
|||||||
// new SchedulerWzrycrossEmail();
|
// new SchedulerWzrycrossEmail();
|
||||||
|
|
||||||
new CrossEmailPull().init()
|
new CrossEmailPull().init()
|
||||||
new WatchDog().init();
|
|
||||||
});
|
});
|
||||||
new SchedulerNewDayLocalCtor().init();
|
new SchedulerNewDayLocalCtor().init();
|
||||||
|
|
||||||
@ -106,19 +104,18 @@ export async function startAfter() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
} else if (G.argv.serverType == 'cross') {
|
} else if (G.argv.serverType == 'cross') {
|
||||||
|
|
||||||
RankKbzz.init();
|
RankKbzz.init();
|
||||||
RankClslCrossInit();
|
new RankClslCross();
|
||||||
|
// new RankHbzbJfsCross().loadAllPlayer();
|
||||||
|
// new RankHbzbZbsCross();
|
||||||
new RankWzryCross();
|
new RankWzryCross();
|
||||||
|
|
||||||
new SchedulerKbzzGroup().init();
|
new SchedulerKbzzGroup().init();
|
||||||
|
|
||||||
new SchedulerClslPrize().init();
|
|
||||||
new SchedulerClslCrossCtor().init();
|
|
||||||
new SchedulerClslLocalCtor ().init();
|
|
||||||
|
|
||||||
new Scheduler_hbzb_zbs_cross_clear().init();
|
new Scheduler_hbzb_zbs_cross_clear().init();
|
||||||
|
//new Scheduler_hbzb_corss_reset();
|
||||||
new Scheduler_hbzb_zbs_cross_group().init();
|
new Scheduler_hbzb_zbs_cross_group().init();
|
||||||
|
new SchedulerClslCrossCtor().init();
|
||||||
new SchedulerWzryDlDstart().init();
|
new SchedulerWzryDlDstart().init();
|
||||||
new SchedulerWzryDlDjinji().init();
|
new SchedulerWzryDlDjinji().init();
|
||||||
new SchedulerWzryZuanshiOne().init();
|
new SchedulerWzryZuanshiOne().init();
|
||||||
|
25
src/setWs.ts
25
src/setWs.ts
@ -13,7 +13,6 @@ import {player} from './shared/protocols/user/type';
|
|||||||
import {unQueueByConn} from './api_s2c/user/ApiLogin';
|
import {unQueueByConn} from './api_s2c/user/ApiLogin';
|
||||||
import {clusterPublish, setUidProcessId} from './clusterUtils';
|
import {clusterPublish, setUidProcessId} from './clusterUtils';
|
||||||
import {clearGud, getGud} from './public/gud';
|
import {clearGud, getGud} from './public/gud';
|
||||||
import {mylogger} from './gameLog';
|
|
||||||
|
|
||||||
export async function createWs() {
|
export async function createWs() {
|
||||||
|
|
||||||
@ -26,8 +25,7 @@ export async function createWs() {
|
|||||||
json: true,
|
json: true,
|
||||||
//API超时时间5分钟,为登陆排队做准备
|
//API超时时间5分钟,为登陆排队做准备
|
||||||
apiTimeout: 300000,
|
apiTimeout: 300000,
|
||||||
logLevel: G.argv.logModel as LogLevel,
|
logLevel: G.argv.logModel as LogLevel
|
||||||
logger: mylogger
|
|
||||||
});
|
});
|
||||||
setCrossWs(G.serverCross);
|
setCrossWs(G.serverCross);
|
||||||
await G.serverCross.autoImplementApi(resolve(__dirname, 'api_cross'), true);
|
await G.serverCross.autoImplementApi(resolve(__dirname, 'api_cross'), true);
|
||||||
@ -39,7 +37,6 @@ export async function createWs() {
|
|||||||
wss: getWssFile(),
|
wss: getWssFile(),
|
||||||
//API超时时间5分钟,为登陆排队做准备,只针对游服
|
//API超时时间5分钟,为登陆排队做准备,只针对游服
|
||||||
apiTimeout: 300000,
|
apiTimeout: 300000,
|
||||||
logger: mylogger
|
|
||||||
});
|
});
|
||||||
setWs(G.server);
|
setWs(G.server);
|
||||||
await G.server.autoImplementApi(resolve(__dirname, 'api_s2c'), true);
|
await G.server.autoImplementApi(resolve(__dirname, 'api_s2c'), true);
|
||||||
@ -139,14 +136,14 @@ function setWs(server: WsServer<ServiceType>) {
|
|||||||
|
|
||||||
//处理API锁,极限情况下只锁10s,防止死锁
|
//处理API锁,极限情况下只锁10s,防止死锁
|
||||||
//在下方postApiReturnFlow里会解锁
|
//在下方postApiReturnFlow里会解锁
|
||||||
if (call.conn.apiLock[call.service.name] && call.conn.apiLock[call.service.name] > new Date().getTime()) {
|
if (call.conn.apiLock[call.service.name] && new Date().getTime() - call.conn.apiLock[call.service.name] < 10000) {
|
||||||
call.error('', {code: -100, message: '', apilock: 1});
|
call.error('', {code: -100, message: '', time: 0});
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//API锁定到什么时候
|
//API锁定
|
||||||
if (!writeList.includes(call.service.name)) {
|
if (!writeList.includes(call.service.name)) {
|
||||||
call.conn.apiLock[call.service.name] = new Date().getTime() + 10000;
|
call.conn.apiLock[call.service.name] = new Date().getTime();
|
||||||
}
|
}
|
||||||
//API耗时统计
|
//API耗时统计
|
||||||
call.conn.requstApiTime[call.service.name] = new Date().getTime();
|
call.conn.requstApiTime[call.service.name] = new Date().getTime();
|
||||||
@ -196,17 +193,7 @@ function setWs(server: WsServer<ServiceType>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//API解锁
|
//API解锁
|
||||||
let now = new Date().getTime();
|
delete node.call.conn.apiLock[node.call.service.name];
|
||||||
|
|
||||||
if (node.return.isSucc) {
|
|
||||||
if (!writeList.includes(node.call.service.name)){
|
|
||||||
node.call.conn.apiLock[node.call.service.name] = now + 200;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!node.return.err.apilock) {
|
|
||||||
delete node.call.conn.apiLock[node.call.service.name];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
});
|
});
|
||||||
|
@ -17,10 +17,4 @@ export type ResOpen = {
|
|||||||
fightWinNum: number;
|
fightWinNum: number;
|
||||||
/**已领取的胜场奖励 */
|
/**已领取的胜场奖励 */
|
||||||
recWinPrize: number[];
|
recWinPrize: number[];
|
||||||
/**本期最高段位*/
|
|
||||||
curMaxStar: number;
|
|
||||||
/**段位奖励发放记录*/
|
|
||||||
danPrize: number[];
|
|
||||||
|
|
||||||
week?:number; // 返回给客户端用
|
|
||||||
};
|
};
|
@ -13,8 +13,9 @@ export type ResOpen = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export type rankType = 'jjc' | 'tanxian' | 'zhanli' | 'qjzzd' | 'hbzbLocal' | 'hbzbCross' | 'hbzbZbsCross'
|
export type rankType = 'jjc' | 'tanxian' | 'zhanli' | 'qjzzd' | 'hbzbLocal' | 'hbzbCross' | 'hbzbZbsCross'
|
||||||
| 'slzd1' | 'slzd2' | 'slzd3' | 'slzd4' | 'slzd5' | 'slzd6' | "clslCross"
|
| 'slzd1' | 'slzd2' | 'slzd3' | 'slzd4' | 'slzd5' | 'slzd6'
|
||||||
| 'kbzz' | 'xszm' | 'zccg' | 'gbzl' | 'tujian' | 'wzryCross';
|
| 'kbzz' | 'xszm' | 'clslCross'
|
||||||
|
| 'zccg' | 'gbzl' | 'tujian' | 'wzryCross';
|
||||||
|
|
||||||
export type rankTypeObj = {
|
export type rankTypeObj = {
|
||||||
type?: rankType[],
|
type?: rankType[],
|
||||||
|
@ -7253,31 +7253,6 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
"type": "Number"
|
"type": "Number"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5,
|
|
||||||
"name": "curMaxStar",
|
|
||||||
"type": {
|
|
||||||
"type": "Number"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6,
|
|
||||||
"name": "danPrize",
|
|
||||||
"type": {
|
|
||||||
"type": "Array",
|
|
||||||
"elementType": {
|
|
||||||
"type": "Number"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7,
|
|
||||||
"name": "week",
|
|
||||||
"type": {
|
|
||||||
"type": "Number"
|
|
||||||
},
|
|
||||||
"optional": true
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -20105,21 +20080,21 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
|||||||
"id": 13,
|
"id": 13,
|
||||||
"type": {
|
"type": {
|
||||||
"type": "Literal",
|
"type": "Literal",
|
||||||
"literal": "clslCross"
|
"literal": "kbzz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 14,
|
"id": 14,
|
||||||
"type": {
|
"type": {
|
||||||
"type": "Literal",
|
"type": "Literal",
|
||||||
"literal": "kbzz"
|
"literal": "xszm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
"id": 15,
|
||||||
"type": {
|
"type": {
|
||||||
"type": "Literal",
|
"type": "Literal",
|
||||||
"literal": "xszm"
|
"literal": "clslCross"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user