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