添加json

This commit is contained in:
luying
2021-01-23 18:10:48 +08:00
parent 0e88bc2bfc
commit d9ef58b6c5
40 changed files with 16877 additions and 6504 deletions

View File

@@ -168,7 +168,7 @@ export class GuildHandler {
let managerCntInc = 0;
if(auth == GUILD_AUTH.LEADER) { // 转让团长
managerCntInc = hisUserGuild.auth == GUILD_AUTH.MANAGER?-1: 0;
managerCntInc = -1;
} else {
managerCntInc = auth == GUILD_AUTH.MANAGER? 1: -1;
}

View File

@@ -5,6 +5,8 @@ import { STATUS } from "../consts";
import { RoleModel } from "../db/Role";
import { UserGuildModel, UserGuildType } from "../db/UserGuild";
import { UserGuildApplyModel } from "../db/UserGuildApply";
import { SystemConfigModel } from "../db/SystemConfig";
import { nowSeconds } from "../pubUtils/timeUtil";
/**
* @description 检查该玩家是否有权限做操作
@@ -76,24 +78,19 @@ export async function costFund(code: string, cost: number, sid: string) {
export async function getGuildWithRefActive(guildCode: string, serverId: number) {
// TODO 加写锁
let guild = await GuildModel.findByCode(guildCode, serverId, '+refTimeDaily +refTimeWeekly');
let guild = await GuildModel.findByCode(guildCode, serverId, '+refTimeDaily');
if(!guild) return false;
console.log(JSON.stringify(guild));
const now = new Date();
let { activeDaily, activeWeekly, refTimeDaily, refTimeWeekly} = guild;
let isRefWeek = shouldRefreshWeek(refTimeWeekly, now, 1, 0);
if(isRefWeek) {
activeWeekly = 0; refTimeWeekly = now;
}
let { activeDaily, refTimeDaily} = guild;
let isRefDaily = shouldRefresh(refTimeDaily, now, 0);
if(isRefDaily) {
activeDaily = 0; refTimeDaily = now;
guild = await GuildModel.updateInfo(guildCode, { activeDaily, refTimeDaily }, {});
}
if(isRefWeek || isRefDaily) {
guild = await GuildModel.updateInfo(guildCode, { activeDaily, activeWeekly, refTimeDaily, refTimeWeekly }, {});
}
return guild;
}
@@ -106,15 +103,12 @@ export async function getGuildWithRefActive(guildCode: string, serverId: number)
export async function addGuildActive(guildCode: string, serverId: number, active: number) {
// TODO 加写锁
let guild = await GuildModel.findByCode(guildCode, serverId, '+refTimeDaily +refTimeWeekly');
let guild = await GuildModel.findByCode(guildCode, serverId, '+refTimeDaily');
if(!guild) return false;
const now = new Date();
let { activeDaily, activeWeekly, refTimeDaily, refTimeWeekly} = guild;
let isRefWeek = shouldRefreshWeek(refTimeWeekly, now, 1, 0);
if(isRefWeek) {
activeWeekly = 0; refTimeWeekly = now;
}
let { activeDaily, activeWeekly, refTimeDaily} = guild;
let isRefDaily = shouldRefresh(refTimeDaily, now, 0);
if(isRefDaily) {
activeDaily = 0; refTimeDaily = now;
@@ -122,7 +116,7 @@ export async function addGuildActive(guildCode: string, serverId: number, active
activeWeekly += active; activeDaily += active;
guild = await GuildModel.updateInfo(guildCode, { activeDaily, activeWeekly, refTimeDaily, refTimeWeekly }, {});
guild = await GuildModel.updateInfo(guildCode, { activeDaily, activeWeekly, refTimeDaily }, {});
return guild;
}
@@ -147,3 +141,20 @@ export async function getUserGuildWithRefActive(roleId: string, select: string)
return userGuild;
}
/**
* 每周结算上周公会周功勋和 活跃并发奖励
*
*/
export async function settleGuildWeekly() {
console.log('————— settleGuildWeekly —————');
const guildList = await GuildModel.findAllGuild('code activeWeekly');
for(let { code, activeWeekly } of guildList) {
// 转换周活跃奖励
const userGuildList = await UserGuildModel.getListByGuild(code, 'honourWeekly', { honourWeekly: -1, honourUpdateTime: 1 });
}
await SystemConfigModel.updateSystemConfig({settleGuildWeeklyTime: nowSeconds()}); // 记录一下
}

View File

@@ -1,4 +1,4 @@
import { ITID, CONSUME_TYPE, getCurNameById, ITEM_TABLE, HERO_SYSTEM_TYPE } from './../consts';
import { ITID, CONSUME_TYPE, getCurNameById, ITEM_TABLE, HERO_SYSTEM_TYPE, CURRENCY_BY_TYPE } from './../consts';
import { EquipModel } from './../db/Equip';
import { resResult, parseGoodStr } from '../pubUtils/util';
import { getGoodById } from '../pubUtils/gamedata';

View File

@@ -15,6 +15,7 @@ import { MailModel, MailType } from '../db/Mail';
import { pinus } from 'pinus';
import { indexOf } from 'underscore';
import { PvpSeasonResultModel } from '../db/PvpSeasonResult';
import { settleGuildWeekly } from './guildService';
const PER_SECOND = 1 * 1000;
const PER_DAY = 24 * 60 * 60;
const SETTLE_DIFF = 29 * 60;
@@ -24,6 +25,7 @@ const PER_MINUTE = 1 * 60;
var seasonJobId;
var warJobId;
var seasonEndTimeJobId;
let guildWeeklyJobId
export async function init() {
let seasonEndTime = 0;
let systemConfig = await SystemConfigModel.findSystemConfig();
@@ -52,6 +54,10 @@ export async function init() {
warJobId = scheduleJob("0 0 0 * * 3", resetPvpWarId);
console.log('execute season resetPvpRanks');
await resetPvpRanks();
// 周功勋结算任务
guildWeeklyJobId = scheduleJob('0 0 0 * * 1', settleGuildWeekly, { name: 'settleGuildWeekly' });
}
export async function setPvpSeasonResult(obj:{ name:string, notSetNext?: boolean, notPush?: boolean }) {

View File

@@ -137,7 +137,8 @@ export const CURRENCY_TYPE = {
TREASURE_POINT: "treasurePoint",
EXPEDITION_POINT: "expeditionPoint",
DUNGEON_POINT: "dungeonPoint",
FRIEND_POINT: "friendPoint"
FRIEND_POINT: "friendPoint",
HONOUR: "honour"
}
@@ -153,6 +154,7 @@ const currencyArr = [
{ "gid": 40002, "name": "寻宝币", "type": CURRENCY_TYPE.TREASURE_POINT },
{ "gid": 40003, "name": "情谊点", "type": CURRENCY_TYPE.FRIEND_POINT },
{ "gid": 40004, "name": "秘境币", "type": CURRENCY_TYPE.DUNGEON_POINT },
{ "gid": 40005, "name": "功勋", "type": CURRENCY_TYPE.HONOUR }
];
export const CURRENCY = new Map<number, {gid: number, name: string, type: string}>();
export const CURRENCY_BY_TYPE = new Map<string, number>();
@@ -198,6 +200,8 @@ export function getCurNameById(gid) {
return 'frdCnt';
} else if (currency.type == CURRENCY_TYPE.EXPEDITION_POINT) {
return 'expeditionPoint';
} else if (currency.type == CURRENCY_TYPE.HONOUR) {
return 'honour'
}
}

View File

@@ -297,15 +297,17 @@ export const FILENAME = {
DIC_PVP_HERO_REWARD: 'dic_pvp_heroAccountReward',
DIC_PVP_RANK_REWARD: 'dic_pvp_rankReward',
DIC_PVP_BOX: 'dic_pvp_boxReward',
DIC_GUILD_AUTH: 'authority',
DIC_GUILD_STRUCTURE_CENTER: 'structureCentre',
DIC_GUILD_EQUIP_PRODUCE_BASE: 'equipProduceBase',
DIC_GUILD_BOSS_BASE: 'bossBase',
DIC_GUILD_TRAIN_BASE: 'trainBase',
DIC_GUILD_DONATE_BASE: 'donatebase',
DIC_GUILD_WISH_POOL_BASE: 'wishpool',
DIC_GUILD_STORE_BASE: 'store',
DIC_ACTIVE_DAY_REWARD: 'activeDayReward'
DIC_GUILD_AUTH: 'dic_army_authority',
DIC_GUILD_STRUCTURE_CENTER: 'dic_army_structureCentre',
DIC_GUILD_EQUIP_PRODUCE_BASE: 'dic_army_equipProduceBase',
DIC_GUILD_BOSS_BASE: 'dic_army_bossBase',
DIC_GUILD_TRAIN_BASE: 'dic_army_trainBase',
DIC_GUILD_DONATE_BASE: 'dic_army_donateBase',
DIC_GUILD_WISH_POOL_BASE: 'dic_army_wishPool',
DIC_GUILD_STORE_BASE: 'dic_army_storeBase',
DIC_GUILD_POSITION: 'dic_army_position',
DIC_ACTIVE_DAY_REWARD: 'dic_army_activeDayReward',
DIC_ACTIVE_WEEK_REWARD: 'dic_army_activeWeekReward'
}
export const WAR_RELATE_TABLES = [

View File

@@ -32,7 +32,7 @@ export default class Guild extends BaseModel {
@prop({ required: true, default: false, select: false })
isMemberMax: boolean;
@prop({ required: true, default: 1 })
@prop({ required: true, default: 0 })
managerCnt: number;
@prop({ required: true })
@@ -62,9 +62,6 @@ export default class Guild extends BaseModel {
@prop({ required: true, default: new Date(), select: false })
refTimeDaily: Date;
@prop({ required: true, default: new Date(), select: false })
refTimeWeekly: Date;
@prop({ required: true, default: 0 })
guildCe: number; // 总战力
@@ -93,7 +90,7 @@ export default class Guild extends BaseModel {
}
public static async checkName(name: string, serverId: number) {
const result = await GuildModel.findOne({ name, status: GUILD_STATUS.RUNNING, serverId }).lean();
const result: GuildType = await GuildModel.findOne({ name, status: GUILD_STATUS.RUNNING, serverId }).lean();
return !!result;
}
@@ -105,7 +102,7 @@ export default class Guild extends BaseModel {
if(!!name) {
condition['name'] = { $regex: new RegExp(name, 'i') }
}
const guildList = await GuildModel.find(condition)
const guildList: GuildType[] = await GuildModel.find(condition)
.sort({ lv: -1, guildCe: -1 })
.limit(GUILD_PER_PAGE).skip((page - 1) * GUILD_PER_PAGE)
.select('code icon name lv memberCnt leader ceLimit isAuto')
@@ -114,8 +111,13 @@ export default class Guild extends BaseModel {
return guildList;
}
public static async findAllGuild(select?: string) {
const guildList: GuildType[] = await GuildModel.find({ status: GUILD_STATUS.RUNNING }).select(select).lean();
return guildList;
}
public static async findByCode(code: string, serverId: number, select?: string) {
const result = await GuildModel.findOne({ code, status: GUILD_STATUS.RUNNING, serverId })
const result: GuildType = await GuildModel.findOne({ code, status: GUILD_STATUS.RUNNING, serverId })
.select(select)
.populate('leader', 'roleId roleName sHid headHid lv loginTime ce', 'Role')
.lean();
@@ -123,7 +125,7 @@ export default class Guild extends BaseModel {
}
public static async addGuild(code: string, roleId: string, maxMemberCnt: number, serverId: number) {
let result = await GuildModel.findOneAndUpdate({ code, memberCnt: {$lt: maxMemberCnt }, serverId }, { $inc: { memberCnt: 1 }, $push: { members: roleId } }, { new: true }).lean();
let result: GuildType = await GuildModel.findOneAndUpdate({ code, memberCnt: {$lt: maxMemberCnt }, serverId }, { $inc: { memberCnt: 1 }, $push: { members: roleId } }, { new: true }).lean();
if(result && result.memberCnt >= maxMemberCnt) {
result = await GuildModel.findOneAndUpdate({ code }, { $set: { isMemberMax: true } }).lean();
}
@@ -131,33 +133,33 @@ export default class Guild extends BaseModel {
}
public static async dismiss(code: string, serverId: number) {
const result = await GuildModel.findOneAndUpdate({ code, status: GUILD_STATUS.RUNNING, serverId }, { status: GUILD_STATUS.DISMISSED }, { new: true })
const result: GuildType = await GuildModel.findOneAndUpdate({ code, status: GUILD_STATUS.RUNNING, serverId }, { status: GUILD_STATUS.DISMISSED }, { new: true })
.select('+members').lean();
return result;
}
public static async quit(code: string, roleId: string, serverId: number) {
const result = await GuildModel.findOneAndUpdate({ code, serverId }, { $inc: { memberCnt: -1}, $pull: { members: roleId }, isMemberMax: false }, { new: true }).lean();
const result: GuildType = await GuildModel.findOneAndUpdate({ code, serverId }, { $inc: { memberCnt: -1}, $pull: { members: roleId }, isMemberMax: false }, { new: true }).lean();
return result;
}
public static async updateInfo(code: string, update: GuildUpdateParam, incParam: { managerCnt?: number }, select?: string) {
const result = await GuildModel.findOneAndUpdate({ code }, { $set: update, $inc: incParam }, { new: true }).select(select).lean();
const result: GuildType = await GuildModel.findOneAndUpdate({ code }, { $set: update, $inc: incParam }, { new: true }).select(select).lean();
return result;
}
public static async upStructure(code: string, id: number, select?: string) {
if (id == GUILD_STRUCTURE.ARMY_CENTER) {
const result = await GuildModel.findOneAndUpdate({ code, 'structure.id': id }, { $inc: { 'structure.$.lv': 1, lv: 1 }, $set: { isMemberMax: false } }, { new: true }).select(select).lean();
const result: GuildType = await GuildModel.findOneAndUpdate({ code, 'structure.id': id }, { $inc: { 'structure.$.lv': 1, lv: 1 }, $set: { isMemberMax: false } }, { new: true }).select(select).lean();
return result;
} else {
const result = await GuildModel.findOneAndUpdate({ code, 'structure.id': id }, { $inc: { 'structure.$.lv': 1 } }, { new: true }).select(select).lean();
const result: GuildType = await GuildModel.findOneAndUpdate({ code, 'structure.id': id }, { $inc: { 'structure.$.lv': 1 } }, { new: true }).select(select).lean();
return result;
}
}
public static async costFund(code: string, cost: number) {
const result = await GuildModel.findOneAndUpdate({ code, fund: {$gte: cost}}, { $inc: { fund: -1 * cost } }, {new: true}).lean();
const result: GuildType = await GuildModel.findOneAndUpdate({ code, fund: {$gte: cost}}, { $inc: { fund: -1 * cost } }, {new: true}).lean();
return result;
}
}

View File

@@ -13,6 +13,9 @@ export default class SystemConfig extends BaseModel {
seasonEndTime: number; //赛季结束的时间
@prop({ required: true , default: 0 })
oldSeasonEndTime: number; //上赛季结束的时间
@prop({ required: false })
settleGuildWeeklyTime: number;
public static async findSystemConfig(lean = true) {
const result: SystemConfigType = await SystemConfigModel.findOne({ id: 1 }).lean(lean);
return result;
@@ -23,7 +26,7 @@ export default class SystemConfig extends BaseModel {
return result;
}
public static async updateSystemConfig(update: { seasonEndTime?: number, warId?: number, seasonNum?:number , oldSeasonEndTime?: number}, lean = true) {
public static async updateSystemConfig(update: { seasonEndTime?: number, warId?: number, seasonNum?:number , oldSeasonEndTime?: number, settleGuildWeeklyTime?: number}, lean = true) {
const result: SystemConfigType = await SystemConfigModel.findOneAndUpdate({ id: 1}, update, { upsert: true, new: true }).lean(lean);
return result;
}

View File

@@ -45,9 +45,6 @@ export default class UserGuild extends BaseModel {
@prop({ required: true, default: new Date(), select: false })
refTimeDaily: Date;
@prop({ required: true, default: new Date(), select: false })
refTimeWeekly: Date;
@prop({ required: true, default: 0 })
trainCount: number;//每日挑战训练场的次数
@@ -79,7 +76,7 @@ export default class UserGuild extends BaseModel {
return myGuild;
}
public static async getListByGuild(guildCode: string, select?: string) {
public static async getListByGuild(guildCode: string, select?: string, sort: { auth?: number, honourWeekly?: number, honourUpdateTime?: number } = {auth: 1}) {
const userGuilds: UserGuildType[] = await UserGuildModel.find({ guildCode, status: USER_GUILD_STATUS.ON })
.select(select)
.sort({ auth: 1 })
@@ -126,6 +123,11 @@ export default class UserGuild extends BaseModel {
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON }, { $set: update }, { new: true }).select(select).lean();
return result;
}
public static async addHonourWeekly(roleId: string, inc: number, select?: string) {
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON }, { $inc: { honourWeekly: inc } }, { new: true }).select(select).lean();
return result;
}
}
export const UserGuildModel = getModelForClass(UserGuild);

View File

@@ -46,7 +46,8 @@ import { dicPvpBoxs } from './dictionary/DicPvpBox';
import { dicGuildAuth } from './dictionary/DicGuildAuth';
import { dicCenterBase, dicEquipPriduceBase, dicBossBase, dicTrainBase, dicDonateBase, dicWishPoolBase, dicStoreBase, dicStructureConsume } from "./dictionary/DicStructure";
import { dicGuildActiveDayReward } from './dictionary/DicGuildActiveDayReward';
import { RewardInter } from "./interface";
import { dicGuildActiveWeekReward } from './dictionary/DicGuildActiveWeekReward';
import { dicGuildPosition } from "./dictionary/DicGuildPosition";
export const gameData = {
blurprtCompose: dicBlueprtCompose,
@@ -116,7 +117,9 @@ export const gameData = {
wishPoolBase: dicWishPoolBase,
storeBase: dicStoreBase,
structureConsume: dicStructureConsume,
guildActiveDayReward: dicGuildActiveDayReward
guildActiveDayReward: dicGuildActiveDayReward,
guildActiveWeekReward: dicGuildActiveWeekReward,
guildPosition: dicGuildPosition
};
// 在此提供一些原先在gamedata中提供的方法以便更方便获取gameData数据

View File

@@ -0,0 +1,28 @@
// 每周总活跃
import { readJsonFile, parseGoodStr } from '../util'
import { FILENAME } from '../../consts'
import { RewardInter } from '../interface';
export interface DicGuildActiveWeekReward {
// id
readonly id: number;
// 周最低点数
readonly weekPointMin: number;
// 周最高点数
readonly weekPointMax: number;
// 奖励
readonly reward: RewardInter[];
}
const str = readJsonFile(FILENAME.DIC_ACTIVE_DAY_REWARD);
let arr = JSON.parse(str);
export const dicGuildActiveWeekReward = new Map<number, DicGuildActiveWeekReward>();
arr.forEach(o => {
o.reward = parseGoodStr(o.Reward)
dicGuildActiveWeekReward.set(o.id, o);
});
arr = undefined;

View File

@@ -0,0 +1,25 @@
// 军团职位表
import { readJsonFile } from '../util'
import { FILENAME } from '../../consts'
export interface DicGuildPosition {
// 职位id
readonly id: number;
// 职位名
readonly name: string;
// 排名比例
readonly rankProportion: number;
// 拍卖行额外分成占比
readonly sellRatio: number;
// 周活跃额外分成比例
readonly activeRatio: number;
}
const str = readJsonFile(FILENAME.DIC_BLUEPRT_COMPOSE);
let arr = JSON.parse(str);
export const dicGuildPosition = new Map<number, DicGuildPosition>();
arr.forEach(o => {
dicGuildPosition.set(o.id, o);
});

View File

@@ -119,13 +119,16 @@ export interface DicWishPoolBase {
// 等级
readonly level: number;
// 许愿物品
readonly wishGoods: {type: number, quality: number, count: number}[];
readonly wishGoodsEquip: { quality: number, count: number }[];
// 许愿将魂
readonly wishGoodsHero: { quality: number, count: number }[];
}
const DicWishPoolKeys: KeysEnum<DicWishPoolBase> = {
id: true,
level: true,
wishGoods: true
wishGoodsEquip: true,
wishGoodsHero: true
};
// 商店
@@ -208,7 +211,8 @@ const strWishPool = readJsonFile(FILENAME.DIC_GUILD_WISH_POOL_BASE);
let arrWishPool = JSON.parse(strWishPool);
arrWishPool.forEach(o => {
setStructureConsume(o);
o.wishGoods = parseWishGoods(o.wishgoods);
o.wishGoodsEquip = parseWishGoods(o.wishgoodsEquip);
o.wishGoodsHero = parseWishGoods(o.wishgoodsHero);
dicWishPoolBase.set(o.level, _.pick(o, Object.keys(DicWishPoolKeys)));
});
arrWishPool = undefined;
@@ -259,16 +263,16 @@ export function parseDonateReward(str: string) {
return result
}
// {"type": number, "quality": number, "count": number}
// { "quality": number, "count": number}
export function parseWishGoods(str: string) {
let result = new Array<{ type: number, quality: number, count: number }>();
let result = new Array<{ quality: number, count: number }>();
if (!str) return result;
let decodeArr = decodeArrayListStr(str);
for (let [type, quality, count] of decodeArr) {
if (isNaN(parseInt(type)) || isNaN(parseInt(quality))|| isNaN(parseInt(count))) {
for (let [quality, count] of decodeArr) {
if ( isNaN(parseInt(quality))|| isNaN(parseInt(count))) {
throw new Error('data table format wrong');
}
result.push({ type: parseInt(type), quality: parseInt(quality), count: parseInt(count) });
result.push({ quality: parseInt(quality), count: parseInt(count) });
}
return result
}

View File

@@ -9,6 +9,7 @@ import { RANDOM_SE_COUNT, FIX_ATTRIBUTES_RAN, ITID, CURRENCY_BY_TYPE, CURRENCY_T
import { getRandValueByMinMax, getRandEelm } from './util';
import { findWhere } from 'underscore';
import { UserGuildModel } from '../db/UserGuild';
export async function addSkins(roleId: string, id: number) {
let skinInfo = gameData.fashion.get(id);
@@ -27,6 +28,10 @@ export async function addSkins(roleId: string, id: number) {
export async function addBags(roleId: string, roleName: string, data: BagInter) {
let { id, count, itemName, type, hid } = data;
let item = await ItemModel.increaseItem(roleId, id, count, { roleId, roleName, itemName, id, type, hid });
if(item.id == CURRENCY_BY_TYPE.get(CURRENCY_TYPE.HONOUR) ) {
await UserGuildModel.addHonourWeekly(roleId, count);
}
return { id: item.id, count: item.count };
}

View File

@@ -1,102 +0,0 @@
[
{
"id": 1,
"structureId": 3,
"level": 1,
"bossLevel": 20,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 2,
"structureId": 3,
"level": 2,
"bossLevel": 25,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 3,
"structureId": 3,
"level": 3,
"bossLevel": 30,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 4,
"structureId": 3,
"level": 4,
"bossLevel": 40,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 5,
"structureId": 3,
"level": 5,
"bossLevel": 50,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 6,
"structureId": 3,
"level": 6,
"bossLevel": 60,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 7,
"structureId": 3,
"level": 7,
"bossLevel": 70,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 8,
"structureId": 3,
"level": 8,
"bossLevel": 80,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 9,
"structureId": 3,
"level": 9,
"bossLevel": 90,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 10,
"structureId": 3,
"level": 10,
"bossLevel": 100,
"warId": 0,
"reward": 0,
"consume": 0,
"buildWords": 0
}
]

View File

@@ -2,21 +2,21 @@
{
"id": 1,
"activeDayPoint": 1000,
"Reward": 0
"Reward": "40005&1000"
},
{
"id": 2,
"activeDayPoint": 2000,
"Reward": 0
"Reward": "31002&500"
},
{
"id": 3,
"activeDayPoint": 3000,
"Reward": 0
"Reward": "40005&3000"
},
{
"id": 4,
"activeDayPoint": 4000,
"Reward": 0
"Reward": "31002&1000"
}
]

View File

@@ -0,0 +1,26 @@
[
{
"id": 1,
"name": "捐献所",
"cout": 5,
"activePoint": "1&3|2&5|3&8"
},
{
"id": 2,
"name": "练兵场",
"cout": 4,
"activePoint": "1&5"
},
{
"id": 3,
"name": "演武台",
"cout": 1,
"activePoint": "1&20"
},
{
"id": 4,
"name": "军团活动",
"cout": 2,
"activePoint": "1&30"
}
]

View File

@@ -0,0 +1,56 @@
[
{
"id": 1,
"weekPointMin": 24000,
"weekPointMax": -1,
"Reward": "31002&8000"
},
{
"id": 2,
"weekPointMin": 20000,
"weekPointMax": 23999,
"Reward": "31002&6666"
},
{
"id": 3,
"weekPointMin": 15000,
"weekPointMax": 19999,
"Reward": "31002&5000"
},
{
"id": 4,
"weekPointMin": 10000,
"weekPointMax": 14999,
"Reward": "31002&3166"
},
{
"id": 5,
"weekPointMin": 6000,
"weekPointMax": 9999,
"Reward": "31002&2000"
},
{
"id": 6,
"weekPointMin": 3000,
"weekPointMax": 5999,
"Reward": "31002&999"
},
{
"id": 7,
"weekPointMin": 2000,
"weekPointMax": 2999,
"Reward": "31002&666"
},
{
"id": 8,
"weekPointMin": 1000,
"weekPointMax": 1999,
"Reward": "31002&333"
},
{
"id": 9,
"weekPointMin": 0,
"weekPointMax": 999,
"Reward": "31002&111"
}
]

View File

@@ -0,0 +1,102 @@
[
{
"id": 1,
"structureId": 3,
"level": 1,
"bossLevel": 20,
"warId": "8001&8002&8003&8004",
"reward": "21008&40&1|42008&20&2",
"consume": 5000,
"buildWords": "&"
},
{
"id": 2,
"structureId": 3,
"level": 2,
"bossLevel": 25,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 6000,
"buildWords": "&"
},
{
"id": 3,
"structureId": 3,
"level": 3,
"bossLevel": 30,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 7000,
"buildWords": "&"
},
{
"id": 4,
"structureId": 3,
"level": 4,
"bossLevel": 40,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 8000,
"buildWords": "&"
},
{
"id": 5,
"structureId": 3,
"level": 5,
"bossLevel": 50,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 9000,
"buildWords": "&"
},
{
"id": 6,
"structureId": 3,
"level": 6,
"bossLevel": 60,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 10000,
"buildWords": "&"
},
{
"id": 7,
"structureId": 3,
"level": 7,
"bossLevel": 70,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 11000,
"buildWords": "&"
},
{
"id": 8,
"structureId": 3,
"level": 8,
"bossLevel": 80,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 12000,
"buildWords": "&"
},
{
"id": 9,
"structureId": 3,
"level": 9,
"bossLevel": 90,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 13000,
"buildWords": "&"
},
{
"id": 10,
"structureId": 3,
"level": 10,
"bossLevel": 100,
"warId": "8001&8002&8003&8004",
"reward": "20001&60&1|21008&40&1|42008&20&2|42115&20&3",
"consume": 15000,
"buildWords": "&"
}
]

View File

@@ -0,0 +1,38 @@
[
{
"id": 1,
"rankMin": 1,
"rankMax": 1,
"reward": "40005&6000"
},
{
"id": 2,
"rankMin": 2,
"rankMax": 3,
"reward": "40005&4000"
},
{
"id": 3,
"rankMin": 4,
"rankMax": 10,
"reward": "40005&3000"
},
{
"id": 4,
"rankMin": 11,
"rankMax": 20,
"reward": "40005&2000"
},
{
"id": 5,
"rankMin": 21,
"rankMax": 50,
"reward": "40005&1000"
},
{
"id": 6,
"rankMin": 51,
"rankMax": -1,
"reward": "40005&500"
}
]

View File

@@ -0,0 +1,242 @@
[
{
"id": 1,
"quality": 1,
"levelMin": 1,
"levelMax": 19,
"preposition": "&",
"honourConsume": "40005&2000",
"fundConsume": 0,
"timeConsume": 0
},
{
"id": 2,
"quality": 2,
"levelMin": 1,
"levelMax": 19,
"preposition": "1&",
"honourConsume": "40005&3000",
"fundConsume": 500,
"timeConsume": 270
},
{
"id": 3,
"quality": 3,
"levelMin": 1,
"levelMax": 19,
"preposition": "1&",
"honourConsume": "40005&6000",
"fundConsume": 1000,
"timeConsume": 530
},
{
"id": 4,
"quality": 4,
"levelMin": 1,
"levelMax": 19,
"preposition": "1&",
"honourConsume": "40005&13500",
"fundConsume": 2000,
"timeConsume": 1200
},
{
"id": 5,
"quality": 1,
"levelMin": 20,
"levelMax": 39,
"preposition": "&",
"honourConsume": "40005&3000",
"fundConsume": 0,
"timeConsume": 0
},
{
"id": 6,
"quality": 2,
"levelMin": 20,
"levelMax": 39,
"preposition": "5&2",
"honourConsume": "40005&4500",
"fundConsume": 1000,
"timeConsume": 270
},
{
"id": 7,
"quality": 3,
"levelMin": 20,
"levelMax": 39,
"preposition": "5&3",
"honourConsume": "40005&9000",
"fundConsume": 2000,
"timeConsume": 530
},
{
"id": 8,
"quality": 4,
"levelMin": 20,
"levelMax": 39,
"preposition": "5&4",
"honourConsume": "40005&20250",
"fundConsume": 4000,
"timeConsume": 1200
},
{
"id": 9,
"quality": 1,
"levelMin": 40,
"levelMax": 59,
"preposition": "&",
"honourConsume": "40005&4000",
"fundConsume": 0,
"timeConsume": 0
},
{
"id": 10,
"quality": 2,
"levelMin": 40,
"levelMax": 59,
"preposition": "9&6",
"honourConsume": "40005&6000",
"fundConsume": 1500,
"timeConsume": 270
},
{
"id": 11,
"quality": 3,
"levelMin": 40,
"levelMax": 59,
"preposition": "9&7",
"honourConsume": "40005&12000",
"fundConsume": 3000,
"timeConsume": 530
},
{
"id": 12,
"quality": 4,
"levelMin": 40,
"levelMax": 59,
"preposition": "9&8",
"honourConsume": "40005&27000",
"fundConsume": 6000,
"timeConsume": 1200
},
{
"id": 13,
"quality": 1,
"levelMin": 60,
"levelMax": 79,
"preposition": "&",
"honourConsume": "40005&5000",
"fundConsume": 0,
"timeConsume": 0
},
{
"id": 14,
"quality": 2,
"levelMin": 60,
"levelMax": 79,
"preposition": "13&10",
"honourConsume": "40005&7500",
"fundConsume": 2000,
"timeConsume": 270
},
{
"id": 15,
"quality": 3,
"levelMin": 60,
"levelMax": 79,
"preposition": "13&11",
"honourConsume": "40005&15000",
"fundConsume": 4000,
"timeConsume": 530
},
{
"id": 16,
"quality": 4,
"levelMin": 60,
"levelMax": 79,
"preposition": "13&12",
"honourConsume": "40005&33750",
"fundConsume": 8000,
"timeConsume": 1200
},
{
"id": 17,
"quality": 1,
"levelMin": 80,
"levelMax": 99,
"preposition": "&",
"honourConsume": "40005&6000",
"fundConsume": 0,
"timeConsume": 0
},
{
"id": 18,
"quality": 2,
"levelMin": 80,
"levelMax": 99,
"preposition": "17&14",
"honourConsume": "40005&9000",
"fundConsume": 2500,
"timeConsume": 270
},
{
"id": 19,
"quality": 3,
"levelMin": 80,
"levelMax": 99,
"preposition": "17&15",
"honourConsume": "40005&18000",
"fundConsume": 5000,
"timeConsume": 530
},
{
"id": 20,
"quality": 4,
"levelMin": 80,
"levelMax": 99,
"preposition": "17&16",
"honourConsume": "40005&40500",
"fundConsume": 10000,
"timeConsume": 1200
},
{
"id": 21,
"quality": 1,
"levelMin": 100,
"levelMax": 100,
"preposition": "&",
"honourConsume": "40005&7000",
"fundConsume": 0,
"timeConsume": 0
},
{
"id": 22,
"quality": 2,
"levelMin": 100,
"levelMax": 100,
"preposition": "21&18",
"honourConsume": "40005&10500",
"fundConsume": 3000,
"timeConsume": 270
},
{
"id": 23,
"quality": 3,
"levelMin": 100,
"levelMax": 100,
"preposition": "21&19",
"honourConsume": "40005&21000",
"fundConsume": 6000,
"timeConsume": 530
},
{
"id": 24,
"quality": 4,
"levelMin": 100,
"levelMax": 100,
"preposition": "21&20",
"honourConsume": "40005&47250",
"fundConsume": 12000,
"timeConsume": 1200
}
]

View File

@@ -5,8 +5,8 @@
"level": 1,
"donatevalue": "1&2000|2&10|2&20",
"donateReward": "20&20|100&200|400&600",
"consume": 0,
"buildWords": 0,
"consume": 5000,
"buildWords": "&",
"boxRewardRatio": 1
},
{
@@ -15,8 +15,8 @@
"level": 2,
"donatevalue": "1&4000|2&20|2&40",
"donateReward": "40&40|200&400|600&1000",
"consume": 0,
"buildWords": 0,
"consume": 6000,
"buildWords": "&",
"boxRewardRatio": 1.05
},
{
@@ -24,9 +24,9 @@
"structureId": 5,
"level": 3,
"donatevalue": "1&6000|2&30|2&60",
"donateReward": 0,
"consume": 0,
"buildWords": 0,
"donateReward": "60&60|300&600|800&1400",
"consume": 7000,
"buildWords": "&",
"boxRewardRatio": 1.1
},
{
@@ -34,9 +34,9 @@
"structureId": 5,
"level": 4,
"donatevalue": "1&8000|2&40|2&80",
"donateReward": 0,
"consume": 0,
"buildWords": 0,
"donateReward": "80&80|400&800|1000&1800",
"consume": 8000,
"buildWords": "&",
"boxRewardRatio": 1.15
},
{
@@ -44,9 +44,9 @@
"structureId": 5,
"level": 5,
"donatevalue": "1&10000|2&50|2&100",
"donateReward": 0,
"consume": 0,
"buildWords": 0,
"donateReward": "100&100|500&1000|1200&2200",
"consume": 9000,
"buildWords": "&",
"boxRewardRatio": 1.2
},
{
@@ -54,9 +54,9 @@
"structureId": 5,
"level": 6,
"donatevalue": "1&12000|2&60|2&120",
"donateReward": 0,
"consume": 0,
"buildWords": 0,
"donateReward": "120&120|600&1200|1400&2600",
"consume": 10000,
"buildWords": "&",
"boxRewardRatio": 1.3
},
{
@@ -64,9 +64,9 @@
"structureId": 5,
"level": 7,
"donatevalue": "1&14000|2&70|2&140",
"donateReward": 0,
"consume": 0,
"buildWords": 0,
"donateReward": "140&140|700&1400|1600&3000",
"consume": 11000,
"buildWords": "&",
"boxRewardRatio": 1.4
},
{
@@ -74,9 +74,9 @@
"structureId": 5,
"level": 8,
"donatevalue": "1&16000|2&80|2&160",
"donateReward": 0,
"consume": 0,
"buildWords": 0,
"donateReward": "160&160|800&1600|1800&3400",
"consume": 12000,
"buildWords": "&",
"boxRewardRatio": 1.5
},
{
@@ -84,9 +84,9 @@
"structureId": 5,
"level": 9,
"donatevalue": "1&18000|2&90|2&180",
"donateReward": 0,
"consume": 0,
"buildWords": 0,
"donateReward": "180&180|900&1800|2000&3800",
"consume": 13000,
"buildWords": "&",
"boxRewardRatio": 1.6
},
{
@@ -94,9 +94,9 @@
"structureId": 5,
"level": 10,
"donatevalue": "1&20000|2&100|2&200",
"donateReward": 0,
"consume": 0,
"buildWords": 0,
"donateReward": "200&200|1000&2000|2200&4200",
"consume": 15000,
"buildWords": "&",
"boxRewardRatio": 1.7
}
]

View File

@@ -0,0 +1,22 @@
[
{
"id": 1,
"fund": 1000,
"boxReward": "31001&10000"
},
{
"id": 2,
"fund": 3000,
"boxReward": "40005&2000"
},
{
"id": 3,
"fund": 5000,
"boxReward": "31002&200"
},
{
"id": 4,
"fund": 10000,
"boxReward": "31002&500"
}
]

View File

@@ -5,8 +5,8 @@
"level": 1,
"levelProduce": 19,
"qualityProduce": "1&2",
"consume": 0,
"buildWords": 0
"consume": 5000,
"buildWords": "&"
},
{
"id": 2,
@@ -14,8 +14,8 @@
"level": 2,
"levelProduce": 19,
"qualityProduce": "3&4",
"consume": 0,
"buildWords": 0
"consume": 6000,
"buildWords": "&"
},
{
"id": 3,
@@ -23,8 +23,8 @@
"level": 3,
"levelProduce": 39,
"qualityProduce": "1&2",
"consume": 0,
"buildWords": 0
"consume": 7000,
"buildWords": "&"
},
{
"id": 4,
@@ -32,8 +32,8 @@
"level": 4,
"levelProduce": 39,
"qualityProduce": "3&4",
"consume": 0,
"buildWords": 0
"consume": 8000,
"buildWords": "&"
},
{
"id": 5,
@@ -41,8 +41,8 @@
"level": 5,
"levelProduce": 59,
"qualityProduce": "1&2",
"consume": 0,
"buildWords": 0
"consume": 9000,
"buildWords": "&"
},
{
"id": 6,
@@ -50,8 +50,8 @@
"level": 6,
"levelProduce": 59,
"qualityProduce": "3&4",
"consume": 0,
"buildWords": 0
"consume": 10000,
"buildWords": "&"
},
{
"id": 7,
@@ -59,8 +59,8 @@
"level": 7,
"levelProduce": 79,
"qualityProduce": "1&2",
"consume": 0,
"buildWords": 0
"consume": 11000,
"buildWords": "&"
},
{
"id": 8,
@@ -68,8 +68,8 @@
"level": 8,
"levelProduce": 79,
"qualityProduce": "3&4",
"consume": 0,
"buildWords": 0
"consume": 12000,
"buildWords": "&"
},
{
"id": 9,
@@ -77,8 +77,8 @@
"level": 9,
"levelProduce": 99,
"qualityProduce": "1&2&3&4",
"consume": 0,
"buildWords": 0
"consume": 13000,
"buildWords": "&"
},
{
"id": 10,
@@ -86,8 +86,8 @@
"level": 10,
"levelProduce": 100,
"qualityProduce": "1&2&3&4",
"consume": 0,
"buildWords": 0
"consume": 15000,
"buildWords": "&"
},
{
"id": 0,

View File

@@ -0,0 +1,44 @@
[
{
"id": 1,
"name": "大将军",
"rankProportion": 0,
"sellRatio": 5,
"activeRatio": 5
},
{
"id": 2,
"name": "将军",
"rankProportion": 5,
"sellRatio": 20,
"activeRatio": 20
},
{
"id": 3,
"name": "校尉",
"rankProportion": 15,
"sellRatio": 30,
"activeRatio": 30
},
{
"id": 4,
"name": "什长",
"rankProportion": 30,
"sellRatio": 25,
"activeRatio": 25
},
{
"id": 5,
"name": "伍长",
"rankProportion": 50,
"sellRatio": 20,
"activeRatio": 20
},
{
"id": 6,
"name": "士兵",
"rankProportion": 100,
"sellRatio": 0,
"activeRatio": 0
}
]

View File

@@ -0,0 +1,46 @@
[
{
"id": 1,
"str": "%d加入军团热烈欢迎"
},
{
"id": 2,
"str": "%d离开军团大路朝天各走一边"
},
{
"id": 3,
"str": "%d得大将军赏识被提拔为管理"
},
{
"id": 4,
"str": "军团上下一心,%d升至%d级"
},
{
"id": 5,
"str": "恭喜各位小将军,炼器堂已完成%d~%d等级%d品质装备碎片研发"
},
{
"id": 6,
"str": "恭喜各位小将军,演武台%d已被击杀"
},
{
"id": 7,
"str": "今日%d已开启请各位小将军前往击杀"
},
{
"id": 8,
"str": "恭喜各位小将军,练兵场%d据点已被压制"
},
{
"id": 9,
"str": "试炼%d已开启请各位小将军前往压制"
},
{
"id": 10,
"str": "军团%d已将大将军转让给%d"
},
{
"id": 11,
"str": "%d玩忽职守已被弹劾恭喜%d升任大将军"
}
]

View File

@@ -0,0 +1,44 @@
[
{
"id": 1,
"itid": 25,
"quality": 1,
"Reward": "40005&200"
},
{
"id": 2,
"itid": 25,
"quality": 2,
"Reward": "40005&400"
},
{
"id": 3,
"itid": 25,
"quality": 3,
"Reward": "40005&800"
},
{
"id": 4,
"itid": 40,
"quality": 1,
"Reward": "40005&100"
},
{
"id": 5,
"itid": 40,
"quality": 2,
"Reward": "40005&200"
},
{
"id": 6,
"itid": 40,
"quality": 3,
"Reward": "40005&400"
},
{
"id": 7,
"itid": 40,
"quality": 4,
"Reward": "40005&800"
}
]

View File

@@ -0,0 +1,82 @@
[
{
"id": 1,
"structureId": 6,
"level": 1,
"storeGoods": 0,
"consume": 5000,
"buildWords": "&"
},
{
"id": 2,
"structureId": 6,
"level": 2,
"storeGoods": 0,
"consume": 6000,
"buildWords": "&"
},
{
"id": 3,
"structureId": 6,
"level": 3,
"storeGoods": 0,
"consume": 7000,
"buildWords": "&"
},
{
"id": 4,
"structureId": 6,
"level": 4,
"storeGoods": 0,
"consume": 8000,
"buildWords": "&"
},
{
"id": 5,
"structureId": 6,
"level": 5,
"storeGoods": 0,
"consume": 9000,
"buildWords": "&"
},
{
"id": 6,
"structureId": 6,
"level": 6,
"storeGoods": 0,
"consume": 10000,
"buildWords": "&"
},
{
"id": 7,
"structureId": 6,
"level": 7,
"storeGoods": 0,
"consume": 11000,
"buildWords": "&"
},
{
"id": 8,
"structureId": 6,
"level": 8,
"storeGoods": 0,
"consume": 12000,
"buildWords": "&"
},
{
"id": 9,
"structureId": 6,
"level": 9,
"storeGoods": 0,
"consume": 13000,
"buildWords": "&"
},
{
"id": 10,
"structureId": 6,
"level": 10,
"storeGoods": 0,
"consume": 15000,
"buildWords": "&"
}
]

View File

@@ -0,0 +1,20 @@
[
{
"id": 1,
"itid": 25,
"quality": 1,
"honourReward": 1200
},
{
"id": 2,
"itid": 25,
"quality": 2,
"honourReward": 1400
},
{
"id": 3,
"itid": 25,
"quality": 3,
"honourReward": 1800
}
]

View File

@@ -5,8 +5,8 @@
"level": 1,
"peopleNum": 60,
"managerNum": 2,
"consume": 0,
"buildWords": 0
"consume": 10000,
"buildWords": "&"
},
{
"id": 2,
@@ -14,8 +14,8 @@
"level": 2,
"peopleNum": 60,
"managerNum": 2,
"consume": 0,
"buildWords": 0
"consume": 20000,
"buildWords": "&"
},
{
"id": 3,
@@ -23,8 +23,8 @@
"level": 3,
"peopleNum": 60,
"managerNum": 2,
"consume": 0,
"buildWords": 0
"consume": 30000,
"buildWords": "&"
},
{
"id": 4,
@@ -32,8 +32,8 @@
"level": 4,
"peopleNum": 70,
"managerNum": 3,
"consume": 0,
"buildWords": 0
"consume": 40000,
"buildWords": "&"
},
{
"id": 5,
@@ -41,8 +41,8 @@
"level": 5,
"peopleNum": 70,
"managerNum": 3,
"consume": 0,
"buildWords": 0
"consume": 50000,
"buildWords": "&"
},
{
"id": 6,
@@ -50,8 +50,8 @@
"level": 6,
"peopleNum": 70,
"managerNum": 3,
"consume": 0,
"buildWords": 0
"consume": 60000,
"buildWords": "&"
},
{
"id": 7,
@@ -59,8 +59,8 @@
"level": 7,
"peopleNum": 80,
"managerNum": 4,
"consume": 0,
"buildWords": 0
"consume": 70000,
"buildWords": "&"
},
{
"id": 8,
@@ -68,8 +68,8 @@
"level": 8,
"peopleNum": 80,
"managerNum": 4,
"consume": 0,
"buildWords": 0
"consume": 80000,
"buildWords": "&"
},
{
"id": 9,
@@ -77,8 +77,8 @@
"level": 9,
"peopleNum": 80,
"managerNum": 5,
"consume": 0,
"buildWords": 0
"consume": 90000,
"buildWords": "&"
},
{
"id": 10,
@@ -86,7 +86,7 @@
"level": 10,
"peopleNum": 100,
"managerNum": 5,
"consume": 0,
"buildWords": 0
"consume": 100000,
"buildWords": "&"
}
]

View File

@@ -7,9 +7,9 @@
"name": "一阶",
"difficultyRatio": 1,
"shilianRewardRatio": 1,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 5000,
"buildWords": "&",
"jinjieReward": "40005&2000|31002&3000"
},
{
"id": 2,
@@ -19,9 +19,9 @@
"name": "二阶",
"difficultyRatio": 1.1,
"shilianRewardRatio": 1.1,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 6000,
"buildWords": "&",
"jinjieReward": "40005&3000|31002&3000"
},
{
"id": 3,
@@ -31,9 +31,9 @@
"name": "三阶",
"difficultyRatio": 1.2,
"shilianRewardRatio": 1.2,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 7000,
"buildWords": "&",
"jinjieReward": "40005&2000|31002&3001"
},
{
"id": 4,
@@ -43,9 +43,9 @@
"name": "四阶",
"difficultyRatio": 1.3,
"shilianRewardRatio": 1.3,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 8000,
"buildWords": "&",
"jinjieReward": "40005&3000|31002&3001"
},
{
"id": 5,
@@ -55,9 +55,9 @@
"name": "五阶",
"difficultyRatio": 1.4,
"shilianRewardRatio": 1.4,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 9000,
"buildWords": "&",
"jinjieReward": "40005&2000|31002&3002"
},
{
"id": 6,
@@ -67,9 +67,9 @@
"name": "六阶",
"difficultyRatio": 1.5,
"shilianRewardRatio": 1.5,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 10000,
"buildWords": "&",
"jinjieReward": "40005&3000|31002&3002"
},
{
"id": 7,
@@ -79,9 +79,9 @@
"name": "七阶",
"difficultyRatio": 1.6,
"shilianRewardRatio": 1.6,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 11000,
"buildWords": "&",
"jinjieReward": "40005&2000|31002&3003"
},
{
"id": 8,
@@ -91,9 +91,9 @@
"name": "八阶",
"difficultyRatio": 1.7,
"shilianRewardRatio": 1.7,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 12000,
"buildWords": "&",
"jinjieReward": "40005&3000|31002&3003"
},
{
"id": 9,
@@ -103,9 +103,9 @@
"name": "九阶",
"difficultyRatio": 1.8,
"shilianRewardRatio": 1.8,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 13000,
"buildWords": "&",
"jinjieReward": "40005&2000|31002&3004"
},
{
"id": 10,
@@ -115,8 +115,8 @@
"name": "十阶",
"difficultyRatio": 2,
"shilianRewardRatio": 2,
"consume": 0,
"buildWords": 0,
"jinjieReward": 0
"consume": 15000,
"buildWords": "&",
"jinjieReward": "40005&3000|31002&3004"
}
]

View File

@@ -0,0 +1,92 @@
[
{
"id": 1,
"name": "试炼1-初出茅庐",
"count": 4,
"heroid": "1&3&5&4",
"gkid": "1&8501|3&8502|5&8503|7&8504",
"shilianReward": "40005&6000|20001&60|21008&30|42008&10",
"soloRewardRatio": 1
},
{
"id": 2,
"name": "试炼2-过关斩将",
"count": 4,
"heroid": "2&3&5&7",
"gkid": "2&8505|3&8506&|5&8507|7&8508",
"shilianReward": "40005&4000|20001&60|21008&30|42008&11",
"soloRewardRatio": 1.1
},
{
"id": 3,
"name": "试炼3-黄巾起义",
"count": 4,
"heroid": "7&8&9&10",
"gkid": "7&8509|8&8510|9&8511|10&8512",
"shilianReward": "40005&3000|20001&60|21008&30|42008&12",
"soloRewardRatio": 1.2
},
{
"id": 4,
"name": "试炼4-火烧赤壁",
"count": 4,
"heroid": "11&12&13&14",
"gkid": "11&8513|12&8514|13&8515|14&8516",
"shilianReward": "40005&2000|20001&60|21008&30|42008&13",
"soloRewardRatio": 1.3
},
{
"id": 5,
"name": "试炼5-官渡之战",
"count": 4,
"heroid": "7&8&9&11",
"gkid": "7&8517|8&8518|9&8519|11&8520",
"shilianReward": "40005&1000|20001&60|21008&30|42008&14",
"soloRewardRatio": 1.4
},
{
"id": 6,
"name": "试炼6- 后起之秀",
"count": 4,
"heroid": "11&12&13&15",
"gkid": "11&8521|12&8522|13&8523|15&8524",
"shilianReward": "40005&500|20001&60|21008&30|42008&15",
"soloRewardRatio": 1.5
},
{
"id": 7,
"name": "试炼7- 分庭抗礼",
"count": 4,
"heroid": "7&8&9&12",
"gkid": "7&8525|8&8526|9&852712&8528",
"shilianReward": "40005&6000|20001&60|21008&30|42008&16",
"soloRewardRatio": 1.6
},
{
"id": 8,
"name": "试炼8- 群雄逐鹿",
"count": 4,
"heroid": "11&12&13&16",
"gkid": "11&8529|12&8530|13&8531|16&8532",
"shilianReward": "40005&4000|20001&60|21008&30|42008&17",
"soloRewardRatio": 1.7
},
{
"id": 9,
"name": "试炼9-三足鼎立",
"count": 4,
"heroid": "7&8&9&13",
"gkid": "7&8533|8&8534|9&8535|13&8536",
"shilianReward": "40005&3000|20001&60|21008&30|42008&18",
"soloRewardRatio": 1.8
},
{
"id": 10,
"name": "试炼10-封金挂印",
"count": 4,
"heroid": "11&12&13&17",
"gkid": "11&8537|12&8538|13&8539|17&8540",
"shilianReward": "40005&2000|20001&60|21008&30|42008&19",
"soloRewardRatio": 2
}
]

View File

@@ -0,0 +1,23 @@
[
{
"id": 1,
"name": "普通",
"ratio": 1,
"winReward": "1&10|2&2000",
"failReward": "1&2|2&200"
},
{
"id": 2,
"name": "精英",
"ratio": 1.2,
"winReward": "1&20|2&2400",
"failReward": "1&4|2&240"
},
{
"id": 3,
"name": "噩梦",
"ratio": 1.4,
"winReward": "1&40|2&2700",
"failReward": "1&8|2&270"
}
]

View File

@@ -0,0 +1,92 @@
[
{
"id": 1,
"structureId": 5,
"level": 1,
"wishgoodsEquip": "2&1",
"wishgoodsHero": "&",
"consume": 5000,
"buildWords": "&"
},
{
"id": 2,
"structureId": 5,
"level": 2,
"wishgoodsEquip": "2&1",
"wishgoodsHero": "&",
"consume": 6000,
"buildWords": "&"
},
{
"id": 3,
"structureId": 5,
"level": 3,
"wishgoodsEquip": "2&2",
"wishgoodsHero": "&",
"consume": 7000,
"buildWords": "&"
},
{
"id": 4,
"structureId": 5,
"level": 4,
"wishgoodsEquip": "2&2",
"wishgoodsHero": "1&2",
"consume": 8000,
"buildWords": "&"
},
{
"id": 5,
"structureId": 5,
"level": 5,
"wishgoodsEquip": "2&2|3&1",
"wishgoodsHero": "1&2",
"consume": 9000,
"buildWords": "&"
},
{
"id": 6,
"structureId": 5,
"level": 6,
"wishgoodsEquip": "2&2|3&1",
"wishgoodsHero": "1&2|2&1",
"consume": 10000,
"buildWords": "&"
},
{
"id": 7,
"structureId": 5,
"level": 7,
"wishgoodsEquip": "2&2|3&2",
"wishgoodsHero": "1&2|2&1",
"consume": 11000,
"buildWords": "&"
},
{
"id": 8,
"structureId": 5,
"level": 8,
"wishgoodsEquip": "2&2|3&2",
"wishgoodsHero": "1&2|2&1",
"consume": 12000,
"buildWords": "&"
},
{
"id": 9,
"structureId": 5,
"level": 9,
"wishgoodsEquip": "2&3|3&2|4&1",
"wishgoodsHero": "1&2|2&1|3&1",
"consume": 13000,
"buildWords": "&"
},
{
"id": 10,
"structureId": 5,
"level": 10,
"wishgoodsEquip": "2&3|3&3|4&2",
"wishgoodsHero": "1&2|2&1|3&1",
"consume": 15000,
"buildWords": "&"
}
]

File diff suppressed because it is too large Load Diff

11536
shared/resource/jsons/dic_zyz_gk_Treasure.json Normal file → Executable file

File diff suppressed because it is too large Load Diff

510
shared/resource/jsons/dic_zyz_skill.json Normal file → Executable file
View File

@@ -56,7 +56,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对敌人连续攻击两次每击造成200%的伤害",
"skilNameImage": 0,
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
@@ -96,7 +96,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "回复自身10%生命值并且自身的策略伤害减免上升20%持续2回合",
"skilNameImage": 0,
"skilNameImage": 4,
"skillSceneSpine": "&"
},
{
@@ -136,7 +136,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "使我方指定目标获得幸运提升20%的效果持续4回合",
"skilNameImage": 0,
"skilNameImage": 1,
"skillSceneSpine": "&"
},
{
@@ -176,7 +176,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对目标下毒造成150%伤害附加中毒效果造成每回合25%策攻伤害持续4回合对已有中毒效果的单位立即生成一段毒伤害",
"skilNameImage": 0,
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
@@ -216,7 +216,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "恢复自身10%攻击力的血量并且给自身附加伤害减免10%4回合内作用2次",
"skilNameImage": 0,
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
@@ -256,7 +256,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "大伤害技能",
"skilNameImage": 0,
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
@@ -296,7 +296,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "使我方指定目标获得物理伤害减免提升20%持续2回合",
"skilNameImage": 0,
"skilNameImage": 2,
"skillSceneSpine": "&"
},
{
@@ -336,7 +336,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "极品技能",
"skilNameImage": 0,
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
@@ -416,7 +416,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "回复自身10%生命值并且自身的策略伤害减免上升20%持续2回合",
"skilNameImage": 0,
"skilNameImage": 4,
"skillSceneSpine": "&"
},
{
@@ -456,7 +456,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "使我方指定目标获得物理伤害减免提升30%持续2回合",
"skilNameImage": 0,
"skilNameImage": 2,
"skillSceneSpine": "&"
},
{
@@ -496,7 +496,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "使我方指定目标获得幸运提升20%的效果持续4回合",
"skilNameImage": 0,
"skilNameImage": 1,
"skillSceneSpine": "&"
},
{
@@ -536,7 +536,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对目标下毒造成180%伤害附加中毒效果造成每回合30%策攻伤害持续4回合对已有中毒效果的单位立即生成一段毒伤害",
"skilNameImage": 0,
"skilNameImage": 5,
"skillSceneSpine": "&"
},
{
@@ -576,7 +576,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "恢复自身20%攻击力的血量并且给自身附加伤害减免15%4回合内作用2次",
"skilNameImage": 0,
"skilNameImage": 5,
"skillSceneSpine": "&"
},
{
@@ -636,7 +636,7 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对敌人连续攻击两次每击造成250%的伤害",
"skilNameImage": 0,
"skilNameImage": 5,
"skillSceneSpine": "&"
},
{
@@ -656,7 +656,487 @@
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对敌人连续攻击两次每击造成300%的伤害",
"skilNameImage": 0,
"skilNameImage": 5,
"skillSceneSpine": "&"
},
{
"id": 30,
"imgId": 10,
"name": "七探盘龙枪I",
"hurt_formula": " (ownAtk*0.8*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 100,
"cd": 0,
"attack_area": 5,
"strike_area": 9,
"object": 0,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "四个方向各释放巨龙穿透2个目标对每个被穿透的敌军造成80%物攻伤害",
"skilNameImage": 5,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 31,
"imgId": 10,
"name": "七探盘龙枪II",
"hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 100,
"cd": 0,
"attack_area": 5,
"strike_area": 9,
"object": 0,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "四个方向各释放巨龙穿透2个目标对每个被穿透的敌军造成120%物攻伤害",
"skilNameImage": 5,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 32,
"imgId": 11,
"name": "百鸟朝凤I",
"hurt_formula": " (ownAtk*1.6*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 2,
"effect": "5001&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军造成160%物攻伤害本次伤害10%转化为自身生命",
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
"id": 33,
"imgId": 11,
"name": "百鸟朝凤II",
"hurt_formula": " (ownAtk*2.4*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 2,
"effect": "5001&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军造成240%物攻伤害本次伤害10%转化为自身生命",
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
"id": 34,
"imgId": 11,
"name": "墨家拳I",
"hurt_formula": " (ownAtk*1.76*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军造成176%物攻伤害",
"skilNameImage": 5,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 35,
"imgId": 11,
"name": "墨家拳II",
"hurt_formula": " (ownAtk*2.64*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军造成264%物攻伤害",
"skilNameImage": 5,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 36,
"imgId": 12,
"name": "支援I",
"hurt_formula": 0,
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 2,
"strike_area": 1,
"object": 1,
"skill_class": 2,
"effect": "5010&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "为一个指定我军添加“支援”其受到伤害时夏侯轻衣会分担其30%伤害持续1回合",
"skilNameImage": 5,
"skillSceneSpine": "&"
},
{
"id": 37,
"imgId": 12,
"name": "支援II",
"hurt_formula": 0,
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 2,
"strike_area": 1,
"object": 1,
"skill_class": 2,
"effect": "5011&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "为一个指定我军添加“支援”其受到伤害时夏侯轻衣会分担其30%伤害持续2回合",
"skilNameImage": 5,
"skillSceneSpine": "&"
},
{
"id": 38,
"imgId": 6,
"name": "连珠三箭 I",
"hurt_formula": " (ownAtk*0.88*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 4,
"strike_area": 1,
"object": 0,
"skill_class": 1,
"effect": "5020&",
"actionName": "skill1",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对一个选中敌军及其3格内最多2个随机敌军造成88%的物理伤害",
"skilNameImage": 2,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 39,
"imgId": 6,
"name": "连珠三箭 II",
"hurt_formula": " (ownAtk*1.32*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 4,
"strike_area": 1,
"object": 0,
"skill_class": 1,
"effect": "5021&",
"actionName": "skill1",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对一个选中敌军及其3格内最多2个随机敌军造成132%的物理伤害",
"skilNameImage": 2,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 40,
"imgId": 7,
"name": "鼓舞 I",
"hurt_formula": 0,
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 2,
"strike_area": 1,
"object": 1,
"skill_class": 2,
"effect": "5022&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "使我方指定目标获得幸运提升10%的效果持续2回合",
"skilNameImage": 1,
"skillSceneSpine": "&"
},
{
"id": 41,
"imgId": 7,
"name": "鼓舞 II",
"hurt_formula": 0,
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 2,
"strike_area": 1,
"object": 1,
"skill_class": 2,
"effect": "5023&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "使我方指定目标获得幸运提升20%的效果持续2回合",
"skilNameImage": 1,
"skillSceneSpine": "&"
},
{
"id": 42,
"imgId": 11,
"name": "力劈I",
"hurt_formula": " (ownAtk*1.76*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军造成176%物攻伤害",
"skilNameImage": 2,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 43,
"imgId": 11,
"name": "力劈II",
"hurt_formula": " (ownAtk*2.64*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军造成264%物攻伤害",
"skilNameImage": 2,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 44,
"imgId": 7,
"name": "自愈I",
"hurt_formula": 0,
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 5,
"strike_area": 1,
"object": 1,
"skill_class": 2,
"effect": "4001&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "治疗自身生命上限20%的生命",
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
"id": 45,
"imgId": 7,
"name": "自愈II",
"hurt_formula": 0,
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 5,
"strike_area": 1,
"object": 1,
"skill_class": 2,
"effect": "4013&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "治疗自身生命上限30%的生命",
"skilNameImage": 3,
"skillSceneSpine": "&"
},
{
"id": 46,
"imgId": 11,
"name": "横扫I",
"hurt_formula": " (ownAtk*0.88*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军及其左右敌人造成88%物攻伤害",
"skilNameImage": 2,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 47,
"imgId": 11,
"name": "横扫II",
"hurt_formula": " (ownAtk*1.32*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军及其左右敌人造成132%物攻伤害",
"skilNameImage": 2,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 48,
"imgId": 7,
"name": "猛击I",
"hurt_formula": " (ownAtk*1.41*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 2,
"effect": "&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军造成141%的物攻伤害",
"skilNameImage": 5,
"skillSceneSpine": "&"
},
{
"id": 49,
"imgId": 7,
"name": "猛击II",
"hurt_formula": " (ownAtk*2.4*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 3,
"strike_area": 1,
"object": 0,
"skill_class": 2,
"effect": "&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对一个指定敌军造成240%的物攻伤害",
"skilNameImage": 5,
"skillSceneSpine": "&"
},
{
"id": 50,
"imgId": 11,
"name": "胡笳十八拍I",
"hurt_formula": " (ownAtk*0.32*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 1,
"strike_area": 2,
"object": 1,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "治疗所有我军32%策攻的生命",
"skilNameImage": 2,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 51,
"imgId": 11,
"name": "胡笳十八拍II",
"hurt_formula": " (ownAtk*0.48*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 0,
"attack_area": 1,
"strike_area": 2,
"object": 1,
"skill_class": 1,
"effect": "&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "治疗所有我军48%策攻的生命",
"skilNameImage": 2,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 52,
"imgId": 7,
"name": "奏乐I",
"hurt_formula": 0,
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 1,
"strike_area": 1,
"object": 1,
"skill_class": 2,
"effect": "5050&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "8格内,为所有我军添加“奏乐”, 提高怒气回复速度10%, 持续2回合",
"skilNameImage": 0,
"skillSceneSpine": 0
},
{
"id": 53,
"imgId": 7,
"name": "奏乐II",
"hurt_formula": 0,
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 1,
"strike_area": 1,
"object": 1,
"skill_class": 2,
"effect": "5051&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "8格内,为所有我军添加“奏乐”, 提高怒气回复速度20%, 持续2回合",
"skilNameImage": 0,
"skillSceneSpine": 0
}
]

View File

@@ -1,62 +0,0 @@
[
{
"id": 1,
"structureId": 6,
"level": 1,
"storeGoods": 0
},
{
"id": 2,
"structureId": 6,
"level": 2,
"storeGoods": 0
},
{
"id": 3,
"structureId": 6,
"level": 3,
"storeGoods": 0
},
{
"id": 4,
"structureId": 6,
"level": 4,
"storeGoods": 0
},
{
"id": 5,
"structureId": 6,
"level": 5,
"storeGoods": 0
},
{
"id": 6,
"structureId": 6,
"level": 6,
"storeGoods": 0
},
{
"id": 7,
"structureId": 6,
"level": 7,
"storeGoods": 0
},
{
"id": 8,
"structureId": 6,
"level": 8,
"storeGoods": 0
},
{
"id": 9,
"structureId": 6,
"level": 9,
"storeGoods": 0
},
{
"id": 10,
"structureId": 6,
"level": 10,
"storeGoods": 0
}
]

View File

@@ -1,82 +0,0 @@
[
{
"id": 1,
"structureId": 5,
"level": 1,
"wishgoods": "1&2&1",
"consume": 0,
"buildWords": 0
},
{
"id": 2,
"structureId": 5,
"level": 2,
"wishgoods": "1&2&1",
"consume": 0,
"buildWords": 0
},
{
"id": 3,
"structureId": 5,
"level": 3,
"wishgoods": "1&2&2",
"consume": 0,
"buildWords": 0
},
{
"id": 4,
"structureId": 5,
"level": 4,
"wishgoods": "1&2&2|2&1&2",
"consume": 0,
"buildWords": 0
},
{
"id": 5,
"structureId": 5,
"level": 5,
"wishgoods": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 6,
"structureId": 5,
"level": 6,
"wishgoods": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 7,
"structureId": 5,
"level": 7,
"wishgoods": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 8,
"structureId": 5,
"level": 8,
"wishgoods": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 9,
"structureId": 5,
"level": 9,
"wishgoods": 0,
"consume": 0,
"buildWords": 0
},
{
"id": 10,
"structureId": 5,
"level": 10,
"wishgoods": 0,
"consume": 0,
"buildWords": 0
}
]