试炼调试数据

This commit is contained in:
mamengke01
2021-02-01 14:09:48 +08:00
parent 8770fd9ea7
commit 67668097d6
16 changed files with 206 additions and 97 deletions
@@ -4,7 +4,6 @@ import { resResult } from '../../../pubUtils/util';
import { STATUS, GUILD_OPERATE } from '../../../consts'; import { STATUS, GUILD_OPERATE } from '../../../consts';
import { GuildRefineModel } from '../../../db/GuildRefine'; import { GuildRefineModel } from '../../../db/GuildRefine';
import { getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data'; import { getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data';
import { EquipModel } from '../../../db/Equip';
import { nowSeconds } from '../../../pubUtils/timeUtil'; import { nowSeconds } from '../../../pubUtils/timeUtil';
import { handleCost, addItems } from '../../../services/rewardService'; import { handleCost, addItems } from '../../../services/rewardService';
import { GuildModel } from '../../../db/Guild'; import { GuildModel } from '../../../db/Guild';
@@ -15,7 +14,6 @@ import { checkAuth } from '../../../services/guildService';
import { ARMY } from '../../../pubUtils/dicParam'; import { ARMY } from '../../../pubUtils/dicParam';
import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst'; import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst';
import { openGuildRefine } from '../../../services/guildRefineService'; import { openGuildRefine } from '../../../services/guildRefineService';
import { now } from 'moment';
export default function (app: Application) { export default function (app: Application) {
return new GuildRefineHandler(app); return new GuildRefineHandler(app);
} }
@@ -33,7 +33,7 @@ export class GuildTrainHandler {
if (!userGuild) if (!userGuild)
return resResult(STATUS.WRONG_PARMS); return resResult(STATUS.WRONG_PARMS);
const { guildCode: code } = userGuild; const { guildCode: code } = userGuild;
let { trainId } = await GuildModel.findGuild(code, serverId, 'trainId'); let { trainId, trainLv } = await GuildModel.findGuild(code, serverId, 'trainId trainLv');
let guildTrain = await GuildTrainModel.findTrainByTrainIdNotLock(code, trainId); let guildTrain = await GuildTrainModel.findTrainByTrainIdNotLock(code, trainId);
if (!guildTrain ) { if (!guildTrain ) {
guildTrain = await unlockTrain(code, trainId); guildTrain = await unlockTrain(code, trainId);
@@ -41,6 +41,7 @@ export class GuildTrainHandler {
let { trainCount, trainRewards, buyTrainCount } = userGuild; let { trainCount, trainRewards, buyTrainCount } = userGuild;
let result:any = getGuildTrainInfo(guildTrain, roleId, trainCount, trainRewards); let result:any = getGuildTrainInfo(guildTrain, roleId, trainCount, trainRewards);
result.buyTrainCount = buyTrainCount; result.buyTrainCount = buyTrainCount;
result.trainLv = trainLv;
return resResult(STATUS.SUCCESS, result); return resResult(STATUS.SUCCESS, result);
} }
//获得试炼战报 //获得试炼战报
@@ -65,7 +66,7 @@ export class GuildTrainHandler {
} }
reports.push(...resReports); reports.push(...resReports);
}); });
return resResult(STATUS.SUCCESS, {reports}); return resResult(STATUS.SUCCESS, { reports });
} }
//获得试炼宝箱 //获得试炼宝箱
@@ -199,7 +200,7 @@ export class GuildTrainHandler {
ranks.push({score: addScore, roleId}); ranks.push({score: addScore, roleId});
} }
let needLockNext = false; let needLockNext = false;
let report = {roleName, trainId, hid, score: addScore, time: nowSeconds(), isSuccessed: isSuccess, type: 1};//1表示普通战报, 2表示系统战报即:被成功压制 let report = {roleName, trainId, hid, score: addScore, time: nowSeconds(), type: isSuccess?2:1, difficulty: battleRecord.record.difficulty};//1表示普通战报, 2表示系统战报即:被成功压制
reports.push(report); reports.push(report);
if (trainInstance.progress < instance.progress ) { if (trainInstance.progress < instance.progress ) {
if (trainInstance.progress + addScore >= instance.progress) { if (trainInstance.progress + addScore >= instance.progress) {
@@ -217,7 +218,7 @@ export class GuildTrainHandler {
let progress = instance.progress; let progress = instance.progress;
guildTrain = await GuildTrainModel.updateGuildTrainProgress(code, trainId, hid, progress, ranks, isComplete); guildTrain = await GuildTrainModel.updateGuildTrainProgress(code, trainId, hid, progress, ranks, isComplete);
if (needLockNext) { // if (needLockNext) { //
reports.push({ isSuccessed: true, type: 2, time:nowSeconds(), score: addScore, roleName, trainId, hid }); reports.push({ type: 3, time:nowSeconds(), score: addScore, roleName, trainId, hid, difficulty: battleRecord.record.difficulty });
guildTrain = await unlockTrain(code, trainId + 1); guildTrain = await unlockTrain(code, trainId + 1);
} }
res.releaseCallback();//解锁 res.releaseCallback();//解锁
@@ -1,16 +1,17 @@
import { Application, BackendSession } from 'pinus'; import { Application, BackendSession } from 'pinus';
import { UserGuildModel } from '../../../db/UserGuild'; import { UserGuildModel } from '../../../db/UserGuild';
import { GuildModel } from '../../../db/Guild'; import { GuildModel } from '../../../db/Guild';
import { resResult } from '../../../pubUtils/util'; import { WishPoolReportModel } from '../../../db/WishPoolReport';
import { resResult, genCode } from '../../../pubUtils/util';
import { STATUS } from '../../../consts'; import { STATUS } from '../../../consts';
import { DonationModel } from '../../../db/Donation';
import { nowSeconds } from '../../../pubUtils/timeUtil'; import { nowSeconds } from '../../../pubUtils/timeUtil';
import { getArmyDonateBaseByLv, getArmyDonateBoxBaseById } from '../../../pubUtils/data'; import { getArmyWishPoolBaseByLv, getGoodById } from '../../../pubUtils/data';
import { handleCost, addItems } from '../../../services/rewardService'; import { handleCost, addItems } from '../../../services/rewardService';
import { CHAT_SERVER } from '../../../consts'; import { CHAT_SERVER } from '../../../consts';
import { getDonation } from '../../../services/donateService'; import { GUILD_STRUCTURE } from '../../../consts/constModules/guildConst';
import { getUserGuildWithRefActive } from '../../../services/guildService'; import { getUserGuildWithRefActive } from '../../../services/guildService';
import { ARMY } from '../../../pubUtils/dicParam'; import { ARMY } from '../../../pubUtils/dicParam';
import { findIndex, findWhere } from 'underscore';
export default function(app: Application) { export default function(app: Application) {
return new WishPoolHandler(app); return new WishPoolHandler(app);
} }
@@ -29,23 +30,92 @@ export class WishPoolHandler {
let userGuilds = await UserGuildModel.getWishPoolGoods(code, ' wishDntCnt wishGoods'); let userGuilds = await UserGuildModel.getWishPoolGoods(code, ' wishDntCnt wishGoods');
let list = []; let list = [];
userGuilds.map(({ wishGoods })=>{ userGuilds.map(({ wishGoods })=>{
// wishGoods.map(({ type, goodId, count, receiveCnt, drawCnt, _id })=>{ wishGoods.map(({ type, goodId, count, receiveCnt, drawCnt, id })=>{
// list.push({ type, goodId, count, receiveCnt, drawCnt, id: _id }) list.push({ type, goodId, count, receiveCnt, drawCnt, id })
// }); });
}); });
return resResult(STATUS.SUCCESS, { list, wishDntCnt, wishGoods }); return resResult(STATUS.SUCCESS, { list, wishDntCnt, wishGoods });
} }
async wishGoods(msg: {roleId: string, id: number}, session: BackendSession) { // 许愿
async wishGoods(msg: {goodId: number, type: number}, session: BackendSession) {
const { goodId, type } = msg;
const roleId: string = session.get('roleId'); const roleId: string = session.get('roleId');
const serverId: number = parseInt(session.get('serverId')); const serverId: number = parseInt(session.get('serverId'));
let userGuild = await getUserGuildWithRefActive(roleId, 'donateCnt receiveBoxs guildCode'); let count;
let goodInfo = getGoodById(goodId)
if (!goodInfo)
return resResult(STATUS.WRONG_PARMS);
let userGuild = await getUserGuildWithRefActive(roleId, ' wishDntCnt wishGoods guildCode wishGoods');
if (!userGuild) if (!userGuild)
return resResult(STATUS.WRONG_PARMS); return resResult(STATUS.WRONG_PARMS);
const { guildCode: code, wishDntCnt, wishGoods } = userGuild; const { guildCode: code, wishDntCnt, wishGoods } = userGuild;
const { wishPoolLv } = await GuildModel.findGuild(code, serverId); let { structure } = await GuildModel.findGuild(code, serverId, 'structure');
let { lv } = findWhere(structure, {id: GUILD_STRUCTURE.DONATE});
let { wishGoodsEquips, wishGoodsHeros } = getArmyWishPoolBaseByLv(lv);
let len = wishGoods.length;
if (len >= 1) //今日已经许愿过
return resResult(STATUS.WRONG_PARMS);
if (type == 1) {
let wishGoodsEquip = findWhere(wishGoodsEquips, { quality: goodInfo.quality});
count = wishGoodsEquip.count;
} else {
let wishGoodsHero = findWhere(wishGoodsHeros, { quality: goodInfo.quality});
count = wishGoodsHero.count;
}
const id = genCode(6);
let { wishGoods : resWishGoods } = await UserGuildModel.pushAndUpdate(roleId, { wishGoods }, { wishGoods: { type, goodId, count, receiveCnt: 0, drawCnt: 0, id} }, 'wishGoods');
return resResult(STATUS.SUCCESS, { wishDntCnt, wishGoods: resWishGoods });
}
// 捐赠
async donateGoods(msg: {wishRoleId: string, id: string}, session: BackendSession) {
let { wishRoleId, id } = msg;
const dntRoleId: string = session.get('roleId');
const serverId: number = parseInt(session.get('serverId'));
const dntRoleName: string = session.get('roleName');
let wishUserGuild = await getUserGuildWithRefActive(wishRoleId, ' wishDntCnt wishGoods guildCode wishGoods');
if (!wishUserGuild)
return resResult(STATUS.WRONG_PARMS);
const { guildCode: code, wishGoods } = wishUserGuild;
const { } = await GuildModel.findGuild(code, serverId);
let wishGood = findWhere(wishGoods, { id });
if (wishGood) {
}
// WishPoolReportModel.addReport(code, roleId: wishRoleId, roleName: , dntRoleId, dntRoleName, goodId, 1);
}
async receiveGoods(msg: { id: string }, session: BackendSession) {
let { id } = msg;
const roleId: string = session.get('roleId');
const roleName: string = session.get('roleName');
const sid: string = session.get('sid');
let userGuild = await getUserGuildWithRefActive(roleId, 'donateCnt receiveBoxs guildCode');
if (!userGuild)
return resResult(STATUS.WRONG_PARMS);
const { guildCode: code, wishGoods } = userGuild;
let index = findIndex(wishGoods, { id });
if (index == -1)
return resResult(STATUS.WRONG_PARMS);
let { drawCnt, goodId } = wishGoods[index];
if (drawCnt <= 0)
return resResult(STATUS.WRONG_PARMS);
let goods = await addItems(roleId, roleName, sid, [{ id : goodId, count: drawCnt }]);
wishGoods[index].drawCnt = 0;
await UserGuildModel.updateInfo(code, { wishGoods }, {});
return resResult(STATUS.SUCCESS, { goods, wishGoods });
}
async getReports(msg: {}, session: BackendSession) {
const roleId: string = session.get('roleId');
let userGuild = await getUserGuildWithRefActive(roleId, ' guildCode');
if (!userGuild)
return resResult(STATUS.WRONG_PARMS);
const { guildCode: code } = userGuild;
const reports = await WishPoolReportModel.getReportsByTime(code, 1);
return resResult(STATUS.SUCCESS, { reports });
} }
} }
+1 -4
View File
@@ -89,9 +89,6 @@ export default class Guild extends BaseModel {
@prop({ required: true, default: 0 }) @prop({ required: true, default: 0 })
resetTrainTime: number;//上次刷新挑战训练场次数的时间 resetTrainTime: number;//上次刷新挑战训练场次数的时间
@prop({ required: true, default: 1 })
wishPoolLv: number; // 许愿池等级
public static async createGuild(params: { name: string, icon: number, notice: string }, role: RoleType, serverId: number) { public static async createGuild(params: { name: string, icon: number, notice: string }, role: RoleType, serverId: number) {
const doc = new GuildModel(); const doc = new GuildModel();
@@ -204,7 +201,7 @@ export default class Guild extends BaseModel {
public static async resetGuildTrain(code: string, serverId: number, trainLv: number, lean = true) { public static async resetGuildTrain(code: string, serverId: number, trainLv: number, lean = true) {
const time = getCurWeekTime(1, 5);//每周一,5点刷新 const time = getCurWeekTime(1, 5);//每周一,5点刷新
const result = await GuildModel.findOneAndUpdate({ code, status: GUILD_STATUS.RUNNING, serverId, resetTrainTime:{$ne:time}},{$set: {trainId: 1, resetTrainTime: time, trainLv}}).lean(lean); const result = await GuildModel.findOneAndUpdate({ code, status: GUILD_STATUS.RUNNING, serverId, resetTrainTime:{$ne:time}},{$set: {trainId: 1, resetTrainTime: time, trainLv}}, {new: true}).lean(lean);
return result; return result;
} }
} }
+1 -1
View File
@@ -13,7 +13,7 @@ class Report {
@prop({ required: true }) @prop({ required: true })
time: number; time: number;
@prop({ required: true }) @prop({ required: true })
isSuccessed: boolean; difficulty: number;
@prop({ required: true }) @prop({ required: true })
type: number;//1表示普通战报, 2表示系统战报即:被成功压制 type: number;//1表示普通战报, 2表示系统战报即:被成功压制
} }
+10 -4
View File
@@ -12,6 +12,8 @@ class ActiveRecord {
} }
class WishGood { class WishGood {
@prop({ required: true })
id: string;
@prop({ required: true }) @prop({ required: true })
type: number; type: number;
@prop({ required: true }) @prop({ required: true })
@@ -76,16 +78,16 @@ export default class UserGuild extends BaseModel {
trainRewards: Array<number>;//领取过的进阶等级 trainRewards: Array<number>;//领取过的进阶等级
@prop({ required: true, default: [], type: WishGood, _id: false }) @prop({ required: true, default: [], type: WishGood, _id: false })
wishGoods:Array<WishGood>; wishGoods: Array<WishGood>;
@prop({ required: true, default: [], type: Number }) @prop({ required: true, default: [], type: Number })
receiveBoxs:Array<number>; receiveBoxs: Array<number>;
@prop({ required: true }) @prop({ required: true })
wishDntCnt:number;//今天许愿池捐献次数 wishDntCnt: number;//今天许愿池捐献次数
@prop({ required: true }) @prop({ required: true })
donateCnt:number;//今天捐献所次数 donateCnt: number;//今天捐献所次数
public static async getMyAuth(roleId: string, guildCode?: string, userGuild?: UserGuildType) { public static async getMyAuth(roleId: string, guildCode?: string, userGuild?: UserGuildType) {
let myGuild: UserGuildType; let myGuild: UserGuildType;
@@ -186,6 +188,10 @@ export default class UserGuild extends BaseModel {
return userGuilds; return userGuilds;
} }
public static async pushAndUpdate(roleId: string, update: UserGuildUpdateParam, pushData:{wishGoods?: WishGood}, select?: string, lean = true) {
const result: UserGuildType = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON }, { $set: update, $push: pushData }, { new: true }).select(select).lean();
return result;
}
} }
export const UserGuildModel = getModelForClass(UserGuild); export const UserGuildModel = getModelForClass(UserGuild);
+1 -1
View File
@@ -38,7 +38,7 @@ export default class WishPoolReport extends BaseModel {
//获得day天之前的许愿池战报 //获得day天之前的许愿池战报
public static async getReportsByTime(guildCode: string, day: number, lean = true) { public static async getReportsByTime(guildCode: string, day: number, lean = true) {
let time = getTodayZeroPoint() - day * 24 * 60; let time = getTodayZeroPoint() - day * 24 * 60;
const reports = await WishPoolReportModel.find({ guildCode, dntTime: {$gte: time}}); const reports = await WishPoolReportModel.find({ guildCode, dntTime: {$gte: time}}).sort({ dntTime : -1 });
return reports; return reports;
} }
} }
+5 -3
View File
@@ -121,7 +121,7 @@ export const gameData = {
bossBase: dicBossBase, bossBase: dicBossBase,
trainBase: dicTrainBase, trainBase: dicTrainBase,
donateBase: dicDonateBase, donateBase: dicDonateBase,
wishPoolBase: dicWishPoolBase, armyWishPool: dicWishPoolBase,
storeBase: dicStoreBase, storeBase: dicStoreBase,
structureConsume: dicStructureConsume, structureConsume: dicStructureConsume,
guildActiveDayReward: dicGuildActiveDayReward, guildActiveDayReward: dicGuildActiveDayReward,
@@ -133,7 +133,7 @@ export const gameData = {
guildActiveWays: dicGuildActiveWays, guildActiveWays: dicGuildActiveWays,
armyDevelopConsume: dicArmyDevelopConsume, armyDevelopConsume: dicArmyDevelopConsume,
armyBossRank: dicArmyBossRank, armyBossRank: dicArmyBossRank,
armyDonateBox: dicArmyDonate armyDonateBox: dicArmyDonate,
}; };
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据 // 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
@@ -395,4 +395,6 @@ export function getArmyDonateBaseByLv(lv: number) {
export function getArmyDonateBoxBaseById(id: number) { export function getArmyDonateBoxBaseById(id: number) {
return gameData.armyDonateBox.get(id); return gameData.armyDonateBox.get(id);
} }
export function getArmyWishPoolBaseByLv(lv: number) {
return gameData.armyWishPool.get(lv);
}
+29
View File
@@ -0,0 +1,29 @@
import { readJsonFile, parseGoodStr } from '../util'
import { FILENAME } from '../../consts'
type KeysEnum<T> = { [P in keyof Required<T>]: true };
import { RewardInter } from '../interface';
const _ = require('lodash');
export interface DicArmyBossRank {
readonly id: number;
readonly rankMin: number;
readonly rankMax: number;
readonly reward: Array<RewardInter>;
}
const DicArmyBossRankKeys: KeysEnum<DicArmyBossRank> = {
id: true,
rankMin: true,
rankMax: true,
reward: true,
};
const str = readJsonFile(FILENAME.DIC_ARMY_BOSS_RANK_REWARD);
let arr = JSON.parse(str);
export const dicArmyBossRank = new Array<DicArmyBossRank>();
arr.forEach(o => {
o.reward = parseGoodStr(o.reward);
dicArmyBossRank.push(_.pick(o, Object.keys(DicArmyBossRankKeys)));
});
arr = undefined;
@@ -1,35 +0,0 @@
import { readJsonFile } from '../util'
import { FILENAME } from '../../consts'
type KeysEnum<T> = { [P in keyof Required<T>]: true };
const _ = require('lodash');
export interface DicArmyWishPool {
readonly id: number;
readonly wishGoodsEquips: Array<{quality: number, count: number}>;
readonly wishGoodsHeros: Array<{quality: number, count: number}>;
readonly consume: number;
}
const DicArmyWishPoolKeys: KeysEnum<DicArmyWishPool> = {
id: true,
wishGoodsEquips: true,
wishGoodsHeros: true,
consume: true,
};
const str = readJsonFile(FILENAME.DIC_ARMY_BOSS_RANK_REWARD);
let arr = JSON.parse(str);
export const dicArmyWishPool = new Array<DicArmyWishPool>();
arr.forEach(o => {
o.wishGoodsEquips = o.wishGoodsEquip.split('|').map(wishGoodsEquip=>{
let wishGoodsEquips = wishGoodsEquip.split('&');
return {quality: parseInt(wishGoodsEquips[0]), count: parseInt(wishGoodsEquips[1])};
});
o.wishGoodsHeros = o.wishGoodsHero.split('|').map(wishGoodsHero=>{
let wishGoodsHeros = wishGoodsHero.split('&');
return {quality: parseInt(wishGoodsHeros[0]), count: parseInt(wishGoodsHeros[1])};
});
dicArmyWishPool.push(_.pick(o, Object.keys(DicArmyWishPoolKeys)));
});
arr = undefined;
+14 -9
View File
@@ -121,19 +121,18 @@ export interface DicWishPoolBase {
readonly id: number; readonly id: number;
// 等级 // 等级
readonly level: number; readonly level: number;
// 许愿物品 readonly wishGoodsEquips: Array<{quality: number, count: number}>;
readonly wishGoodsEquip: { quality: number, count: number }[]; readonly wishGoodsHeros: Array<{quality: number, count: number}>;
// 许愿将魂 readonly consume: number;
readonly wishGoodsHero: { quality: number, count: number }[];
} }
const DicWishPoolKeys: KeysEnum<DicWishPoolBase> = { const DicWishPoolKeys: KeysEnum<DicWishPoolBase> = {
id: true, id: true,
level: true, level: true,
wishGoodsEquip: true, wishGoodsEquips: true,
wishGoodsHero: true wishGoodsHeros: true,
consume: true,
}; };
// 商店 // 商店
export interface DicStoreBase { export interface DicStoreBase {
// id // id
@@ -221,8 +220,14 @@ const strWishPool = readJsonFile(FILENAME.DIC_GUILD_WISH_POOL_BASE);
let arrWishPool = JSON.parse(strWishPool); let arrWishPool = JSON.parse(strWishPool);
arrWishPool.forEach(o => { arrWishPool.forEach(o => {
setStructureConsume(o); setStructureConsume(o);
o.wishGoodsEquip = parseWishGoods(o.wishgoodsEquip); o.wishGoodsEquips = o.wishgoodsEquip.split('|').map(wishGoodsEquip=>{
o.wishGoodsHero = parseWishGoods(o.wishgoodsHero); let wishGoodsEquips = wishGoodsEquip.split('&');
return {quality: parseInt(wishGoodsEquips[0]), count: parseInt(wishGoodsEquips[1])};
});
o.wishGoodsHeros = o.wishgoodsHero.split('|').map(wishGoodsHero=>{
let wishGoodsHeros = wishGoodsHero.split('&');
return {quality: parseInt(wishGoodsHeros[0]), count: parseInt(wishGoodsHeros[1])};
});
dicWishPoolBase.set(o.level, _.pick(o, Object.keys(DicWishPoolKeys))); dicWishPoolBase.set(o.level, _.pick(o, Object.keys(DicWishPoolKeys)));
}); });
arrWishPool = undefined; arrWishPool = undefined;
+1 -1
View File
@@ -58,7 +58,7 @@ export function getWeekDate(now: Date, day: number, hour: number){ //获得本
export function getCurWeekTime(day: number, hour: number) { export function getCurWeekTime(day: number, hour: number) {
let data = getWeekDate(new Date(), day, hour); let data = getWeekDate(new Date(), day, hour);
return data.getTime(); return Math.floor(data.getTime()/PER_SECOND);
} }
export function getHourPoint(hour: number) { export function getHourPoint(hour: number) {
@@ -17,7 +17,7 @@
"preposition": "1&", "preposition": "1&",
"honourConsume": "40005&3000", "honourConsume": "40005&3000",
"fundConsume": 500, "fundConsume": 500,
"timeConsume": 270 "timeConsume": 16200
}, },
{ {
"id": 3, "id": 3,
@@ -27,7 +27,7 @@
"preposition": "1&", "preposition": "1&",
"honourConsume": "40005&6000", "honourConsume": "40005&6000",
"fundConsume": 1000, "fundConsume": 1000,
"timeConsume": 530 "timeConsume": 31800
}, },
{ {
"id": 4, "id": 4,
@@ -37,7 +37,7 @@
"preposition": "1&", "preposition": "1&",
"honourConsume": "40005&13500", "honourConsume": "40005&13500",
"fundConsume": 2000, "fundConsume": 2000,
"timeConsume": 1200 "timeConsume": 72000
}, },
{ {
"id": 5, "id": 5,
@@ -57,7 +57,7 @@
"preposition": "5&2", "preposition": "5&2",
"honourConsume": "40005&4500", "honourConsume": "40005&4500",
"fundConsume": 1000, "fundConsume": 1000,
"timeConsume": 270 "timeConsume": 16200
}, },
{ {
"id": 7, "id": 7,
@@ -67,7 +67,7 @@
"preposition": "5&3", "preposition": "5&3",
"honourConsume": "40005&9000", "honourConsume": "40005&9000",
"fundConsume": 2000, "fundConsume": 2000,
"timeConsume": 530 "timeConsume": 31800
}, },
{ {
"id": 8, "id": 8,
@@ -77,7 +77,7 @@
"preposition": "5&4", "preposition": "5&4",
"honourConsume": "40005&20250", "honourConsume": "40005&20250",
"fundConsume": 4000, "fundConsume": 4000,
"timeConsume": 1200 "timeConsume": 72000
}, },
{ {
"id": 9, "id": 9,
@@ -97,7 +97,7 @@
"preposition": "9&6", "preposition": "9&6",
"honourConsume": "40005&6000", "honourConsume": "40005&6000",
"fundConsume": 1500, "fundConsume": 1500,
"timeConsume": 270 "timeConsume": 16200
}, },
{ {
"id": 11, "id": 11,
@@ -107,7 +107,7 @@
"preposition": "9&7", "preposition": "9&7",
"honourConsume": "40005&12000", "honourConsume": "40005&12000",
"fundConsume": 3000, "fundConsume": 3000,
"timeConsume": 530 "timeConsume": 31800
}, },
{ {
"id": 12, "id": 12,
@@ -117,7 +117,7 @@
"preposition": "9&8", "preposition": "9&8",
"honourConsume": "40005&27000", "honourConsume": "40005&27000",
"fundConsume": 6000, "fundConsume": 6000,
"timeConsume": 1200 "timeConsume": 72000
}, },
{ {
"id": 13, "id": 13,
@@ -137,7 +137,7 @@
"preposition": "13&10", "preposition": "13&10",
"honourConsume": "40005&7500", "honourConsume": "40005&7500",
"fundConsume": 2000, "fundConsume": 2000,
"timeConsume": 270 "timeConsume": 16200
}, },
{ {
"id": 15, "id": 15,
@@ -147,7 +147,7 @@
"preposition": "13&11", "preposition": "13&11",
"honourConsume": "40005&15000", "honourConsume": "40005&15000",
"fundConsume": 4000, "fundConsume": 4000,
"timeConsume": 530 "timeConsume": 31800
}, },
{ {
"id": 16, "id": 16,
@@ -157,7 +157,7 @@
"preposition": "13&12", "preposition": "13&12",
"honourConsume": "40005&33750", "honourConsume": "40005&33750",
"fundConsume": 8000, "fundConsume": 8000,
"timeConsume": 1200 "timeConsume": 72000
}, },
{ {
"id": 17, "id": 17,
@@ -177,7 +177,7 @@
"preposition": "17&14", "preposition": "17&14",
"honourConsume": "40005&9000", "honourConsume": "40005&9000",
"fundConsume": 2500, "fundConsume": 2500,
"timeConsume": 270 "timeConsume": 16200
}, },
{ {
"id": 19, "id": 19,
@@ -187,7 +187,7 @@
"preposition": "17&15", "preposition": "17&15",
"honourConsume": "40005&18000", "honourConsume": "40005&18000",
"fundConsume": 5000, "fundConsume": 5000,
"timeConsume": 530 "timeConsume": 31800
}, },
{ {
"id": 20, "id": 20,
@@ -197,7 +197,7 @@
"preposition": "17&16", "preposition": "17&16",
"honourConsume": "40005&40500", "honourConsume": "40005&40500",
"fundConsume": 10000, "fundConsume": 10000,
"timeConsume": 1200 "timeConsume": 72000
}, },
{ {
"id": 21, "id": 21,
@@ -217,7 +217,7 @@
"preposition": "21&18", "preposition": "21&18",
"honourConsume": "40005&10500", "honourConsume": "40005&10500",
"fundConsume": 3000, "fundConsume": 3000,
"timeConsume": 270 "timeConsume": 16200
}, },
{ {
"id": 23, "id": 23,
@@ -227,7 +227,7 @@
"preposition": "21&19", "preposition": "21&19",
"honourConsume": "40005&21000", "honourConsume": "40005&21000",
"fundConsume": 6000, "fundConsume": 6000,
"timeConsume": 530 "timeConsume": 31800
}, },
{ {
"id": 24, "id": 24,
@@ -237,6 +237,6 @@
"preposition": "21&20", "preposition": "21&20",
"honourConsume": "40005&47250", "honourConsume": "40005&47250",
"fundConsume": 12000, "fundConsume": 12000,
"timeConsume": 1200 "timeConsume": 72000
} }
] ]
@@ -1,6 +1,7 @@
[ [
{ {
"id": 1, "id": 1,
"id_1": 1,
"name": "试炼1-初出茅庐", "name": "试炼1-初出茅庐",
"count": 4, "count": 4,
"heroid": "1&3&5&4", "heroid": "1&3&5&4",
@@ -11,6 +12,7 @@
}, },
{ {
"id": 2, "id": 2,
"id_1": 2,
"name": "试炼2-过关斩将", "name": "试炼2-过关斩将",
"count": 4, "count": 4,
"heroid": "2&3&5&7", "heroid": "2&3&5&7",
@@ -21,6 +23,7 @@
}, },
{ {
"id": 3, "id": 3,
"id_1": 3,
"name": "试炼3-黄巾起义", "name": "试炼3-黄巾起义",
"count": 4, "count": 4,
"heroid": "7&8&9&10", "heroid": "7&8&9&10",
@@ -31,6 +34,7 @@
}, },
{ {
"id": 4, "id": 4,
"id_1": 4,
"name": "试炼4-火烧赤壁", "name": "试炼4-火烧赤壁",
"count": 4, "count": 4,
"heroid": "11&12&13&14", "heroid": "11&12&13&14",
@@ -41,6 +45,7 @@
}, },
{ {
"id": 5, "id": 5,
"id_1": 5,
"name": "试炼5-官渡之战", "name": "试炼5-官渡之战",
"count": 4, "count": 4,
"heroid": "7&8&9&11", "heroid": "7&8&9&11",
@@ -51,6 +56,7 @@
}, },
{ {
"id": 6, "id": 6,
"id_1": 6,
"name": "试炼6- 后起之秀", "name": "试炼6- 后起之秀",
"count": 4, "count": 4,
"heroid": "11&12&13&15", "heroid": "11&12&13&15",
@@ -61,6 +67,7 @@
}, },
{ {
"id": 7, "id": 7,
"id_1": 7,
"name": "试炼7- 分庭抗礼", "name": "试炼7- 分庭抗礼",
"count": 4, "count": 4,
"heroid": "7&8&9&12", "heroid": "7&8&9&12",
@@ -71,6 +78,7 @@
}, },
{ {
"id": 8, "id": 8,
"id_1": 8,
"name": "试炼8- 群雄逐鹿", "name": "试炼8- 群雄逐鹿",
"count": 4, "count": 4,
"heroid": "11&12&13&16", "heroid": "11&12&13&16",
@@ -81,6 +89,7 @@
}, },
{ {
"id": 9, "id": 9,
"id_1": 9,
"name": "试炼9-三足鼎立", "name": "试炼9-三足鼎立",
"count": 4, "count": 4,
"heroid": "7&8&9&13", "heroid": "7&8&9&13",
@@ -91,6 +100,7 @@
}, },
{ {
"id": 10, "id": 10,
"id_1": 10,
"name": "试炼10-封金挂印", "name": "试炼10-封金挂印",
"count": 4, "count": 4,
"heroid": "11&12&13&17", "heroid": "11&12&13&17",
@@ -0,0 +1,14 @@
[
{
"id": 1,
"str": "%d挑战%d难度据点【%d】失败,压制值+0"
},
{
"id": 2,
"str": "%d挑战%d难度据点【%d】成功,压制值+%d"
},
{
"id": 3,
"str": "军团据点%d被压制成功,对应试炼宝藏已成功开启,请各位成为前往领取奖励"
}
]
+17 -5
View File
@@ -16847,6 +16847,18 @@
"spineName": "&", "spineName": "&",
"rangeSeid": "0&" "rangeSeid": "0&"
}, },
{
"id": 5018,
"name": "墨家拳",
"img": 1,
"type": 520,
"isShow": 1,
"gainvalue": "3&",
"maxOnlyNum": 1,
"info": "一下打三下",
"spineName": "&",
"rangeSeid": "0&"
},
{ {
"id": 5020, "id": 5020,
"name": "三箭齐发1", "name": "三箭齐发1",
@@ -17043,7 +17055,7 @@
"id": 5040, "id": 5040,
"name": "蛮劲1", "name": "蛮劲1",
"img": 1, "img": 1,
"type": 101, "type": 102,
"isShow": 1, "isShow": 1,
"gainvalue": "10&1000&18&10000", "gainvalue": "10&1000&18&10000",
"maxOnlyNum": 1, "maxOnlyNum": 1,
@@ -17309,9 +17321,9 @@
"img": 1, "img": 1,
"type": 254, "type": 254,
"isShow": 1, "isShow": 1,
"gainvalue": "3&9&2", "gainvalue": "3&10&2",
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "自身周围八格内,所有吴国武将暴击率提升2%", "info": "自身周围5格内,所有吴国武将暴击率提升2%",
"spineName": "guanghuan_huang", "spineName": "guanghuan_huang",
"rangeSeid": "1&10&0" "rangeSeid": "1&10&0"
}, },
@@ -17321,9 +17333,9 @@
"img": 1, "img": 1,
"type": 254, "type": 254,
"isShow": 1, "isShow": 1,
"gainvalue": "3&9&5", "gainvalue": "3&10&5",
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "自身周围八格内,所有吴国武将暴击率提升5%", "info": "自身周围5格内,所有吴国武将暴击率提升5%",
"spineName": "guanghuan_huang", "spineName": "guanghuan_huang",
"rangeSeid": "1&10&0" "rangeSeid": "1&10&0"
}, },