修改远征创建记录逻辑

This commit is contained in:
luying
2020-11-17 10:07:59 +08:00
parent d5a5cfc270
commit 0e2f043f93
26 changed files with 2147 additions and 1150 deletions

View File

@@ -1,8 +1,7 @@
import { Application, BackendSession } from 'pinus';
import { DailyRecordModel } from '../../../db/DailyRecord';
import { BattleRecordModel } from '../../../db/BattleRecord';
import { getGamedata } from '../../../pubUtils/gamedata';
import { WAR_TYPE, GOLD_COST_RATIO } from '../../../consts/consts';
import { GOLD_COST_RATIO } from '../../../consts/consts';
import { STATUS } from '../../../consts/statusCode';
import { resResult, calculateNum } from '../../../pubUtils/util';
import { RoleModel } from '../../../db/Role';
@@ -20,8 +19,7 @@ export class DailyBattleHandler {
async getData(msg: { }, session: BackendSession) {
let roleId = session.get('roleId');
const BattleRecord = await BattleRecordModel.getBattleList(roleId, WAR_TYPE.DAILY);
let {warStar} = await RoleModel.findByRoleId(roleId);
let dicDaily = getGamedata('dic_zyz_daily');
let dicDailyWar = getGamedata('dic_zyz_gk_daily');
@@ -32,13 +30,13 @@ export class DailyBattleHandler {
for(let {war_id, dailyType, cost, gk_name, previousGk } of dicDailyWar) {
if(dailyType == type) {
let status = 0, star = 0;
let curBattle = BattleRecord.find(cur => cur.battleId == war_id);
let curBattle = warStar.find(cur => cur.id == war_id);
if(curBattle) {
status = 2;
star = curBattle.star;
} else {
if (previousGk) {
let preBattleRecord = BattleRecord.find(cur => cur.battleId == previousGk);
let preBattleRecord = warStar.find(cur => cur.id == previousGk);
if(preBattleRecord) {
status = 1;
} else {
@@ -54,6 +52,7 @@ export class DailyBattleHandler {
}
}
let checkDailyResult = await getDailyNum(refreshResult, timesPerDay, timesCanBuy);
checkDailyResult['count'] = checkDailyResult.battleCount;
result.push({
type, name, ...checkDailyResult,
wars
@@ -94,6 +93,7 @@ export class DailyBattleHandler {
let newDailyRecord = await DailyRecordModel.increseBuyCount(roleId, type, count);
let checkDailyResult = await getDailyNum(newDailyRecord, timesPerDay, timesCanBuy);
checkDailyResult['count'] = checkDailyResult.battleCount;
return resResult(STATUS.SUCCESS, { type, ...checkDailyResult, buyCost});
}
}

View File

@@ -6,7 +6,7 @@ import { ExpeditionWarRecordModel } from '../../../db/ExpeditionWarRecord';
import { ExpeditionPointModel } from '../../../db/ExpeditionPoint';
import { RoleModel } from '../../../db/Role';
import { calculateSumCE, genCode } from '../../../pubUtils/util';
import { matchPlayers, matchRobots, getPointRewardStatus, getCEScaleAndRange, getResetRemainCnt } from '../../../services/expeditionService';
import { getPointRewardStatus, getResetRemainCnt, findOrCreateEnemies } from '../../../services/expeditionService';
import { EXPEDITION_CONST } from '../../../consts/consts';
import { WarReward } from '../../../services/warRewardService';
import { handleFixedReward } from '../../../services/rewardService';
@@ -34,11 +34,12 @@ export class ExpeditionBattleHandler {
// 获取远征关卡状态
let expeditionRecord = await ExpeditionRecordModel.getCurRecord(roleId);
if(!expeditionRecord) { // 首次新建一条记录
// 我方战力(暂定)
// 我方战力
let myCe = await calculateSumCE(roleId, 1, { num: 5 });
expeditionRecord = await ExpeditionRecordModel.createRecord({
roleId, roleName, heroes: [], myCe
});
await findOrCreateEnemies(roleId, myCe, expeditionRecord.expeditionCode, 1);
}
// 每一关的挑战状态
@@ -89,12 +90,18 @@ export class ExpeditionBattleHandler {
let { expeditionCode, heroes } = await ExpeditionRecordModel.createRecord({
roleId, roleName, heroes: [], myCe
});
await findOrCreateEnemies(roleId, myCe, expeditionCode, 1);
await RoleModel.increaseExpeditionResetCnt(roleId, needRefresh, curTime);
let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCode(expeditionCode);
let curLv = 0;
if(expeditionWarRecord.length > 0) {
curLv = expeditionWarRecord[expeditionWarRecord.length - 1].expeditionId;
}
return resResult(STATUS.SUCCESS, {
expeditionCode,
curLv: 0,
expeditionWarRecord: [],
curLv,
expeditionWarRecord,
heroes,
resetCnt: resetCnt - 1
});
@@ -112,40 +119,22 @@ export class ExpeditionBattleHandler {
let { myCe } = await ExpeditionRecordModel.getExpeditionRecordByCode(expeditionCode);
let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCodeAndId(expeditionCode, expeditionId);
if(!expeditionWarRecord) { // 如果没有信息
let enemyObj = {
enemyFrom: 0,
enemyId: '',
enemies: new Array()
};
let dicExpedition = getGamedata('dic_expedition');
let curDicExpedition = dicExpedition.find(cur => cur.id == expeditionId);
// 获取系数和步长
let {scale, range, lv} = await getCEScaleAndRange(roleId, curDicExpedition);
// 优先匹配其他玩家
let flag = await matchPlayers(roleId, scale, range, myCe, curDicExpedition.json, enemyObj);
// 当数量不够时使用机器人匹配
if(!flag) {
flag = await matchRobots(scale, myCe, curDicExpedition.ce, curDicExpedition.json, lv, enemyObj);
}
if(!flag) {
return resResult(STATUS.EXPEDITION_MATCH_NO_PLAYER);
}
// 保存
let {warId} = curDicExpedition;
expeditionWarRecord = await ExpeditionWarRecordModel.saveRecord(expeditionCode, expeditionId, {
roleId, battleId: warId, ...enemyObj
});
let curExpeditionWarRecord = await findOrCreateEnemies(roleId, myCe, expeditionCode, expeditionId);
if(!curExpeditionWarRecord) {
return resResult(STATUS.EXPEDITION_MATCH_NO_PLAYER);
}
let { battleId, enemyFrom, enemies, battleStatus, ce: curCe } = curExpeditionWarRecord;
let nextCe = 0; // 下一关战力
let nextExpeditionWarRecord = await findOrCreateEnemies(roleId, myCe, expeditionCode, expeditionId + 1);
if(nextExpeditionWarRecord) nextCe = nextExpeditionWarRecord.ce;
let { battleId, enemyFrom, enemies, battleStatus } = expeditionWarRecord;
return resResult(STATUS.SUCCESS, {
expeditionCode, expeditionId, battleId,
battleStatus,
enemyFrom,
enemies
enemies,
curCe,
nextCe
});
}
@@ -282,51 +271,11 @@ export class ExpeditionBattleHandler {
});
}
/**
* 领取战斗宝箱
* 领取宝箱,更新远征状态
*/
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 resResult(STATUS.EXPEDITION_MISS_WAR_RECORD);
}
if(expeditionWarRecord.battleStatus != 1) {
return resResult(STATUS.EXPEDITION_WRONG_STATUS_WHEN_RECEIVE);
}
if(expeditionWarRecord.received) {
return resResult(STATUS.EXPEDITION_WRONG_RECEIVE_STATUS);
}
// 设置expeditionWarRecord的received和rewards
let dicExpedition = getGamedata('dic_expedition');
let curDicExpedition = dicExpedition.find(cur => cur.id == expeditionId);
if(!curDicExpedition) {
return resResult(STATUS.EXPEDITION_MISS_INFO);
}
let result = await ExpeditionWarRecordModel.updateBoxStatus(expeditionCode, expeditionId, true, curDicExpedition.reward);
let { battleId, battleCode, battleStatus, received } = result;
// 获取东西
let goods = await handleFixedReward(roleId, roleName, curDicExpedition.reward, 1);
return resResult(STATUS.SUCCESS, {
expeditionCode, expeditionId,
battleId, battleCode, battleStatus, received,
...goods
});
}
/**
* 领取点数宝箱
* 领取点数宝箱,不扣除点数,那么就需要记录领取状态并且有返回
*/
async pointReward(msg: { point }, session: BackendSession) {
async pointReward(msg: { point: number }, session: BackendSession) {
const { point } = msg;
let roleId = session.get('roleId');
@@ -353,51 +302,28 @@ export class ExpeditionBattleHandler {
}
// 标记状态
await ExpeditionPointModel.updatePointStatus(roleId, point, curDicExpeditionPoint.reward);
let {rewards: resultRewards} = await ExpeditionPointModel.updatePointStatus(roleId, point, curDicExpeditionPoint.reward);
let hasReceivedAll = true, maxPoint = 0;
for(let dic of dicExpeditionPoint) {
let curReward = resultRewards.find(cur => cur.point == dic.point);
if(!curReward || !curReward.received) {
hasReceivedAll = false;
}
if(dic.point > maxPoint) maxPoint = dic.point;
}
if(hasReceivedAll) { // 全部领取了,刷新
await ExpeditionPointModel.completeStatus(roleId);
await RoleModel.increaseExpeditionPoint(roleId, maxPoint * -1);
}
let pointRewards = await getPointRewardStatus(roleId);
let goods = await handleFixedReward(roleId, roleName, curDicExpeditionPoint.reward, 1);
return resResult(STATUS.SUCCESS, {
costPoint: hasReceivedAll?maxPoint: 0,
pointRewards,
...goods
})
}
/**
* 刷新点数宝箱
* 扣除远征点数,并刷新箱子状态
*/
async resetPointReward(msg: { }, session: BackendSession) {
let roleId = session.get('roleId');
// let roleName = session.get('roleName');
let pointStatusInDatabase = await ExpeditionPointModel.getExpeditionPoint(roleId);
if(!pointStatusInDatabase) {
return resResult(STATUS.EXPEDITION_POINT_RECORD_NOT_FOUND);
}
let { rewards } = pointStatusInDatabase;
let dicExpeditionPoint = getGamedata('dic_expedition_point');
let flag = true, maxPoint = 0;
for(let dic of dicExpeditionPoint) {
let curReward = rewards.find(cur => cur.point == dic.point);
if(!curReward || !curReward.received) {
flag = false;
}
if(dic.point > maxPoint) maxPoint = dic.point;
}
if(!flag) {
return resResult(STATUS.EXPEDITION_POINT_NEED_ALL_RECEIVED);
}
// 刷新
await ExpeditionPointModel.completeStatus(roleId);
await RoleModel.increaseExpeditionPoint(roleId, maxPoint * -1);
let pointRewards = await getPointRewardStatus(roleId);
return resResult(STATUS.SUCCESS, {
pointRewards
});
}
}

View File

@@ -15,9 +15,7 @@ export class ChatHandler {
let roleId = session.get('roleId')
let hero = await HeroModel.find().limit(1000);
for(let h of hero) {
let actor = new Actor(h);
let ce = actor.calculateCE();
await updateCe(roleId, h);
await updateCe(h.roleId, h);
}
return 'success'
}

View File

@@ -83,7 +83,8 @@ export class EntryHandler {
let equips = await EquipModel.findbyRole(role.roleId);
for(let hero of heros) {
let actor = new Actor(hero);
let actor = new Actor();
actor.initHero(hero);
actor.calculateCE();
}

View File

@@ -3,13 +3,48 @@ import { ExpeditionPointModel } from '../db/ExpeditionPoint';
import Role, { RoleModel } from '../db/Role';
import { PvpDefenseModel } from '../db/PvpDefense';
import { getWarJsons, getGamedata } from '../pubUtils/gamedata';
import { getWarJsons, getGamedata, getExpeditionById } from '../pubUtils/gamedata';
import { decodeStr, resResult, setLocalHours, shouldRefresh } from '../pubUtils/util';
import { WAR_JSON_ATTRIBUTE_TYPE, EXPEDITION_CONST } from '../consts/consts';
import Actor from '../pubUtils/actor';
import { ExpeditionWarRecordModel } from '../db/ExpeditionWarRecord';
export async function findOrCreateEnemies(roleId: string, myCe: number, expeditionCode: string, expeditionId: number) {
let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCodeAndId(expeditionCode, expeditionId);
if(!expeditionWarRecord) { // 如果没有信息
let curDicExpedition = getExpeditionById(expeditionId);
if(curDicExpedition) {
let enemyObj = {
enemyFrom: 0,
enemyId: '',
enemies: new Array(),
ce: 0
};
// 获取系数和步长
let {scale, range, lv} = await getCEScaleAndRange(roleId, curDicExpedition);
// 优先匹配其他玩家
let flag = await matchPlayers(roleId, scale, range, myCe, curDicExpedition.json, enemyObj);
// 当数量不够时使用机器人匹配
if(!flag) {
flag = await matchRobots(scale, myCe, curDicExpedition.ce, curDicExpedition.json, lv, enemyObj);
}
if(flag) {
// 保存
let {warId} = curDicExpedition;
expeditionWarRecord = await ExpeditionWarRecordModel.saveRecord(expeditionCode, expeditionId, {
roleId, battleId: warId, ...enemyObj
});
}
}
}
return expeditionWarRecord;
}
// 匹配玩家
export async function matchPlayers(roleId: string, scale: number, range: number, myCe: number, warJsonIndex:any, enemyObj: {enemyFrom: number, enemyId: string, enemies: Array<any> }) {
export async function matchPlayers(roleId: string, scale: number, range: number, myCe: number, warJsonIndex:any, enemyObj: {enemyFrom: number, enemyId: string, enemies: Array<any>, ce: number }) {
let {json: dicWarJson } = getWarJsons(warJsonIndex);
let min = myCe * scale * (1 - range/100);
@@ -19,10 +54,11 @@ export async function matchPlayers(roleId: string, scale: number, range: number,
if(resultRange.length > 0) {
let index = Math.floor(Math.random() * resultRange.length);
let result = resultRange[index];
let {roleId, heroes } = result;
let {roleId, heroes, ce } = result;
enemyObj.enemyFrom = 1;
enemyObj.enemyId = roleId;
enemyObj.ce = ce;
let heroIndex = 0;
for(let enemy of dicWarJson) {
@@ -42,12 +78,13 @@ export async function matchPlayers(roleId: string, scale: number, range: number,
}
// 匹配机器人
export async function matchRobots(scale: number, myCe: number, robotCe: number, warJsonIndex:any, lv: number, enemyObj: {enemyFrom: number, enemyId: string, enemies: Array<any> }) {
export async function matchRobots(scale: number, myCe: number, robotCe: number, warJsonIndex:any, lv: number, enemyObj: {enemyFrom: number, enemyId: string, enemies: Array<any>, ce: number }) {
let {json: dicWarJson, fileName } = getWarJsons(warJsonIndex);
if(dicWarJson) {
enemyObj.enemyFrom = 2;
enemyObj.enemyId = fileName;
enemyObj.enemyId = fileName + '';
let allCe = 0;
let ratio = myCe / robotCe * scale; // 玩家战力/机器人初始战力*系数
for(let enemy of dicWarJson) {
if(enemy.relation == 2) {
@@ -56,9 +93,14 @@ export async function matchRobots(scale: number, myCe: number, robotCe: number,
attribute[value] *= ratio;
attribute[value] = Math.round(attribute[value]);
}
let actor = new Actor();
let ce = actor.calculateCEByExpression(attribute);
enemyObj.enemies.push({...enemy, attribute, lv});
allCe += ce;
}
}
console.log(JSON.stringify(enemyObj.enemies))
enemyObj.ce = Math.floor(allCe);
return true
} else {
@@ -79,12 +121,11 @@ export async function getCEScaleAndRange(roleId: string, curDicExpedition: any)
}
// 远征表属性解码
export function decodeWarJsonAttribute(attribute) {
export function decodeWarJsonAttribute(attribute: string) {
let arr = decodeStr('attribute', attribute);
let obj = {}
for(let key in WAR_JSON_ATTRIBUTE_TYPE) {
obj[WAR_JSON_ATTRIBUTE_TYPE[key]] = 0; // 初始化
}
// 初始化
let obj = {hp: 0, atk: 0, matk: 0, def: 0, mdef: 0, speed: 0, agi: 0, luk: 0, hit: 0, cri: 0, flee: 0, antCri: 0, damageIncrease: 0, damageDecrease: 0, defIngnore: 0, bloodSuck: 0}
for(let {id, value} of arr) {
let field = WAR_JSON_ATTRIBUTE_TYPE[id];
if(field) {

View File

@@ -195,9 +195,7 @@ export default class GMUsers extends Service {
if(hero) continue;
const seqId = await CounterModel.getNewCounter('hid')||-1;
let dicHero = ctx.service.utils.getHeroById(hid);
if(!dicHero) continue;
let ce = ctx.service.utils.calculateCE({hid: hid, lv: hlv});
if(!dicHero) continue;
const heroInfo = {
roleId,
roleName: role.roleName,
@@ -205,8 +203,7 @@ export default class GMUsers extends Service {
hName: dicHero.name,
seqId,
lv: hlv,
star: dicHero.quality,
ce
star: dicHero.quality
}
heroInfos.push(heroInfo);
}

View File

@@ -209,4 +209,8 @@ export const GOLD_COST_RATIO = {
"TPWER_TASK_REF": { "A": 0, "B": 200 }, // 天梯派遣刷新花费
"DAILY_REF_NUM": { "A": 50, "B": 0 }, // 每日购买次数花费
"DUNGRON_BUY_NUM": { "A": 0, "B": 50 } // 秘境购买次数花费
}
export const EXPRESSION = {
"CE": "1*hp+2*atk+2*matk+2*def+2*mdef+2*agi+2*luk+1*hit+1*cri+1*flee+1*antCri+1.75*damageIncrease+1.75*damageDecrease+3.5*defIngnore+3.5*bloodSuck"
}

View File

@@ -51,26 +51,6 @@ export default class BattleRecord extends BaseModel {
return result;
}
public static async getBattleList( roleId: string, warType: number, lean = true) {
const searchObj = { roleId, warType, status: 1 };
const count = await BattleRecordModel.countDocuments(searchObj);
const limit = 1000;
const page = Math.ceil(count/limit);
let result = new Array();
for(let i = 0; i < page; i++) {
const battleRecords = await BattleRecordModel.find(searchObj)
.select('battleId battleCode warType star status')
.limit(1000)
.skip(1000 * i)
.sort({battleId: 1, star: -1, createdAt: -1})
.lean(lean);
for(let battleRecord of battleRecords) {
result.push(battleRecord);
}
}
return result;
}
public static async deleteAccount(roleId: string, lean = true) {
let result = await BattleRecordModel.deleteMany({roleId}).lean(lean);
return result||{};

View File

@@ -56,32 +56,30 @@ export default class ExpeditionWarRecord extends BaseModel {
@prop({ required: true, default: '' })
battleCode: string; // 关联关卡唯一值
@prop({ required: true, default: 0 })
battleStatus: number; // 是否通过, 0-挑战 1-成功 2-挑战失败
@prop({ required: true, default: false })
received: boolean; // 本关战胜后宝箱是否领取
@prop({ required: true, default: false })
reward: string; // 领取的宝箱奖励
battleStatus: number; // 是否通过, 0-挑战 1-成功 2-挑战失败
@prop({ required: true, default: 0 })
enemyFrom: number; // 敌军数据来源1-配表的敌军队2-玩家
@prop({ required: true, default: '' })
enemyId: string; // 敌军队伍id或玩家id
@prop({ required: true, type: Enemies, default: [] })
enemies: Array<Enemies>; // 敌军数据
@prop({ required: true, default: 0 })
ce: number; // 敌军战力
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);
const result = await ExpeditionWarRecordModel.find({ expeditionCode }).select('expeditionId battleId battleCode battleStatus ce').sort({expeditionId: 1}).lean(lean);
return result;
}
public static async getRecordByCodeAndId(expeditionCode: string, expeditionId: number, lean = true) {
const result = await ExpeditionWarRecordModel.findOne({ expeditionCode, expeditionId }).select('expeditionId battleId battleCode battleStatus received enemyFrom enemies').lean(lean);
const result = await ExpeditionWarRecordModel.findOne({ expeditionCode, expeditionId }).select('expeditionId battleId battleCode battleStatus enemyFrom enemies ce').lean(lean);
return result;
}
public static async saveRecord(expeditionCode: string, expeditionId: number, params: {roleId: string, battleId: number, enemyFrom: number, enemyId: string, enemies: Array<any>}, lean = true) {
const doc = new ExpeditionWarRecordModel();
const update = Object.assign(doc.toJSON(), params, {expeditionCode, expeditionId});
const result = await ExpeditionWarRecordModel.findOneAndUpdate({ expeditionCode, expeditionId }, update, {new: true, upsert: true}).select('expeditionId battleId battleCode battleStatus received enemyFrom enemies').lean(lean);
const result = await ExpeditionWarRecordModel.findOneAndUpdate({ expeditionCode, expeditionId }, update, {new: true, upsert: true}).select('expeditionId battleId battleCode battleStatus enemyFrom enemies ce').lean(lean);
return result;
}
@@ -106,11 +104,6 @@ export default class ExpeditionWarRecord extends BaseModel {
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;
}
public static async deleteAccount(roleId: string, lean = true) {
let result = await ExpeditionWarRecordModel.deleteMany({roleId}).lean(lean);
return result||{};

View File

@@ -1,6 +1,6 @@
import { getHeroInfoById, getStarRatio, getHeroSkillById, getSeidById, getOlySeidByType, getGoodById } from "./gamedata";
import { ABI_TYPE, SEID_TYPE } from "../consts/abilityConst";
import { EXPRESSION } from '../consts/consts';
import { WAR_JSON_ATTRIBUTE_TYPE, EXPRESSION } from '../consts/consts';
export default class Actor {
private hid: number = 0;
@@ -14,7 +14,7 @@ export default class Actor {
private seidList:Array<any> = new Array<any>(3);
private effectList:Map<number,Array<any> > = new Map<number,Array<any> >();
constructor(hero: any) { // 从数据库拿到的hero
initHero(hero: any) { // 从数据库拿到的hero
this.hid = hero.hid;
this.lv = hero.lv;
this.oldCe = hero.ce;
@@ -258,29 +258,13 @@ export default class Actor {
calculateCE() {
// 武将
let hp = this.getRealAbility(ABI_TYPE.ABI_HP); console.log(this.hid, 'hp', hp);
let atk = this.getRealAbility(ABI_TYPE.ABI_ATK); console.log(this.hid, 'atk', atk);
let matk = this.getRealAbility(ABI_TYPE.ABI_MATK); console.log(this.hid, 'matk', matk);
let def = this.getRealAbility(ABI_TYPE.ABI_DEF); console.log(this.hid, 'def', def);
let mdef = this.getRealAbility(ABI_TYPE.ABI_MDEF); console.log(this.hid, 'mdef', mdef);
let agi = this.getRealAbility(ABI_TYPE.ABI_AGI); console.log(this.hid, 'agi', agi);
let speed = this.getRealAbility(ABI_TYPE.ABI_SPEED); console.log(this.hid, 'speed', speed);
let luk = this.getRealAbility(ABI_TYPE.ABI_LUK); console.log(this.hid, 'luk', luk);
let hit = this.getRealAbility(ABI_TYPE.ABI_HIT); console.log(this.hid, 'hit', hit);
let cri = this.getRealAbility(ABI_TYPE.ABI_CRI); console.log(this.hid, 'cri', cri);
let flee = this.getRealAbility(ABI_TYPE.ABI_FLEE); console.log(this.hid, 'flee', flee);
let antCri = this.getRealAbility(ABI_TYPE.ABI_ANT_CRI); console.log(this.hid, 'antCri', antCri);
let damageIncrease = this.getRealAbility(ABI_TYPE.ABI_DAMAGE_INCREASE); console.log(this.hid, 'damageIncrease', damageIncrease);
let damageDecrease = this.getRealAbility(ABI_TYPE.ABI_DAMAGE_DECREASE); console.log(this.hid, 'damageDecrease', damageDecrease);
let defIngnore = this.getRealAbility(ABI_TYPE.ABI_DEF_IGNORE); console.log(this.hid, 'defIngnore', defIngnore);
let bloodSuck = this.getRealAbility(ABI_TYPE.ABI_BLOOD_SUCK); console.log(this.hid, 'bloodSuck', bloodSuck);
let ce = 0;
try {
ce = eval(EXPRESSION.CE);
} catch(e) {
console.error('expression wrong');
let json = {hp: 0, atk: 0, matk: 0, def: 0, mdef: 0, agi: 0, speed: 0, luk: 0, hit: 0, cri: 0, flee: 0, antCri: 0, damageIncrease: 0, damageDecrease: 0, defIngnore: 0, bloodSuck: 0};
for(let i = ABI_TYPE.ABI_HP;i < ABI_TYPE.ABI_MAX;i++){
let field = WAR_JSON_ATTRIBUTE_TYPE[i];
json[field] = this.getRealAbility(i);
}
console.log(this.hid, 'ce', ce);
let ce = this.calculateCEByExpression(json);
// 装备
for(let equip of this.equips) {
@@ -294,6 +278,18 @@ export default class Actor {
return Math.floor(ce);
}
calculateCEByExpression(json: {hp:number, atk: number, matk: number, def: number, mdef: number, agi: number, luk: number, hit: number, cri: number, flee: number, antCri: number, damageIncrease: number, damageDecrease: number, defIngnore: number, bloodSuck: number}): number {
let {hp, atk, matk, def, mdef, agi, luk, hit, cri, flee, antCri, damageIncrease, damageDecrease, defIngnore, bloodSuck } = json;
console.log(JSON.stringify({hp, atk, matk, def, mdef, agi, luk, hit, cri, flee, antCri, damageIncrease, damageDecrease, defIngnore, bloodSuck}));
let ce = 0;
try {
ce = eval(EXPRESSION.CE);
} catch(e) {
console.error('expression wrong');
}
return ce
}
}

View File

@@ -14,6 +14,7 @@ const starRatioInfo = new Map<number, number>();
const heroSkillInfo = new Map<number, any>()
const seidInfo = new Map<number, any>();
const olySeidInfo = new Map<number, any>();
const expeditionInfo = new Map<number, any> ();
function parseWarData() {
let result = null;
@@ -164,6 +165,17 @@ function parseOlySeidList() {
});
}
function parseExpedition() {
const file = 'dic_expedition';
const data = gamedata['jsons'][file] || [];
data.forEach(elem => {
if (elem && elem.id) {
expeditionInfo.set(elem.id, elem);
}
});
}
function initData (folder: string) {
if(!gamedata.hasOwnProperty(folder)) {
@@ -200,6 +212,7 @@ function parseData() {
parseHeroSkill();
parseSeidList();
parseOlySeidList();
parseExpedition();
}
initData('jsons'); // 加载一般json
@@ -282,4 +295,8 @@ export function getSeidById(id: number) {
export function getOlySeidByType(type: number) {
return olySeidInfo.get(type);
}
export function getExpeditionById(id: number) {
return expeditionInfo.get(id);
}

View File

@@ -121,7 +121,7 @@ export function decodeIdCntArrayStr(str: string, multi: number) {
// 计算当前武将战力
export async function calculateSumCE(roleId: string, type: number, param: { num?: number, heroes?: Array<number> }) {
let sum;
if(type == 1) { // 最高num人战力和
if(type == 1) { // 最高num人历史最高战力和
sum = await HeroModel.sumTopHeroCe(roleId, param.num||0);
} else if(type == 2) { // 所有人战力和
sum = await HeroModel.sumHeroCe(roleId);
@@ -329,7 +329,8 @@ export function setLocalHours(hour: number, curTime = new Date()) {
export async function updateCe(roleId: string, hero: any ) {
let {hid, ce: oldCe, historyCe} = hero;
let actor = new Actor(hero);
let actor = new Actor();
actor.initHero(hero);
let ce = actor.calculateCE();
if(ce != oldCe) {
// 更新总战力&最强五人战力
@@ -339,4 +340,4 @@ export async function updateCe(roleId: string, hero: any ) {
// 更新武将战力,历史最高战力
await HeroModel.updateCe(roleId, hid, ce, oldCe, historyCe);
}
}
}

View File

@@ -2,7 +2,6 @@
{
"id": 1,
"warId": 4001,
"reward": "&",
"CEScale": 0.5,
"CERange": 5,
"CEScaleNew": 0.3,
@@ -13,7 +12,6 @@
{
"id": 2,
"warId": 4002,
"reward": "&",
"CEScale": 0.6,
"CERange": 5,
"CEScaleNew": 0.35,
@@ -24,7 +22,6 @@
{
"id": 3,
"warId": 4003,
"reward": "&",
"CEScale": 0.7,
"CERange": 5,
"CEScaleNew": 0.4,
@@ -35,7 +32,6 @@
{
"id": 4,
"warId": 4004,
"reward": "&",
"CEScale": 0.8,
"CERange": 5,
"CEScaleNew": 0.45,
@@ -46,7 +42,6 @@
{
"id": 5,
"warId": 4005,
"reward": "&",
"CEScale": 1,
"CERange": 5,
"CEScaleNew": 0.5,
@@ -57,7 +52,6 @@
{
"id": 6,
"warId": 4006,
"reward": "&",
"CEScale": 1.05,
"CERange": 5,
"CEScaleNew": 0.55,
@@ -68,7 +62,6 @@
{
"id": 7,
"warId": 4007,
"reward": "&",
"CEScale": 1.1,
"CERange": 5,
"CEScaleNew": 0.6,
@@ -79,7 +72,6 @@
{
"id": 8,
"warId": 4008,
"reward": "&",
"CEScale": 1.15,
"CERange": 5,
"CEScaleNew": 0.7,
@@ -90,7 +82,6 @@
{
"id": 9,
"warId": 4009,
"reward": "&",
"CEScale": 1.3,
"CERange": 5,
"CEScaleNew": 0.8,

View File

@@ -1 +1,14 @@
[{"point":6,"reward":"&"},{"point":12,"reward":"&"},{"point":18,"reward":"&"}]
[
{
"point": 9,
"reward": "&"
},
{
"point": 18,
"reward": "&"
},
{
"point": 27,
"reward": "&"
}
]

View File

@@ -1,8 +1,8 @@
[
{
"war_id": 3001,
"dispatchJsonId": 3001,
"bg_img_id": 501,
"war_id": 104,
"dispatchJsonId": 104,
"bg_img_id": 602,
"script_id": 0,
"fixReward": "10205&1|17001&10|17005&2|17006&3",
"warType": 6,
@@ -16,12 +16,17 @@
"starInfoInUI": "1.我方无人阵亡;\r\n2.在5回合内获得胜利",
"cost": 0,
"recommendedPower": 10008,
"previousGk": 127
"previousGk": 127,
"lvLimted": 0,
"heroInUI": "2&10|1&9|1&1001",
"detailUIBg": "dengeon1",
"iconName": "city",
"iconInMap": "city&1"
},
{
"war_id": 3002,
"dispatchJsonId": 3002,
"bg_img_id": 501,
"war_id": 105,
"dispatchJsonId": 105,
"bg_img_id": 603,
"script_id": 0,
"fixReward": "10005&1|17002&10|17007&2|17008&3",
"warType": 6,
@@ -35,6 +40,11 @@
"starInfoInUI": "1.我方无人阵亡;\r\n2.在5回合内获得胜利",
"cost": 0,
"recommendedPower": 10008,
"previousGk": 3001
"previousGk": 104,
"lvLimted": 0,
"heroInUI": "2&10|1&9|1&1001",
"detailUIBg": "dengeon1",
"iconName": "city",
"iconInMap": "city&2"
}
]

View File

@@ -1,8 +1,8 @@
[
{
"war_id": 3010,
"dispatchJsonId": 3010,
"bg_img_id": 501,
"war_id": 106,
"dispatchJsonId": 106,
"bg_img_id": 601,
"script_id": 0,
"fixReward": "10205&1|17001&10|17005&2|17006&3",
"warType": 13,
@@ -16,12 +16,17 @@
"starInfoInUI": "1.我方无人阵亡;\r\n2.在5回合内获得胜利",
"cost": 0,
"recommendedPower": 10008,
"previousGk": 3001
"previousGk": 105,
"lvLimted_1": 0,
"heroInUI": "2&10|1&9|1&1001",
"detailUIBg": "dengeon1",
"iconName": "city",
"iconInMap": "city&1"
},
{
"war_id": 3011,
"dispatchJsonId": 3011,
"bg_img_id": 501,
"war_id": 107,
"dispatchJsonId": 107,
"bg_img_id": 107,
"script_id": 0,
"fixReward": "10005&1|17002&10|17007&2|17008&3",
"warType": 13,
@@ -35,6 +40,11 @@
"starInfoInUI": "1.我方无人阵亡;\r\n2.在5回合内获得胜利",
"cost": 0,
"recommendedPower": 10008,
"previousGk": 3002
"previousGk": 106,
"lvLimted_1": 0,
"heroInUI": "2&10|1&9|1&1001",
"detailUIBg": "dengeon1",
"iconName": "city",
"iconInMap": "city&2"
}
]

View File

@@ -1,28 +1,218 @@
[
{
"war_id": 4001,
"dispatchJsonId": 101,
"bg_img_id": 101,
"script_id": 101,
"fixReward": "&",
"conditionReward": "&",
"RandomReward": "&",
"warType": 1,
"gk_name": "序章&王越童渊比试",
"dispatchJsonId": 4001,
"bg_img_id": 541,
"script_id": 0,
"fixReward": "14009&50|31002&100",
"warType": 5,
"gk_name": "远征&村庄敌探",
"kingExp": 100,
"lvLimted": 1,
"turnLimted": 20,
"forcedCharactor": "&",
"fobiddenCharactor": "&",
"victoryInfoInUI": "无",
"loseInfoInUI": "无",
"starInfoInUI": "无",
"cost": 2,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"sSpineInUI": "&",
"detailUIBg": 0,
"recommendedPower": 10003,
"iconName": "乌桓王庭",
"heroInUI": "1&1008",
"detailUIBg": "1_1",
"recommendedPower": 10000,
"previousGk": 0,
"relatedEliteGk": 0
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
},
{
"war_id": 4002,
"dispatchJsonId": 4002,
"bg_img_id": 542,
"script_id": 0,
"fixReward": "14009&50|31002&200",
"warType": 5,
"gk_name": "远征&追击伏兵",
"kingExp": 100,
"turnLimted": 20,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"iconName": "乌桓王庭",
"heroInUI": "1&1008",
"detailUIBg": "1_1",
"recommendedPower": 10000,
"previousGk": 4001,
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
},
{
"war_id": 4003,
"dispatchJsonId": 4003,
"bg_img_id": 542,
"script_id": 0,
"fixReward": "14009&50|31002&300",
"warType": 5,
"gk_name": "远征&草原部落",
"kingExp": 100,
"turnLimted": 20,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"iconName": "乌桓王庭",
"heroInUI": "1&1008|1&1045",
"detailUIBg": "1_1",
"recommendedPower": 10000,
"previousGk": 4002,
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
},
{
"war_id": 4004,
"dispatchJsonId": 4004,
"bg_img_id": 541,
"script_id": 0,
"fixReward": "14009&50|31002&400",
"warType": 5,
"gk_name": "远征&叛乱线索",
"kingExp": 100,
"turnLimted": 20,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"iconName": "乌桓王庭",
"heroInUI": "1&1008|1&1045",
"detailUIBg": "1_2",
"recommendedPower": 10000,
"previousGk": 4003,
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
},
{
"war_id": 4005,
"dispatchJsonId": 4005,
"bg_img_id": 542,
"script_id": 0,
"fixReward": "14009&50|31002&500",
"warType": 5,
"gk_name": "远征&深入敌营",
"kingExp": 100,
"turnLimted": 20,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"iconName": "乌桓王庭",
"heroInUI": "1&1008|1&1045|1&1055",
"detailUIBg": "1_2",
"recommendedPower": 10000,
"previousGk": 4004,
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
},
{
"war_id": 4006,
"dispatchJsonId": 4006,
"bg_img_id": 542,
"script_id": 0,
"fixReward": "14009&50|31002&600",
"warType": 5,
"gk_name": "远征&纵横捭阖",
"kingExp": 100,
"turnLimted": 20,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"iconName": "乌桓王庭",
"heroInUI": "1&1008|1&1045",
"detailUIBg": "1_2",
"recommendedPower": 10000,
"previousGk": 4005,
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
},
{
"war_id": 4007,
"dispatchJsonId": 4007,
"bg_img_id": 542,
"script_id": 0,
"fixReward": "14009&50|31002&700",
"warType": 5,
"gk_name": "远征&直击腹地",
"kingExp": 100,
"turnLimted": 20,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"iconName": "乌桓王庭",
"heroInUI": "1&1008|1&1045|1&1036",
"detailUIBg": "1_2",
"recommendedPower": 10000,
"previousGk": 4006,
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
},
{
"war_id": 4008,
"dispatchJsonId": 4008,
"bg_img_id": 541,
"script_id": 0,
"fixReward": "14009&50|31002&800",
"warType": 5,
"gk_name": "远征&神秘村落",
"kingExp": 100,
"turnLimted": 20,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"iconName": "乌桓王庭",
"heroInUI": "1&1013",
"detailUIBg": "1_3",
"recommendedPower": 10000,
"previousGk": 4007,
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
},
{
"war_id": 4009,
"dispatchJsonId": 4009,
"bg_img_id": 543,
"script_id": 0,
"fixReward": "14009&50|31002&900",
"warType": 5,
"gk_name": "远征&决战王庭",
"kingExp": 100,
"turnLimted": 20,
"victoryInfoInUI": "消灭所有敌军",
"loseInfoInUI": "我方全部阵亡",
"starInfoInUI": 0,
"cost": 0,
"iconInMap": "&",
"iconName": "乌桓王庭",
"heroInUI": "1&1013",
"detailUIBg": "1_3",
"recommendedPower": 10000,
"previousGk": 4008,
"relatedEliteGk": 0,
"movePoint": "&",
"mapseid": 0
}
]

View File

@@ -1,101 +1,202 @@
[{
"warId": 4001,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "1&1000|2&2000|3&3000|17&100",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 4001,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "1&1000|2&2000|3&3000|17&100",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 4001,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "1&1000|2&2000|3&3000|17&100",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 4001,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "1&1000|2&2000|3&3000|17&100",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 4001,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "1&1000|2&2000|3&3000|17&100",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4001,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 7,
"x": 3,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 8,
"x": 3,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 6,
"x": 2,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 7,
"x": 2,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 7,
"x": 1,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "李典",
"actorID": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 8,
"x": 8,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 6,
"x": 7,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "许褚",
"actorID": 315,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 8,
"x": 7,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 6,
"x": 6,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
},
{
"warID": 4001,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 7,
"x": 6,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0,
"__EMPTY": 0
}
]

View File

@@ -1,101 +1,192 @@
[{
"warId": 1502,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4002,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 14,
"x": 9,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 14,
"x": 8,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 15,
"x": 8,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 13,
"x": 7,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 14,
"x": 7,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 6,
"x": 8,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 6,
"x": 7,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 8,
"x": 6,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "许褚",
"actorID": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 7,
"x": 5,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4002,
"actorName": "李典",
"actorID": 312,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 9,
"x": 4,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
}
]

View File

@@ -1,101 +1,192 @@
[{
"warId": 1502,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4003,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 14,
"x": 9,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 15,
"x": 8,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 13,
"x": 7,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 13,
"x": 6,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 15,
"x": 5,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 6,
"x": 8,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "许褚",
"actorID": 315,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 7,
"x": 7,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 8,
"x": 7,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 8,
"x": 6,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4003,
"actorName": "李典",
"actorID": 312,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 8,
"x": 5,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
}
]

View File

@@ -1,101 +1,192 @@
[{
"warId": 1502,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4004,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 4,
"x": 3,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 5,
"x": 3,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 7,
"x": 3,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 6,
"x": 2,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 7,
"x": 1,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 8,
"x": 8,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 10,
"x": 8,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "许褚",
"actorID": 315,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 8,
"x": 7,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 9,
"x": 7,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4004,
"actorName": "李典",
"actorID": 312,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 10,
"x": 6,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
}
]

View File

@@ -1,101 +1,192 @@
[{
"warId": 1502,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4005,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 15,
"x": 5,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 15,
"x": 4,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 16,
"x": 4,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 15,
"x": 3,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 16,
"x": 3,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 5,
"x": 8,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 6,
"x": 8,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "许褚",
"actorID": 315,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 5,
"x": 7,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 6,
"x": 7,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4005,
"actorName": "李典",
"actorID": 312,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 7,
"x": 7,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
}
]

View File

@@ -1,101 +1,192 @@
[{
"warId": 1502,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4006,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 11,
"x": 7,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 12,
"x": 7,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 10,
"x": 6,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 11,
"x": 6,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 12,
"x": 6,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 5,
"x": 8,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 6,
"x": 8,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "许褚",
"actorID": 315,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 5,
"x": 7,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 6,
"x": 7,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4006,
"actorName": "李典",
"actorID": 312,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 7,
"x": 7,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
}
]

View File

@@ -1,101 +1,192 @@
[{
"warId": 1502,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4007,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 9,
"x": 7,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 11,
"x": 7,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 9,
"x": 6,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 10,
"x": 6,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 8,
"x": 5,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 4,
"x": 9,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "许褚",
"actorID": 315,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 6,
"x": 8,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "李典",
"actorID": 312,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 5,
"x": 7,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 5,
"x": 6,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4007,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 5,
"x": 5,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
}
]

View File

@@ -1,101 +1,192 @@
[{
"warId": 1502,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4008,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 12,
"x": 3,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 13,
"x": 3,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 11,
"x": 2,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 12,
"x": 2,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 13,
"x": 2,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 6,
"x": 8,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 7,
"x": 8,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "李典",
"actorID": 312,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 8,
"x": 8,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "许褚",
"actorID": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 8,
"x": 7,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4008,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 9,
"x": 7,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
}
]

View File

@@ -1,101 +1,192 @@
[{
"warId": 1502,
"actorName": "李典",
"actorId": 312,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 1,
"x": 11,
"y": 7,
"var": 1501,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "吕布",
"actorId": 344,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 1,
"x": 10,
"y": 6,
"var": 1502,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "贾诩",
"actorId": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 1,
"x": 11,
"y": 6,
"var": 1503,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "许褚",
"actorId": 315,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 1,
"x": 10,
"y": 5,
"var": 1504,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}, {
"warId": 1502,
"actorName": "邓艾",
"actorId": 309,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 1,
"x": 11,
"y": 5,
"var": 1505,
"lv": 30,
"hide": 0,
"initial_ai": 1,
"bossid": 0,
"attribute": "&",
"skill": "&",
"seid": "&",
"star": 0,
"spine": 0
}]
[
{
"warID": 4009,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 0,
"dirction": 3,
"x": 9,
"y": 501,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 1,
"dirction": 4,
"x": 9,
"y": 502,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 2,
"dirction": 5,
"x": 7,
"y": 503,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 3,
"dirction": 4,
"x": 6,
"y": 504,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "我军",
"actorID": 0,
"dataId": 0,
"relation": 0,
"outIndex": 4,
"dirction": 5,
"x": 6,
"y": 505,
"var": 0,
"lv": 20,
"initial_ai": 0,
"attribute": 0,
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "邓艾",
"actorID": 309,
"dataId": 2001,
"relation": 2,
"outIndex": 0,
"dirction": 11,
"x": 7,
"y": 1501,
"var": 2001,
"lv": 20,
"initial_ai": 1,
"attribute": "1&660|2&275|3&0|4&130|5&40|6&120|7&100|8&3|9&2|10&2|11&2|12&2|13&1|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "李典",
"actorID": 312,
"dataId": 2002,
"relation": 2,
"outIndex": 1,
"dirction": 10,
"x": 6,
"y": 1502,
"var": 2002,
"lv": 20,
"initial_ai": 1,
"attribute": "1&700|2&170|3&0|4&180|5&100|6&100|7&84|8&3|9&2|10&2|11&3|12&3|13&1|14&3|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "贾诩",
"actorID": 314,
"dataId": 2003,
"relation": 2,
"outIndex": 2,
"dirction": 12,
"x": 6,
"y": 1503,
"var": 2003,
"lv": 20,
"initial_ai": 1,
"attribute": "1&610|2&0|3&295|4&84|5&107|6&110|7&80|8&3|9&3|10&3|11&2|12&2|13&2|14&1|15&2|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "曹仁",
"actorID": 311,
"dataId": 2004,
"relation": 2,
"outIndex": 3,
"dirction": 12,
"x": 5,
"y": 1504,
"var": 2004,
"lv": 20,
"initial_ai": 1,
"attribute": "1&740|2&90|3&95|4&115|5&115|6&97|7&87|8&2|9&3|10&3|11&4|12&5|13&2|14&4|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
},
{
"warID": 4009,
"actorName": "许褚",
"actorID": 315,
"dataId": 2005,
"relation": 2,
"outIndex": 4,
"dirction": 13,
"x": 4,
"y": 1505,
"var": 2005,
"lv": 20,
"initial_ai": 1,
"attribute": "1&580|2&150|3&170|4&90|5&105|6&96|7&86|8&2|9&2|10&3|11&3|12&5|13&2|14&3|15&3|16&2|17&50",
"skill": 0,
"seid": 0,
"star": 0,
"spine": 0
}
]