diff --git a/game-server/app/servers/role/handler/heroHandler.ts b/game-server/app/servers/role/handler/heroHandler.ts index a65894537..886a5aefc 100644 --- a/game-server/app/servers/role/handler/heroHandler.ts +++ b/game-server/app/servers/role/handler/heroHandler.ts @@ -1,9 +1,9 @@ import { Application, BackendSession, ChannelService, HandlerService, } from 'pinus'; import { handleCost, addItems, unlockFigure, getCoinObject, getGoldObject } from '../../../services/role/rewardService'; import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService'; -import { resResult, deepCopy, reduceCe } from '../../../pubUtils/util'; +import { resResult, deepCopy, reduceCe, parseGoodStr } from '../../../pubUtils/util'; import { STATUS } from '../../../consts/statusCode'; -import { HeroModel, Connect, HeroSkin, HeroUpdate, EPlace } from '../../../db/Hero'; +import { HeroModel, Connect, HeroSkin, HeroUpdate, EPlace, Talent } from '../../../db/Hero'; import { CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ABI_STAGE, DEBUG_MAGIC_WORD, HERO_INITIAL_QUALITY, REDIS_KEY, TASK_TYPE, ITEM_CHANGE_REASON } from '../../../consts'; import { RoleModel } from '../../../db/Role'; import { ItemModel } from '../../../db/Item'; @@ -16,10 +16,10 @@ import { PvpDefenseModel } from '../../../db/PvpDefense'; import { checkTask, checkTaskInHeroQUalityUp, checkTaskInHeroStarUp, checkTaskInHeroTrain, checkTaskInHeroWakeUp } from '../../../services/task/taskService'; import { isNumber, pick } from 'underscore'; import { updateEplaces } from '../../../services/equipService'; -import { addConsumeToHero } from '../../../services/roleService'; +import { addConsumeToHero, checkUnlockTalentCondition, initSkinTalent, updateSkinTalent } from '../../../services/roleService'; import { JewelModel, jewelUpdate } from '../../../db/Jewel'; import { CalHeroCe } from '../../../domain/roleField/calCe'; -import { REBORN } from '../../../pubUtils/dicParam'; +import { HERO, REBORN } from '../../../pubUtils/dicParam'; import { createHero, createHeroes } from '../../../services/role/createHero'; import { CheckMeterial } from '../../../services/role/checkMaterial'; @@ -685,6 +685,100 @@ export class HeroHandler { return resResult(STATUS.SUCCESS, { curHero: { ...curHero, ce: reduceCe(curHero.ce) }, curJewels, goods }); } + // 解锁天赋 + public async unlockTalent(msg: { hid: number, id: number }, session: BackendSession) { + let roleId = session.get('roleId'); + let sid = session.get('sid'); + let { hid, id } = msg; + + let hero = await HeroModel.findByHidAndRole(hid, roleId); + if(!hero) return resResult(STATUS.HERO_NOT_FIND); + + let dicHeroTalent = gameData.heroTalent.get(id); + if(!dicHeroTalent) return resResult(STATUS.WRONG_PARMS); + + let skins = hero.skins||[]; + let curSkin = skins.find(cur => cur.enable); + if(!curSkin) return resResult(STATUS.HERO_SKIN_NOT_FIND); + + let talent = curSkin.talent.find(cur => cur.id == id); + if(talent) return resResult(STATUS.TALENT_HAS_UNLOCKED); + + let usedTalentPoint = curSkin.usedTalentPoint; + if(!checkUnlockTalentCondition(hid, id, curSkin.talent, usedTalentPoint)) { + return resResult(STATUS.TALENT_CONDITION_NOT_FIT); + } + + let totalTalentPoint = gameData.talentPointOfJob.get(hero.job); + let needTalentPoint = dicHeroTalent.level.find(cur => cur.lv == 1)?.cost||0; + if(totalTalentPoint - usedTalentPoint - needTalentPoint < 0) { + return resResult(STATUS.TALENT_POINT_NOT_ENOUGH); + } + + let { newSkins, newTalents } = updateSkinTalent(skins, new Talent(id), usedTalentPoint + needTalentPoint); + + hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.TALENT, sid, roleId, hero, { skins: newSkins }); + return resResult(STATUS.SUCCESS, { curHero: {...pick(hero, ['hid', 'skins', 'skinId']) }}); + + } + + // 升级天赋 + public async upgradeTalent(msg: { hid: number, id: number }, session: BackendSession) { + let roleId = session.get('roleId'); + let sid = session.get('sid'); + let { hid, id } = msg; + + let hero = await HeroModel.findByHidAndRole(hid, roleId); + if(!hero) return resResult(STATUS.HERO_NOT_FIND); + + let skins = hero.skins||[]; + let curSkin = skins.find(cur => cur.enable); + if(!curSkin) return resResult(STATUS.HERO_SKIN_NOT_FIND); + + let talent = curSkin.talent.find(cur => cur.id == id); + if(!talent) return resResult(STATUS.TALENT_NOT_UNLOCKED); + + let dicHeroTalent = gameData.heroTalent.get(id); + if(!dicHeroTalent) return resResult(STATUS.WRONG_PARMS); + + let usedTalentPoint = curSkin.usedTalentPoint; + let totalTalentPoint = gameData.talentPointOfJob.get(hero.job); + let nextLv = dicHeroTalent.level.find(cur => cur.lv == talent.level + 1); + if(!nextLv) return resResult(STATUS.TALENT_LEVEL_MAX); + let needTalentPoint = nextLv.cost||0; + if(totalTalentPoint - usedTalentPoint - needTalentPoint < 0) { + return resResult(STATUS.TALENT_POINT_NOT_ENOUGH); + } + + let { newSkins, newTalents } = updateSkinTalent(skins, new Talent(id, talent.level + 1), usedTalentPoint + needTalentPoint); + + hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.TALENT, sid, roleId, hero, { skins: newSkins }); + return resResult(STATUS.SUCCESS, { curHero: {...pick(hero, ['hid', 'skins', 'skinId']) }}); + } + + // 洗点 + public async resetTalent(msg: { hid: number }, session: BackendSession) { + let roleId = session.get('roleId'); + let sid = session.get('sid'); + let { hid } = msg; + + let hero = await HeroModel.findByHidAndRole(hid, roleId); + if(!hero) return resResult(STATUS.HERO_NOT_FIND); + + let skins = hero.skins||[]; + let curSkin = skins.find(cur => cur.enable); + if(!curSkin) return resResult(STATUS.HERO_SKIN_NOT_FIND); + + let costItem = parseGoodStr(HERO.HERO_TALENTPOINT_RESET); + let consumeResult = await handleCost(roleId, sid, costItem, ITEM_CHANGE_REASON.RESET_TALENT); + if(!consumeResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); + + + let newSkins = initSkinTalent(skins); + hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.TALENT, sid, roleId, hero, { skins: newSkins }); + return resResult(STATUS.SUCCESS, { curHero: {...pick(hero, ['hid', 'skins', 'skinId']) }}); + } + // ! debug接口 一键全武将 public async debugGetAllHeroes(msg: { magicWord: string }, session: BackendSession) { let roleId: string = session.get('roleId'); diff --git a/game-server/app/services/role/createHero.ts b/game-server/app/services/role/createHero.ts index ad52d5689..3140c3fad 100644 --- a/game-server/app/services/role/createHero.ts +++ b/game-server/app/services/role/createHero.ts @@ -127,8 +127,6 @@ export class CreateHeroes extends UpdateHeroes { private resultHeroes: HeroType[] = []; private heroNum = 0; // 推送信息 - private taskPushMessage: TaskListReturn[] = []; - private activityTaskPushMessage = []; private figureInfos: { heads: Figure[], frames: Figure[], spines: Figure[] }[] = []; private skinPushMessages: { heros: {skins: HeroSkin[], hid: number}[], skins: {id: number, hid: number, inc: number, reason: number }[]} = { heros: [], skins: [] }; @@ -138,9 +136,9 @@ export class CreateHeroes extends UpdateHeroes { let skinInfos = skin.map(cur => ({ id: cur.id, hid, inc: 1, reason: ITEM_CHANGE_REASON.GET_HERO_UNLOCK_SKIN})) this.skinPushMessages.skins.push(...skinInfos); if(skin) allSkins.push(...skin); - let skins: { id: number, skin: string, enable: boolean, skinId: number }[] = []; + let skins: HeroSkin[] = []; for(let skin of allSkins) { - skins.push({ id: skin.id, skin: skin._id, enable: skin.id == initSkinInfo.id, skinId: skin.skinId }); + skins.push(new HeroSkin(skin.id, skin.skinId, skin._id, skin.id == initSkinInfo.id)); } return skins } diff --git a/game-server/app/services/role/initRoleService.ts b/game-server/app/services/role/initRoleService.ts index 218990f28..dc086cf86 100644 --- a/game-server/app/services/role/initRoleService.ts +++ b/game-server/app/services/role/initRoleService.ts @@ -1,5 +1,5 @@ import { DEFAULT_HEROES, DEFAULT_HERO_LV, FIGURE_UNLOCK_CONDITION, HERO_SYSTEM_TYPE, LINEUP_NUM } from "../../consts"; -import { HeroModel, HeroUpdate } from "../../db/Hero"; +import { HeroModel, HeroSkin, HeroUpdate } from "../../db/Hero"; import { RoleModel, RoleUpdate } from "../../db/Role"; import { SkinModel, SkinUpdate } from "../../db/Skin"; import { TopHero } from "../../domain/dbGeneral"; @@ -29,7 +29,7 @@ export function getInitRoleInfo() { initSkins.push(skinInfo); // 武将 let hero = new HeroModel(); - let heroInfo = {...hero.toJSON(), hid, star, quality, hName, job, skins: [{ id: initialSkin, skin: skinInfo._id, enable: true, skinId: skinInfo.skinId }], skinId: skinInfo.skinId, lv: DEFAULT_HERO_LV, exp: getHeroExpByLv(DEFAULT_HERO_LV - 1) || 0 }; + let heroInfo = {...hero.toJSON(), hid, star, quality, hName, job, skins: [new HeroSkin(initialSkin, skinInfo.skinId, skinInfo._id, true)], skinId: skinInfo.skinId, lv: DEFAULT_HERO_LV, exp: getHeroExpByLv(DEFAULT_HERO_LV - 1) || 0 }; let calHeroCe = new CalHeroCe(hid, heroInfo); let heroAttr = calHeroCe.cal(HERO_SYSTEM_TYPE.INIT); let ce = calHeroCe.getCalculatedCe(roleAttr); diff --git a/game-server/app/services/role/rewardService.ts b/game-server/app/services/role/rewardService.ts index 545df6c7a..4702ce9b2 100644 --- a/game-server/app/services/role/rewardService.ts +++ b/game-server/app/services/role/rewardService.ts @@ -367,7 +367,7 @@ export async function addSkin(roleId: string, roleName: string, sid: string, ski if (hero) { // 有武将的,将皮肤链接到武将上 let curSkin = hero.skins.find(cur => cur.id == skinId); if (!curSkin) { - hero.skins.push({ id: skinId, skin: skin._id, enable, skinId: skin.skinId }); + hero.skins.push(new HeroSkin(skin.id, skin.skinId, skin._id, enable )); await HeroModel.updateHeroInfo(roleId, hero.hid, hero); } return hero; diff --git a/game-server/app/services/roleService.ts b/game-server/app/services/roleService.ts index f4cf2c2cc..1743ff58b 100644 --- a/game-server/app/services/roleService.ts +++ b/game-server/app/services/roleService.ts @@ -1,14 +1,14 @@ import { ChannelUser } from './../domain/ChannelUser'; import { Channel, pinus } from 'pinus'; import { getRandValueByMinMax, getRandEelm, decodeIdCntArrayStr } from '../pubUtils/util'; -import { DEFAULT_HEROES, ROLE_SELECT, TERAPH_RANDOM } from "../consts"; +import { DEFAULT_HEROES, ROLE_SELECT, TALENT_RELATION_TYPE, TERAPH_RANDOM } from "../consts"; import { DicTeraph } from '../pubUtils/dictionary/DicTeraph'; import { Teraph, RoleModel, RoleType, RoleUpdate } from '../db/Role'; import { SCHOOL } from '../pubUtils/dicParam'; -import { gameData } from '../pubUtils/data'; +import { gameData, getHeroInitTalent } from '../pubUtils/data'; import { SchoolModel } from '../db/School'; import { SclResultInter, SclPosInter, RewardInter, ItemInter } from '../pubUtils/interface'; -import { HeroUpdate } from '../db/Hero'; +import { HeroSkin, HeroUpdate, Talent } from '../db/Hero'; import { SkinUpdate } from '../db/Skin'; import { Figure } from '../domain/dbGeneral'; import { pick } from 'underscore'; @@ -172,4 +172,83 @@ export function addConsumeToHero(oldConsume: Reward[] = [], consumes: ItemInter[ newConsume.push({ id, count }); } return newConsume; +} + +export function checkUnlockTalentCondition(hid: number, id: number, talents: Talent[], usedTalentPoint: number) { + let dicHero = gameData.hero.get(hid); + let dicHeroTalent = gameData.heroTalent.get(id); + if(!dicHeroTalent) return false; + + if(dicHero.talentId != dicHeroTalent.talentId) return false; + + // 累计消耗n点天赋点 + if(dicHeroTalent.preTotalPoint > usedTalentPoint) return false; + // 互斥的天赋没有被解锁 + for(let { type, ids } of dicHeroTalent.relation) { + if(type == TALENT_RELATION_TYPE.CONFLICT) { + let hasTalent = talents.find(talent => ids.indexOf(talent.id) != -1); + if(hasTalent) return false; + } + } + // 前置节点 + let orFlag = false; // 只要其中一个满足就可以 + let maxPrecost = 0; // 前置节点最多的消耗 + for(let arr of dicHeroTalent.prepositionId) { + let andFlag = true; // arr内所有节点都需要满足 + for(let id of arr) { + let curTalent = talents.find(cur => cur.id == id); + if(curTalent) { + let dic = gameData.heroTalent.get(id); + if(dic) { + let allCost = 0; + for(let { lv, cost } of dic.level) { + if(curTalent.level >= lv) allCost += cost; + } + if(allCost > maxPrecost) maxPrecost = allCost; + } + } else { + andFlag = false; + } + } + if(andFlag) orFlag = true; + } + if(!orFlag) return false; + // 在前置节点中消耗至少n点天赋点(在有多个前置节点时,取最高的1个) + if(dicHeroTalent.preSinglePoint > maxPrecost) return false; + return true; +} + +export function updateSkinTalent(skins: HeroSkin[], newTalent: Talent, usedTalentPoint: number) { + let newSkins: HeroSkin[] = []; + let newTalents: Talent[] = []; + for(let skin of skins) { + if(skin.enable) { + let hasNewTalent = false; + for(let talent of skin.talent) { + if(talent.id == newTalent.id) { + newTalents.push(newTalent); + hasNewTalent = true; + } else { + newTalents.push(talent); + } + } + if(!hasNewTalent) newTalents.push(newTalent); + newSkins.push({...skin, talent: newTalents, usedTalentPoint }) + } else { + newSkins.push(skin); + } + } + return { newSkins, newTalents }; +} + +export function initSkinTalent(skins: HeroSkin[]) { + let newSkins: HeroSkin[] = []; + for(let skin of skins) { + if(skin.enable) { + newSkins.push({ ...skin, talent: getHeroInitTalent(skin.skinId), usedTalentPoint: 0 }); + } else { + newSkins.push(skin); + } + } + return newSkins } \ No newline at end of file diff --git a/shared/consts/constModules/heroConst.ts b/shared/consts/constModules/heroConst.ts index 3210e752d..eafc4a2b4 100644 --- a/shared/consts/constModules/heroConst.ts +++ b/shared/consts/constModules/heroConst.ts @@ -30,7 +30,8 @@ export enum HERO_SYSTEM_TYPE { JEWEL_RESET_RANDSE = 27, // 天晶石洗练 JEWEL_QUENCH = 28, // 天晶石淬炼 REBIRTH = 29, // 武将重生 -}; + TALENT = 30, // 天赋 + }; // 武将上限 export const HERO_GROW_MAX = { diff --git a/shared/consts/constModules/sysConst.ts b/shared/consts/constModules/sysConst.ts index c698a7ac0..5ee72b185 100644 --- a/shared/consts/constModules/sysConst.ts +++ b/shared/consts/constModules/sysConst.ts @@ -433,6 +433,7 @@ export const FILENAME = { DIC_HERO_QUALITY_UP: 'dic_zyz_hero_quality_up', DIC_HERO_STAR: 'dic_zyz_hero_star', DIC_HERO_WAKE: 'dic_zyz_hero_wake', + DIC_HERO_TALENT: 'dic_zyz_hero_talent', DIC_HERO_SKILL: 'dic_zyz_heroskill', DIC_JOB: 'dic_zyz_job', DIC_KING_EXP: 'dic_zyz_kingexp', @@ -1011,6 +1012,7 @@ export enum ITEM_CHANGE_REASON { ACT_GUILD_PAY_REWARD = 144, // 活动-军团人数奖励 RECEIVE_CHAPTER_BOX = 145, // 领取主线章节宝箱 JEWEL_INHERIT = 146, // 天晶继承 + RESET_TALENT = 147, // 洗点 } export enum TA_EVENT { @@ -1090,4 +1092,10 @@ export enum LOG_TYPE { export enum CE_CHANGE_REASON { HERO = 'hero', // 武将 +} + +export enum TALENT_RELATION_TYPE { + NORMAL = 1, // 正常 + CONFLICT = 2, // 冲突 + REPLACE = 3, // 替换 } \ No newline at end of file diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index 6a4abbb18..dcefdaa78 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -288,6 +288,11 @@ export const STATUS = { ROLE_SHORT_HERO_CONECTION: { code: 30308, simStr: '未拥有羁绊武将' }, HERO_FAVOUR_LEVEL_REACH_MAXT: { code: 30309, simStr: '武将好感等级以达到最大' }, HERO_JOB_REACH_MAX_STAGE: { code: 30310, simStr: '武将已达到最大的职业阶级' }, + TALENT_HAS_UNLOCKED: { code: 30311, simStr: '该天赋已经解锁' }, + TALENT_CONDITION_NOT_FIT: { code: 30312, simStr: '天赋解锁条件未达成' }, + TALENT_POINT_NOT_ENOUGH: { code: 30313, simStr: '天赋点不足' }, + TALENT_NOT_UNLOCKED: { code: 30314, simStr: '该天赋未解锁' }, + TALENT_LEVEL_MAX: { code: 30315, simStr: '该天赋等级已达最高' }, // 装备养成 30400-30499 ROLE_EQUIP_PLACE_NOT_ENOUGH: { code: 30400, simStr: '装备栏未装备或无可强化' }, diff --git a/shared/db/Hero.ts b/shared/db/Hero.ts index 723967d0f..e98d12233 100644 --- a/shared/db/Hero.ts +++ b/shared/db/Hero.ts @@ -7,6 +7,7 @@ import { reduceCe } from '../pubUtils/util'; import Skin from './Skin'; import { SearchHeroParam } from '../domain/backEndField/search'; import { Reward } from '../domain/battleField/pvp'; +import { getHeroInitTalent } from '../pubUtils/data'; type CeAttrUpdate = Partial; export class CeAttrData { @@ -61,6 +62,18 @@ export class Connect { level: number; } +export class Talent { + @prop({ required: true }) + id: number; // 天赋表id + @prop({ required: true }) + level: number; // 激活等级 + + constructor(id: number, level = 1) { + this.id = id; + this.level = level; + } +} + export class HeroSkin { @prop({ required: true }) id: number; @@ -70,6 +83,19 @@ export class HeroSkin { skin: Ref; @prop({ required: true }) enable: boolean; + @prop({ required: true, type: Talent, _id: false }) + talent: Talent[]; // 天赋树 + @prop({ required: true }) + usedTalentPoint: number; // 已使用的天赋点数 + + constructor(id: number, skinId: number, skin: string, enable: boolean) { + this.id = id; + this.skinId = skinId; + this.skin = skin; + this.enable = enable; + this.talent = getHeroInitTalent(skinId); + this.usedTalentPoint = 0; + } } export class Stone { diff --git a/shared/db/dicParam.ts b/shared/db/dicParam.ts deleted file mode 100644 index cdf548753..000000000 --- a/shared/db/dicParam.ts +++ /dev/null @@ -1,273 +0,0 @@ -export const EQUIP = { - EQUIP_ONE_REFORGED: '17044&1', // 天晶无锁定词条洗炼消耗 - EQUIP_TWO_REFORGED: '17044&2', // 天晶锁定1条词条洗炼消耗 - EQUIP_THREE_REFORGED: '17044&4', // 天晶锁定2条词条洗炼消耗 - EQUIP_FOUR_REFORGED: '17044&8', // 天晶锁定3条词条洗炼消耗 - EQUIP_ONE_LOCKED: '17045&1', // 天晶锁定第一条词条锁消耗 - EQUIP_TWO_LOCKED: '17045&2', // 天晶锁定第二条词条锁消耗 - EQUIP_THREE_LOCKED: '17045&4', // 天晶锁定第三条词条锁消耗 - EQUIP_LEVEL_LOCKED: '1&1|2&1|3&20|4&41|5&61', // 装备养成功能玩家等级解锁限制 -}; -export const JOB = { - JOB_CLASS_1: '步兵', // 大兵种名称 - JOB_CLASS_2: '枪兵', // 大兵种名称 - JOB_CLASS_3: '骑兵', // 大兵种名称 - JOB_CLASS_4: '弓兵', // 大兵种名称 - JOB_CLASS_5: '游侠', // 大兵种名称 - JOB_CLASS_6: '策士', // 大兵种名称 - JOB_CLASS_7: '医者', // 大兵种名称 - JOB_CLASS_8: '道士', // 大兵种名称 -}; -export const SCHOOL = { - SCHOOL_POSITION: '1&1|2&1|3&1|4&0|5&0', // 百家学宫位置锁定 - SCHOOL_UNLOCK_COIN: '31002&2000', // 百家学宫解锁位置消耗 -}; -export const SCROLL = { - SCROLL_ACTIVE_FAVOUR: 50, // 首次激活增加的好感度 -}; -export const PVP = { - PVP_CHALLENGE_COUNTS: 5, // pvp初始挑战次数 - PVP_CHALLENGE_NORMALTIMES: 120, // pvp日常挑战次数刷新时间(分钟) - PVP_CHALLENGE_FINALTIMES: 60, // PVP赛季最后一天挑战次数刷新时间(分钟) - PVP_SEASON_DAYS: '1&7|2&10|3&15|4&20', // PVP一个赛季的时间 - PVP_OPPONENT_FREEREFRESH: 3, // pvp挑战对手每日免费刷新次数 - PVP_WINREWARD_UPLIMIT: 10, // 连胜奖励军功加成上限 - PVP_LINEUP_HEROS: 6, // pvp最多上阵人数 - PVP_SET_ATTACK_FREE_CNT: 2, // pvp每天免费设挑战阵容的次数 - PVP_BUY_SET_ATTACK_CNT: 3, // pvp每天可购买的设置挑战阵容的次数 - PVP_SET_ATTACK_CNT_GOLD: 100, // pvp收费设置挑战阵容的花费 - PVP_DEFENSE_SUCCESS_REWARD: 5, // pvp防守成功积分奖励 - PVP_DEFENSE_SUCCESS_REWARD_MAX_CNT: 5, // 每天防守成功可以获得的奖励次数 - PVP_SEASON_REWARD_TIME_BEFORE: 2, // pvp赛季结束几分钟前结算 - PVP_SEASON_FORBID_BATTLE_TIME_BEFORE: 3600, // pvp赛季结束前几秒钟禁止挑战队伍 -}; -export const ARMY = { - ARMY_CREAT_COST: 188, // 创建军团需要的元宝 - ARMY_POSITION_SELL: 30, // 拍卖行职位额外分成占比(%) - ARMY_POSITION_WEEKREWARD: 30, // 周奖励职位额外分成占比(%) - ARMY_IMPEACH_COST: 30, // 弹劾需要消耗的元宝数量 - ARMY_DEVELOPMENT_SPEED: 30, // 碎片研发单次加速时间(分钟) - ARMY_DEVELOPMENT_SPEEDCOST: 50, // 单次助力加速消耗的元宝 - ARMY_DEVELOPMENT_SPEEDTMES: 10, // 单个碎片可助力加速的最大次数 - ARMY_TRAIN_FREETIMES: 2, // 练兵场每日挑战次数 - ARMY_TRAIN_BUYTIMES: 2, // 练兵场每日可购买次数 - ARMY_TRAIN_TIMESCOST: 20, // 练兵场购买次数消耗 - ARMY_WEEKHONOUR_LIMIT: 1000, // 军团成员参与职位排名周功勋下限(包含) - ARMY_WISH_TIMES: 1, // 单个许愿池每日可许愿次数 - ARMY_WISH_HELP: 3, // 每日可满足他人心愿的次数 - ARMY_DONATE_TIMES: 10, // 捐献池每日可捐献的次数 - ARMY_MANAGE_APPLICATION: 50, // 军团管理显示收到的申请条数上限 - ARMY_CREAT_CONDITION: 0, // 创建军团的条件:RMB充值要求 - ARMY_JOIN_COOLDOWNTIME: 60, // 退出军团再次加入军团的冷却时间 -}; -export const TREASURE = { - CAPTAIN_DROP: 5, // 普通套装图纸队长必掉落次数 - TEAMMATE_DROP: 10, // 普通套装图纸队员必掉落次数 - TREASURE_ASSIST_LIMITED: '1&1&999|2&20&999|3&30&999|4&40&999|5&50&999|6&60&999|7&70&999|8&80&999|9&90&999', // 协助寻宝星级开启玩家等级限制 - TREASURE_ASSIST_TIME: 6, // 协助寻宝总次数 -}; -export const FRIEND = { - FRIEND_CLOSEPOINT_ADD: 5, // 每赠送/领取一次增加的亲密度 - FRIEND_FRIENDPOINT_ADD: 1, // 每领取一次爱心会增加的情谊值 - FRIEND_RECONMMEND_LEVEL: '10&20&30&40&50', // 系统推荐玩家等级要求浮动 - FRIEND_RECONMMEND_ACTIVETIME: 24, // 系统推荐玩家活跃时间要求(小时) - FRIEND_BLACKLIST_MAX: 100, // 黑名单人数上限 - FRIEND_MANAGE_APPLICATION: 50, // 好友显示收到的申请条数上限 - FRIEND_RECEIVE_SINGLE: 1, // 向单个好友每日最多赠送多少爱心 - FRIEND_RECONMMEND_NUM: 8, // 同一批推荐好友数量 - FRIEND_RECONMMEND_SERVICE: 4, // 同一批推荐本服的好友数量 -}; -export const LOGIN = { - LOGIN_PUBLIC_LABLE: '1&zi_remen|2&zi_zuixin|3&zi_zhiding', // 公告中对应的标签图片 -}; -export const EXTERIOR = { - EXTERIOR_FACE: 11219, // 默认头像id - EXTERIOR_FACECASE: 11301, // 默认头像框id - EXTERIOR_APPEARANCE: 11419, // 默认形象id -}; -export const HTTPMANAGE = { - ADDRESSTYPE: 1, // 1:开发服(dev),2:正式服(official),3:测试服(alpha),4:版号服(isbn) 5: 37测试服(sq1) - SERVERTYPE: 2, // ADDRESSTYPE下服务器的筛选:1:正式服(official),2:开发服(develop) 3. 测试服(alpha) -}; -export const CHAT_SYSTEM = { - RECENT_GROUP_MSGS_CNT: 10, // 群消息获取条数 - RECENT_PRIVATE_CHATS_CNT: 20, // 最近私聊个数 -}; -export const GUILDACTIVITY = { - GATEACTIVITY_CHALLENGE_TIMES: 1, // 蛮夷入侵每天可以挑战次的次数 - GATEACTIVITY_HONOUR_RATIO: 0.5, // 功勋/积分的系数 - GATEACTIVITY_ENEMYCE: 10000, // 敌军10000战力基础属性模板 - GATEACTIVITY_ROUNDSTANDARD: 20, // 蛮夷入侵和基准战力相当的回合 - CITYACTIVITY_CHALLENGE_CD: 300, // 诸侯混战每次战斗之后的cd间隔 - CITYACTIVITY_CD_COST: 100, // 诸侯混战取消cd需要消耗的元宝数 - CITYACTIVITY_ROUND_COUNT: 40, // 诸侯混战的总回合数量 - RACEACTIVITY_LENGTH: 1000, // 粮草先行赛道的总米数 - RACEACTIVITY_ENCOUNTER: '100&1|200&2|300&2|400&1|500&2|600&2|700&1|800&2|900&2', // 触发道具和事件的米数(1:道具;2:事件) - RACEACTIVITY_EVENT_RATIO: 0.5, // 触发事件好坏的比例 - GATEACTIVITY_GATEHP: 2000000, // 城门血量 - GATEACTIVITY_BOSS_DIFFICULT: '1&1.2|2&1.5', // boss类型&难度系数|boss类型&难度系数(1:小boss,2:大boss) - RACEACTIVITY_DURABILITY_REWARD: 2, // 每剩余1%耐久度给予X点功勋 - RACEACTIVITY_NORMAL_ITEMS: '1&50&5|3&70&10|5&100&15', // 粮草先行普通道具 - RACEACTIVITY_EVENT_MEMBERCNT: 3, // 粮草先行随机道具获得人数 - RACEACTIVITY_EVENT_ITEMS: '2&1|4&1|6&1', // 粮草先行根据事件随机人可获得道具 - RACE_INIT_SPEED: 3, // 粮草先行军团初始速度 - RACE_PER_SPEED: 0.1, // 粮草先行军团每人参加增速 - GATEACTIVITY_GATEHP_N: 20, // 城门血量倍率 -}; -export const GUILD_AUCTION = { - DIVIDEND_RATE: 1, // 总金额分红比例,1表示总金额 100% 分红 - DIVIDEND_WEEKEND_RATE: 0.2, // 额外分红,周末加成,0.2表示周围额外加成 20% 分红 - AUCTION_PRICE_RISE: 1.1, // 单次竞价价格上涨幅度,1.1表示竞拍每次价格上涨10% - AUCTION_BOSS_EXPECT_MAX: 1000, // 演武台预期分红上限 - AUCTION_BOSS_EXPECT_MIN: 300, // 演武台预期分红下限 - AUCTION_ACTIVITY_EXPECT_MAX: 1500, // 军团活动预期分红上限 - AUCTION_ACTIVITY_EXPECT_MIN: 300, // 军团活动预期分红下限 -}; -export const BROWSER_DEBUG = { - UNLIMITED_MOVEMENT: 0, // 无限行动 -}; -export const SHOP = { - HERO_SOUL_BULE: '40011&1000', // 蓝将回收货币 - HERO_SOUL_PURPLE: '40011&5000', // 紫将回收货币 - HERO_SOUL_GOLDEN: '40011&10000', // 金将回收货币 -}; -export const TASK = { - MAINTASK_OPEN: '1&6', // 主线任务开启条件(1:主公等级,2:关卡限制) - DAILYTASK_OPEN: '1&15', // 每日任务开启条件(1:主公等级,2:关卡限制) - ACHIEVEMENT_OPEN: '1&15', // 成就任务开启条件(1:主公等级,2:关卡限制) - DAILYTASK_POINT: 100, // 每日积分达多少可领取武将招募令 - DAILYTASK_POINT_REWARD: '22001&1', // 每日达到可获得的武将招募令(也可以是别的东西) -}; -export const RECRUIT = { - RECRUIT_BONUS: 30, // 元宝招募转盘: 每 <30> 次可获得1点积分 - RECRUIT_BONUS_RECRUIT: 1, // 元宝招募转盘:每 <1> 点积分可以转一次 - RECRUIT_MUST: '1&10|2&30|3&20', // 元宝招募保底 - RECRUIT_BONUS_HERO_QUANTITY: '1&4|2&2|3&1', // 元宝招募转盘里各品质武将的数量 - RECRUIT_WISH_LIST: '1&35|2&35|0&30', // 元宝招募心愿单概率 - RECRUIT_CHANGE_SHARD: '1&20|2&40|3&80', // 重复的武将转换碎片 - RECRUIT_LEVEL_WISH_LIST: 100, // 心愿单多少次招募开启 - RECRUIT_LEVEL_HIGH_RECRUIT: 30, // 求贤若渴多少级开启 - RECRUIT_DAILY_RECRUIT_SHARD: 3, // 每日武将拜访数量 - RECRUIT_SHARD_LIMIT: 5, // 每日武将拜访碎片数量 - RECRUIT_FIRST_RECRUIT: 50, // 首次招募预招募50次10连 - RECRUIT_FIRST_RECRUIT_SAVE: 2, // 最多保存2个预招募结果 -}; -export const SCRIPT = { - SCRIPT_BATTLE_ID: 103, // 序章最后一关id - SCRIPT_NAME: 'RE_103', // 序章最后一关战后id -}; -export const AP = { - PERAPRESTORETIME: 300, // 每一点体力回复所需时间 - AP_SAVE_MAX: 99999, // 体力可存储上限(食用道具后的体力上限) -}; -export const QUENCH = { - QUENCH_UNIT_UPRATIO: 1, // 每次淬火属性系数增长百分比 -}; -export const BAG = { - BAG_EQUIP_UPLIMITED: 500, // 背包中装备数量上限 - BAG_GOODS_UPLIMITED: 4294967295, // 背包中可叠加的道具数量上限 - BAG_RESOLVE_UPLIMITED: 500, // 背包中一键分解的上限 -}; -export const ATTRIBUTE = { - ATTRIBUTE_EQUIP_RATIO: '1&1|2&3|4&2|5&2', // 装备的基础属性系数 - ATTRIBUTE_POWER: '1&1|2&3.3|4&3.3|5&3.3|9&0.09|10&0.12|11&0.09|12&0.12|18&0.18|19&0.15|20&0.15|21&0.15|22&0.15|28&0.3', // 基础属性和次级属性的战力值 - ATTRIBUTE_POWER_DIVISOR: 400, // 次级属性的除数 -}; -export const TOWER_SEARCH = { - TOWER_SEARCH_LIMITED: 8, // 镇念塔派遣任务每日任务刷新条数 - TOWER_SEARCH_REFRESHRULE: 5, // 镇念塔派遣任务每天10次付费刷新次数 - TOWER_SEARCH_REFRESHRULE_FEE: 50, // 镇念塔派遣任务刷新次数,每次刷新消耗元宝 - TOWER_SEARCH_REFRESHRULE_MAX: 200, // 镇念塔派遣任务每天刷新次数,每次刷新消耗元宝的上限 - TOWER_SEARCH_GUARANTEED: '4&5', // 镇念塔派遣任务保底品质颜色 - TOWER_SEARCH_STARTLIMITED: 20, // 镇念塔派遣功能开启的层数 -}; -export const TOWER_BOOST = { - TOWER_BOOSTTIME: 4, // 镇念塔加速次数 - TOWER_BOOSTFREETIME: 1, // 镇念塔免费加速次数 - TOWER_BOOSTCAST: 50, // 镇念塔加速次数每次消耗元宝量 - TOWER_BOOSTCASTMAX: 200, // 镇念塔加速次数消耗元宝量上线 -}; -export const TOWER_HANG_UP = { - TOWER_HANG_UP_ENABLE_LV: 10, // 第几层开始可以挂机 - TOWER_HANG_UP_UNIT_TIME: 10, // 每几分钟能有一次收益 - TOWER_HANG_UP_MAX_TIME: 24, // 最多可储存多少小时收益 - TOWE_HANG_UP_SPD_UP_REC_TIME: 2, // 加速直接获得多少小时收益 -}; -export const DAILY_CONST = { - DAILY_CONST_BASE: 50, // 每日关卡购买的基础价格 - DAILY_CONST_UP: 25, // 每日关卡购买的价格增长量 - DAILY_CONST_TOP: 150, // 每日关卡购买的价格上限 -}; -export const DUNGEON_CONST = { - DUNGEON_CONST_FREE: 5, // 秘境每天免费挑战次数(不包括购买的挑战次数) - DUNGEON_CONST_BUY: 10, // 秘境每天最大购买次数 - DUNGEON_CONST_BASE: 50, // 秘境关卡购买的基础价格 - DUNGEON_CONST_UP: 25, // 秘境关卡购买的价格增长量 - DUNGEON_CONST_TOP: 100, // 秘境关卡购买的价格上限 -}; -export const EXPEDITION_CONST = { - EXPEDITION_CONST_POINTS: 1, // - EXPEDITION_CONST_TIMES: 1, // 远征每天可以免费重置的次数(远征没有付费重置功能) -}; -export const AUCTION = { - GUILD_AUCTION_PREVIEW_TIME: '20:00:00', // 军团拍卖预览时间(非开启时间) - GUILD_AUCTION_OPEN_TIME: '20:20:00', // 军团拍卖开启时间 - GUILD_AUCTION_CLOSE_TIME: '20:30:00', // 军团拍卖关闭时间 - WORLD_AUCTION_PREVIEW_TIME: '20:30:00', // 世界拍卖预览时间(非开启时间) - WORLD_AUCTION_OPEN_TIME: '20:30:00', // 世界拍卖开启时间 - WORLD_AUCTION_CLOSE_TIME: '22:00:00', // 世界拍卖结束时间 -}; -export const GUILD_BOSS = { - GUILD_BOSS_OPEN_COUNT: 1, // 团长每天可以开启的次数 - GUILD_BOSS_CHALLENGE_COUNT: 1, // 团员每天可以挑战的次数 - GUILD_BOSS_ENCOURAGE_FREECOUNT: 1, // 每天免费鼓舞次数 - GUILD_BOSS_ENCOURAGE_COST: 10, // 鼓舞的花费元宝 -}; -export const LABCOLOR = { - HEROQUALITYLABCOLOR: '15E1FB|2&#F09FED|3&#FFD800|4&#FF8080', // 各品阶武将对应字体颜色RGB - HEROQUALITYLABOUTCOLOR: '1A5CCC|2A5CCC|3&#AD5712|4&#BD1616', // 各品阶武将对应字体描边颜色RGB - EQUIPQUALITYLABCOLOR: '15E1FB|2&#F09FED|3&#FFA82B|4&#FF8080|5&#FFD800', // 各品质装备对应字体颜色RGB - EQUIPQUALITYLABOUTCOLOR: '1A5CCC|2A5CCC|3&#B25ELA|4&#BD1616|5&#AD5712', // 各品质装备对应字体描边颜色RGB -}; -export const NAMEPLATE = { - NAMEPLATE_FREECOST: 1, // 免费改名次数 - NAMEPLATE_FEECOST: 500, // 改名花费元宝 -}; -export const GK_MAINELITE = { - GKMAINELITE_OPEN_CONDITION: 424, // 梦魇模式开启时间:通过某关卡id -}; -export const SERVER_DEBUG_MODE = { - CURRENT_TIME: 1, // 服务器是否打开推送时间debug模式 - CHECK_WORD: 1, // 服务器是否打开屏蔽词校验debug模式 -}; -export const IS_SQ = { - IS_OPEN: 1, // 0关,1开(37SDK) -}; -export const BATTLE_SPEED = { - BATTLE_SPEED_DOUBLE: '2&105', // 2倍速开启时间开启关卡 - BATTLE_SPEED_TRIPLE: '3&128', // 3倍速开启时间开启关卡 - BATTLE_SPEED_BOT: 108, // 托管开启关卡 - BATTLE_DANGER: 103, // 危险范围开启关卡 -}; -export const LINK = { - OUT_LINK: 'https://www.wjx.cn/vj/OSxaldE.aspx', // 外链 -}; -export const REBORN = { - REBORON_HERO: 500, // 武将重生元宝数量 -}; -export const VIP = { - VIP_GUILD_DONATE_COST_GOLD_RATIO: 0.5, // 军团贡献元宝,按照捐献所需要的元宝自动乘以倍率 - VIP_TOWER_SKIP_CE_RATIO_WITHOUT_VIP: 2, // 镇念塔没有月卡的时候所需要的战力倍数 - VIP_TOWER_SKIP_CE_RATIO_WITH_VIP: 1.2, // 镇念塔有月卡的时候所需要的战力倍数 - VIP_TOWER_TASK_CAN_SEND_AT_ONCE_WITHOUT_VIP: 0, // 镇念没有月卡是否可以被一键悬赏 - VIP_TOWER_TASK_CAN_SEND_AT_ONCE_WITH_VIP: 1, // 镇念塔有月卡是否可以被一键悬赏 - VIP_TOWER_HUNG_UP_RATIO: 1.2, // 镇念塔挂机奖励加成倍率,在dic_zyz_tower的rewardOfcollect基础上直接乘以这个倍数 - VIP_REGRET_CNT_WITHOUT_VIP: 0, // 没有月卡时候的悔棋次数 - VIP_REGRET_CNT_WITH_VIP: 1, // 有月卡时候的悔棋次数 - VIP_PVP_CHALLENGE_COUNTS_ADD: 2, // pvp上限增加,如果有月卡,在PVP.PVP_CHALLENGE_COUNTS的基础上增加X次 - VIP_DAILY_TIMERS_PER_DAY_ADD: 2, // 每日任务免费次数增加,如果有月卡,在dic_daily的timesPerDay的基础上增加多少次 - VIP_DUNGEON_CONST_FREE_ADD: 2, // 秘境免费次数增加,如果有月卡,在DUNGEON_CONST.DUNGEON_CONST_FREE的基础上加多少次 -}; -export const PUBLIC_NOTICE_PERIOD = { - PUBLIC_NOTICE_PERIOD_TIME: 24, // 活动公示期时间 -}; diff --git a/shared/domain/roleField/calCe.ts b/shared/domain/roleField/calCe.ts index 585f219e9..5257f336d 100644 --- a/shared/domain/roleField/calCe.ts +++ b/shared/domain/roleField/calCe.ts @@ -140,7 +140,6 @@ export class CalHeroCe { this.getSingleAttrObj(id).updateAttr({ inc: { fixUp: attr } }); } } - addSeidEffect.bind(this, dicJob.seid); } diff --git a/shared/pubUtils/data.ts b/shared/pubUtils/data.ts index 98e59e25e..b0ced450a 100644 --- a/shared/pubUtils/data.ts +++ b/shared/pubUtils/data.ts @@ -5,7 +5,7 @@ import { dicEvent, dicEventList, loadEvent } from "./dictionary/DicEvent"; import { dicExpedition, DicExpedition, loadExpedition } from "./dictionary/DicExpedition"; import { dicExpeditionPoint, loadExpeditionPoint } from "./dictionary/DicExpeditionPoint"; import { dicHeroSkill, loadHeroSkill } from "./dictionary/DicHeroSkill"; -import { dicJob, jobClassAndgrades, jobClassMaxGrades, loadJob } from "./dictionary/DicJob"; +import { dicJob, jobClassAndgrades, jobClassMaxGrades, loadJob, talentPointOfJob } from "./dictionary/DicJob"; import { dicKingExp, maxPlayerLv, loadKingExp } from "./dictionary/DicKingExp"; import { dicCharExp, loadCharExp } from "./dictionary/DicCharExp"; import { dicQuestion, loadQuestion } from "./dictionary/DicQuestion"; @@ -101,6 +101,8 @@ import { dicEquipQualityExtra, loadEquipQualityExtra } from './dictionary/DicEqu import { dicEquipSuit, dicEquipSuitByJobClass, loadEquipSuit } from "./dictionary/DicEquipSuit"; import { dicJewelCondition, loadJewelCondition } from './dictionary/DicJewelCondition'; import { dicMainStarBox, dicMainStarBoxByChapter, loadMainStarBox } from './dictionary/DicMainStarBox'; +import { dicHeroTalent, initTalents, loadHeroTalent } from './dictionary/DicHeroTalent'; +import { Talent } from "../db/Hero"; export const gameData = { daily: dicDaily, @@ -252,6 +254,9 @@ export const gameData = { heroIdByWar: dicHeroIdByWar, mainBox: dicMainStarBox, mainBoxByChapter: dicMainStarBoxByChapter, + heroTalent: dicHeroTalent, + initTalents: initTalents, + talentPointOfJob: talentPointOfJob, }; // 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据 @@ -869,6 +874,14 @@ export function getRandEffectByGroupAndLevel(group: number, level: number) { return gameData.randomEffectPool.get(id); } +// 根据皮肤获得他的初始天赋id +export function getHeroInitTalent(skinId: number) { + let dicHero = gameData.hero.get(skinId); + if(!dicHero) return []; + let ids = gameData.initTalents.get(dicHero.talentId)||[]; + return ids.map(id => (new Talent(id))); +} + // 初始加载 function initDatas() { parseDicParam(); @@ -1035,6 +1048,7 @@ function loadDatas() { loadStone(); loadJewelCondition(); loadMainStarBox(); + loadHeroTalent(); } // 重载dicParam diff --git a/shared/pubUtils/dicParam.ts b/shared/pubUtils/dicParam.ts index 6e03113f1..d9ce47281 100644 --- a/shared/pubUtils/dicParam.ts +++ b/shared/pubUtils/dicParam.ts @@ -86,8 +86,8 @@ export const EXTERIOR = { EXTERIOR_APPEARANCE: 11419, // 默认形象id }; export const HTTPMANAGE = { - ADDRESSTYPE: 1, // 1:开发服(dev),2:正式服(official),3:测试服(alpha),4:版号服(isbn) 5: 37测试服(sq1) - SERVERTYPE: 2, // ADDRESSTYPE下服务器的筛选:1:正式服(official),2:开发服(develop) 3. 测试服(alpha) + ADDRESSTYPE: 3, // 1:开发服(dev),2:正式服(official),3:测试服(alpha),4:版号服(isbn) 5: 37测试服(sq1) + SERVERTYPE: 3, // ADDRESSTYPE下服务器的筛选:1:正式服(official),2:开发服(develop) 3. 测试服(alpha) }; export const CHAT_SYSTEM = { RECENT_GROUP_MSGS_CNT: 10, // 群消息获取条数 @@ -262,9 +262,15 @@ export const VIP = { VIP_TOWER_TASK_CAN_SEND_AT_ONCE_WITHOUT_VIP: 0, // 镇念没有月卡是否可以被一键悬赏 VIP_TOWER_TASK_CAN_SEND_AT_ONCE_WITH_VIP: 1, // 镇念塔有月卡是否可以被一键悬赏 VIP_TOWER_HUNG_UP_RATIO: 1.2, // 镇念塔挂机奖励加成倍率,在dic_zyz_tower的rewardOfcollect基础上直接乘以这个倍数 - VIP_REGRET_CNT_WITHOUT_VIP: 10, // 没有月卡时候的悔棋次数 - VIP_REGRET_CNT_WITH_VIP: 11, // 有月卡时候的悔棋次数 + VIP_REGRET_CNT_WITHOUT_VIP: 0, // 没有月卡时候的悔棋次数 + VIP_REGRET_CNT_WITH_VIP: 1, // 有月卡时候的悔棋次数 VIP_PVP_CHALLENGE_COUNTS_ADD: 2, // pvp上限增加,如果有月卡,在PVP.PVP_CHALLENGE_COUNTS的基础上增加X次 VIP_DAILY_TIMERS_PER_DAY_ADD: 2, // 每日任务免费次数增加,如果有月卡,在dic_daily的timesPerDay的基础上增加多少次 VIP_DUNGEON_CONST_FREE_ADD: 2, // 秘境免费次数增加,如果有月卡,在DUNGEON_CONST.DUNGEON_CONST_FREE的基础上加多少次 }; +export const PUBLIC_NOTICE_PERIOD = { + PUBLIC_NOTICE_PERIOD_TIME: 24, // 活动公示期时间 +}; +export const HERO = { + HERO_TALENTPOINT_RESET: '31002&100', // 天赋点重置花费 +}; diff --git a/shared/pubUtils/dictionary/DicHero.ts b/shared/pubUtils/dictionary/DicHero.ts index f904ed51c..6b81e62b4 100644 --- a/shared/pubUtils/dictionary/DicHero.ts +++ b/shared/pubUtils/dictionary/DicHero.ts @@ -33,10 +33,12 @@ export interface DicHero { readonly recruit: boolean; // 武将图标id readonly face_id: string; + // 天赋树id + readonly talentId: number; } type KeysEnum = { [P in keyof Required]: true }; -const DicHeroKeys: KeysEnum = {heroId: true, name: true, quality: true, camp: true, jobClass: true, jobid: true, skill: true, pieceId: true, initialStars: true, pieceCount: true, baseAbilityArr: true, baseAbilityUpArr: true, initialSkin: true, recruit: true, face_id: true}; +const DicHeroKeys: KeysEnum = {heroId: true, name: true, quality: true, camp: true, jobClass: true, jobid: true, skill: true, pieceId: true, initialStars: true, pieceCount: true, baseAbilityArr: true, baseAbilityUpArr: true, initialSkin: true, recruit: true, face_id: true, talentId: true}; export const dicHero = new Map(); export function loadHero() { dicHero.clear(); diff --git a/shared/pubUtils/dictionary/DicHeroTalent.ts b/shared/pubUtils/dictionary/DicHeroTalent.ts new file mode 100644 index 000000000..b6f49fcf9 --- /dev/null +++ b/shared/pubUtils/dictionary/DicHeroTalent.ts @@ -0,0 +1,81 @@ +// 武将升星表 +import { decodeArrayListStr, parseNumberList, readFileAndParse } from '../util' +import { FILENAME } from '../../consts'; +const _ = require('lodash'); + +export interface DicHeroTalent { + // 唯一id + readonly id: number; + // 天赋组id + readonly talentId: number; + // 节点层数 + readonly nodeSort: number; + // 和其他节点关系 + readonly relation: [{ type: number, ids?: number[] }]; + // 节点等级数 + readonly level: [{ lv: number, seid: number, cost: number }]; + // 前置节点 + readonly prepositionId: number[][]; + // 需要满足在天赋树中累计消耗n点天赋点 + readonly preTotalPoint: number; + // 在前置节点中消耗至少n点天赋点(在有多个前置节点时,取最高的1个) + readonly preSinglePoint: number; +} + + +type KeysEnum = { [P in keyof Required]: true }; +const DicHeroTalentKeys: KeysEnum = {id: true, talentId: true, nodeSort: true, relation: true, level: true, prepositionId: true, preTotalPoint: true, preSinglePoint: true}; + +export const dicHeroTalent = new Map(); +export const initTalents = new Map(); +export function loadHeroTalent() { + dicHeroTalent.clear(); + + let arr = readFileAndParse(FILENAME.DIC_HERO_TALENT); + + arr.forEach(o => { + o.relation = parseRelation(o.type, o.relationId); + o.level = parseLevel(o.levelCount, o.levelSeid, o.levelConsume); + o.prepositionId = parsePrePositionId(o.prepositionId); + dicHeroTalent.set(o.id, _.pick(o, Object.keys(DicHeroTalentKeys))); + if(o.prepositionId.length == 0 && o.levelConsume == '&') { + if(!initTalents.has(o.talentId)) { + initTalents.set(o.talentId, []); + } + initTalents.get(o.talentId).push(o.id); + } + }); + arr = undefined; +} + +function parseRelation(type: string, relationId: string) { + let relation: {type: number, ids?: number[]}[] = []; + let types = parseNumberList(type); + let relations = decodeArrayListStr(relationId); + for(let i = 0; i < types.length; i++) { + if(relations[i]) { + relation.push({ + type: types[i], + ids: relations[i].map(id => parseInt(id)) + }); + } + } + return relation; +} + +function parseLevel(levelCount: number, levelSeid: string, levelConsume: string) { + let levelSeids = parseNumberList(levelSeid); + let levelConsumes = parseNumberList(levelConsume); + let level: { lv: number, seid: number, cost: number }[] = []; + for(let i = 0; i < levelCount; i++) { + level.push({ lv: i + 1, seid: levelSeids[i]||0, cost: levelConsumes[i]||0}); + } + return level; +} + +function parsePrePositionId(str: string) { + let arr = decodeArrayListStr(str); + return arr.map(arr1 => { + return arr1.map(str => parseInt(str)); + }); +} \ No newline at end of file diff --git a/shared/pubUtils/dictionary/DicJob.ts b/shared/pubUtils/dictionary/DicJob.ts index 388544f2e..5e5cbf501 100644 --- a/shared/pubUtils/dictionary/DicJob.ts +++ b/shared/pubUtils/dictionary/DicJob.ts @@ -17,8 +17,8 @@ export interface DicJob { readonly job_class: number; // 职业类别 readonly type: number; - // 特性 - readonly seid: Array; + // // 特性 + // readonly seid: Array; // 训练消耗 readonly trainingConsume: Array; // 升阶消耗 @@ -27,15 +27,17 @@ export interface DicJob { readonly ceAttr: Map; // 一共有多少阶升级 readonly maxStage: number; - + // 到这一阶能获得多少天赋点 + readonly talentPoint: number; } type KeysEnum = { [P in keyof Required]: true }; -const DicJobKeys: KeysEnum = {jobid: true, name: true, grade: true, unlockLevel: true, job_class: true, type: true, seid: true,trainingConsume: true, upGradeConsume: true, ceAttr: true, maxStage: true}; +const DicJobKeys: KeysEnum = {jobid: true, name: true, grade: true, unlockLevel: true, job_class: true, type: true, trainingConsume: true, upGradeConsume: true, ceAttr: true, maxStage: true, talentPoint: true}; export const dicJob = new Map(); export const jobClassMaxGrades = new Map(); export const jobClassAndgrades = new Map(); +export const talentPointOfJob = new Map(); export function loadJob() { dicJob.clear(); @@ -43,6 +45,7 @@ export function loadJob() { jobClassAndgrades.clear(); let arr = readFileAndParse(FILENAME.DIC_JOB); + let jobByJobClass = new Map(); // jobClass => jobid[] arr.forEach(o => { if(o.isPlayer) { @@ -56,9 +59,25 @@ export function loadJob() { if (!jobClass || jobClass.grade < o.grade) { jobClassMaxGrades.set(o.job_class, {grade: o.grade,jobid: o.jobid}); } - jobClassAndgrades.set(o.job_class+'_'+o.grade,{unlockLevel:o.unlockLevel, jobid:o.jobid}); + jobClassAndgrades.set(o.job_class+'_'+o.grade,{unlockLevel:o.unlockLevel, jobid:o.jobid}); + if(!jobByJobClass.has(o.job_class)) { + jobByJobClass.set(o.job_class, []); + } + jobByJobClass.get(o.job_class).push(o.jobid); } }); + for(let [_, { job_class, talentPoint }] of dicJob) { + let jobs = jobByJobClass.get(job_class)||[]; + for(let jobid of jobs) { + if(!talentPointOfJob.has(jobid)) { + talentPointOfJob.set(jobid, talentPoint); + } else { + talentPointOfJob.set(jobid, talentPointOfJob.get(jobid) + talentPoint); + } + } + } + + jobByJobClass = undefined; arr = undefined; } diff --git a/shared/pubUtils/playerCe.ts b/shared/pubUtils/playerCe.ts index 2e7653b6b..f67f9e374 100644 --- a/shared/pubUtils/playerCe.ts +++ b/shared/pubUtils/playerCe.ts @@ -2,10 +2,10 @@ * 体力系统 */ -import { HERO_SYSTEM_TYPE, ABI_TYPE, HERO_CE_RATIO, LINEUP_NUM } from '../consts'; +import { HERO_SYSTEM_TYPE, ABI_TYPE, HERO_CE_RATIO, LINEUP_NUM, TALENT_RELATION_TYPE } from '../consts'; import { cal, deepCopy, getAllAttrStage, reduceCe } from './util'; -import { HeroModel, HeroType, HeroUpdate, CeAttrData, EPlace, Stone } from '../db/Hero'; +import { HeroModel, HeroType, HeroUpdate, CeAttrData, EPlace, Stone, Talent } from '../db/Hero'; import { RoleModel, RoleType, RoleUpdate, CeAttrDataRole } from '../db/Role'; import { AttributeCal } from '../domain/roleField/attribute'; import { ABI_STAGE, SEID_TYPE } from '../consts'; @@ -20,6 +20,7 @@ import { GuildModel } from '../db/Guild'; import { DicJob } from './dictionary/DicJob'; import { saveCeChangeLog } from './logUtil'; import { JewelType } from '../db/Jewel'; +import { type } from 'os'; // 修改并下发战力 export async function calPlayerCeAndSave(type: number, roleId: string, originHero: HeroType, update: HeroUpdate, args?: Array, params?: any) { @@ -161,7 +162,7 @@ export async function calPlayerCe(hero: HeroType, update: HeroUpdate, type: numb heroAttrs = calHeroTrainIncAttr(hero, update); break; case HERO_SYSTEM_TYPE.STAGEUP: - heroAttrs = calHeroJobStageUpIncAttr(hero, update, addSeidList, removeSeidList); + // heroAttrs = calHeroJobStageUpIncAttr(hero, update, addSeidList, removeSeidList); break; case HERO_SYSTEM_TYPE.SKIN: heroAttrs = calHeroWearSkinIncAttr(hero, update, addSeidList, removeSeidList); @@ -197,6 +198,9 @@ export async function calPlayerCe(hero: HeroType, update: HeroUpdate, type: numb case HERO_SYSTEM_TYPE.SCROLL: heroAttrs = calHeroCeScrollIncAttr(hero, update); break; + case HERO_SYSTEM_TYPE.TALENT: + heroAttrs = calHeroTalent(hero, update, addSeidList, removeSeidList); + break; default: break; } @@ -460,29 +464,29 @@ export function calHeroTrainIncAttr(originHero: HeroType, update: HeroUpdate) { * @param {number[]} addSeidList 用于更新被动 * @param {number[]} removeSeidList 用于更新被动 */ -export function calHeroJobStageUpIncAttr(originHero: HeroType, update: HeroUpdate, addSeidList: Array, removeSeidList: Array) { - let { job: oldJob, attr: heroAttrs } = originHero; - let { job = oldJob } = update; +// export function calHeroJobStageUpIncAttr(originHero: HeroType, update: HeroUpdate, addSeidList: Array, removeSeidList: Array) { +// let { job: oldJob, attr: heroAttrs } = originHero; +// let { job = oldJob } = update; - let lastJob = gameData.job.get(oldJob); - let currentJob = gameData.job.get(job); - let lastSeids = lastJob?.seid||new Array(); - let curSeids = currentJob?.seid||new Array(); +// let lastJob = gameData.job.get(oldJob); +// let currentJob = gameData.job.get(job); +// let lastSeids = lastJob?.seid||new Array(); +// let curSeids = currentJob?.seid||new Array(); - for (let seid of curSeids) { - let index = findIndex(lastSeids, seid); - if (index < 0) { - addSeidList.push(seid, 0); - } - } - for (let seid of lastSeids) { - let index = findIndex(curSeids, seid); - if (index < 0) { - removeSeidList.push(seid, 0); - } - } - return heroAttrs; -} +// for (let seid of curSeids) { +// let index = findIndex(lastSeids, seid); +// if (index < 0) { +// addSeidList.push(seid, 0); +// } +// } +// for (let seid of lastSeids) { +// let index = findIndex(curSeids, seid); +// if (index < 0) { +// removeSeidList.push(seid, 0); +// } +// } +// return heroAttrs; +// } /** * 初始计算兵种属性 @@ -515,7 +519,7 @@ export function calHeroJobAttr(originHero: HeroType, hero: HeroUpdate, addSeidLi }; originHero.attr = heroAttrs; - heroAttrs = calHeroJobStageUpIncAttr(originHero, hero, addSeidList, removeSeidList); + // heroAttrs = calHeroJobStageUpIncAttr(originHero, hero, addSeidList, removeSeidList); return heroAttrs; } @@ -552,6 +556,8 @@ export function calHeroWearSkinIncAttr(originHero: HeroType, update: HeroUpdate, calEquipStrengthIncAttr(originHero, update, eplaceIds); calEquipQualityIncAttr(originHero, update, eplaceIds); calEquipStarIncAttr(originHero, update, eplaceIds, addSeidList, removeSeidList); + // 天赋点 + calHeroTalent(originHero, update, addSeidList, removeSeidList); return heroAttrs; } @@ -990,6 +996,43 @@ function calHeroCeScrollIncAttr(originHero: HeroType, update: HeroUpdate) { return heroAttrs; } +function calHeroTalent(originHero: HeroType, update: HeroUpdate, addSeidList: number[], removeSeidList: number[]) { + let { attr: heroAttrs, skins: oldSkins } = originHero; + let { skins } = update; + let oldSkin = oldSkins.find(cur => cur.enable); + let newSkin = skins.find(cur => cur.enable); + let oldSeids = getTalentSeid(oldSkin.talent); + let newSeids = getTalentSeid(newSkin.talent); + for(let seid of newSeids) addSeidList.push(seid); + for(let seid of oldSeids) removeSeidList.push(seid); + return heroAttrs +} + +function getTalentSeid(talent: Talent[]) { + let seids = new Map(); // id, seids + for(let { id, level } of talent) { + let dicHeroTalent = gameData.heroTalent.get(id); + for(let { type, ids} of dicHeroTalent.relation) { + if(type == TALENT_RELATION_TYPE.REPLACE) { + for(let id of ids) { + seids.delete(id); + } + } + } + for(let { lv, seid } of dicHeroTalent.level) { + if(level >= lv) { + if(!seids.has(id)) seids.set(id, []); + seids.get(id).push(seid); + } + } + } + let result: number[] = []; + for(let [_, ids] of seids) { + result.push(...ids); + } + return result; +} + /** * 升爵位 * @param role 角色数据 diff --git a/shared/resource/jsons/dic_zyz_hero.json b/shared/resource/jsons/dic_zyz_hero.json index bc9e1ec65..659e3296d 100644 --- a/shared/resource/jsons/dic_zyz_hero.json +++ b/shared/resource/jsons/dic_zyz_hero.json @@ -37,7 +37,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 2, @@ -77,7 +77,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3, @@ -117,7 +117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4, @@ -157,7 +157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 5, @@ -197,7 +197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 7, @@ -237,7 +237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 8, @@ -277,7 +277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 10, @@ -317,7 +317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 11, @@ -357,7 +357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 12, @@ -397,7 +397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 13, @@ -437,7 +437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 14, @@ -477,7 +477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 16, @@ -517,7 +517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 17, @@ -557,7 +557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 18, @@ -597,7 +597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 19, @@ -637,7 +637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 20, @@ -677,7 +677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 21, @@ -717,7 +717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 22, @@ -757,7 +757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 24, @@ -797,7 +797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 25, @@ -837,7 +837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 26, @@ -877,7 +877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 27, @@ -917,7 +917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 28, @@ -957,7 +957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 30, @@ -997,7 +997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 31, @@ -1037,7 +1037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 32, @@ -1077,7 +1077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 33, @@ -1117,7 +1117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 34, @@ -1157,7 +1157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 35, @@ -1197,7 +1197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 36, @@ -1237,7 +1237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 37, @@ -1277,7 +1277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 38, @@ -1317,7 +1317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 40, @@ -1357,7 +1357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41, @@ -1397,7 +1397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 44, @@ -1437,7 +1437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 45, @@ -1477,7 +1477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 46, @@ -1517,7 +1517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 47, @@ -1557,7 +1557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 49, @@ -1597,7 +1597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 50, @@ -1637,7 +1637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 51, @@ -1677,7 +1677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 52, @@ -1717,7 +1717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 53, @@ -1757,7 +1757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 54, @@ -1797,7 +1797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 55, @@ -1837,7 +1837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 56, @@ -1877,7 +1877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 57, @@ -1917,7 +1917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 58, @@ -1957,7 +1957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 59, @@ -1997,7 +1997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 60, @@ -2037,7 +2037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 61, @@ -2077,7 +2077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 62, @@ -2117,7 +2117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 63, @@ -2157,7 +2157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 64, @@ -2197,7 +2197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 301, @@ -2237,7 +2237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 302, @@ -2277,7 +2277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 303, @@ -2317,7 +2317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 304, @@ -2357,7 +2357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 305, @@ -2397,7 +2397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 307, @@ -2437,7 +2437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 308, @@ -2477,7 +2477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 310, @@ -2517,7 +2517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 311, @@ -2557,7 +2557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 312, @@ -2597,7 +2597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 313, @@ -2637,7 +2637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 314, @@ -2677,7 +2677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 315, @@ -2717,7 +2717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 316, @@ -2757,7 +2757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 317, @@ -2797,7 +2797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 318, @@ -2837,7 +2837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 319, @@ -2877,7 +2877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 320, @@ -2917,7 +2917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 321, @@ -2957,7 +2957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 322, @@ -2997,7 +2997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 324, @@ -3037,7 +3037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 325, @@ -3077,7 +3077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 326, @@ -3117,7 +3117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 327, @@ -3157,7 +3157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 328, @@ -3197,7 +3197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 330, @@ -3237,7 +3237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 331, @@ -3277,7 +3277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 332, @@ -3317,7 +3317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 333, @@ -3357,7 +3357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 334, @@ -3397,7 +3397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 335, @@ -3437,7 +3437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 336, @@ -3477,7 +3477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 337, @@ -3517,7 +3517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 338, @@ -3557,7 +3557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 340, @@ -3597,7 +3597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 341, @@ -3637,7 +3637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 344, @@ -3677,7 +3677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 345, @@ -3717,7 +3717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 346, @@ -3757,7 +3757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 347, @@ -3797,7 +3797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 349, @@ -3837,7 +3837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 350, @@ -3877,7 +3877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 351, @@ -3917,7 +3917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 352, @@ -3957,7 +3957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 353, @@ -3997,7 +3997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 354, @@ -4037,7 +4037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 355, @@ -4077,12 +4077,12 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 356, "spineName": "diaochan", - "rSpineName": "LH_diaochao", + "rSpineName": "LH_diaochan", "name": "貂蝉", "actorId": 356, "face_id": "diaochan", @@ -4117,7 +4117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 357, @@ -4157,7 +4157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 358, @@ -4197,7 +4197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 359, @@ -4237,7 +4237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 360, @@ -4277,7 +4277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 361, @@ -4317,7 +4317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 362, @@ -4357,7 +4357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1001, @@ -4397,7 +4397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1002, @@ -4437,7 +4437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1003, @@ -4477,7 +4477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1004, @@ -4517,7 +4517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1005, @@ -4557,7 +4557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1006, @@ -4597,7 +4597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1007, @@ -4637,7 +4637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1008, @@ -4677,7 +4677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1009, @@ -4717,7 +4717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1010, @@ -4757,7 +4757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1011, @@ -4797,7 +4797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1012, @@ -4837,7 +4837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1013, @@ -4877,7 +4877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1014, @@ -4917,7 +4917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1015, @@ -4957,7 +4957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1016, @@ -4997,7 +4997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1017, @@ -5037,7 +5037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1018, @@ -5077,7 +5077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1019, @@ -5117,7 +5117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1020, @@ -5157,7 +5157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1021, @@ -5197,7 +5197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1022, @@ -5237,7 +5237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1023, @@ -5277,7 +5277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1024, @@ -5317,7 +5317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1025, @@ -5357,7 +5357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1026, @@ -5397,7 +5397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1027, @@ -5437,7 +5437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1028, @@ -5477,7 +5477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1029, @@ -5517,7 +5517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1030, @@ -5557,7 +5557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1031, @@ -5597,7 +5597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1032, @@ -5637,7 +5637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1033, @@ -5677,7 +5677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1034, @@ -5717,7 +5717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1035, @@ -5757,7 +5757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1036, @@ -5797,7 +5797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1037, @@ -5837,7 +5837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1038, @@ -5877,7 +5877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1039, @@ -5917,7 +5917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1040, @@ -5957,7 +5957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1041, @@ -5997,7 +5997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1042, @@ -6037,7 +6037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1043, @@ -6077,7 +6077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1044, @@ -6117,7 +6117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1045, @@ -6157,7 +6157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1046, @@ -6197,7 +6197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1047, @@ -6237,7 +6237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1048, @@ -6277,7 +6277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1049, @@ -6317,7 +6317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1050, @@ -6357,7 +6357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1051, @@ -6397,7 +6397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1052, @@ -6437,7 +6437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1053, @@ -6477,7 +6477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1054, @@ -6517,7 +6517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1055, @@ -6557,7 +6557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1056, @@ -6597,7 +6597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1057, @@ -6637,7 +6637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1058, @@ -6677,7 +6677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1059, @@ -6717,7 +6717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1060, @@ -6757,7 +6757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1061, @@ -6797,7 +6797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1062, @@ -6837,7 +6837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1063, @@ -6877,7 +6877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1064, @@ -6917,7 +6917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1065, @@ -6957,7 +6957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1070, @@ -6997,7 +6997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1074, @@ -7037,7 +7037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1075, @@ -7077,7 +7077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1076, @@ -7117,7 +7117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1077, @@ -7157,7 +7157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1078, @@ -7197,7 +7197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1080, @@ -7237,7 +7237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1082, @@ -7277,7 +7277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1083, @@ -7317,7 +7317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1084, @@ -7357,7 +7357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1085, @@ -7397,7 +7397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1090, @@ -7437,7 +7437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1091, @@ -7477,7 +7477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1092, @@ -7517,7 +7517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1093, @@ -7557,7 +7557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1094, @@ -7597,7 +7597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1095, @@ -7637,7 +7637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1096, @@ -7677,7 +7677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1097, @@ -7717,7 +7717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1098, @@ -7757,7 +7757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1099, @@ -7797,7 +7797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1100, @@ -7837,7 +7837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1101, @@ -7877,7 +7877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1110, @@ -7917,7 +7917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1111, @@ -7957,7 +7957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1112, @@ -7997,7 +7997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1113, @@ -8037,7 +8037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 0, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1114, @@ -8077,7 +8077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1115, @@ -8112,12 +8112,12 @@ "position": "&", "initialSkin": 0, "gender": 2, - "atkSpineEffect": "toushiche_attack", + "atkSpineEffect": "toushiche", "probation": 0, "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1116, @@ -8157,7 +8157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1117, @@ -8197,7 +8197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1118, @@ -8237,7 +8237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1119, @@ -8277,7 +8277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1120, @@ -8317,7 +8317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1121, @@ -8357,7 +8357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1122, @@ -8397,7 +8397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1123, @@ -8437,7 +8437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 0, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1124, @@ -8477,7 +8477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 0, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1125, @@ -8517,7 +8517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 0, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1126, @@ -8557,7 +8557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 0, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1127, @@ -8597,7 +8597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 0, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1128, @@ -8637,7 +8637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1129, @@ -8677,7 +8677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1130, @@ -8717,7 +8717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1131, @@ -8757,11 +8757,11 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1132, - "spineName": "wuhuanbingshuangsaman", + "spineName": "wuhuanbingxuesaman", "rSpineName": "LH_wuhuanshizhe", "name": "冰狼萨满", "actorId": 1132, @@ -8797,7 +8797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1133, @@ -8837,7 +8837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1134, @@ -8877,7 +8877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1135, @@ -8917,7 +8917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1136, @@ -8957,7 +8957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1137, @@ -8997,7 +8997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1138, @@ -9037,7 +9037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1139, @@ -9077,7 +9077,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 0, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1140, @@ -9117,7 +9117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 0, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1141, @@ -9132,8 +9132,8 @@ "camp": 0, "area": 0, "cost": 0, - "jobid": 500, - "jobClass": 5, + "jobid": 17, + "jobClass": 15, "skill": 1141, "pieceId": 0, "hp": 1000, @@ -9157,7 +9157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1142, @@ -9197,7 +9197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1143, @@ -9232,12 +9232,12 @@ "position": "&", "initialSkin": 0, "gender": 2, - "atkSpineEffect": "toushiche_attack", + "atkSpineEffect": "toushiche", "probation": 0, "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1501, @@ -9277,7 +9277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1502, @@ -9317,7 +9317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1503, @@ -9357,7 +9357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1504, @@ -9397,7 +9397,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1505, @@ -9437,7 +9437,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1506, @@ -9477,7 +9477,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1507, @@ -9517,7 +9517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1508, @@ -9557,7 +9557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1509, @@ -9597,7 +9597,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1510, @@ -9637,7 +9637,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1511, @@ -9677,7 +9677,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1512, @@ -9717,7 +9717,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1513, @@ -9757,7 +9757,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1514, @@ -9797,7 +9797,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1515, @@ -9837,7 +9837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1516, @@ -9877,7 +9877,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1517, @@ -9917,7 +9917,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1518, @@ -9957,7 +9957,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1519, @@ -9997,7 +9997,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1520, @@ -10037,7 +10037,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1521, @@ -10077,7 +10077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1522, @@ -10117,7 +10117,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1523, @@ -10157,7 +10157,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1524, @@ -10197,7 +10197,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1525, @@ -10237,7 +10237,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1526, @@ -10277,7 +10277,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1527, @@ -10317,7 +10317,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1528, @@ -10357,7 +10357,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1529, @@ -10397,7 +10397,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1530, @@ -10437,7 +10437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1531, @@ -10477,7 +10477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1532, @@ -10517,7 +10517,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1533, @@ -10557,7 +10557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1534, @@ -10597,7 +10597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1535, @@ -10637,7 +10637,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1536, @@ -10677,7 +10677,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1537, @@ -10717,7 +10717,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1538, @@ -10757,7 +10757,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1539, @@ -10797,7 +10797,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1540, @@ -10837,7 +10837,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1541, @@ -10877,7 +10877,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1542, @@ -10917,7 +10917,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1543, @@ -10957,7 +10957,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1544, @@ -10997,7 +10997,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1545, @@ -11037,7 +11037,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1546, @@ -11077,7 +11077,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1547, @@ -11117,7 +11117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1548, @@ -11157,7 +11157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1549, @@ -11197,7 +11197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1550, @@ -11237,7 +11237,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1551, @@ -11277,7 +11277,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1552, @@ -11317,7 +11317,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1553, @@ -11357,7 +11357,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1554, @@ -11397,7 +11397,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1555, @@ -11437,7 +11437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1556, @@ -11477,7 +11477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1557, @@ -11517,7 +11517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1558, @@ -11557,7 +11557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1559, @@ -11597,7 +11597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1560, @@ -11637,7 +11637,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1561, @@ -11677,7 +11677,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1601, @@ -11717,7 +11717,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 1602, @@ -11757,7 +11757,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 1603, @@ -11797,7 +11797,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3001, @@ -11837,7 +11837,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 2001, @@ -11877,7 +11877,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 2002, @@ -11917,7 +11917,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 2003, @@ -11957,7 +11957,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 2004, @@ -11997,7 +11997,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 2005, @@ -12037,7 +12037,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 2011, @@ -12077,7 +12077,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 2021, @@ -12117,7 +12117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 2022, @@ -12157,7 +12157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 2023, @@ -12197,7 +12197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 2031, @@ -12237,7 +12237,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 2032, @@ -12277,7 +12277,767 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 + }, + { + "heroId": 2041, + "spineName": "gongsunzan", + "rSpineName": "LH_gongsunzan", + "name": "白马将军", + "actorId": 2041, + "face_id": "gongsunzan", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 301, + "jobClass": 5, + "skill": 2041, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 1, + "info": "我是低能", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "1&20410111|2&20410131|3&20410121", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2042, + "spineName": "baimayicong", + "rSpineName": "LH_baimayicong", + "name": "白马义从", + "actorId": 2042, + "face_id": "baimayicong", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 301, + "jobClass": 4, + "skill": 2042, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 1, + "info": "我是低能", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2051, + "spineName": "guojia", + "rSpineName": "LH_guojia", + "name": "郭嘉", + "actorId": 2051, + "face_id": "guojia", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 600, + "jobClass": 6, + "skill": 2051, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 1, + "info": "我是低能", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "1&20510111|2&20510112|3&20510113", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2052, + "spineName": "SL_daobing", + "rSpineName": "LH_xiaobing2", + "name": "步兵", + "actorId": 2052, + "face_id": "tongyongjunguan", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 100, + "jobClass": 5, + "skill": 2052, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 1, + "info": "我是低能", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2053, + "spineName": "SL_qibing", + "rSpineName": "LH_xiaobing2", + "name": "骑兵", + "actorId": 2053, + "face_id": "tongyongjunguan", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 300, + "jobClass": 5, + "skill": 2053, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 1, + "info": "我是低能", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2054, + "spineName": "SL_gongbing", + "rSpineName": "LH_xiaobing2", + "name": "弓兵", + "actorId": 2054, + "face_id": "tongyongjunguan", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 400, + "jobClass": 5, + "skill": 2054, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 1, + "info": "我是低能", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2055, + "spineName": "SL_fabing", + "rSpineName": "&", + "name": "策士", + "actorId": 2055, + "face_id": "shusheng", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 600, + "jobClass": 5, + "skill": 2055, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 1, + "info": "我是低能", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2056, + "spineName": "fabingfazhang", + "rSpineName": "&", + "name": "医生", + "actorId": 2056, + "face_id": "shusheng", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 700, + "jobClass": 5, + "skill": 2056, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 1, + "info": "我是低能", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2061, + "spineName": "zhugeliang", + "rSpineName": "LH_zhugeliang", + "name": "诸葛亮", + "actorId": 2061, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 600, + "jobClass": 6, + "skill": 2061, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "1&20610111|2&20610121|3&20610131", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "faqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2062, + "spineName": "sheng", + "rSpineName": "&", + "name": "阵眼1", + "actorId": 2062, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 18, + "jobClass": 16, + "skill": 2062, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2063, + "spineName": "sheng", + "rSpineName": "&", + "name": "阵眼2", + "actorId": 2063, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 18, + "jobClass": 16, + "skill": 2063, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "faqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2064, + "spineName": "lao", + "rSpineName": "&", + "name": "阵眼3", + "actorId": 2064, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 19, + "jobClass": 17, + "skill": 2064, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2065, + "spineName": "lao", + "rSpineName": "&", + "name": "阵眼4", + "actorId": 2065, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 19, + "jobClass": 17, + "skill": 2065, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "faqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2066, + "spineName": "bing", + "rSpineName": "&", + "name": "阵眼5", + "actorId": 2066, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 18, + "jobClass": 16, + "skill": 2066, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2067, + "spineName": "bing", + "rSpineName": "&", + "name": "阵眼6", + "actorId": 2067, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 18, + "jobClass": 16, + "skill": 2067, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "faqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2068, + "spineName": "si", + "rSpineName": "&", + "name": "阵眼7", + "actorId": 2068, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 19, + "jobClass": 17, + "skill": 2068, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2069, + "spineName": "si", + "rSpineName": "&", + "name": "阵眼8", + "actorId": 2069, + "face_id": "zhugeliang", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 2, + "area": 0, + "cost": 0, + "jobid": 19, + "jobClass": 17, + "skill": 2069, + "pieceId": 0, + "hp": 60, + "atk": 530, + "def": 190, + "mdef": 180, + "hp_up": 95, + "atk_up": 0, + "def_up": 19, + "mdef_up": 18, + "sound_click": 22, + "sound_fight": 22, + "info": "诸葛亮,字孔明,号卧龙,天下无双国士,名为鹿门山水镜先生弟子,实际上却传承着鬼谷学识,通晓百家无所不精。早年曹操为报父仇屠杀徐州时,曾被刘备所救。后在南阳被刘备的精诚之志和仁德之心打动而出山。", + "actorinfo": "物理职业的弓兵,勉强还行。", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "faqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 2071, + "spineName": "diaochan", + "rSpineName": "LH_diaochan", + "name": "樊氏", + "actorId": 2071, + "face_id": "diaochan", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 4, + "area": 0, + "cost": 0, + "jobid": 500, + "jobClass": 5, + "skill": 2071, + "pieceId": 0, + "hp": 60, + "atk": 500, + "def": 180, + "mdef": 110, + "hp_up": 105, + "atk_up": 50, + "def_up": 18, + "mdef_up": 11, + "sound_click": 56, + "sound_fight": 56, + "info": "樊氏,桂阳太守赵范嫂子", + "actorinfo": "远程职业的法师", + "skillScroll": "1&20710111|2&20710121|3&20710131", + "position": "&", + "initialSkin": 0, + "gender": 2, + "atkSpineEffect": "faqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 2072, + "spineName": "dongzhuo", + "rSpineName": "LH_dongzhuo", + "name": "赵范", + "actorId": 2072, + "face_id": "dongzhuo", + "quality": 3, + "initialStars": 3, + "pieceCount": 0, + "camp": 4, + "area": 0, + "cost": 0, + "jobid": 100, + "jobClass": 1, + "skill": 2072, + "pieceId": 0, + "hp": 60, + "atk": 520, + "def": 190, + "mdef": 120, + "hp_up": 98, + "atk_up": 52, + "def_up": 19, + "mdef_up": 12, + "sound_click": 4, + "sound_fight": 4, + "info": "赵范,桂阳太守", + "actorinfo": "物理职业的步兵", + "skillScroll": "&", + "position": "&", + "initialSkin": 0, + "gender": 1, + "atkSpineEffect": "liqi", + "probation": 0, + "center_y": 0, + "show_animation": "&", + "isdeath": 1, + "talentId": 2 }, { "heroId": 3101, @@ -12317,7 +13077,7 @@ "center_y": 1, "show_animation": 2, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3201, @@ -12357,7 +13117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3202, @@ -12397,7 +13157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3203, @@ -12437,7 +13197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3204, @@ -12477,7 +13237,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3205, @@ -12517,7 +13277,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3206, @@ -12557,7 +13317,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3207, @@ -12597,7 +13357,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3208, @@ -12637,7 +13397,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3209, @@ -12677,7 +13437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3301, @@ -12717,7 +13477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3302, @@ -12757,7 +13517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3303, @@ -12797,7 +13557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3304, @@ -12837,7 +13597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3305, @@ -12877,7 +13637,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3306, @@ -12917,7 +13677,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3307, @@ -12957,7 +13717,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3308, @@ -12997,7 +13757,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3309, @@ -13037,7 +13797,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3310, @@ -13077,7 +13837,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3311, @@ -13117,7 +13877,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3401, @@ -13157,7 +13917,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3402, @@ -13197,7 +13957,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3403, @@ -13214,7 +13974,7 @@ "cost": 0, "jobid": 0, "jobClass": 0, - "skill": 0, + "skill": 3403, "pieceId": 0, "hp": 1000, "atk": 20, @@ -13237,7 +13997,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3404, @@ -13254,7 +14014,7 @@ "cost": 0, "jobid": 0, "jobClass": 0, - "skill": 0, + "skill": 3404, "pieceId": 0, "hp": 1000, "atk": 20, @@ -13277,7 +14037,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3405, @@ -13317,7 +14077,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3406, @@ -13357,7 +14117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3407, @@ -13397,7 +14157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3408, @@ -13437,7 +14197,287 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 + }, + { + "heroId": 3409, + "spineName": "langtuteng", + "rSpineName": "&", + "name": "狼图腾", + "actorId": 3409, + "face_id": 0, + "quality": 0, + "initialStars": 0, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 0, + "jobClass": 0, + "skill": 3409, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 0, + "info": 0, + "actorinfo": 0, + "skillScroll": 0, + "position": "&", + "initialSkin": 0, + "gender": 0, + "atkSpineEffect": 0, + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 3410, + "spineName": "elangling", + "rSpineName": "&", + "name": "恶狼灵", + "actorId": 3410, + "face_id": 0, + "quality": 0, + "initialStars": 0, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 0, + "jobClass": 0, + "skill": 3410, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 0, + "info": 0, + "actorinfo": 0, + "skillScroll": 0, + "position": "&", + "initialSkin": 0, + "gender": 0, + "atkSpineEffect": 0, + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 3411, + "spineName": "linglangling", + "rSpineName": "&", + "name": "灵狼灵", + "actorId": 3411, + "face_id": 0, + "quality": 0, + "initialStars": 0, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 0, + "jobClass": 0, + "skill": 3411, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 0, + "info": 0, + "actorinfo": 0, + "skillScroll": 0, + "position": "&", + "initialSkin": 0, + "gender": 0, + "atkSpineEffect": 0, + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 3412, + "spineName": "elangling", + "rSpineName": "&", + "name": "恶狼灵", + "actorId": 3412, + "face_id": 0, + "quality": 0, + "initialStars": 0, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 0, + "jobClass": 0, + "skill": 3412, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 0, + "info": 0, + "actorinfo": 0, + "skillScroll": 0, + "position": "&", + "initialSkin": 0, + "gender": 0, + "atkSpineEffect": 0, + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 3413, + "spineName": "linglangling", + "rSpineName": "&", + "name": "灵狼灵", + "actorId": 3413, + "face_id": 0, + "quality": 0, + "initialStars": 0, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 0, + "jobClass": 0, + "skill": 3413, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 0, + "info": 0, + "actorinfo": 0, + "skillScroll": 0, + "position": "&", + "initialSkin": 0, + "gender": 0, + "atkSpineEffect": 0, + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 2 + }, + { + "heroId": 3414, + "spineName": "elangling", + "rSpineName": "&", + "name": "恶狼灵", + "actorId": 3414, + "face_id": 0, + "quality": 0, + "initialStars": 0, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 0, + "jobClass": 0, + "skill": 3414, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 0, + "info": 0, + "actorinfo": 0, + "skillScroll": 0, + "position": "&", + "initialSkin": 0, + "gender": 0, + "atkSpineEffect": 0, + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 1 + }, + { + "heroId": 3415, + "spineName": "linglangling", + "rSpineName": "&", + "name": "灵狼灵", + "actorId": 3415, + "face_id": 0, + "quality": 0, + "initialStars": 0, + "pieceCount": 0, + "camp": 0, + "area": 0, + "cost": 0, + "jobid": 0, + "jobClass": 0, + "skill": 3415, + "pieceId": 0, + "hp": 1000, + "atk": 20, + "def": 20, + "mdef": 20, + "hp_up": 5, + "atk_up": 1, + "def_up": 1, + "mdef_up": 1, + "sound_click": 1, + "sound_fight": 0, + "info": 0, + "actorinfo": 0, + "skillScroll": 0, + "position": "&", + "initialSkin": 0, + "gender": 0, + "atkSpineEffect": 0, + "probation": 0, + "center_y": 0, + "show_animation": 0, + "isdeath": 1, + "talentId": 2 }, { "heroId": 3501, @@ -13454,7 +14494,7 @@ "cost": 0, "jobid": 0, "jobClass": 0, - "skill": 0, + "skill": 3501, "pieceId": 0, "hp": 1000, "atk": 20, @@ -13477,7 +14517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3502, @@ -13494,7 +14534,7 @@ "cost": 0, "jobid": 0, "jobClass": 0, - "skill": 0, + "skill": 3502, "pieceId": 0, "hp": 1000, "atk": 20, @@ -13517,7 +14557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3503, @@ -13557,7 +14597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3504, @@ -13574,7 +14614,7 @@ "cost": 0, "jobid": 0, "jobClass": 0, - "skill": 0, + "skill": 3504, "pieceId": 0, "hp": 1000, "atk": 20, @@ -13597,7 +14637,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3505, @@ -13614,7 +14654,7 @@ "cost": 0, "jobid": 0, "jobClass": 0, - "skill": 0, + "skill": 3505, "pieceId": 0, "hp": 1000, "atk": 20, @@ -13628,7 +14668,7 @@ "sound_fight": 0, "info": 0, "actorinfo": 0, - "skillScroll": 0, + "skillScroll": "1&35050111|2&35050121|3&35050131", "position": "&", "initialSkin": 0, "gender": 0, @@ -13637,7 +14677,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3506, @@ -13677,7 +14717,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3601, @@ -13717,7 +14757,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3602, @@ -13757,7 +14797,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3603, @@ -13797,7 +14837,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3604, @@ -13837,7 +14877,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3605, @@ -13877,7 +14917,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3606, @@ -13917,7 +14957,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3607, @@ -13957,7 +14997,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3608, @@ -13997,7 +15037,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3609, @@ -14037,7 +15077,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3610, @@ -14077,7 +15117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3611, @@ -14117,7 +15157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3612, @@ -14157,7 +15197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3613, @@ -14197,7 +15237,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3614, @@ -14237,7 +15277,7 @@ "center_y": 0, "show_animation": "show", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3615, @@ -14277,7 +15317,7 @@ "center_y": 0, "show_animation": "show", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3616, @@ -14317,7 +15357,7 @@ "center_y": 0, "show_animation": "show", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3617, @@ -14357,7 +15397,7 @@ "center_y": 0, "show_animation": "show", "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3701, @@ -14397,7 +15437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3702, @@ -14437,7 +15477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3703, @@ -14477,7 +15517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3704, @@ -14517,7 +15557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3705, @@ -14557,7 +15597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 3706, @@ -14597,7 +15637,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 3707, @@ -14637,7 +15677,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4001, @@ -14677,7 +15717,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4002, @@ -14717,7 +15757,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4003, @@ -14757,7 +15797,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4004, @@ -14797,7 +15837,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4005, @@ -14837,7 +15877,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4007, @@ -14877,7 +15917,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4008, @@ -14917,7 +15957,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4010, @@ -14957,7 +15997,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4011, @@ -14997,7 +16037,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4012, @@ -15037,7 +16077,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4013, @@ -15077,7 +16117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4014, @@ -15117,7 +16157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4016, @@ -15157,7 +16197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4017, @@ -15197,7 +16237,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4018, @@ -15237,7 +16277,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4019, @@ -15277,7 +16317,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4020, @@ -15317,7 +16357,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4021, @@ -15357,7 +16397,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4022, @@ -15397,7 +16437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4024, @@ -15437,7 +16477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4025, @@ -15477,7 +16517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4026, @@ -15517,7 +16557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4027, @@ -15557,7 +16597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4028, @@ -15597,7 +16637,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4030, @@ -15637,7 +16677,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4031, @@ -15677,7 +16717,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4032, @@ -15717,7 +16757,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4033, @@ -15757,7 +16797,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4034, @@ -15797,7 +16837,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4035, @@ -15837,7 +16877,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4036, @@ -15877,7 +16917,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4037, @@ -15917,7 +16957,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4038, @@ -15957,7 +16997,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4040, @@ -15997,7 +17037,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4041, @@ -16037,7 +17077,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4044, @@ -16077,7 +17117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4045, @@ -16117,7 +17157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4046, @@ -16157,7 +17197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4047, @@ -16197,7 +17237,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4049, @@ -16237,7 +17277,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4050, @@ -16277,7 +17317,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4051, @@ -16317,7 +17357,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4052, @@ -16357,7 +17397,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4053, @@ -16397,7 +17437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4054, @@ -16437,7 +17477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4055, @@ -16477,7 +17517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4056, @@ -16517,7 +17557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4062, @@ -16557,7 +17597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4063, @@ -16597,7 +17637,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4064, @@ -16637,7 +17677,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4101, @@ -16677,7 +17717,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4102, @@ -16717,7 +17757,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4103, @@ -16757,7 +17797,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4104, @@ -16797,7 +17837,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4105, @@ -16837,7 +17877,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4106, @@ -16877,7 +17917,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4107, @@ -16917,7 +17957,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4108, @@ -16957,7 +17997,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4109, @@ -16997,7 +18037,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4110, @@ -17037,7 +18077,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4111, @@ -17077,7 +18117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4112, @@ -17117,7 +18157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4113, @@ -17157,7 +18197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4114, @@ -17197,7 +18237,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4115, @@ -17237,7 +18277,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4116, @@ -17277,7 +18317,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4117, @@ -17317,7 +18357,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4118, @@ -17357,7 +18397,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4119, @@ -17397,7 +18437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4120, @@ -17437,7 +18477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4121, @@ -17477,7 +18517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4122, @@ -17517,7 +18557,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4123, @@ -17557,7 +18597,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4201, @@ -17597,7 +18637,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4202, @@ -17637,7 +18677,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4203, @@ -17677,7 +18717,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 4204, @@ -17717,7 +18757,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 4206, @@ -17757,7 +18797,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41101, @@ -17797,7 +18837,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41103, @@ -17837,7 +18877,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41107, @@ -17877,7 +18917,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41113, @@ -17917,7 +18957,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41117, @@ -17957,7 +18997,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41118, @@ -17997,7 +19037,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41119, @@ -18012,8 +19052,8 @@ "camp": 2, "area": 0, "cost": 0, - "jobid": 300, - "jobClass": 3, + "jobid": 200, + "jobClass": 2, "skill": 19, "pieceId": 21019, "hp": 124, @@ -18037,7 +19077,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41122, @@ -18077,7 +19117,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41124, @@ -18117,7 +19157,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41126, @@ -18157,7 +19197,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41127, @@ -18197,7 +19237,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41133, @@ -18237,7 +19277,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41134, @@ -18277,7 +19317,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41136, @@ -18317,7 +19357,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41138, @@ -18357,7 +19397,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41140, @@ -18397,7 +19437,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41141, @@ -18437,7 +19477,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41144, @@ -18477,7 +19517,7 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 }, { "heroId": 41153, @@ -18517,7 +19557,7 @@ "center_y": 0, "show_animation": "&", "isdeath": 1, - "__EMPTY": 0 + "talentId": 2 }, { "heroId": 41156, @@ -18557,6 +19597,6 @@ "center_y": 0, "show_animation": 0, "isdeath": 1, - "__EMPTY": 0 + "talentId": 1 } ] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_hero_talent.json b/shared/resource/jsons/dic_zyz_hero_talent.json new file mode 100644 index 000000000..4ed07f96e --- /dev/null +++ b/shared/resource/jsons/dic_zyz_hero_talent.json @@ -0,0 +1,394 @@ +[ + { + "id": 1, + "talentId": 1, + "nodeSort": 1, + "type": "1&", + "relationId": "&", + "name": "援护初始", + "levelCount": 1, + "levelSeid": "31&", + "levelConsume": "&", + "prepositionId": "&", + "preTotalPoint": 0, + "preSinglePoint": 0 + }, + { + "id": 2, + "talentId": 1, + "nodeSort": 2, + "type": "1&", + "relationId": "&", + "name": "攻击初始", + "levelCount": 5, + "levelSeid": "50201&50301&50211&50311&50221&50321", + "levelConsume": "1&2&3&4&5", + "prepositionId": "1&", + "preTotalPoint": 0, + "preSinglePoint": 0 + }, + { + "id": 3, + "talentId": 1, + "nodeSort": 2, + "type": "1&", + "relationId": "&", + "name": "物防初始", + "levelCount": 5, + "levelSeid": "401&402&501&502&402", + "levelConsume": "1&2&3&4&5", + "prepositionId": "1&", + "preTotalPoint": 0, + "preSinglePoint": 0 + }, + { + "id": 4, + "talentId": 1, + "nodeSort": 2, + "type": "1&", + "relationId": "&", + "name": "策防初始", + "levelCount": 5, + "levelSeid": "401&402&501&502&402", + "levelConsume": "1&2&3&4&5", + "prepositionId": "1&", + "preTotalPoint": 0, + "preSinglePoint": 0 + }, + { + "id": 5, + "talentId": 1, + "nodeSort": 3, + "type": "2&3", + "relationId": "6&7&13&14|1&", + "name": "高级援护", + "levelCount": 3, + "levelSeid": "1001&1002&1011", + "levelConsume": "5&5&5", + "prepositionId": "2&", + "preTotalPoint": 40, + "preSinglePoint": 10 + }, + { + "id": 6, + "talentId": 1, + "nodeSort": 3, + "type": "2&3", + "relationId": "5&7&12&14|1&", + "name": "减伤光环", + "levelCount": 3, + "levelSeid": "11001&11002&11003", + "levelConsume": "5&5&5", + "prepositionId": "3&", + "preTotalPoint": 40, + "preSinglePoint": 10 + }, + { + "id": 7, + "talentId": 1, + "nodeSort": 3, + "type": "2&3", + "relationId": "5&6&12&13|1&", + "name": "抗伤光环", + "levelCount": 3, + "levelSeid": "16001&16002&16003", + "levelConsume": "5&5&5", + "prepositionId": "4&", + "preTotalPoint": 40, + "preSinglePoint": 10 + }, + { + "id": 8, + "talentId": 1, + "nodeSort": 4, + "type": "1&", + "relationId": "&", + "name": "格挡", + "levelCount": 5, + "levelSeid": "1101&1102&1201&1202&1301", + "levelConsume": "1&2&3&4&5", + "prepositionId": "5|6|7", + "preTotalPoint": 50, + "preSinglePoint": 10 + }, + { + "id": 9, + "talentId": 1, + "nodeSort": 5, + "type": "1&", + "relationId": "&", + "name": "反击伤害", + "levelCount": 5, + "levelSeid": "23611&23621&23631&23641&23651", + "levelConsume": "1&2&3&4&5", + "prepositionId": "8&", + "preTotalPoint": 60, + "preSinglePoint": 10 + }, + { + "id": 10, + "talentId": 1, + "nodeSort": 5, + "type": "1&", + "relationId": "&", + "name": "物理减伤", + "levelCount": 5, + "levelSeid": "11006&11007&11008&11009&11010", + "levelConsume": "1&2&3&4&5", + "prepositionId": "8&", + "preTotalPoint": 60, + "preSinglePoint": 10 + }, + { + "id": 11, + "talentId": 1, + "nodeSort": 5, + "type": "1&", + "relationId": "&", + "name": "策略减伤", + "levelCount": 5, + "levelSeid": "16006&16007&16008&16009&16010", + "levelConsume": "1&2&3&4&5", + "prepositionId": "8&", + "preTotalPoint": 60, + "preSinglePoint": 10 + }, + { + "id": 12, + "talentId": 1, + "nodeSort": 6, + "type": "2&3", + "relationId": "6&7&13&14|5&", + "name": "援护强化", + "levelCount": 5, + "levelSeid": "1201&1202&1301&1302&1402", + "levelConsume": "1&2&3&4&5", + "prepositionId": "9&", + "preTotalPoint": 70, + "preSinglePoint": 10 + }, + { + "id": 13, + "talentId": 1, + "nodeSort": 6, + "type": "2&3", + "relationId": "5&7&12&14|6&", + "name": "减伤强化", + "levelCount": 5, + "levelSeid": "2800&2801&2802&2803&2804", + "levelConsume": "1&2&3&4&5", + "prepositionId": "10&", + "preTotalPoint": 70, + "preSinglePoint": 10 + }, + { + "id": 14, + "talentId": 1, + "nodeSort": 6, + "type": "2&3", + "relationId": "5&6&12&13|7&", + "name": "抗伤强化", + "levelCount": 5, + "levelSeid": "2805&2806&2807&2808&2809", + "levelConsume": "1&2&3&4&5", + "prepositionId": "11&", + "preTotalPoint": 70, + "preSinglePoint": 10 + }, + { + "id": 15, + "talentId": 2, + "nodeSort": 1, + "type": "1&", + "relationId": "&", + "name": "援护初始", + "levelCount": 1, + "levelSeid": "31&", + "levelConsume": "&", + "prepositionId": "&", + "preTotalPoint": 0, + "preSinglePoint": 0 + }, + { + "id": 16, + "talentId": 2, + "nodeSort": 2, + "type": "1&", + "relationId": "&", + "name": "攻击初始", + "levelCount": 4, + "levelSeid": "50201&50301&50211&50311&50221", + "levelConsume": "1&2&3&4", + "prepositionId": "15&", + "preTotalPoint": 0, + "preSinglePoint": 0 + }, + { + "id": 17, + "talentId": 2, + "nodeSort": 2, + "type": "1&", + "relationId": "&", + "name": "物防初始", + "levelCount": 4, + "levelSeid": "401&402&501&502", + "levelConsume": "1&2&3&4", + "prepositionId": "15&", + "preTotalPoint": 0, + "preSinglePoint": 0 + }, + { + "id": 18, + "talentId": 2, + "nodeSort": 2, + "type": "1&", + "relationId": "&", + "name": "策防初始", + "levelCount": 4, + "levelSeid": "401&402&501&402", + "levelConsume": "1&2&3&4", + "prepositionId": "15&", + "preTotalPoint": 0, + "preSinglePoint": 0 + }, + { + "id": 19, + "talentId": 2, + "nodeSort": 3, + "type": "2&3", + "relationId": "20&21&27&28|15&", + "name": "高级援护", + "levelCount": 3, + "levelSeid": "1001&1002&1011", + "levelConsume": "5&5&5", + "prepositionId": "16&", + "preTotalPoint": 30, + "preSinglePoint": 10 + }, + { + "id": 20, + "talentId": 2, + "nodeSort": 3, + "type": "2&3", + "relationId": "19&21&26&28|15&", + "name": "减伤光环", + "levelCount": 3, + "levelSeid": "11001&11002&11003", + "levelConsume": "5&5&5", + "prepositionId": "17&", + "preTotalPoint": 30, + "preSinglePoint": 10 + }, + { + "id": 21, + "talentId": 2, + "nodeSort": 3, + "type": "2&3", + "relationId": "19&20&26&27|15&", + "name": "抗伤光环", + "levelCount": 3, + "levelSeid": "16001&16002&16003", + "levelConsume": "5&5&5", + "prepositionId": "18&", + "preTotalPoint": 30, + "preSinglePoint": 10 + }, + { + "id": 22, + "talentId": 2, + "nodeSort": 4, + "type": "1&", + "relationId": "&", + "name": "格挡", + "levelCount": 5, + "levelSeid": "1101&1102&1201&1202&1301", + "levelConsume": "1&2&3&4&5", + "prepositionId": "19|20|21", + "preTotalPoint": 40, + "preSinglePoint": 10 + }, + { + "id": 23, + "talentId": 2, + "nodeSort": 5, + "type": "1&", + "relationId": "&", + "name": "反击伤害", + "levelCount": 5, + "levelSeid": "23611&23621&23631&23641&23651", + "levelConsume": "1&2&3&4&5", + "prepositionId": "22&", + "preTotalPoint": 50, + "preSinglePoint": 10 + }, + { + "id": 24, + "talentId": 2, + "nodeSort": 5, + "type": "1&", + "relationId": "&", + "name": "物理减伤", + "levelCount": 5, + "levelSeid": "11006&11007&11008&11009&11010", + "levelConsume": "1&2&3&4&5", + "prepositionId": "22&", + "preTotalPoint": 50, + "preSinglePoint": 10 + }, + { + "id": 25, + "talentId": 2, + "nodeSort": 5, + "type": "1&", + "relationId": "&", + "name": "策略减伤", + "levelCount": 5, + "levelSeid": "16006&16007&16008&16009&16010", + "levelConsume": "1&2&3&4&5", + "prepositionId": "22&", + "preTotalPoint": 50, + "preSinglePoint": 10 + }, + { + "id": 26, + "talentId": 2, + "nodeSort": 6, + "type": "2&3", + "relationId": "20&21&27&28|23&", + "name": "援护强化", + "levelCount": 5, + "levelSeid": "1201&1202&1301&1302&1402", + "levelConsume": "1&2&3&4&5", + "prepositionId": "23&", + "preTotalPoint": 60, + "preSinglePoint": 10 + }, + { + "id": 27, + "talentId": 2, + "nodeSort": 6, + "type": "2&3", + "relationId": "19&21&26&28|24&", + "name": "减伤强化", + "levelCount": 5, + "levelSeid": "2800&2801&2802&2803&2804", + "levelConsume": "1&2&3&4&5", + "prepositionId": "24&", + "preTotalPoint": 60, + "preSinglePoint": 10 + }, + { + "id": 28, + "talentId": 2, + "nodeSort": 6, + "type": "2&3", + "relationId": "19&20&26&27|25&", + "name": "抗伤强化", + "levelCount": 5, + "levelSeid": "2805&2806&2807&2808&2809", + "levelConsume": "1&2&3&4&5", + "prepositionId": "25&", + "preTotalPoint": 60, + "preSinglePoint": 10 + } +] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_job.json b/shared/resource/jsons/dic_zyz_job.json index f70ba9a0a..cd1d1fc5f 100644 --- a/shared/resource/jsons/dic_zyz_job.json +++ b/shared/resource/jsons/dic_zyz_job.json @@ -9,14 +9,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "&", "effect": "eff_502", "info": "步兵系0级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17005&2|17002&2|17003&2|17004&2|17006&2|17006&2", "upGradeConsume": "17042&2", - "attr": "1&410|2&154|4&136|5&89|9&2500|11&2500" + "attr": "1&410|2&154|4&136|5&89|9&2500|11&2500", + "talentPoint": 5 }, { "jobid": 101, @@ -28,14 +28,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11001&", "effect": "eff_503", "info": "步兵系1级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17005&4|17002&4|17003&4|17004&4|17006&4|17006&4", "upGradeConsume": "17042&4", - "attr": "1&1230|2&463|4&408|5&268|10&2500|12&2500" + "attr": "1&1230|2&463|4&408|5&268|10&2500|12&2500", + "talentPoint": 5 }, { "jobid": 102, @@ -47,14 +47,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11002&", "effect": "eff_503", "info": "步兵系2级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17010&6|17007&6|17008&6|17009&6|17011&6|17011&6", "upGradeConsume": "17042&6", - "attr": "1&2460|2&927|4&817|5&536|19&2500|21&2500" + "attr": "1&2460|2&927|4&817|5&536|19&2500|21&2500", + "talentPoint": 5 }, { "jobid": 103, @@ -66,14 +66,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11003&", "effect": "eff_503", "info": "步兵系3级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17010&8|17007&8|17008&8|17009&8|17011&8|17011&8", "upGradeConsume": "17042&8", - "attr": "1&3690|2&1391|4&1226|5&804|20&2500|22&2500" + "attr": "1&3690|2&1391|4&1226|5&804|20&2500|22&2500", + "talentPoint": 5 }, { "jobid": 104, @@ -85,14 +85,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11004&", "effect": "eff_503", "info": "步兵系4级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17015&10|17012&10|17013&10|17014&10|17016&10|17016&10", "upGradeConsume": "17042&10", - "attr": "1&4920|2&1854|4&1635|5&1072|9&5000|11&5000" + "attr": "1&4920|2&1854|4&1635|5&1072|9&5000|11&5000", + "talentPoint": 5 }, { "jobid": 105, @@ -104,14 +104,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11005&", "effect": "eff_503", "info": "步兵系5级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17015&12|17012&12|17013&12|17014&12|17016&12|17016&12", "upGradeConsume": "17042&12", - "attr": "1&6560|2&2472|4&2180|5&1429|10&5000|12&5000" + "attr": "1&6560|2&2472|4&2180|5&1429|10&5000|12&5000", + "talentPoint": 5 }, { "jobid": 106, @@ -123,14 +123,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11006&", "effect": "eff_503", "info": "步兵系6级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17020&14|17017&14|17018&14|17019&14|17021&14|17021&14", "upGradeConsume": "17042&16", - "attr": "1&8200|2&3091|4&2726|5&1787|19&5000|21&5000" + "attr": "1&8200|2&3091|4&2726|5&1787|19&5000|21&5000", + "talentPoint": 10 }, { "jobid": 107, @@ -142,14 +142,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11007&", "effect": "eff_503", "info": "步兵系7级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17020&16|17017&16|17018&16|17019&16|17021&16|17021&16", "upGradeConsume": "17042&20", - "attr": "1&10250|2&3864|4&3407|5&2234|20&5000|22&5000" + "attr": "1&10250|2&3864|4&3407|5&2234|20&5000|22&5000", + "talentPoint": 10 }, { "jobid": 108, @@ -161,14 +161,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11008&", "effect": "eff_503", "info": "步兵系8级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17025&18|17022&18|17023&18|17024&18|17026&18|17026&18", "upGradeConsume": "17042&24", - "attr": "1&13120|2&4945|4&4361|5&2859|9&7500|11&7500" + "attr": "1&13120|2&4945|4&4361|5&2859|9&7500|11&7500", + "talentPoint": 10 }, { "jobid": 109, @@ -180,14 +180,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11009&", "effect": "eff_503", "info": "步兵系9级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17025&20|17022&20|17023&20|17024&20|17026&20|17026&20", "upGradeConsume": "17042&28", - "attr": "1&16400|2&6182|4&5452|5&3574|10&7500|12&7500" + "attr": "1&16400|2&6182|4&5452|5&3574|10&7500|12&7500", + "talentPoint": 10 }, { "jobid": 110, @@ -199,14 +199,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11010&", "effect": "eff_502", "info": "步兵系10级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17030&22|17027&22|17028&22|17029&22|17031&22|17031&22", "upGradeConsume": "17042&32", - "attr": "1&19680|2&7418|4&6542|5&4289|19&7500|21&7500" + "attr": "1&19680|2&7418|4&6542|5&4289|19&7500|21&7500", + "talentPoint": 10 }, { "jobid": 111, @@ -218,14 +218,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11011&", "effect": "eff_502", "info": "步兵系11级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17030&23|17027&23|17028&23|17029&23|17031&23|17031&23", "upGradeConsume": "17042&36", - "attr": "1&22960|2&8655|4&7632|5&5004|20&7500|22&7500" + "attr": "1&22960|2&8655|4&7632|5&5004|20&7500|22&7500", + "talentPoint": 10 }, { "jobid": 112, @@ -237,14 +237,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11012&", "effect": "eff_502", "info": "步兵系12级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17035&24|17032&24|17033&24|17034&24|17036&24|17036&24", "upGradeConsume": "17042&40", - "attr": "1&26650|2&10046|4&8859|5&5808|9&10000|11&10000" + "attr": "1&26650|2&10046|4&8859|5&5808|9&10000|11&10000", + "talentPoint": 10 }, { "jobid": 113, @@ -256,14 +256,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11013&", "effect": "eff_501", "info": "步兵系13级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17035&25|17032&25|17033&25|17034&25|17036&25|17036&25", "upGradeConsume": "17042&48", - "attr": "1&30340|2&11437|4&10086|5&6612|10&10000|12&10000" + "attr": "1&30340|2&11437|4&10086|5&6612|10&10000|12&10000", + "talentPoint": 10 }, { "jobid": 114, @@ -275,14 +275,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11014&", "effect": "eff_501", "info": "步兵系14级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17040&26|17037&26|17038&26|17039&26|17041&26|17041&26", "upGradeConsume": "17042&54", - "attr": "1&35260|2&13292|4&11721|5&7684|19&10000|21&10000" + "attr": "1&35260|2&13292|4&11721|5&7684|19&10000|21&10000", + "talentPoint": 10 }, { "jobid": 115, @@ -294,14 +294,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11015&", "effect": "eff_501", "info": "步兵系15级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "17040&28|17037&28|17038&28|17039&28|17041&28|17041&28", "upGradeConsume": "17042&60", - "attr": "1&41000|2&15456|4&13630|5&8936|20&10000|22&10000" + "attr": "1&41000|2&15456|4&13630|5&8936|20&10000|22&10000", + "talentPoint": 15 }, { "jobid": 116, @@ -313,14 +313,14 @@ "type": 1, "imgid": 1, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "11016&", "effect": "eff_501", "info": "步兵系16级。擅长防御的步兵部队。适合守卫城。虽然优于远距离攻击部队,但却劣于骑兵部队。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "&" + "attr": "&", + "talentPoint": 0 }, { "jobid": 200, @@ -332,14 +332,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "&", "effect": "eff_500", "info": "枪兵系0级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17005&2|17002&2|17003&2|17004&2|17006&2|17006&2", "upGradeConsume": "17042&2", - "attr": "1&345|2&174|4&124|5&113|9&2500|11&2500" + "attr": "1&345|2&174|4&124|5&113|9&2500|11&2500", + "talentPoint": 5 }, { "jobid": 201, @@ -351,14 +351,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12001&", "effect": "eff_500", "info": "枪兵系1级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17005&4|17002&4|17003&4|17004&4|17006&4|17006&4", "upGradeConsume": "17042&4", - "attr": "1&1035|2&523|4&373|5&341|10&2500|12&2500" + "attr": "1&1035|2&523|4&373|5&341|10&2500|12&2500", + "talentPoint": 5 }, { "jobid": 202, @@ -370,14 +370,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12002&", "effect": "eff_500", "info": "枪兵系2级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17010&6|17007&6|17008&6|17009&6|17011&6|17011&6", "upGradeConsume": "17042&6", - "attr": "1&2070|2&1046|4&747|5&682|19&2500|21&2500" + "attr": "1&2070|2&1046|4&747|5&682|19&2500|21&2500", + "talentPoint": 5 }, { "jobid": 203, @@ -389,14 +389,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12003&", "effect": "eff_500", "info": "枪兵系3级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17010&8|17007&8|17008&8|17009&8|17011&8|17011&8", "upGradeConsume": "17042&8", - "attr": "1&3105|2&1570|4&1121|5&1024|20&2500|22&2500" + "attr": "1&3105|2&1570|4&1121|5&1024|20&2500|22&2500", + "talentPoint": 5 }, { "jobid": 204, @@ -408,14 +408,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12004&", "effect": "eff_504", "info": "枪兵系4级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17015&10|17012&10|17013&10|17014&10|17016&10|17016&10", "upGradeConsume": "17042&10", - "attr": "1&4140|2&2093|4&1494|5&1365|9&5000|11&5000" + "attr": "1&4140|2&2093|4&1494|5&1365|9&5000|11&5000", + "talentPoint": 5 }, { "jobid": 205, @@ -427,14 +427,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12005&", "effect": "eff_504", "info": "枪兵系5级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17015&12|17012&12|17013&12|17014&12|17016&12|17016&12", "upGradeConsume": "17042&12", - "attr": "1&5520|2&2791|4&1992|5&1821|10&5000|12&5000" + "attr": "1&5520|2&2791|4&1992|5&1821|10&5000|12&5000", + "talentPoint": 5 }, { "jobid": 206, @@ -446,14 +446,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12006&", "effect": "eff_504", "info": "枪兵系6级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17020&14|17017&14|17018&14|17019&14|17021&14|17021&14", "upGradeConsume": "17042&16", - "attr": "1&6900|2&3489|4&2491|5&2276|19&5000|21&5000" + "attr": "1&6900|2&3489|4&2491|5&2276|19&5000|21&5000", + "talentPoint": 10 }, { "jobid": 207, @@ -465,14 +465,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12007&", "effect": "eff_500", "info": "枪兵系7级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17020&16|17017&16|17018&16|17019&16|17021&16|17021&16", "upGradeConsume": "17042&20", - "attr": "1&8625|2&4362|4&3114|5&2845|20&5000|22&5000" + "attr": "1&8625|2&4362|4&3114|5&2845|20&5000|22&5000", + "talentPoint": 10 }, { "jobid": 208, @@ -484,14 +484,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12008&", "effect": "eff_500", "info": "枪兵系8级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17025&18|17022&18|17023&18|17024&18|17026&18|17026&18", "upGradeConsume": "17042&24", - "attr": "1&11040|2&5583|4&3985|5&3642|9&7500|11&7500" + "attr": "1&11040|2&5583|4&3985|5&3642|9&7500|11&7500", + "talentPoint": 10 }, { "jobid": 209, @@ -503,14 +503,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12009&", "effect": "eff_500", "info": "枪兵系9级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17025&20|17022&20|17023&20|17024&20|17026&20|17026&20", "upGradeConsume": "17042&28", - "attr": "1&13800|2&6979|4&4982|5&4553|10&7500|12&7500" + "attr": "1&13800|2&6979|4&4982|5&4553|10&7500|12&7500", + "talentPoint": 10 }, { "jobid": 210, @@ -522,14 +522,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12010&", "effect": "eff_500", "info": "枪兵系10级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17030&22|17027&22|17028&22|17029&22|17031&22|17031&22", "upGradeConsume": "17042&32", - "attr": "1&16560|2&8375|4&5978|5&5463|19&7500|21&7500" + "attr": "1&16560|2&8375|4&5978|5&5463|19&7500|21&7500", + "talentPoint": 10 }, { "jobid": 211, @@ -541,14 +541,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12011&", "effect": "eff_500", "info": "枪兵系11级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17030&23|17027&23|17028&23|17029&23|17031&23|17031&23", "upGradeConsume": "17042&36", - "attr": "1&19320|2&9770|4&6975|5&6374|20&7500|22&7500" + "attr": "1&19320|2&9770|4&6975|5&6374|20&7500|22&7500", + "talentPoint": 10 }, { "jobid": 212, @@ -560,14 +560,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12012&", "effect": "eff_500", "info": "枪兵系12级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17035&24|17032&24|17033&24|17034&24|17036&24|17036&24", "upGradeConsume": "17042&40", - "attr": "1&22425|2&11341|4&8096|5&7398|9&10000|11&10000" + "attr": "1&22425|2&11341|4&8096|5&7398|9&10000|11&10000", + "talentPoint": 10 }, { "jobid": 213, @@ -579,14 +579,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12013&", "effect": "eff_505", "info": "枪兵系13级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17035&25|17032&25|17033&25|17034&25|17036&25|17036&25", "upGradeConsume": "17042&48", - "attr": "1&25530|2&12911|4&9217|5&8423|10&10000|12&10000" + "attr": "1&25530|2&12911|4&9217|5&8423|10&10000|12&10000", + "talentPoint": 10 }, { "jobid": 214, @@ -598,14 +598,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12014&", "effect": "eff_505", "info": "枪兵系14级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17040&26|17037&26|17038&26|17039&26|17041&26|17041&26", "upGradeConsume": "17042&54", - "attr": "1&29670|2&15005|4&10712|5&9789|19&10000|21&10000" + "attr": "1&29670|2&15005|4&10712|5&9789|19&10000|21&10000", + "talentPoint": 10 }, { "jobid": 215, @@ -617,14 +617,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12015&", "effect": "eff_505", "info": "枪兵系15级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "17040&28|17037&28|17038&28|17039&28|17041&28|17041&28", "upGradeConsume": "17042&60", - "attr": "1&34500|2&17448|4&12456|5&11383|20&10000|22&10000" + "attr": "1&34500|2&17448|4&12456|5&11383|20&10000|22&10000", + "talentPoint": 15 }, { "jobid": 216, @@ -636,14 +636,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "12016&", "effect": "eff_505", "info": "枪兵系16级。攻防均可的步兵队伍,自身没有短板但也没有突出之处,在与骑兵部队战斗时较有优势。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "&" + "attr": "&", + "talentPoint": 0 }, { "jobid": 300, @@ -655,14 +655,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "&", "effect": "eff_505", "info": "轻骑兵系0级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17005&2|17002&2|17003&2|17004&2|17006&2|17006&2", "upGradeConsume": "17042&2", - "attr": "1&342|2&197|4&109|5&101|9&2500|11&2500" + "attr": "1&342|2&197|4&109|5&101|9&2500|11&2500", + "talentPoint": 5 }, { "jobid": 301, @@ -674,14 +674,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13001&", "effect": "eff_505", "info": "轻骑兵系1级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17005&4|17002&4|17003&4|17004&4|17006&4|17006&4", "upGradeConsume": "17042&4", - "attr": "1&1026|2&593|4&327|5&303|10&2500|12&2500" + "attr": "1&1026|2&593|4&327|5&303|10&2500|12&2500", + "talentPoint": 5 }, { "jobid": 302, @@ -693,14 +693,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13002&", "effect": "eff_505", "info": "轻骑兵系2级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17010&6|17007&6|17008&6|17009&6|17011&6|17011&6", "upGradeConsume": "17042&6", - "attr": "1&2052|2&1187|4&655|5&606|19&2500|21&2500" + "attr": "1&2052|2&1187|4&655|5&606|19&2500|21&2500", + "talentPoint": 5 }, { "jobid": 303, @@ -712,14 +712,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13003&", "effect": "eff_505", "info": "轻骑兵系3级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17010&8|17007&8|17008&8|17009&8|17011&8|17011&8", "upGradeConsume": "17042&8", - "attr": "1&3078|2&1781|4&983|5&909|20&2500|22&2500" + "attr": "1&3078|2&1781|4&983|5&909|20&2500|22&2500", + "talentPoint": 5 }, { "jobid": 304, @@ -731,14 +731,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13004&", "effect": "eff_500", "info": "轻骑兵系4级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17015&10|17012&10|17013&10|17014&10|17016&10|17016&10", "upGradeConsume": "17042&10", - "attr": "1&4104|2&2375|4&1311|5&1213|9&5000|11&5000" + "attr": "1&4104|2&2375|4&1311|5&1213|9&5000|11&5000", + "talentPoint": 5 }, { "jobid": 305, @@ -750,14 +750,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13005&", "effect": "eff_500", "info": "轻骑兵系5级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17015&12|17012&12|17013&12|17014&12|17016&12|17016&12", "upGradeConsume": "17042&12", - "attr": "1&5472|2&3167|4&1748|5&1617|10&5000|12&5000" + "attr": "1&5472|2&3167|4&1748|5&1617|10&5000|12&5000", + "talentPoint": 5 }, { "jobid": 306, @@ -769,14 +769,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13006&", "effect": "eff_500", "info": "轻骑兵系6级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17020&14|17017&14|17018&14|17019&14|17021&14|17021&14", "upGradeConsume": "17042&16", - "attr": "1&6840|2&3959|4&2185|5&2022|19&5000|21&5000" + "attr": "1&6840|2&3959|4&2185|5&2022|19&5000|21&5000", + "talentPoint": 10 }, { "jobid": 307, @@ -788,14 +788,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13007&", "effect": "eff_504", "info": "轻骑兵系7级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17020&16|17017&16|17018&16|17019&16|17021&16|17021&16", "upGradeConsume": "17042&20", - "attr": "1&8550|2&4948|4&2731|5&2527|20&5000|22&5000" + "attr": "1&8550|2&4948|4&2731|5&2527|20&5000|22&5000", + "talentPoint": 10 }, { "jobid": 308, @@ -807,14 +807,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13008&", "effect": "eff_504", "info": "轻骑兵系8级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17025&18|17022&18|17023&18|17024&18|17026&18|17026&18", "upGradeConsume": "17042&24", - "attr": "1&10944|2&6334|4&3496|5&3235|9&7500|11&7500" + "attr": "1&10944|2&6334|4&3496|5&3235|9&7500|11&7500", + "talentPoint": 10 }, { "jobid": 309, @@ -826,14 +826,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13009&", "effect": "eff_504", "info": "轻骑兵系9级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17025&20|17022&20|17023&20|17024&20|17026&20|17026&20", "upGradeConsume": "17042&28", - "attr": "1&13680|2&7918|4&4370|5&4044|10&7500|12&7500" + "attr": "1&13680|2&7918|4&4370|5&4044|10&7500|12&7500", + "talentPoint": 10 }, { "jobid": 310, @@ -845,14 +845,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13010&", "effect": "eff_505", "info": "轻骑兵系10级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17030&22|17027&22|17028&22|17029&22|17031&22|17031&22", "upGradeConsume": "17042&32", - "attr": "1&16416|2&9501|4&5244|5&4852|19&7500|21&7500" + "attr": "1&16416|2&9501|4&5244|5&4852|19&7500|21&7500", + "talentPoint": 10 }, { "jobid": 311, @@ -864,14 +864,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13011&", "effect": "eff_505", "info": "轻骑兵系11级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17030&23|17027&23|17028&23|17029&23|17031&23|17031&23", "upGradeConsume": "17042&36", - "attr": "1&19152|2&11085|4&6118|5&5661|20&7500|22&7500" + "attr": "1&19152|2&11085|4&6118|5&5661|20&7500|22&7500", + "talentPoint": 10 }, { "jobid": 312, @@ -883,14 +883,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13012&", "effect": "eff_505", "info": "轻骑兵系12级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17035&24|17032&24|17033&24|17034&24|17036&24|17036&24", "upGradeConsume": "17042&40", - "attr": "1&22230|2&12866|4&7101|5&6571|9&10000|11&10000" + "attr": "1&22230|2&12866|4&7101|5&6571|9&10000|11&10000", + "talentPoint": 10 }, { "jobid": 313, @@ -902,14 +902,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13013&", "effect": "eff_505", "info": "轻骑兵系13级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17035&25|17032&25|17033&25|17034&25|17036&25|17036&25", "upGradeConsume": "17042&48", - "attr": "1&25308|2&14648|4&8084|5&7481|10&10000|12&10000" + "attr": "1&25308|2&14648|4&8084|5&7481|10&10000|12&10000", + "talentPoint": 10 }, { "jobid": 314, @@ -921,14 +921,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13014&", "effect": "eff_505", "info": "轻骑兵系14级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17040&26|17037&26|17038&26|17039&26|17041&26|17041&26", "upGradeConsume": "17042&54", - "attr": "1&29412|2&17023|4&9395|5&8694|19&10000|21&10000" + "attr": "1&29412|2&17023|4&9395|5&8694|19&10000|21&10000", + "talentPoint": 10 }, { "jobid": 315, @@ -940,14 +940,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13015&", "effect": "eff_505", "info": "轻骑兵系15级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "17040&28|17037&28|17038&28|17039&28|17041&28|17041&28", "upGradeConsume": "17042&60", - "attr": "1&34200|2&19795|4&10925|5&10110|20&10000|22&10000" + "attr": "1&34200|2&19795|4&10925|5&10110|20&10000|22&10000", + "talentPoint": 15 }, { "jobid": 316, @@ -959,14 +959,14 @@ "type": 1, "imgid": 3, "spe": 5, - "atkid": 1008, - "move": 2, + "atkid": 11, "seid": "13016&", "effect": "eff_505", "info": "轻骑兵系16级。移动力优秀的骑兵部队。不擅长艰险的地形,对步兵部队的攻击较强,但对远距离攻击部队较弱。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "&" + "attr": "&", + "talentPoint": 0 }, { "jobid": 400, @@ -978,14 +978,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "&", "effect": "eff_499", "info": "弓兵系0级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17005&2|17002&2|17003&2|17004&2|17006&2|17006&2", "upGradeConsume": "17042&2", - "attr": "1&320|2&202|4&101|5&97|9&2500|11&2500" + "attr": "1&320|2&202|4&101|5&97|9&2500|11&2500", + "talentPoint": 5 }, { "jobid": 401, @@ -997,14 +997,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14001&", "effect": "eff_500", "info": "弓兵系1级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17005&4|17002&4|17003&4|17004&4|17006&4|17006&4", "upGradeConsume": "17042&4", - "attr": "1&960|2&607|4&303|5&292|10&2500|12&2500" + "attr": "1&960|2&607|4&303|5&292|10&2500|12&2500", + "talentPoint": 5 }, { "jobid": 402, @@ -1016,14 +1016,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14002&", "effect": "eff_500", "info": "弓兵系2级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17010&6|17007&6|17008&6|17009&6|17011&6|17011&6", "upGradeConsume": "17042&6", - "attr": "1&1920|2&1215|4&606|5&585|19&2500|21&2500" + "attr": "1&1920|2&1215|4&606|5&585|19&2500|21&2500", + "talentPoint": 5 }, { "jobid": 403, @@ -1035,14 +1035,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14003&", "effect": "eff_500", "info": "弓兵系3级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17010&8|17007&8|17008&8|17009&8|17011&8|17011&8", "upGradeConsume": "17042&8", - "attr": "1&2880|2&1822|4&909|5&877|20&2500|22&2500" + "attr": "1&2880|2&1822|4&909|5&877|20&2500|22&2500", + "talentPoint": 5 }, { "jobid": 404, @@ -1054,14 +1054,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14004&", "effect": "eff_500", "info": "弓兵系4级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17015&10|17012&10|17013&10|17014&10|17016&10|17016&10", "upGradeConsume": "17042&10", - "attr": "1&3840|2&2430|4&1213|5&1170|9&5000|11&5000" + "attr": "1&3840|2&2430|4&1213|5&1170|9&5000|11&5000", + "talentPoint": 5 }, { "jobid": 405, @@ -1073,14 +1073,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14005&", "effect": "eff_500", "info": "弓兵系5级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17015&12|17012&12|17013&12|17014&12|17016&12|17016&12", "upGradeConsume": "17042&12", - "attr": "1&5120|2&3240|4&1617|5&1560|10&5000|12&5000" + "attr": "1&5120|2&3240|4&1617|5&1560|10&5000|12&5000", + "talentPoint": 5 }, { "jobid": 406, @@ -1092,14 +1092,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14006&", "effect": "eff_500", "info": "弓兵系6级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17020&14|17017&14|17018&14|17019&14|17021&14|17021&14", "upGradeConsume": "17042&16", - "attr": "1&6400|2&4050|4&2022|5&1950|19&5000|21&5000" + "attr": "1&6400|2&4050|4&2022|5&1950|19&5000|21&5000", + "talentPoint": 10 }, { "jobid": 407, @@ -1111,14 +1111,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14007&", "effect": "eff_500", "info": "弓兵系7级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17020&16|17017&16|17018&16|17019&16|17021&16|17021&16", "upGradeConsume": "17042&20", - "attr": "1&8000|2&5062|4&2527|5&2437|20&5000|22&5000" + "attr": "1&8000|2&5062|4&2527|5&2437|20&5000|22&5000", + "talentPoint": 10 }, { "jobid": 408, @@ -1130,14 +1130,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14008&", "effect": "eff_500", "info": "弓兵系8级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17025&18|17022&18|17023&18|17024&18|17026&18|17026&18", "upGradeConsume": "17042&24", - "attr": "1&10240|2&6480|4&3235|5&3120|9&7500|11&7500" + "attr": "1&10240|2&6480|4&3235|5&3120|9&7500|11&7500", + "talentPoint": 10 }, { "jobid": 409, @@ -1149,14 +1149,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14009&", "effect": "eff_500", "info": "弓兵系9级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17025&20|17022&20|17023&20|17024&20|17026&20|17026&20", "upGradeConsume": "17042&28", - "attr": "1&12800|2&8100|4&4044|5&3900|10&7500|12&7500" + "attr": "1&12800|2&8100|4&4044|5&3900|10&7500|12&7500", + "talentPoint": 10 }, { "jobid": 410, @@ -1168,14 +1168,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14010&", "effect": "eff_500", "info": "弓兵系10级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17030&22|17027&22|17028&22|17029&22|17031&22|17031&22", "upGradeConsume": "17042&32", - "attr": "1&15360|2&9720|4&4852|5&4680|19&7500|21&7500" + "attr": "1&15360|2&9720|4&4852|5&4680|19&7500|21&7500", + "talentPoint": 10 }, { "jobid": 411, @@ -1187,14 +1187,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14011&", "effect": "eff_500", "info": "弓兵系11级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17030&23|17027&23|17028&23|17029&23|17031&23|17031&23", "upGradeConsume": "17042&36", - "attr": "1&17920|2&11340|4&5661|5&5460|20&7500|22&7500" + "attr": "1&17920|2&11340|4&5661|5&5460|20&7500|22&7500", + "talentPoint": 10 }, { "jobid": 412, @@ -1206,14 +1206,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14012&", "effect": "eff_500", "info": "弓兵系12级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17035&24|17032&24|17033&24|17034&24|17036&24|17036&24", "upGradeConsume": "17042&40", - "attr": "1&20800|2&13163|4&6571|5&6338|9&10000|11&10000" + "attr": "1&20800|2&13163|4&6571|5&6338|9&10000|11&10000", + "talentPoint": 10 }, { "jobid": 413, @@ -1225,14 +1225,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14013&", "effect": "eff_500", "info": "弓兵系13级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17035&25|17032&25|17033&25|17034&25|17036&25|17036&25", "upGradeConsume": "17042&48", - "attr": "1&23680|2&14985|4&7481|5&7215|10&10000|12&10000" + "attr": "1&23680|2&14985|4&7481|5&7215|10&10000|12&10000", + "talentPoint": 10 }, { "jobid": 414, @@ -1244,14 +1244,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14014&", "effect": "eff_500", "info": "弓兵系14级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17040&26|17037&26|17038&26|17039&26|17041&26|17041&26", "upGradeConsume": "17042&54", - "attr": "1&27520|2&17415|4&8694|5&8385|19&10000|21&10000" + "attr": "1&27520|2&17415|4&8694|5&8385|19&10000|21&10000", + "talentPoint": 10 }, { "jobid": 415, @@ -1263,14 +1263,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14015&", "effect": "eff_500", "info": "弓兵系15级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "17040&28|17037&28|17038&28|17039&28|17041&28|17041&28", "upGradeConsume": "17042&60", - "attr": "1&32000|2&20251|4&10110|5&9751|20&10000|22&10000" + "attr": "1&32000|2&20251|4&10110|5&9751|20&10000|22&10000", + "talentPoint": 15 }, { "jobid": 416, @@ -1282,14 +1282,14 @@ "type": 1, "imgid": 4, "spe": 3, - "atkid": 6008, - "move": 1, + "atkid": 21, "seid": "14016&", "effect": "eff_500", "info": "弓兵系16级。命中率高的远距离攻击部队。以远距离攻击为特征,虽然优于骑兵部队,但却劣于步兵。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "&" + "attr": "&", + "talentPoint": 0 }, { "jobid": 500, @@ -1301,14 +1301,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "&", "effect": "eff_499", "info": "游侠系0级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17005&2|17002&2|17003&2|17004&2|17006&2|17006&2", "upGradeConsume": "17042&2", - "attr": "1&330|2&194|4&105|5&136|9&2500|11&2500" + "attr": "1&330|2&194|4&105|5&136|9&2500|11&2500", + "talentPoint": 5 }, { "jobid": 501, @@ -1320,14 +1320,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15001&", "effect": "eff_500", "info": "游侠系1级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17005&4|17002&4|17003&4|17004&4|17006&4|17006&4", "upGradeConsume": "17042&4", - "attr": "1&990|2&583|4&317|5&408|10&2500|12&2500" + "attr": "1&990|2&583|4&317|5&408|10&2500|12&2500", + "talentPoint": 5 }, { "jobid": 502, @@ -1339,14 +1339,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15002&", "effect": "eff_500", "info": "游侠系2级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17010&6|17007&6|17008&6|17009&6|17011&6|17011&6", "upGradeConsume": "17042&6", - "attr": "1&1980|2&1166|4&634|5&817|19&2500|21&2500" + "attr": "1&1980|2&1166|4&634|5&817|19&2500|21&2500", + "talentPoint": 5 }, { "jobid": 503, @@ -1358,14 +1358,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15003&", "effect": "eff_500", "info": "游侠系3级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17010&8|17007&8|17008&8|17009&8|17011&8|17011&8", "upGradeConsume": "17042&8", - "attr": "1&2970|2&1749|4&951|5&1226|20&2500|22&2500" + "attr": "1&2970|2&1749|4&951|5&1226|20&2500|22&2500", + "talentPoint": 5 }, { "jobid": 504, @@ -1377,14 +1377,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15004&", "effect": "eff_500", "info": "游侠系4级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17015&10|17012&10|17013&10|17014&10|17016&10|17016&10", "upGradeConsume": "17042&10", - "attr": "1&3960|2&2332|4&1268|5&1635|9&5000|11&5000" + "attr": "1&3960|2&2332|4&1268|5&1635|9&5000|11&5000", + "talentPoint": 5 }, { "jobid": 505, @@ -1396,14 +1396,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15005&", "effect": "eff_500", "info": "游侠系5级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17015&12|17012&12|17013&12|17014&12|17016&12|17016&12", "upGradeConsume": "17042&12", - "attr": "1&5280|2&3109|4&1691|5&2180|10&5000|12&5000" + "attr": "1&5280|2&3109|4&1691|5&2180|10&5000|12&5000", + "talentPoint": 5 }, { "jobid": 506, @@ -1415,14 +1415,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15006&", "effect": "eff_500", "info": "游侠系6级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17020&14|17017&14|17018&14|17019&14|17021&14|17021&14", "upGradeConsume": "17042&16", - "attr": "1&6600|2&3887|4&2113|5&2726|19&5000|21&5000" + "attr": "1&6600|2&3887|4&2113|5&2726|19&5000|21&5000", + "talentPoint": 10 }, { "jobid": 507, @@ -1434,14 +1434,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15007&", "effect": "eff_500", "info": "游侠系7级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17020&16|17017&16|17018&16|17019&16|17021&16|17021&16", "upGradeConsume": "17042&20", - "attr": "1&8250|2&4859|4&2642|5&3407|20&5000|22&5000" + "attr": "1&8250|2&4859|4&2642|5&3407|20&5000|22&5000", + "talentPoint": 10 }, { "jobid": 508, @@ -1453,14 +1453,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15008&", "effect": "eff_500", "info": "游侠系8级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17025&18|17022&18|17023&18|17024&18|17026&18|17026&18", "upGradeConsume": "17042&24", - "attr": "1&10560|2&6219|4&3382|5&4361|9&7500|11&7500" + "attr": "1&10560|2&6219|4&3382|5&4361|9&7500|11&7500", + "talentPoint": 10 }, { "jobid": 509, @@ -1472,14 +1472,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15009&", "effect": "eff_500", "info": "游侠系9级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17025&20|17022&20|17023&20|17024&20|17026&20|17026&20", "upGradeConsume": "17042&28", - "attr": "1&13200|2&7774|4&4227|5&5452|10&7500|12&7500" + "attr": "1&13200|2&7774|4&4227|5&5452|10&7500|12&7500", + "talentPoint": 10 }, { "jobid": 510, @@ -1491,14 +1491,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15010&", "effect": "eff_500", "info": "游侠系10级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17030&22|17027&22|17028&22|17029&22|17031&22|17031&22", "upGradeConsume": "17042&32", - "attr": "1&15840|2&9329|4&5073|5&6542|19&7500|21&7500" + "attr": "1&15840|2&9329|4&5073|5&6542|19&7500|21&7500", + "talentPoint": 10 }, { "jobid": 511, @@ -1510,14 +1510,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15011&", "effect": "eff_500", "info": "游侠系11级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17030&23|17027&23|17028&23|17029&23|17031&23|17031&23", "upGradeConsume": "17042&36", - "attr": "1&18480|2&10884|4&5918|5&7632|20&7500|22&7500" + "attr": "1&18480|2&10884|4&5918|5&7632|20&7500|22&7500", + "talentPoint": 10 }, { "jobid": 512, @@ -1529,14 +1529,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15012&", "effect": "eff_500", "info": "游侠系12级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17035&24|17032&24|17033&24|17034&24|17036&24|17036&24", "upGradeConsume": "17042&40", - "attr": "1&21450|2&12633|4&6869|5&8859|9&10000|11&10000" + "attr": "1&21450|2&12633|4&6869|5&8859|9&10000|11&10000", + "talentPoint": 10 }, { "jobid": 513, @@ -1548,14 +1548,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15013&", "effect": "eff_500", "info": "游侠系13级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17035&25|17032&25|17033&25|17034&25|17036&25|17036&25", "upGradeConsume": "17042&48", - "attr": "1&24420|2&14382|4&7821|5&10086|10&10000|12&10000" + "attr": "1&24420|2&14382|4&7821|5&10086|10&10000|12&10000", + "talentPoint": 10 }, { "jobid": 514, @@ -1567,14 +1567,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15014&", "effect": "eff_500", "info": "游侠系14级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17040&26|17037&26|17038&26|17039&26|17041&26|17041&26", "upGradeConsume": "17042&54", - "attr": "1&28380|2&16714|4&9089|5&11721|19&10000|21&10000" + "attr": "1&28380|2&16714|4&9089|5&11721|19&10000|21&10000", + "talentPoint": 10 }, { "jobid": 515, @@ -1586,14 +1586,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15015&", "effect": "eff_500", "info": "游侠系15级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "17040&28|17037&28|17038&28|17039&28|17041&28|17041&28", "upGradeConsume": "17042&60", - "attr": "1&33000|2&19436|4&10569|5&13630|20&10000|22&10000" + "attr": "1&33000|2&19436|4&10569|5&13630|20&10000|22&10000", + "talentPoint": 15 }, { "jobid": 516, @@ -1605,14 +1605,14 @@ "type": 1, "imgid": 5, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "15016&", "effect": "eff_500", "info": "游侠系16级。为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "&" + "attr": "&", + "talentPoint": 0 }, { "jobid": 600, @@ -1624,14 +1624,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "&", "effect": "eff_499", "info": "策士系0级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17005&2|17002&2|17003&2|17004&2|17006&2|17006&2", "upGradeConsume": "17042&2", - "attr": "1&293|2&210|4&97|5&128|9&2500|11&2500" + "attr": "1&293|2&210|4&97|5&128|9&2500|11&2500", + "talentPoint": 5 }, { "jobid": 601, @@ -1643,14 +1643,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16001&", "effect": "eff_500", "info": "策士系1级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17005&4|17002&4|17003&4|17004&4|17006&4|17006&4", "upGradeConsume": "17042&4", - "attr": "1&879|2&632|4&292|5&384|10&2500|12&2500" + "attr": "1&879|2&632|4&292|5&384|10&2500|12&2500", + "talentPoint": 5 }, { "jobid": 602, @@ -1662,14 +1662,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16002&", "effect": "eff_500", "info": "策士系2级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17010&6|17007&6|17008&6|17009&6|17011&6|17011&6", "upGradeConsume": "17042&6", - "attr": "1&1758|2&1264|4&585|5&768|19&2500|21&2500" + "attr": "1&1758|2&1264|4&585|5&768|19&2500|21&2500", + "talentPoint": 5 }, { "jobid": 603, @@ -1681,14 +1681,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16003&", "effect": "eff_500", "info": "策士系3级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17010&8|17007&8|17008&8|17009&8|17011&8|17011&8", "upGradeConsume": "17042&8", - "attr": "1&2637|2&1896|4&877|5&1153|20&2500|22&2500" + "attr": "1&2637|2&1896|4&877|5&1153|20&2500|22&2500", + "talentPoint": 5 }, { "jobid": 604, @@ -1700,14 +1700,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16004&", "effect": "eff_500", "info": "策士系4级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17015&10|17012&10|17013&10|17014&10|17016&10|17016&10", "upGradeConsume": "17042&10", - "attr": "1&3516|2&2528|4&1170|5&1537|9&5000|11&5000" + "attr": "1&3516|2&2528|4&1170|5&1537|9&5000|11&5000", + "talentPoint": 5 }, { "jobid": 605, @@ -1719,14 +1719,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16005&", "effect": "eff_500", "info": "策士系5级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17015&12|17012&12|17013&12|17014&12|17016&12|17016&12", "upGradeConsume": "17042&12", - "attr": "1&4688|2&3371|4&1560|5&2050|10&5000|12&5000" + "attr": "1&4688|2&3371|4&1560|5&2050|10&5000|12&5000", + "talentPoint": 5 }, { "jobid": 606, @@ -1738,14 +1738,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16006&", "effect": "eff_500", "info": "策士系6级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17020&14|17017&14|17018&14|17019&14|17021&14|17021&14", "upGradeConsume": "17042&16", - "attr": "1&5860|2&4213|4&1950|5&2563|19&5000|21&5000" + "attr": "1&5860|2&4213|4&1950|5&2563|19&5000|21&5000", + "talentPoint": 10 }, { "jobid": 607, @@ -1757,14 +1757,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16007&", "effect": "eff_500", "info": "策士系7级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17020&16|17017&16|17018&16|17019&16|17021&16|17021&16", "upGradeConsume": "17042&20", - "attr": "1&7325|2&5267|4&2437|5&3204|20&5000|22&5000" + "attr": "1&7325|2&5267|4&2437|5&3204|20&5000|22&5000", + "talentPoint": 10 }, { "jobid": 608, @@ -1776,14 +1776,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16008&", "effect": "eff_500", "info": "策士系8级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17025&18|17022&18|17023&18|17024&18|17026&18|17026&18", "upGradeConsume": "17042&24", - "attr": "1&9376|2&6742|4&3120|5&4101|9&7500|11&7500" + "attr": "1&9376|2&6742|4&3120|5&4101|9&7500|11&7500", + "talentPoint": 10 }, { "jobid": 609, @@ -1795,14 +1795,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16009&", "effect": "eff_500", "info": "策士系9级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17025&20|17022&20|17023&20|17024&20|17026&20|17026&20", "upGradeConsume": "17042&28", - "attr": "1&11720|2&8427|4&3900|5&5126|10&7500|12&7500" + "attr": "1&11720|2&8427|4&3900|5&5126|10&7500|12&7500", + "talentPoint": 10 }, { "jobid": 610, @@ -1814,14 +1814,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16010&", "effect": "eff_500", "info": "策士系10级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17030&22|17027&22|17028&22|17029&22|17031&22|17031&22", "upGradeConsume": "17042&32", - "attr": "1&14064|2&10113|4&4680|5&6151|19&7500|21&7500" + "attr": "1&14064|2&10113|4&4680|5&6151|19&7500|21&7500", + "talentPoint": 10 }, { "jobid": 611, @@ -1833,14 +1833,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16011&", "effect": "eff_500", "info": "策士系11级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17030&23|17027&23|17028&23|17029&23|17031&23|17031&23", "upGradeConsume": "17042&36", - "attr": "1&16408|2&11798|4&5460|5&7176|20&7500|22&7500" + "attr": "1&16408|2&11798|4&5460|5&7176|20&7500|22&7500", + "talentPoint": 10 }, { "jobid": 612, @@ -1852,14 +1852,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16012&", "effect": "eff_500", "info": "策士系12级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17035&24|17032&24|17033&24|17034&24|17036&24|17036&24", "upGradeConsume": "17042&40", - "attr": "1&19045|2&13694|4&6338|5&8330|9&10000|11&10000" + "attr": "1&19045|2&13694|4&6338|5&8330|9&10000|11&10000", + "talentPoint": 10 }, { "jobid": 613, @@ -1871,14 +1871,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16013&", "effect": "eff_500", "info": "策士系13级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17035&25|17032&25|17033&25|17034&25|17036&25|17036&25", "upGradeConsume": "17042&48", - "attr": "1&21682|2&15591|4&7215|5&9483|10&10000|12&10000" + "attr": "1&21682|2&15591|4&7215|5&9483|10&10000|12&10000", + "talentPoint": 10 }, { "jobid": 614, @@ -1890,14 +1890,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16014&", "effect": "eff_500", "info": "策士系14级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17040&26|17037&26|17038&26|17039&26|17041&26|17041&26", "upGradeConsume": "17042&54", - "attr": "1&25198|2&18119|4&8385|5&11021|19&10000|21&10000" + "attr": "1&25198|2&18119|4&8385|5&11021|19&10000|21&10000", + "talentPoint": 10 }, { "jobid": 615, @@ -1909,14 +1909,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16015&", "effect": "eff_500", "info": "策士系15级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "17040&28|17037&28|17038&28|17039&28|17041&28|17041&28", "upGradeConsume": "17042&60", - "attr": "1&29300|2&21069|4&9751|5&12816|20&10000|22&10000" + "attr": "1&29300|2&21069|4&9751|5&12816|20&10000|22&10000", + "talentPoint": 15 }, { "jobid": 616, @@ -1928,14 +1928,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "16016&", "effect": "eff_500", "info": "策士系16级。使用攻击策略的文官部队,具有超高的策略伤害性,但血少防低,移动能力差,一旦被战士接近就会陷入危险。火系、水系、地系等策略是其专长。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "&" + "attr": "&", + "talentPoint": 0 }, { "jobid": 700, @@ -1947,14 +1947,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "&", "effect": "eff_499", "info": "医生系0级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17005&2|17002&2|17003&2|17004&2|17006&2|17006&2", "upGradeConsume": "17042&2", - "attr": "1&315|2&189|4&92|5&144|9&2500|11&2500" + "attr": "1&315|2&189|4&92|5&144|9&2500|11&2500", + "talentPoint": 5 }, { "jobid": 701, @@ -1966,14 +1966,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17001&", "effect": "eff_500", "info": "医生系1级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17005&4|17002&4|17003&4|17004&4|17006&4|17006&4", "upGradeConsume": "17042&4", - "attr": "1&945|2&569|4&278|5&433|10&2500|12&2500" + "attr": "1&945|2&569|4&278|5&433|10&2500|12&2500", + "talentPoint": 5 }, { "jobid": 702, @@ -1985,14 +1985,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17002&", "effect": "eff_500", "info": "医生系2级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17010&6|17007&6|17008&6|17009&6|17011&6|17011&6", "upGradeConsume": "17042&6", - "attr": "1&1890|2&1138|4&557|5&866|19&2500|21&2500" + "attr": "1&1890|2&1138|4&557|5&866|19&2500|21&2500", + "talentPoint": 5 }, { "jobid": 703, @@ -2004,14 +2004,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17003&", "effect": "eff_500", "info": "医生系3级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17010&8|17007&8|17008&8|17009&8|17011&8|17011&8", "upGradeConsume": "17042&8", - "attr": "1&2835|2&1708|4&836|5&1300|20&2500|22&2500" + "attr": "1&2835|2&1708|4&836|5&1300|20&2500|22&2500", + "talentPoint": 5 }, { "jobid": 704, @@ -2023,14 +2023,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17004&", "effect": "eff_500", "info": "医生系4级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17015&10|17012&10|17013&10|17014&10|17016&10|17016&10", "upGradeConsume": "17042&10", - "attr": "1&3780|2&2277|4&1115|5&1733|9&5000|11&5000" + "attr": "1&3780|2&2277|4&1115|5&1733|9&5000|11&5000", + "talentPoint": 5 }, { "jobid": 705, @@ -2042,14 +2042,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17005&", "effect": "eff_500", "info": "医生系5级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17015&12|17012&12|17013&12|17014&12|17016&12|17016&12", "upGradeConsume": "17042&12", - "attr": "1&5040|2&3036|4&1487|5&2311|10&5000|12&5000" + "attr": "1&5040|2&3036|4&1487|5&2311|10&5000|12&5000", + "talentPoint": 5 }, { "jobid": 706, @@ -2061,14 +2061,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17006&", "effect": "eff_500", "info": "医生系6级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17020&14|17017&14|17018&14|17019&14|17021&14|17021&14", "upGradeConsume": "17042&16", - "attr": "1&6300|2&3795|4&1859|5&2889|19&5000|21&5000" + "attr": "1&6300|2&3795|4&1859|5&2889|19&5000|21&5000", + "talentPoint": 10 }, { "jobid": 707, @@ -2080,14 +2080,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17007&", "effect": "eff_500", "info": "医生系7级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17020&16|17017&16|17018&16|17019&16|17021&16|17021&16", "upGradeConsume": "17042&20", - "attr": "1&7875|2&4744|4&2323|5&3612|20&5000|22&5000" + "attr": "1&7875|2&4744|4&2323|5&3612|20&5000|22&5000", + "talentPoint": 10 }, { "jobid": 708, @@ -2099,14 +2099,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17008&", "effect": "eff_500", "info": "医生系8级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17025&18|17022&18|17023&18|17024&18|17026&18|17026&18", "upGradeConsume": "17042&24", - "attr": "1&10080|2&6072|4&2974|5&4623|9&7500|11&7500" + "attr": "1&10080|2&6072|4&2974|5&4623|9&7500|11&7500", + "talentPoint": 10 }, { "jobid": 709, @@ -2118,14 +2118,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17009&", "effect": "eff_500", "info": "医生系9级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17025&20|17022&20|17023&20|17024&20|17026&20|17026&20", "upGradeConsume": "17042&28", - "attr": "1&12600|2&7591|4&3718|5&5779|10&7500|12&7500" + "attr": "1&12600|2&7591|4&3718|5&5779|10&7500|12&7500", + "talentPoint": 10 }, { "jobid": 710, @@ -2137,14 +2137,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17010&", "effect": "eff_500", "info": "医生系10级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17030&22|17027&22|17028&22|17029&22|17031&22|17031&22", "upGradeConsume": "17042&32", - "attr": "1&15120|2&9109|4&4461|5&6935|19&7500|21&7500" + "attr": "1&15120|2&9109|4&4461|5&6935|19&7500|21&7500", + "talentPoint": 10 }, { "jobid": 711, @@ -2156,14 +2156,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17011&", "effect": "eff_500", "info": "医生系11级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17030&23|17027&23|17028&23|17029&23|17031&23|17031&23", "upGradeConsume": "17042&36", - "attr": "1&17640|2&10627|4&5205|5&8090|20&7500|22&7500" + "attr": "1&17640|2&10627|4&5205|5&8090|20&7500|22&7500", + "talentPoint": 10 }, { "jobid": 712, @@ -2175,14 +2175,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17012&", "effect": "eff_500", "info": "医生系12级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17035&24|17032&24|17033&24|17034&24|17036&24|17036&24", "upGradeConsume": "17042&40", - "attr": "1&20475|2&12335|4&6041|5&9391|9&10000|11&10000" + "attr": "1&20475|2&12335|4&6041|5&9391|9&10000|11&10000", + "talentPoint": 10 }, { "jobid": 713, @@ -2194,14 +2194,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17013&", "effect": "eff_500", "info": "医生系13级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17035&25|17032&25|17033&25|17034&25|17036&25|17036&25", "upGradeConsume": "17042&48", - "attr": "1&23310|2&14043|4&6878|5&10691|10&10000|12&10000" + "attr": "1&23310|2&14043|4&6878|5&10691|10&10000|12&10000", + "talentPoint": 10 }, { "jobid": 714, @@ -2213,14 +2213,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17014&", "effect": "eff_500", "info": "医生系14级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17040&26|17037&26|17038&26|17039&26|17041&26|17041&26", "upGradeConsume": "17042&54", - "attr": "1&27090|2&16321|4&7993|5&12425|19&10000|21&10000" + "attr": "1&27090|2&16321|4&7993|5&12425|19&10000|21&10000", + "talentPoint": 10 }, { "jobid": 715, @@ -2232,14 +2232,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17015&", "effect": "eff_500", "info": "医生系15级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "17040&28|17037&28|17038&28|17039&28|17041&28|17041&28", "upGradeConsume": "17042&60", - "attr": "1&31500|2&18978|4&9295|5&14448|20&10000|22&10000" + "attr": "1&31500|2&18978|4&9295|5&14448|20&10000|22&10000", + "talentPoint": 15 }, { "jobid": 716, @@ -2251,14 +2251,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "17016&", "effect": "eff_500", "info": "医生系16级。使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "&" + "attr": "&", + "talentPoint": 0 }, { "jobid": 1, @@ -2270,14 +2270,14 @@ "type": 1, "imgid": 9, "spe": 5, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "&", "effect": "eff_500", "info": "野怪", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 2, @@ -2290,13 +2290,13 @@ "imgid": 3, "spe": 5, "atkid": 1, - "move": 1, "seid": "&", "effect": "eff_500", "info": "马车", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 3, @@ -2309,13 +2309,13 @@ "imgid": 3, "spe": 0, "atkid": 1, - "move": 1, "seid": "&", "effect": "eff_500", "info": "城门", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 4, @@ -2328,13 +2328,13 @@ "imgid": 3, "spe": 0, "atkid": 1, - "move": 1, "seid": "&", "effect": "eff_500", "info": "特殊", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 5, @@ -2346,14 +2346,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "&", "effect": 0, "info": "早已死亡的士兵", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 6, @@ -2365,14 +2365,14 @@ "type": 1, "imgid": 9, "spe": 4, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "&", "effect": 0, "info": "墨家所制机关兽", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 7, @@ -2384,14 +2384,14 @@ "type": 2, "imgid": 6, "spe": 2, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "&", "effect": 0, "info": "墨家墨艺学子", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 8, @@ -2404,13 +2404,13 @@ "imgid": 9, "spe": 0, "atkid": 10025, - "move": 1, "seid": "&", "effect": 0, "info": "不动明王金身佛像", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 9, @@ -2422,14 +2422,14 @@ "type": 1, "imgid": 2, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "&", "effect": 0, "info": "擅长攻击的步兵部队。在城内与森林较有优势。与步兵系类似,但是在与骑兵部队战斗时较有优势。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 10, @@ -2441,14 +2441,14 @@ "type": 1, "imgid": 5, "spe": 3, - "atkid": 1008, - "move": 1, + "atkid": 11, "seid": "&", "effect": 0, "info": "为了不俗的攻击和移动能力舍弃了一部分物理防御,但拥有较高的策略防御,面对策士医者具有强大优势,但不善于正面战斗。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 11, @@ -2460,14 +2460,14 @@ "type": 2, "imgid": 6, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "&", "effect": 0, "info": "使用攻击策略的文官部队。火系、水系、地系等策略是其专长。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 12, @@ -2479,14 +2479,14 @@ "type": 2, "imgid": 7, "spe": 3, - "atkid": 2012, - "move": 1, + "atkid": 31, "seid": "&", "effect": 0, "info": "使用回复策略的文官部队。后方支援部队,在大战中能大放异彩。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 13, @@ -2499,13 +2499,13 @@ "imgid": 9, "spe": 0, "atkid": 1, - "move": 1, "seid": "&", "effect": 0, "info": "不动明王用于控制敌方的神秘佛法", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 14, @@ -2518,13 +2518,13 @@ "imgid": 3, "spe": 0, "atkid": 1, - "move": 1, "seid": "&", "effect": 0, "info": "用于运输人、物的设备", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 }, { "jobid": 15, @@ -2537,12 +2537,88 @@ "imgid": 3, "spe": 2, "atkid": 7072, - "move": 1, "seid": "&", "effect": 0, "info": "攻城器械,笨重,但破坏性极大。", "trainingConsume": "&", "upGradeConsume": "&", - "attr": "1&0|2&0|4&0|5&0" + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 + }, + { + "jobid": 16, + "name": "超远攻城器械", + "grade": 1, + "isPlayer": 0, + "unlockLevel": 1, + "job_class": 14, + "type": 1, + "imgid": 3, + "spe": 0, + "atkid": 998, + "seid": "&", + "effect": 0, + "info": "超远攻城器械,不能移动,但破坏性极大。", + "trainingConsume": "&", + "upGradeConsume": "&", + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 + }, + { + "jobid": 17, + "name": "伐木工", + "grade": 1, + "isPlayer": 0, + "unlockLevel": 1, + "job_class": 15, + "type": 2, + "imgid": 5, + "spe": 4, + "atkid": 11, + "seid": "&", + "effect": 0, + "info": "砍伐树木,维修城墙的村民", + "trainingConsume": "&", + "upGradeConsume": "&", + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 + }, + { + "jobid": 18, + "name": "阵眼物理", + "grade": 1, + "isPlayer": 0, + "unlockLevel": 1, + "job_class": 16, + "type": 1, + "imgid": 1, + "spe": 0, + "atkid": 1, + "seid": "&", + "effect": 0, + "info": "诸葛八卦阵的物理阵眼", + "trainingConsume": "&", + "upGradeConsume": "&", + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 + }, + { + "jobid": 19, + "name": "阵眼法系", + "grade": 1, + "isPlayer": 0, + "unlockLevel": 1, + "job_class": 17, + "type": 2, + "imgid": 6, + "spe": 0, + "atkid": 31, + "seid": "&", + "effect": 0, + "info": "诸葛八卦阵的策略阵眼", + "trainingConsume": "&", + "upGradeConsume": "&", + "attr": "1&0|2&0|4&0|5&0", + "talentPoint": 0 } ] \ No newline at end of file