diff --git a/game-server/app/servers/battle/handler/battleUtils.ts b/game-server/app/servers/battle/handler/battleUtils.ts index 45b830007..51d8a7f89 100644 --- a/game-server/app/servers/battle/handler/battleUtils.ts +++ b/game-server/app/servers/battle/handler/battleUtils.ts @@ -1,8 +1,10 @@ import { ActionPointModel } from '../../../db/ActionPoint'; import { BattleDropModel } from '../../../db/BattleDrop'; +import { ExpeditionPointModel } from '../../../db/ExpeditionPoint'; +import { RoleModel } from '../../../db/Role'; -import { getWarById, getWarJsons } from '../../../util/gamedata'; +import { getWarById, getWarJsons, getGamedata } from '../../../util/gamedata'; import { decodeStr, Reward } from '../../../util/util'; import { ACTION_POIN, BATTLE_REWARD_TYPE, WAR_JSON_ATTRIBUTE_TYPE } from '../../../consts/consts'; @@ -121,6 +123,8 @@ export class WarReward { public async saveReward(num: number) { this.rewards = new Array(); + let warType = this.warInfo.warType; + await this.handleFixReward(num); await this.handleConditionReward(num); await this.handleRandomReward(num); @@ -141,7 +145,7 @@ export async function matchPlayers(scale: number, range: number, myCe: number ,e return false } -export async function matchRobots(scale: number, myCe: number, robotCe: number, warJsonIndex:any, role, enemyObj: {enemyFrom: number, enemyId: string, enemies: Array }) { +export async function matchRobots(scale: number, myCe: number, robotCe: number, warJsonIndex:any, lv: number, enemyObj: {enemyFrom: number, enemyId: string, enemies: Array }) { let {json: dicWarJson, fileName } = getWarJsons(warJsonIndex); if(dicWarJson) { enemyObj.enemyFrom = 2; @@ -152,8 +156,9 @@ export async function matchRobots(scale: number, myCe: number, robotCe: number, let attribute = decodeWarJsonAttribute(enemy.attribute); // 格式:{'hp':1000, ...} for(let value in attribute) { attribute[value] *= ratio; + attribute[value] = Math.round(attribute[value]); } - enemyObj.enemies.push({...enemy, attribute, lv: role.lv}); + enemyObj.enemies.push({...enemy, attribute, lv}); } return true @@ -172,4 +177,37 @@ export function decodeWarJsonAttribute(attribute) { } } return obj + } + + export async function getPointRewardStatus(roleId: string) { + + let role = await RoleModel.findByRoleId(roleId); + let {expeditionPoint} = role; + let dicExpeditionPoint = getGamedata('dic_expedition_point'); + let pointRewards = { + expeditionPoint, + rewards: dicExpeditionPoint.map(cur => { + return { point: cur.point, received: false } + }) + }; + let pointStatusInDatabase = await ExpeditionPointModel.getExpeditionPoint(roleId); + if(pointStatusInDatabase) { + let { rewards = [] } = pointStatusInDatabase; + pointRewards.rewards.forEach(cur => { + let obj = rewards.find(ccur => ccur.point == cur.point); + if(obj) cur.received = obj.received; + }); + } + return pointRewards + } + + export async function getCEScaleAndRange(roleId: string, curDicExpedition: any) { + // 匹配,判断是不是新手期 + const role = await RoleModel.findByRoleId(roleId); + let now = new Date(); + let today = now.setHours(0,0,0,0); + let isNew = today - role.createdAt.getTime() <= 3*24*60*60*1000; + let scale = isNew?curDicExpedition.CEScaleNew:curDicExpedition.CEScale; + let range = isNew?curDicExpedition.CERangeNew:curDicExpedition.CERange; + return {scale, range, lv: role.lv} } \ No newline at end of file diff --git a/game-server/app/servers/battle/handler/eventBattleHandler.ts b/game-server/app/servers/battle/handler/eventBattleHandler.ts index 6ea9f8d34..eaa854e81 100644 --- a/game-server/app/servers/battle/handler/eventBattleHandler.ts +++ b/game-server/app/servers/battle/handler/eventBattleHandler.ts @@ -2,8 +2,8 @@ import { Application, BackendSession, FrontendOrBackendSession } from 'pinus'; import { getGamedata } from '../../../util/gamedata'; import { EventRecordModel } from '../../../db/EventRecord'; import { RoleModel } from '../../../db/Role'; -import { genCode, decodeStr, decodeStrSingle, Reward, getRandomWithWeight } from '../../../util/util'; -import { EVENT_STATUS, EVENT_RECORD_STATUS, EVENT_TYPE, EVENT_RANDOM_TYPE_ONE_OPEN } from '../../../consts/consts'; +import { genCode, decodeStr, decodeStrSingle, Reward } from '../../../util/util'; +import { EVENT_STATUS, EVENT_RECORD_STATUS, EVENT_TYPE } from '../../../consts/consts'; export default function(app: Application) { return new EventBattleHandler(app); @@ -177,55 +177,36 @@ async function refreshEvent(num: number, roleId: string, roleName: string, t) { suitLevel = decodeStrSingle('eventSuitLevel', suitLevel); return suitLevel.min <= role.lv && suitLevel.max >= role.lv }); - - - if(EVENT_RANDOM_TYPE_ONE_OPEN) { // 每轮进行记录,保证每次随机出的不重复 - - let historyRecord = await EventRecordModel.getHostoryEventRecord(roleId); - let {history, turn} = historyRecord; - let randomList = dicEvent.filter(cur => { - return history.find(ccur => { - return ccur.eventId != cur.eventID; - }); + let historyRecord = await EventRecordModel.getHostoryEventRecord(roleId); + let {history, turn} = historyRecord; + let randomList = dicEvent.filter(cur => { + return history.find(ccur => { + return ccur.eventId != cur.eventID; }); - console.log(JSON.stringify(randomList)); - - for(let i = 0; i < num; i++) { - if(randomList.length == 0) { // 刷新的3个事件不重复 - turn ++; - randomList = [...dicEvent]; - } - - let {dic, index} = getRandomWithWeight(randomList); - if(!dic) break; - let eventCode = genCode(8); - let data = await EventRecordModel.saveEventRecord(eventCode, { - roleId, refTime: t, eventId: dic.eventID, - roleName, turn, type: dic.eventType, battleId: dic.warId||0, quality: dic.quality, - status: EVENT_RECORD_STATUS.WAITING - }); - event.push(data) - randomList.splice(index, 1); - } - } else { - let randomList = dicEvent; - for(let i = 0; i < num; i++) { - let {dic} = getRandomWithWeight(randomList); - console.log('****', JSON.stringify(randomList)) - if(!dic) break; - let eventCode = genCode(8); - let data = await EventRecordModel.saveEventRecord(eventCode, { - roleId, refTime: t, eventId: dic.eventID, - roleName, type: dic.eventType, battleId: dic.warId||0, quality: dic.quality, - status: EVENT_RECORD_STATUS.WAITING - }); - event.push(data) + }); + console.log(JSON.stringify(randomList)); + + for(let i = 0; i < num; i++) { + if(randomList.length == 0) { // 一轮刷新过,开始新的一轮,保证所有事件都能刷新一遍 + turn ++; + randomList = [...dicEvent]; } + if(randomList.length == 0) break; // 如果还是为0,pass + + let index = Math.floor(Math.random() * randomList.length); + let dic = randomList[index]; + let eventCode = genCode(8); + let data = await EventRecordModel.saveEventRecord(eventCode, { + roleId, refTime: t, eventId: dic.eventID, + roleName, turn, type: dic.eventType, battleId: dic.warId||0, quality: dic.quality, + status: EVENT_RECORD_STATUS.WAITING + }); + event.push(data) + randomList.splice(index, 1); } return event; } - function pushEventMsg(app, roleId, channelName, msg ) { console.log('***pushEventMsg', channelName) let channelService = app.get('channelService'); diff --git a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts index 6ce57705a..4897b5132 100644 --- a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts +++ b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts @@ -1,11 +1,13 @@ import { Application, BackendSession } from 'pinus'; -import { getGamedata } from '../../../util/gamedata'; +import { getGamedata, getWarById } from '../../../util/gamedata'; +import { BattleRecordModel } from '../../../db/BattleRecord'; import { ExpeditionRecordModel } from '../../../db/ExpeditionRecord'; import { ExpeditionWarRecordModel } from '../../../db/ExpeditionWarRecord'; import { ExpeditionPointModel } from '../../../db/ExpeditionPoint'; import { RoleModel } from '../../../db/Role'; -import { calculateSumCE, genCode } from '../../../util/util'; -import { matchPlayers, matchRobots } from './battleUtils'; +import { calculateSumCE, genCode, Reward, decodeStr } from '../../../util/util'; +import { matchPlayers, matchRobots, getAp, setAp, WarReward, getPointRewardStatus, getCEScaleAndRange } from './battleUtils'; +import { EXPEDITION_INCREASE_POINT } from '../../../consts/consts'; export default function(app: Application) { return new ExpeditionBattleHandler(app); @@ -39,26 +41,12 @@ export class ExpeditionBattleHandler { let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCode(expeditionCode); let curLv = 0; if(expeditionWarRecord.length > 0) { - curLv = expeditionRecord[expeditionWarRecord.length - 1].expeditionId; + curLv = expeditionWarRecord[expeditionWarRecord.length - 1].expeditionId; } // 点数,和宝箱领取状态 - let role = await RoleModel.findByRoleId(roleId); - let {expeditionPoint} = role; - let dicExpeditionPoint = getGamedata('dic_expedition_point'); - let pointRewards = { - expeditionPoint, - rewards: dicExpeditionPoint.map(cur => { - return { point: cur.point, received: false } - }) - }; - let pointStatusInDatabase = await ExpeditionPointModel.getExpeditionPoint(roleId); - if(pointStatusInDatabase) { - let { rewards = [] } = pointStatusInDatabase; - pointRewards.rewards = rewards.map(cur => { - return { point: cur.point, received: cur.received } - }) - } + let pointRewards = await getPointRewardStatus(roleId); + return { code: 200, data: { @@ -86,7 +74,6 @@ export class ExpeditionBattleHandler { // 计算我方战斗力(最高五人) let myCe = await calculateSumCE(roleId, 1, { num: 5 }); - console.log('****myCe', myCe); let enemyObj = { enemyFrom: 0, enemyId: '', @@ -95,24 +82,14 @@ export class ExpeditionBattleHandler { let dicExpedition = getGamedata('dic_expedition'); let curDicExpedition = dicExpedition.find(cur => cur.id == expeditionId); - - // 匹配,判断是不是新手期 - const role = await RoleModel.findByRoleId(roleId); - let now = new Date(); - let today = now.setHours(0,0,0,0); - let isNew = today - role.createdAt.getTime() <= 3*24*60*60*1000; - let scale = isNew?curDicExpedition.CEScaleNew:curDicExpedition.CEScale; - let range = isNew?curDicExpedition.CERangeNew:curDicExpedition.CERange; - + // 获取系数和步长 + let {scale, range, lv} = await getCEScaleAndRange(roleId, curDicExpedition); // 优先匹配其他玩家 let flag = await matchPlayers(scale, range, myCe, enemyObj); - // 当数量不够时使用机器人匹配 if(!flag) { - flag = await matchRobots(scale, myCe, curDicExpedition.ce, curDicExpedition.json, role, enemyObj); + flag = await matchRobots(scale, myCe, curDicExpedition.ce, curDicExpedition.json, lv, enemyObj); } - - console.log('**********flag', flag) if(!flag) { return {code: 202, data:'无法匹配对手'}; } @@ -139,23 +116,177 @@ export class ExpeditionBattleHandler { * 进入战斗 * 记录我军数据,生成战斗唯一表示,记录状态 */ - async checkBattle(msg: { }, session: BackendSession) { + async checkBattle(msg: { expeditionCode: string, expeditionId: number, battleId: number, heroes: Array }, session: BackendSession) { + const { expeditionCode, expeditionId, battleId, heroes } = msg; + let roleId = session.get('roleId'); + let roleName = session.get('roleName'); + let warInfo = getWarById(battleId); + if(!warInfo) { + return { code: 202, data: "缺少关卡信息" } + } + let apJson = await getAp(Date.now(), roleId); + let {ap} = apJson; + if(ap < warInfo.cost) { + return { code: 202, data: "体力不足" } + } + + // 前置关卡是否挑战过 + let previousGk = warInfo.previousGk; + if(previousGk) { + let preBattle = await BattleRecordModel.getBattleRecordByIdAndStatus(roleId, previousGk, 1); + if(!preBattle) return {code: 202, data: '需要完成上一关才可以挑战'}; + } + + let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCodeAndId(expeditionCode, expeditionId); + if(!expeditionWarRecord ) { + return {code: 202, data: '需要先匹配好对手'} + } + if(expeditionWarRecord.battleStatus == 1) { + return {code: 202, data: '已挑战过这一关'} + } + + const battleCode = genCode(8); + await BattleRecordModel.updateBattleRecordByCode(battleCode, { + $set: { + roleId, roleName, battleId, + status: 0, + warName: warInfo.gk_name, + warType: warInfo.warType, + record: { heroes } + } + }, true); + + let result = await ExpeditionWarRecordModel.updateStatus(expeditionCode, expeditionId, 0, battleCode); + + return { + code: 200, + data: { + expeditionCode, + expeditionId, + battleId, + battleCode, + battleStatus: result.battleStatus, + apJson + } + } } /** * 战斗结算 * 结算战斗奖励,更新远征状态 */ - async battleEnd(msg: { }, session: BackendSession) { + async battleEnd(msg: { expeditionCode: string, expeditionId: number, battleCode: string, battleId: number, isSuccess: boolean, heroes: Array<{actorId: number, hp: number, ap: number}>, enemies: Array<{dataId: number, hp: number, ap: number}>, star: number }, session: BackendSession) { + const { expeditionCode, battleCode, battleId, expeditionId, isSuccess, heroes, star, enemies } = msg; + let roleId = session.get('roleId'); + let roleName = session.get('roleName'); + + let warInfo = getWarById(battleId); + if(!warInfo) { + return { code: 202, data: "缺少关卡信息" } + } + if(!warInfo.hasOwnProperty('cost')) { + warInfo['cost'] = 0; + } + + const BattleRecord = await BattleRecordModel.getBattleRecordByCode(battleCode); + if(!BattleRecord || BattleRecord.status != 0) { + return { code: 202, data: '关卡状态错误' } + } + + let flag = 1; // 对比hero信息 + let { record: { heroes: dbHeroes } } = BattleRecord; + for(let {actorId} of heroes) { + if(dbHeroes.indexOf(actorId) == -1) flag = 0; + } + if(!flag) { + return { code: 202, data: '关卡信息不同' } + } + + const now = Date.now(); // 当前时间戳 + let apJson = await setAp(now, roleId, -1 * warInfo.cost); // 扣除体力 + if(!apJson) { + return { code: 202, data: '体力不足' } + } + + // 检查record + let expeditionRecord = await ExpeditionRecordModel.getExpeditionRecordByCode(expeditionCode); + let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCodeAndId(expeditionCode, expeditionId); + if(!expeditionRecord|| !expeditionWarRecord) { + return { code: 202, data:'未找到该记录' } + } + // 更新我方剩余血量 + await ExpeditionRecordModel.updateHeroStatus(expeditionCode, expeditionRecord.heroes, heroes); + // 更新敌人剩余状态及战斗状态 + expeditionWarRecord = await ExpeditionWarRecordModel.updateEnemiesStatus(expeditionCode, expeditionId, isSuccess?1:2, enemies); + // 更新battleRecord状态 + await BattleRecordModel.updateBattleRecordByCode(battleCode, { + $set: { status: isSuccess?1: 2, star } + }, true); + // 更新点数 + let role = await RoleModel.increaseExpeditionPoint(roleId, isSuccess?EXPEDITION_INCREASE_POINT:0); + let { expeditionPoint = 0 } = role; + + // 关卡奖励 + let warReward = new WarReward(roleId, roleName, battleId, isSuccess); + let reward = await warReward.saveReward(1); + + return { + code: 200, + data: { + expeditionCode, expeditionId, + battleCode, battleId, + battleStatus: expeditionWarRecord.battleStatus, + goods: reward, + apJson, + expeditionPoint + } + } } /** * 领取战斗宝箱 * 领取宝箱,更新远征状态 */ - async battleReward(msg: { }, session: BackendSession) { + async battleReward(msg: { expeditionCode: string, expeditionId: number }, session: BackendSession) { + + const { expeditionCode, expeditionId } = msg; + let roleId = session.get('roleId'); + let roleName = session.get('roleName'); + // 检查expeditionWarRecord的battleStatus + let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCodeAndId(expeditionCode, expeditionId); + if(!expeditionWarRecord) { + return {code: 202, data: '未找到该关卡'} + } + if(expeditionWarRecord.battleStatus != 1) { + return {code: 202, data: '需要战斗胜利后才可以领取'} + } + if(expeditionWarRecord.received) { + return {code: 202, data: '已经领取过了'} + } + // 设置expeditionWarRecord的received和rewards + let dicExpedition = getGamedata('dic_expedition'); + let curDicExpedition = dicExpedition.find(cur => cur.id == expeditionId); + if(!curDicExpedition) { + return {code: 202, data: '未找到该配置'} + } + + let result = await ExpeditionWarRecordModel.updateBoxStatus(expeditionCode, expeditionId, true, curDicExpedition.reward); + let { battleId, battleCode, battleStatus, received } = result; + // 获取东西 + let rewards = decodeStr('fixReward', curDicExpedition.reward); + let rewardObject = new Reward(roleId, roleName, rewards); + let goods = await rewardObject.saveReward(); + + return { + code: 200, + data: { + expeditionCode, expeditionId, + battleId, battleCode, battleStatus, received, + goods + } + } } @@ -163,8 +294,47 @@ export class ExpeditionBattleHandler { * 领取点数宝箱 * 领取点数宝箱,不扣除点数,那么就需要记录领取状态并且有返回 */ - async pointReward(msg: { }, session: BackendSession) { + async pointReward(msg: { point }, session: BackendSession) { + const { point } = msg; + let roleId = session.get('roleId'); + let roleName = session.get('roleName'); + + let role = await RoleModel.findByRoleId(roleId); + let {expeditionPoint} = role; + let dicExpeditionPoint = getGamedata('dic_expedition_point'); + let curDicExpeditionPoint = dicExpeditionPoint.find(cur => cur.point == point); + if(!curDicExpeditionPoint) { + return {code: 202, data: '该点数不能领取奖励'} + } + + if(point > expeditionPoint) { + return {code: 202, data: '点数不足'}; + } + let pointStatusInDatabase = await ExpeditionPointModel.getExpeditionPoint(roleId); + if(pointStatusInDatabase) { + let {rewards} = pointStatusInDatabase; + let curReward = rewards.find(cur => cur.point == point); + if(curReward && curReward.received) { + return {code: 202, data: '已领取过'} + } + } + + // 标记状态 + await ExpeditionPointModel.updatePointStatus(roleId, point, curDicExpeditionPoint.reward); + let pointRewards = await getPointRewardStatus(roleId); + + let rewards = decodeStr('fixReward', curDicExpeditionPoint.reward); + let rewardObject = new Reward(roleId, roleName, rewards); + let goods = await rewardObject.saveReward(); + + return { + code: 202, + data: { + pointRewards, + goods + } + } } /** @@ -173,5 +343,38 @@ export class ExpeditionBattleHandler { */ async resetPointReward(msg: { }, session: BackendSession) { + let roleId = session.get('roleId'); + // let roleName = session.get('roleName'); + + let pointStatusInDatabase = await ExpeditionPointModel.getExpeditionPoint(roleId); + if(!pointStatusInDatabase) { + return {code: 202, data: '已刷新'} + } + let { rewards } = pointStatusInDatabase; + let dicExpeditionPoint = getGamedata('dic_expedition_point'); + let flag: boolean, maxPoint = 0; + for(let dic of dicExpeditionPoint) { + let curReward = rewards.find(cur => cur.point == dic.point); + if(curReward && curReward.received) { + flag = true; + } + if(dic.point > maxPoint) maxPoint = dic.point; + } + if(!flag) { + return {code: 202, data: '宝箱需要领取完才可以刷新'} + } + + // 刷新 + await ExpeditionPointModel.completeStatus(roleId); + await RoleModel.increaseExpeditionPoint(roleId, maxPoint * -1); + + let pointRewards = await getPointRewardStatus(roleId); + + return { + code: 200, + data: { + pointRewards + } + } } } diff --git a/game-server/app/util/gamedata.ts b/game-server/app/util/gamedata.ts index 42c2e50f3..48b794dc9 100644 --- a/game-server/app/util/gamedata.ts +++ b/game-server/app/util/gamedata.ts @@ -2,7 +2,7 @@ const fs = require('fs'); const path = require('path'); let gamedata = {}; -const wars = ['dic_zyz_gk_main', 'dic_zyz_gk_mainElite', 'dic_zyz_gk_daily', 'dic_zyz_gk_event', 'dic_zyz_gk_tower']; // 关卡相关的表 +const wars = ['dic_zyz_gk_main', 'dic_zyz_gk_mainElite', 'dic_zyz_gk_daily', 'dic_zyz_gk_event', 'dic_zyz_gk_tower', 'dic_zyz_gk_expedition']; // 关卡相关的表 const allWarInfos = new Map(); const towerInfos = new Map(); diff --git a/shared/consts/consts.ts b/shared/consts/consts.ts index 0e5ca897f..b263983b7 100644 --- a/shared/consts/consts.ts +++ b/shared/consts/consts.ts @@ -34,7 +34,8 @@ export const WAR_TYPE = { NORMAL: 1, DAILY: 2, EVENT: 3, - TOWER: 4 + TOWER: 4, + EXPEDITION: 5 }; // 事件,是否开启保存随机记录方式 @@ -64,6 +65,7 @@ export const EVENT_TYPE = { }; export const EVENT_START_BATTLE = 101; +export const EXPEDITION_INCREASE_POINT = 2; // 远征每成功一次累计的点数 export const HANG_UP_CONSTS = { ENABLE_LV: 2, diff --git a/shared/db/ExpeditionPoint.ts b/shared/db/ExpeditionPoint.ts index 251633846..7d67cb52a 100644 --- a/shared/db/ExpeditionPoint.ts +++ b/shared/db/ExpeditionPoint.ts @@ -4,16 +4,15 @@ import { index, getModelForClass, prop } from '@typegoose/typegoose'; /** * 远征记录 */ -@index({ roleId: 1, eventId: 1 }) -@index({ roleId: 1, eventCode: 1 }) +@index({ roleId: 1 }) export default class ExpeditionPoint extends BaseModel { - @prop({ required: true }) + @prop({ required: true, default: '' }) roleId: string; // 角色 id - @prop({ required: true }) + @prop({ required: true, default: 0 }) pointCost: number; // 消耗点数 - @prop({ required: true }) + @prop({ required: true, default: false }) completed: boolean; // 本轮奖励是否完成 @prop({ required: true, default: [] }) rewards: Array<{point: number, reward: string, received:boolean, recTime: Date}>; // 领取记录 @@ -22,6 +21,23 @@ export default class ExpeditionPoint extends BaseModel { const result = await ExpeditionPointModel.findOne({ roleId, completed: false }).lean(lean); return result; } + + public static async updatePointStatus(roleId: string, point: number, reward: string, lean = true) { + const result = await ExpeditionPointModel.findOneAndUpdate( + { roleId, completed: false }, + { $set: { pointCost: point }, $push: {rewards:{point, reward, received: true, recTime: new Date()}}}, + { new: true, upsert: true } + ).lean(lean); + return result; + } + + public static async completeStatus(roleId: string, lean = true) { + const result = await ExpeditionPointModel.findOneAndUpdate( + { roleId, completed: false }, + { $set: {completed: true } } + ).lean(lean); + return result; + } } export const ExpeditionPointModel = getModelForClass(ExpeditionPoint); diff --git a/shared/db/ExpeditionRecord.ts b/shared/db/ExpeditionRecord.ts index 7b97437f8..56f1e1986 100644 --- a/shared/db/ExpeditionRecord.ts +++ b/shared/db/ExpeditionRecord.ts @@ -1,33 +1,74 @@ import BaseModel from './BaseModel'; import { index, getModelForClass, prop } from '@typegoose/typegoose'; +class Heroes { + @prop({ required: true }) + hid: number; // 敌人id + @prop({ required: true }) + hp: number; // 血量 + @prop({ required: true }) + ap: number; // 怒气 +} + /** * 远征记录 */ -@index({ roleId: 1, eventId: 1 }) -@index({ roleId: 1, eventCode: 1 }) +@index({ roleId: 1 }) +@index({ expeditionCode: 1 }) export default class ExpeditionRecord extends BaseModel { - @prop({ required: true }) + @prop({ required: true, default: '' }) roleId: string; // 角色 id - @prop({ required: true }) + @prop({ required: true, default: '' }) roleName: string; // 角色 名 - @prop({ required: true }) + @prop({ required: true, default: '' }) expeditionCode: string; // 远征的唯一标识 - @prop({ required: true }) + @prop({ required: true, default: 0 }) time: number; // 时间 - @prop({ required: true }) - heroes: Array<{hid: number, hp: number, cp: number}>; // 我方已出场武将 + @prop({ required: true, type: Heroes, default: [] }) + heroes: Array; // 我方已出场武将 public static async getTodayRecord(roleId: string, time: number, lean = true) { - const role = await ExpeditionRecordModel.findOne({ roleId, time }).lean(lean); - return role; + const result = await ExpeditionRecordModel.findOne({ roleId, time }).lean(lean); + return result; } - public static async createTodayRecord(expeditionCode: string, params: { roleId: string, roleName: string, time: number, heroes: Array<{hid: number, hp: number, cp: number}> }, lean = true) { - const role = await ExpeditionRecordModel.findOneAndUpdate({ expeditionCode }, params, { new: true, upsert: true }).lean(lean); - return role; + public static async createTodayRecord(expeditionCode: string, params: { roleId: string, roleName: string, time: number, heroes: Array }, lean = true) { + const result = await ExpeditionRecordModel.findOneAndUpdate({ expeditionCode }, params, { new: true, upsert: true }).lean(lean); + return result; + } + + public static async getExpeditionRecordByCode(expeditionCode: string, lean=true) { + const result = await ExpeditionRecordModel.findOne({expeditionCode}).lean(lean); + return result + } + + public static async updateHeroStatus(expeditionCode: string, oldHeroes: Array, heroes: Array<{actorId: number, hp: number, ap: number}>, lean=true) { + let pushArr = new Array(), updateArr = new Array(); + for(let hero of heroes) { + let {actorId, hp, ap} = hero; + let obj = oldHeroes.find(cur => cur.hid == actorId); + + if(!!obj) { + updateArr.push({hid: actorId, hp, ap}); + } else { + pushArr.push({hid: actorId, hp, ap}) + } + } + console.log(JSON.stringify(oldHeroes), JSON.stringify(heroes), JSON.stringify(pushArr), JSON.stringify(updateArr)) + for(let {hid, hp, ap} of updateArr) { + await ExpeditionRecordModel.findOneAndUpdate( + {expeditionCode, 'heroes.hid': hid }, + {$set: {'heroes.$.hid': hid, 'heroes.$.hp': hp, 'heroes.$.ap': ap}} + ) + } + const result = await ExpeditionRecordModel.findOneAndUpdate( + { expeditionCode }, + { $push: {heroes: {$each: pushArr} } } + ) + + return result; } } diff --git a/shared/db/ExpeditionWarRecord.ts b/shared/db/ExpeditionWarRecord.ts index f59e0e351..d72c00aae 100644 --- a/shared/db/ExpeditionWarRecord.ts +++ b/shared/db/ExpeditionWarRecord.ts @@ -1,6 +1,44 @@ import BaseModel from './BaseModel'; import { index, getModelForClass, prop } from '@typegoose/typegoose'; +class Enemies { + @prop({ required: true }) + actorId: number; // 敌人id + @prop({ required: false }) + actorName: string; // 敌人名 + @prop({ required: false }) + dataId: number; // 战场中唯一指向武将的代码 + @prop({ required: false }) + relation: number; // 角色属于我方还是地方 + @prop({ required: false }) + outIndex: number; // 程序将信息存入数组顺序 + @prop({ required: false }) + x: number; // 战场x坐标 + @prop({ required: false }) + y: number; // 战场y坐标 + @prop({ required: false }) + direction: number; // 朝向 + @prop({ required: false }) + var: number; // 变量 + @prop({ required: false }) + lv: number; // 角色等级 + @prop({ required: false }) + hide: number; // 是否隐藏 + @prop({ required: false }) + initial_ai: number; // AI类型 + @prop({ required: true }) + attribute: {hp: number, atk: number, matk: number, def: number, mdef: number, agi: number, luk: number, speed: number, hit: number, cri: number, flee: number, antCri: number, damageIncrease: number, damageDecrease: number, defIgnore: number, bloodSuck: number, ap: number}; // 属性 + @prop({ required: false }) + skill: string; // 技能 + @prop({ required: false }) + seid: string; // 技能 + @prop({ required: false }) + star: number; // 角色星级 + @prop({ required: false }) + spine: string; // S动画 + +} + /** * 远征记录 */ @@ -18,7 +56,7 @@ export default class ExpeditionWarRecord extends BaseModel { @prop({ required: true, default: '' }) battleCode: string; // 关联关卡唯一值 @prop({ required: true, default: 0 }) - battleStatus: number; // 是否通过 + battleStatus: number; // 是否通过, 0-挑战中 1-成功 2-挑战失败 @prop({ required: true, default: false }) received: boolean; // 本关战胜后宝箱是否领取 @prop({ required: true, default: false }) @@ -27,8 +65,8 @@ export default class ExpeditionWarRecord extends BaseModel { enemyFrom: number; // 敌军数据来源:1-配表的敌军队,2-玩家 @prop({ required: true, default: '' }) enemyId: string; // 敌军队伍id或玩家id - @prop({ required: true, default: [] }) - enemies: Array; // 敌军数据 + @prop({ required: true, type: Enemies, default: [] }) + enemies: Array; // 敌军数据 public static async getRecordByCode(expeditionCode: string, lean = true) { const result = await ExpeditionWarRecordModel.find({ expeditionCode }).select('expeditionId battleId battleCode battleStatus received').sort({expeditionId: 1}).lean(lean); @@ -47,6 +85,32 @@ export default class ExpeditionWarRecord extends BaseModel { return result; } + public static async updateStatus(expeditionCode: string, expeditionId: number, battleStatus: number, battleCode: string, lean = true) { + const result = await ExpeditionWarRecordModel.findOneAndUpdate({ expeditionCode, expeditionId }, {battleStatus, battleCode}, {new: true}).lean(lean); + return result; + } + + public static async updateEnemiesStatus(expeditionCode: string, expeditionId: number, battleStatus: number, enemies: Array<{dataId: number, hp: number, ap: number}>, lean = true) { + + for(let {dataId, hp, ap} of enemies) { + console.log('updateEnemiesStatus',ap) + await ExpeditionWarRecordModel.findOneAndUpdate( + {expeditionCode, expeditionId, 'enemies.dataId': dataId }, + {$set: {'enemies.$.attribute.hp': hp, 'enemies.$.attribute.ap': ap}} + ) + } + const result = ExpeditionWarRecordModel.findOneAndUpdate( + {expeditionCode, expeditionId}, + {$set: {battleStatus}}, + {new: true} + ); + return result; + } + + public static async updateBoxStatus(expeditionCode: string, expeditionId: number, received: boolean, reward: string, lean = true) { + const result = await ExpeditionWarRecordModel.findOneAndUpdate({ expeditionCode, expeditionId }, {received, reward}, {new: true}).lean(lean); + return result; + } } export const ExpeditionWarRecordModel = getModelForClass(ExpeditionWarRecord); diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 28ee29a90..05c47abdf 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -137,13 +137,18 @@ export default class Role extends BaseModel { public static async setEventStatus(roleId: string, eventStatus: number, lean = true) { - await RoleModel.findOneAndUpdate({ roleId }, { eventStatus }).lean(lean); + await RoleModel.findOneAndUpdate({ roleId }, { eventStatus }, {new: true}).lean(lean); } public static async towerLvUp(roleId: string, lean = true) { let role = await RoleModel.findOneAndUpdate({roleId}, {$inc: {towerLv: 1}}).lean(lean); return role; } + + public static async increaseExpeditionPoint(roleId: string, point: number, lean = true) { + let role = await RoleModel.findOneAndUpdate({roleId}, {$inc: { expeditionPoint: point }}, {new: true}).lean(lean); + return role; + } } export const RoleModel = getModelForClass(Role); diff --git a/shared/resource/jsons/dic_zyz_gk_main.json b/shared/resource/jsons/dic_zyz_gk_main.json index 3b26acb41..db38890bf 100644 --- a/shared/resource/jsons/dic_zyz_gk_main.json +++ b/shared/resource/jsons/dic_zyz_gk_main.json @@ -1 +1,1354 @@ -[{"war_id":101,"dispatchJsonId":101,"bg_img_id":101,"script_id":101,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"序章&王越童渊比试","kingExp":100,"lvLimted":1,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"无","loseInfoInUI":"无","starInfoInUI":"无","cost":2,"iconInMap":"&","sSpineInUI":"&","detailUIBg":0,"recommendedPower":10003,"previousGk":0,"relatedEliteGk":0},{"war_id":102,"dispatchJsonId":102,"bg_img_id":102,"script_id":102,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"序章&山中对战狼群","kingExp":100,"lvLimted":1,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"&","sSpineInUI":"&","detailUIBg":0,"recommendedPower":10004,"previousGk":0,"relatedEliteGk":0},{"war_id":103,"dispatchJsonId":103,"bg_img_id":103,"script_id":103,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"序章&赵云和夏侯比试","kingExp":100,"lvLimted":1,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"&","sSpineInUI":"&","detailUIBg":0,"recommendedPower":10005,"previousGk":0,"relatedEliteGk":0},{"war_id":104,"dispatchJsonId":104,"bg_img_id":104,"script_id":104,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":1,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"spine&daobing","sSpineInUI":"1&daobing","detailUIBg":"zhending","recommendedPower":10006,"previousGk":0,"relatedEliteGk":0},{"war_id":105,"dispatchJsonId":105,"bg_img_id":105,"script_id":105,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":1,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"spine&daobing","sSpineInUI":"1&daobing|1&gongbing","detailUIBg":"zhending","recommendedPower":10007,"previousGk":103,"relatedEliteGk":0},{"war_id":106,"dispatchJsonId":106,"bg_img_id":106,"script_id":106,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":1,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"spine&daobing","sSpineInUI":"1&daobing|1&gongbing","detailUIBg":"zhending","recommendedPower":10008,"previousGk":104,"relatedEliteGk":0},{"war_id":107,"dispatchJsonId":107,"bg_img_id":107,"script_id":107,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&真定之战","kingExp":100,"lvLimted":3,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"city&small1","sSpineInUI":"1&daobing|1&gongbing|2&lidian","detailUIBg":"zhending","recommendedPower":10009,"previousGk":105,"relatedEliteGk":0},{"war_id":108,"dispatchJsonId":108,"bg_img_id":108,"script_id":108,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":3,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"spine&daobing","sSpineInUI":"1&daobing|1&gongbing","detailUIBg":"zhending","recommendedPower":10010,"previousGk":106,"relatedEliteGk":0},{"war_id":109,"dispatchJsonId":109,"bg_img_id":109,"script_id":109,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":3,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"spine&daobing","sSpineInUI":"1&daobing|1&gongbing","detailUIBg":"zhending","recommendedPower":10011,"previousGk":107,"relatedEliteGk":0},{"war_id":110,"dispatchJsonId":110,"bg_img_id":110,"script_id":110,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":3,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"spine&daobing","sSpineInUI":"1&daobing|1&gongbing","detailUIBg":"zhending","recommendedPower":10012,"previousGk":108,"relatedEliteGk":0},{"war_id":111,"dispatchJsonId":111,"bg_img_id":111,"script_id":111,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&巨鹿之战1","kingExp":100,"lvLimted":5,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":"city&small2","sSpineInUI":"1&daobing|1&gongbing|2&lidian","detailUIBg":"zhending","recommendedPower":10013,"previousGk":109,"relatedEliteGk":0},{"war_id":112,"dispatchJsonId":112,"bg_img_id":112,"script_id":112,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":5,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10014,"previousGk":0,"relatedEliteGk":0},{"war_id":113,"dispatchJsonId":113,"bg_img_id":113,"script_id":113,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":5,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10015,"previousGk":0,"relatedEliteGk":0},{"war_id":114,"dispatchJsonId":114,"bg_img_id":114,"script_id":114,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":5,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10016,"previousGk":0,"relatedEliteGk":0},{"war_id":115,"dispatchJsonId":115,"bg_img_id":115,"script_id":115,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&巨鹿之战2","kingExp":100,"lvLimted":8,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10017,"previousGk":0,"relatedEliteGk":0},{"war_id":116,"dispatchJsonId":116,"bg_img_id":116,"script_id":116,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":8,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10018,"previousGk":0,"relatedEliteGk":0},{"war_id":117,"dispatchJsonId":117,"bg_img_id":117,"script_id":117,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":8,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10019,"previousGk":0,"relatedEliteGk":0},{"war_id":118,"dispatchJsonId":118,"bg_img_id":118,"script_id":118,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":8,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10020,"previousGk":0,"relatedEliteGk":0},{"war_id":119,"dispatchJsonId":119,"bg_img_id":119,"script_id":119,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&河间之战","kingExp":100,"lvLimted":10,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10021,"previousGk":0,"relatedEliteGk":0},{"war_id":120,"dispatchJsonId":120,"bg_img_id":120,"script_id":120,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":10,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10022,"previousGk":0,"relatedEliteGk":0},{"war_id":121,"dispatchJsonId":121,"bg_img_id":121,"script_id":121,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":10,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10023,"previousGk":0,"relatedEliteGk":0},{"war_id":122,"dispatchJsonId":122,"bg_img_id":122,"script_id":122,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":10,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10024,"previousGk":0,"relatedEliteGk":0},{"war_id":123,"dispatchJsonId":123,"bg_img_id":123,"script_id":123,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&渤海之战","kingExp":100,"lvLimted":12,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10025,"previousGk":0,"relatedEliteGk":0},{"war_id":124,"dispatchJsonId":124,"bg_img_id":124,"script_id":124,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":12,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10026,"previousGk":0,"relatedEliteGk":0},{"war_id":125,"dispatchJsonId":125,"bg_img_id":125,"script_id":125,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":12,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10027,"previousGk":0,"relatedEliteGk":0},{"war_id":126,"dispatchJsonId":126,"bg_img_id":126,"script_id":126,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&小关卡","kingExp":100,"lvLimted":12,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10028,"previousGk":0,"relatedEliteGk":0},{"war_id":127,"dispatchJsonId":127,"bg_img_id":127,"script_id":127,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第一章&界桥之战","kingExp":100,"lvLimted":15,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10029,"previousGk":0,"relatedEliteGk":0},{"war_id":128,"dispatchJsonId":129,"bg_img_id":129,"script_id":129,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":15,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10030,"previousGk":0,"relatedEliteGk":0},{"war_id":129,"dispatchJsonId":130,"bg_img_id":130,"script_id":130,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":15,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10031,"previousGk":0,"relatedEliteGk":0},{"war_id":130,"dispatchJsonId":131,"bg_img_id":131,"script_id":131,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":15,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10032,"previousGk":0,"relatedEliteGk":0},{"war_id":131,"dispatchJsonId":128,"bg_img_id":128,"script_id":128,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&邺城之战","kingExp":100,"lvLimted":18,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10033,"previousGk":0,"relatedEliteGk":0},{"war_id":132,"dispatchJsonId":129,"bg_img_id":129,"script_id":129,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":18,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10034,"previousGk":0,"relatedEliteGk":0},{"war_id":133,"dispatchJsonId":130,"bg_img_id":130,"script_id":130,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":18,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10035,"previousGk":0,"relatedEliteGk":0},{"war_id":134,"dispatchJsonId":131,"bg_img_id":131,"script_id":131,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":18,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10036,"previousGk":0,"relatedEliteGk":0},{"war_id":135,"dispatchJsonId":132,"bg_img_id":132,"script_id":132,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&河内之战","kingExp":100,"lvLimted":20,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10037,"previousGk":0,"relatedEliteGk":0},{"war_id":136,"dispatchJsonId":133,"bg_img_id":133,"script_id":133,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":20,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10038,"previousGk":0,"relatedEliteGk":0},{"war_id":137,"dispatchJsonId":134,"bg_img_id":134,"script_id":134,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":20,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10039,"previousGk":0,"relatedEliteGk":0},{"war_id":138,"dispatchJsonId":135,"bg_img_id":135,"script_id":135,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":20,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10040,"previousGk":0,"relatedEliteGk":0},{"war_id":139,"dispatchJsonId":136,"bg_img_id":136,"script_id":136,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&洛阳之战","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10041,"previousGk":0,"relatedEliteGk":0},{"war_id":140,"dispatchJsonId":137,"bg_img_id":137,"script_id":137,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10042,"previousGk":0,"relatedEliteGk":0},{"war_id":141,"dispatchJsonId":138,"bg_img_id":138,"script_id":138,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10043,"previousGk":0,"relatedEliteGk":0},{"war_id":142,"dispatchJsonId":139,"bg_img_id":139,"script_id":139,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10044,"previousGk":0,"relatedEliteGk":0},{"war_id":143,"dispatchJsonId":140,"bg_img_id":140,"script_id":140,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&弘农之战","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10045,"previousGk":0,"relatedEliteGk":0},{"war_id":144,"dispatchJsonId":141,"bg_img_id":141,"script_id":141,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10046,"previousGk":0,"relatedEliteGk":0},{"war_id":145,"dispatchJsonId":142,"bg_img_id":142,"script_id":142,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10047,"previousGk":0,"relatedEliteGk":0},{"war_id":146,"dispatchJsonId":143,"bg_img_id":143,"script_id":143,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10048,"previousGk":0,"relatedEliteGk":0},{"war_id":147,"dispatchJsonId":144,"bg_img_id":144,"script_id":144,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&郿坞之战","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10049,"previousGk":0,"relatedEliteGk":0},{"war_id":148,"dispatchJsonId":145,"bg_img_id":145,"script_id":145,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10050,"previousGk":0,"relatedEliteGk":0},{"war_id":149,"dispatchJsonId":146,"bg_img_id":146,"script_id":146,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10051,"previousGk":0,"relatedEliteGk":0},{"war_id":150,"dispatchJsonId":147,"bg_img_id":147,"script_id":147,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10052,"previousGk":0,"relatedEliteGk":0},{"war_id":151,"dispatchJsonId":148,"bg_img_id":148,"script_id":148,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&长安之战","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10053,"previousGk":0,"relatedEliteGk":0},{"war_id":152,"dispatchJsonId":149,"bg_img_id":149,"script_id":149,"fixReward":"&","conditionReward":"&","RandomReward":"&","warType":1,"gk_name":"第二章&小关卡","kingExp":100,"lvLimted":25,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消灭所有敌军","loseInfoInUI":"我方全部阵亡","starInfoInUI":"1.我方无人阵亡;\n2.在5回合内获得胜利","cost":2,"iconInMap":0,"sSpineInUI":0,"detailUIBg":0,"recommendedPower":10054,"previousGk":0,"relatedEliteGk":0}] \ No newline at end of file +[ + { + "war_id": 101, + "dispatchJsonId": 101, + "bg_img_id": 101, + "script_id": 101, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "序章&王越童渊比试", + "kingExp": 100, + "lvLimted": 1, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "无", + "loseInfoInUI": "无", + "starInfoInUI": "无", + "cost": 2, + "iconInMap": "&", + "sSpineInUI": "&", + "detailUIBg": 0, + "recommendedPower": 10003, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 102, + "dispatchJsonId": 102, + "bg_img_id": 102, + "script_id": 102, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "序章&山中对战狼群", + "kingExp": 100, + "lvLimted": 1, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "&", + "sSpineInUI": "&", + "detailUIBg": 0, + "recommendedPower": 10004, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 103, + "dispatchJsonId": 103, + "bg_img_id": 103, + "script_id": 103, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "序章&赵云和夏侯比试", + "kingExp": 100, + "lvLimted": 1, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "&", + "sSpineInUI": "&", + "detailUIBg": 0, + "recommendedPower": 10005, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 104, + "dispatchJsonId": 104, + "bg_img_id": 104, + "script_id": 104, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 1, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "spine&daobing", + "sSpineInUI": "1&daobing", + "detailUIBg": "zhending", + "recommendedPower": 10006, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 105, + "dispatchJsonId": 105, + "bg_img_id": 105, + "script_id": 105, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 1, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "spine&daobing", + "sSpineInUI": "1&daobing|1&gongbing", + "detailUIBg": "zhending", + "recommendedPower": 10007, + "previousGk": 103, + "relatedEliteGk": 0 + }, + { + "war_id": 106, + "dispatchJsonId": 106, + "bg_img_id": 106, + "script_id": 106, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 1, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "spine&daobing", + "sSpineInUI": "1&daobing|1&gongbing", + "detailUIBg": "zhending", + "recommendedPower": 10008, + "previousGk": 104, + "relatedEliteGk": 0 + }, + { + "war_id": 107, + "dispatchJsonId": 107, + "bg_img_id": 107, + "script_id": 107, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&真定之战", + "kingExp": 100, + "lvLimted": 3, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "city&small1", + "sSpineInUI": "1&daobing|1&gongbing|2&lidian", + "detailUIBg": "zhending", + "recommendedPower": 10009, + "previousGk": 105, + "relatedEliteGk": 0 + }, + { + "war_id": 108, + "dispatchJsonId": 108, + "bg_img_id": 108, + "script_id": 108, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 3, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "spine&daobing", + "sSpineInUI": "1&daobing|1&gongbing", + "detailUIBg": "zhending", + "recommendedPower": 10010, + "previousGk": 106, + "relatedEliteGk": 0 + }, + { + "war_id": 109, + "dispatchJsonId": 109, + "bg_img_id": 109, + "script_id": 109, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 3, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "spine&daobing", + "sSpineInUI": "1&daobing|1&gongbing", + "detailUIBg": "zhending", + "recommendedPower": 10011, + "previousGk": 107, + "relatedEliteGk": 0 + }, + { + "war_id": 110, + "dispatchJsonId": 110, + "bg_img_id": 110, + "script_id": 110, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 3, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "spine&daobing", + "sSpineInUI": "1&daobing|1&gongbing", + "detailUIBg": "zhending", + "recommendedPower": 10012, + "previousGk": 108, + "relatedEliteGk": 0 + }, + { + "war_id": 111, + "dispatchJsonId": 111, + "bg_img_id": 111, + "script_id": 111, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&巨鹿之战1", + "kingExp": 100, + "lvLimted": 5, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": "city&small2", + "sSpineInUI": "1&daobing|1&gongbing|2&lidian", + "detailUIBg": "zhending", + "recommendedPower": 10013, + "previousGk": 109, + "relatedEliteGk": 0 + }, + { + "war_id": 112, + "dispatchJsonId": 112, + "bg_img_id": 112, + "script_id": 112, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 5, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10014, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 113, + "dispatchJsonId": 113, + "bg_img_id": 113, + "script_id": 113, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 5, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10015, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 114, + "dispatchJsonId": 114, + "bg_img_id": 114, + "script_id": 114, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 5, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10016, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 115, + "dispatchJsonId": 115, + "bg_img_id": 115, + "script_id": 115, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&巨鹿之战2", + "kingExp": 100, + "lvLimted": 8, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10017, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 116, + "dispatchJsonId": 116, + "bg_img_id": 116, + "script_id": 116, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 8, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10018, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 117, + "dispatchJsonId": 117, + "bg_img_id": 117, + "script_id": 117, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 8, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10019, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 118, + "dispatchJsonId": 118, + "bg_img_id": 118, + "script_id": 118, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 8, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10020, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 119, + "dispatchJsonId": 119, + "bg_img_id": 119, + "script_id": 119, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&河间之战", + "kingExp": 100, + "lvLimted": 10, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10021, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 120, + "dispatchJsonId": 120, + "bg_img_id": 120, + "script_id": 120, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 10, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10022, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 121, + "dispatchJsonId": 121, + "bg_img_id": 121, + "script_id": 121, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 10, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10023, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 122, + "dispatchJsonId": 122, + "bg_img_id": 122, + "script_id": 122, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 10, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10024, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 123, + "dispatchJsonId": 123, + "bg_img_id": 123, + "script_id": 123, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&渤海之战", + "kingExp": 100, + "lvLimted": 12, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10025, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 124, + "dispatchJsonId": 124, + "bg_img_id": 124, + "script_id": 124, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 12, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10026, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 125, + "dispatchJsonId": 125, + "bg_img_id": 125, + "script_id": 125, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 12, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10027, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 126, + "dispatchJsonId": 126, + "bg_img_id": 126, + "script_id": 126, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&小关卡", + "kingExp": 100, + "lvLimted": 12, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10028, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 127, + "dispatchJsonId": 127, + "bg_img_id": 127, + "script_id": 127, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第一章&界桥之战", + "kingExp": 100, + "lvLimted": 15, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10029, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 128, + "dispatchJsonId": 129, + "bg_img_id": 129, + "script_id": 129, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 15, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10030, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 129, + "dispatchJsonId": 130, + "bg_img_id": 130, + "script_id": 130, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 15, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10031, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 130, + "dispatchJsonId": 131, + "bg_img_id": 131, + "script_id": 131, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 15, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10032, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 131, + "dispatchJsonId": 128, + "bg_img_id": 128, + "script_id": 128, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&邺城之战", + "kingExp": 100, + "lvLimted": 18, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10033, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 132, + "dispatchJsonId": 129, + "bg_img_id": 129, + "script_id": 129, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 18, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10034, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 133, + "dispatchJsonId": 130, + "bg_img_id": 130, + "script_id": 130, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 18, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10035, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 134, + "dispatchJsonId": 131, + "bg_img_id": 131, + "script_id": 131, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 18, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10036, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 135, + "dispatchJsonId": 132, + "bg_img_id": 132, + "script_id": 132, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&河内之战", + "kingExp": 100, + "lvLimted": 20, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10037, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 136, + "dispatchJsonId": 133, + "bg_img_id": 133, + "script_id": 133, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 20, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10038, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 137, + "dispatchJsonId": 134, + "bg_img_id": 134, + "script_id": 134, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 20, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10039, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 138, + "dispatchJsonId": 135, + "bg_img_id": 135, + "script_id": 135, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 20, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10040, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 139, + "dispatchJsonId": 136, + "bg_img_id": 136, + "script_id": 136, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&洛阳之战", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10041, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 140, + "dispatchJsonId": 137, + "bg_img_id": 137, + "script_id": 137, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10042, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 141, + "dispatchJsonId": 138, + "bg_img_id": 138, + "script_id": 138, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10043, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 142, + "dispatchJsonId": 139, + "bg_img_id": 139, + "script_id": 139, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10044, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 143, + "dispatchJsonId": 140, + "bg_img_id": 140, + "script_id": 140, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&弘农之战", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10045, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 144, + "dispatchJsonId": 141, + "bg_img_id": 141, + "script_id": 141, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10046, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 145, + "dispatchJsonId": 142, + "bg_img_id": 142, + "script_id": 142, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10047, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 146, + "dispatchJsonId": 143, + "bg_img_id": 143, + "script_id": 143, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10048, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 147, + "dispatchJsonId": 144, + "bg_img_id": 144, + "script_id": 144, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&郿坞之战", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10049, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 148, + "dispatchJsonId": 145, + "bg_img_id": 145, + "script_id": 145, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10050, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 149, + "dispatchJsonId": 146, + "bg_img_id": 146, + "script_id": 146, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10051, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 150, + "dispatchJsonId": 147, + "bg_img_id": 147, + "script_id": 147, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10052, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 151, + "dispatchJsonId": 148, + "bg_img_id": 148, + "script_id": 148, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&长安之战", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10053, + "previousGk": 0, + "relatedEliteGk": 0 + }, + { + "war_id": 152, + "dispatchJsonId": 149, + "bg_img_id": 149, + "script_id": 149, + "fixReward": "&", + "conditionReward": "&", + "RandomReward": "&", + "warType": 1, + "gk_name": "第二章&小关卡", + "kingExp": 100, + "lvLimted": 25, + "turnLimted": 20, + "forcedCharactor": "&", + "fobiddenCharactor": "&", + "victoryInfoInUI": "消灭所有敌军", + "loseInfoInUI": "我方全部阵亡", + "starInfoInUI": "1.我方无人阵亡;\n2.在5回合内获得胜利", + "cost": 2, + "iconInMap": 0, + "sSpineInUI": 0, + "detailUIBg": 0, + "recommendedPower": 10054, + "previousGk": 0, + "relatedEliteGk": 0 + } +] \ No newline at end of file diff --git a/shared/resource/warJsons/4001.json b/shared/resource/warJsons/4001.json index d35c88be9..265fbfd63 100644 --- a/shared/resource/warJsons/4001.json +++ b/shared/resource/warJsons/4001.json @@ -13,7 +13,7 @@ "hide": 0, "initial_ai": 1, "bossid": 0, - "attribute": "1&1000|2&2000|3&3000", + "attribute": "1&1000|2&2000|3&3000|17&100", "skill": "&", "seid": "&", "star": 0, @@ -33,7 +33,7 @@ "hide": 0, "initial_ai": 1, "bossid": 0, - "attribute": "&", + "attribute": "1&1000|2&2000|3&3000|17&100", "skill": "&", "seid": "&", "star": 0, @@ -53,7 +53,7 @@ "hide": 0, "initial_ai": 1, "bossid": 0, - "attribute": "&", + "attribute": "1&1000|2&2000|3&3000|17&100", "skill": "&", "seid": "&", "star": 0, @@ -73,7 +73,7 @@ "hide": 0, "initial_ai": 1, "bossid": 0, - "attribute": "&", + "attribute": "1&1000|2&2000|3&3000|17&100", "skill": "&", "seid": "&", "star": 0, @@ -93,7 +93,7 @@ "hide": 0, "initial_ai": 1, "bossid": 0, - "attribute": "&", + "attribute": "1&1000|2&2000|3&3000|17&100", "skill": "&", "seid": "&", "star": 0,