diff --git a/game-server/app/servers/connector/handler/entryHandler.ts b/game-server/app/servers/connector/handler/entryHandler.ts index ea6b4fb3e..4d7d36182 100644 --- a/game-server/app/servers/connector/handler/entryHandler.ts +++ b/game-server/app/servers/connector/handler/entryHandler.ts @@ -43,11 +43,7 @@ export class EntryHandler { if (!role) { return resResult(STATUS.ROLE_NOT_FOUND); } - // duplicate log in - if (!!sessionService.getByUid(role.roleId)) { - console.log('duplicate log in', role.roleId); - return resResult(STATUS.DUP_LOGIN); - } + sessionService.kick(role.roleId);//踢掉之前登录的账号code:1005 await session.abind(role.roleId); session.set('uid', role.roleId); session.set('roleId', role.roleId); diff --git a/game-server/app/servers/role/handler/equipHandler.ts b/game-server/app/servers/role/handler/equipHandler.ts index 6f51f1f8f..faf53acce 100644 --- a/game-server/app/servers/role/handler/equipHandler.ts +++ b/game-server/app/servers/role/handler/equipHandler.ts @@ -44,7 +44,7 @@ export class EquipHandler { let targetGood = gameData.goods.get(gid); - if (!targetGood) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if (!targetGood) return resResult(STATUS.DIC_DATA_NOT_FOUND); let cost = new Array(); if (targetGood.suitId > 0) { // 套装 @@ -172,13 +172,13 @@ export class EquipHandler { // 是否成功精炼 let dicRefine = gameData.refine.get(refineLv + 1); if (!dicRefine) { - return resResult(STATUS.ROLE_INFO_NOT_FOUND) + return resResult(STATUS.DIC_DATA_NOT_FOUND) } let { successRate } = dicRefine; for (let { id, count } of material) { let dicGoods = gameData.goods.get(id); - if (!dicGoods) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if (!dicGoods) return resResult(STATUS.DIC_DATA_NOT_FOUND); if (!SPEICAL_ITEM.REFINE_ADD_RATE.includes(id)) { return resResult(STATUS.ROLE_WRONG_ITEM) } @@ -264,7 +264,7 @@ export class EquipHandler { } let dicGoods = gameData.goods.get(id); - if (!dicGoods) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if (!dicGoods) return resResult(STATUS.DIC_DATA_NOT_FOUND); let { randomEffect } = dicGoods; let pool = randomEffect.map(cur => gameData.randomEffectPool.get(cur)); @@ -354,12 +354,14 @@ export class EquipHandler { let equip = await EquipModel.getEquip(eid); let goodInfo = getGoodById(equip.id); let obj = ITID.get(goodInfo.itid); - let ePlaceId = obj.type; + let id = obj.type; let curEquips: Array<{ seqId: number, hid: number, ePlaceId: number }> = []; let hero = await HeroModel.findByHidAndRole(hid, roleId); if (!hero) return resResult(STATUS.HERO_NOT_FIND); if (type == 1) { + if (!!equip.hid) + return resResult(STATUS.EQUIP_IS_EQUIPED); if (goodInfo.lvLimited > hero.lv) return resResult(STATUS.EQUIP_LEVEL_LIMIT); let { jobid } = gameData.hero.get(hid); @@ -367,40 +369,26 @@ export class EquipHandler { let { classId } = getHeroEquipByClassId(goodInfo.itid); if (_.indexOf(classId, job_class) < 0) return resResult(STATUS.EQUIP_NOT_EQUIPED_HERO); - if (!!equip.hid) - return resResult(STATUS.EQUIP_IS_EQUIPED); - let index = _.findIndex(hero.ePlace, { id: ePlaceId }); + let index = _.findIndex(hero.ePlace, { id }); if (index < 0) return resResult(STATUS.WRONG_PARMS); let objectId = hero.ePlace[index].equip; if (!!objectId) { - let lastEquip = await EquipModel.updateEquipInfobyObjectId(objectId, { hid: 0, ePlaceId: 0 }); - curEquips.push({ - seqId: lastEquip.seqId, - hid: lastEquip.hid, - ePlaceId: lastEquip.ePlaceId - }); + let {seqId, ePlaceId} = await EquipModel.updateEquipInfobyObjectId(objectId, { hid: 0, ePlaceId: 0 }); + curEquips.push({ seqId, hid, ePlaceId }); } - await HeroModel.addEquip(roleId, hid, ePlaceId, equip._id); - curEquips.push({ - seqId: eid, - hid: hid, - ePlaceId: ePlaceId - }); + await HeroModel.addEquip(roleId, hid, id, equip._id); + curEquips.push({ seqId: eid, hid, ePlaceId:id}); } else if (type == 2) { if (!equip.hid) return resResult(STATUS.EQUIP_NOT_EQUIPED); - let index = _.findIndex(hero.ePlace, { id: ePlaceId }); + let index = _.findIndex(hero.ePlace, { id }); if (index < 0) return resResult(STATUS.WRONG_PARMS); hero.ePlace[index].equip = null; await HeroModel.updateHeroInfo(roleId, hid, { ePlace: hero.ePlace }); - equip = await EquipModel.updateEquipInfo(eid, { hid: 0, ePlaceId: 0 }); - curEquips.push({ - seqId: equip.seqId, - hid: equip.hid, - ePlaceId: equip.ePlaceId - }); + let {seqId, ePlaceId} = await EquipModel.updateEquipInfo(eid, { hid: 0, ePlaceId: 0 }); + curEquips.push({ seqId, hid, ePlaceId }); } return resResult(STATUS.SUCCESS, { curEquips: curEquips }); } @@ -438,18 +426,29 @@ export class EquipHandler { let roleId: string = session.get('roleId'); let sid: string = session.get('sid'); let consumes: Array<{ id: number, count: number }> = []; + let goods: Array<{ id: number, count: number }> = []; let equip = await EquipModel.getEquip(eid); + let { itid } = getGoodById(equip.id); + let {equipJewel} = ITID.get(itid); + let jewelInfo = getGoodById(jewel); + if (jewelInfo.itid != equipJewel) + return resResult(STATUS.EQUIP_NOT_MATCH_JEWEL); let index = _.findIndex(equip.holes, { id }); if (index > 0) return resResult(STATUS.EQUIP_HOLE_NOT_FIND); if (!equip.holes[index].isOpen) return resResult(STATUS.EQUIP_HOLE_IS_NOT_DUG); + if (!!equip.holes[index].jewel) + goods.push({id: equip.holes[index].jewel, count:1}); consumes.push({ id: jewel, count: 1 }); let result = await handleCost(roleId, sid, consumes); if (!result) return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH); equip.holes[index].jewel = jewel; await EquipModel.updateEquipInfo(eid, { holes: equip.holes }); + let roleName: string = session.get('roleName'); + if (goods.length) + await addItems(roleId, roleName, sid, goods); return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } }); } diff --git a/game-server/app/servers/role/handler/heroHandler.ts b/game-server/app/servers/role/handler/heroHandler.ts index 92ea8d11f..77cf1ba4a 100644 --- a/game-server/app/servers/role/handler/heroHandler.ts +++ b/game-server/app/servers/role/handler/heroHandler.ts @@ -67,14 +67,14 @@ export class HeroHandler { if(hasHero) return resResult(STATUS.ROLE_HERO_EXISTS); // 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质 let dicHero = gameData.hero.get(hid); - if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND); - let {pieceId, quality, initialStars: star, pieceCount, jobid: job, name: hName} = dicHero; + if(!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND); + let {pieceId, quality, initialStars: star, pieceCount, jobid: job, name: hName, initialSkin} = dicHero; // 碎片数量是否足够 let costResult = await handleCost(roleId, sid, [{id: pieceId, count: pieceCount}]); if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); // createHero let curHero = await HeroModel.createHero({ - roleId, serverId, roleName, hid, hName, star, quality, job + roleId, serverId, roleName, hid, hName, star, quality, job, skins:[{id: initialSkin, enable: true}] }); await calPlayerCeAndSave(sid, roleId, [curHero], HERO_SYSTEM_TYPE.STAR, getAllAttrStage()); return resResult(STATUS.SUCCESS, {curHero}); @@ -110,7 +110,7 @@ export class HeroHandler { let material = new Array(); for(let {id, count} of originalConsumes) { let dicGoods = gameData.goods.get(id); - if(!dicGoods) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if(!dicGoods) return resResult(STATUS.DIC_DATA_NOT_FOUND); let _count = Math.ceil(needExp/dicGoods.value); if(_count < count) { material.push({id, count: _count}); @@ -149,7 +149,7 @@ export class HeroHandler { let {hid, star, starStage} = msg; // 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质 let dicHero = gameData.hero.get(hid); - if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if(!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND); let {pieceId} = dicHero; let hero = await HeroModel.findByHidAndRole(hid, roleId); @@ -164,7 +164,7 @@ export class HeroHandler { } // 根据dic_zyz_hero_star 计算需要花的碎片并检查碎片数量 const curDicHeroStar = getHeroStarByQuality(quality, oldStar); - if(!curDicHeroStar) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if(!curDicHeroStar) return resResult(STATUS.DIC_DATA_NOT_FOUND); let costResult = await handleCost(roleId, sid, [{id: pieceId, count: curDicHeroStar.advanceUpFragmentNum}]); if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); @@ -191,7 +191,7 @@ export class HeroHandler { let {hid, quality} = msg; let dicHero = gameData.hero.get(hid); - if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if(!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND); // 根据dic_hero 获得 碎片id let {pieceId} = dicHero; @@ -210,7 +210,7 @@ export class HeroHandler { // 根据dic_zyz_hero_quality_up 获得需要的材料 const curDicHeroQualityUp = gameData.heroQualityUp.get(quality); - if(!curDicHeroQualityUp) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if(!curDicHeroQualityUp) return resResult(STATUS.DIC_DATA_NOT_FOUND); let {fragmentNum} = curDicHeroQualityUp; let costResult = await handleCost(roleId, sid, [{id: pieceId, count: fragmentNum}]); @@ -234,7 +234,7 @@ export class HeroHandler { let {hid, colorStar, colorStarStage} = msg; // 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质 let dicHero = gameData.hero.get(hid); - if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if(!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND); let {pieceId} = dicHero; let hero = await HeroModel.findByHidAndRole(hid, roleId); @@ -252,7 +252,7 @@ export class HeroHandler { } // 根据dic_zyz_hero_wake 计算需要花的碎片并检查碎片数量 const curDicHeroStar = getHeroWakeByQuality(dicHero.quality, oldColorStar) - if(!curDicHeroStar) return resResult(STATUS.ROLE_INFO_NOT_FOUND); + if(!curDicHeroStar) return resResult(STATUS.DIC_DATA_NOT_FOUND); let {fragmentNum, consume} = curDicHeroStar; diff --git a/game-server/app/servers/role/handler/roleHandler.ts b/game-server/app/servers/role/handler/roleHandler.ts index 18a770c4e..14861679e 100644 --- a/game-server/app/servers/role/handler/roleHandler.ts +++ b/game-server/app/servers/role/handler/roleHandler.ts @@ -39,7 +39,8 @@ export class RoleHandler { quality: 1, job: 1, star: 0, - serverId: 1 + serverId: 1, + skins:[{id: 41001, enable: true}] } await HeroModel.createHero(heroInfo); } diff --git a/game-server/app/services/playerCeService.ts b/game-server/app/services/playerCeService.ts index 8bb5e7b92..5736b1ce1 100644 --- a/game-server/app/services/playerCeService.ts +++ b/game-server/app/services/playerCeService.ts @@ -6,7 +6,7 @@ import { pinus } from 'pinus'; import { STATUS } from '../consts/statusCode'; import { resResult } from '../pubUtils/util'; -import { calPlayerCeAndSave as pubCalPlayerCeAndSave } from '../pubUtils/playerCe'; +import { calPlayerCeAndSave as pubCalPlayerCeAndSave, reCalAllHeroCe } from '../pubUtils/playerCe'; import { HeroType } from '../db/Hero'; const _ = require('underscore'); @@ -14,9 +14,15 @@ const _ = require('underscore'); //修改并下发战力 export async function calPlayerCeAndSave(sid: string, roleId: string, heros: Array, type?: number, args?: Array) { let {role, pushHeros} = await pubCalPlayerCeAndSave(roleId, heros, type, args); - //下发战力 let uids = [{ uid: roleId, sid }]; pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, { ce: role.ce, heros: pushHeros, topFiveCe: 0 }), uids); return heros; } + +export async function calAllHeroCe(sid: string, roleId: string, type:number, args:Array) { + let {ce, pushHeros}= await reCalAllHeroCe(roleId,type, args); + let uids = [{ uid: roleId, sid }]; + pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, { ce: ce, heros: pushHeros, topFiveCe: 0 }), uids); + return; +} \ No newline at end of file diff --git a/game-server/app/services/rewardService.ts b/game-server/app/services/rewardService.ts index 048853178..cd2f954cb 100644 --- a/game-server/app/services/rewardService.ts +++ b/game-server/app/services/rewardService.ts @@ -4,6 +4,7 @@ import { resResult, parseReward } from '../pubUtils/util'; import { getGoodById } from '../pubUtils/gamedata'; import { RoleModel } from '../db/Role'; import { setAp } from './actionPointService'; +import { calAllHeroCe } from './playerCeService'; import { ItemModel } from '../db/Item'; import { STATUS } from '../consts/statusCode'; import { pinus } from 'pinus'; @@ -139,21 +140,24 @@ export async function addItems(roleId: string, roleName: string, sid: string, go showItems.push({id: item.id, count: item.count}); bagInfos.push(bagInfo); } - //背包除去装备推送 if (!!bagInfos.length) pinus.app.get('channelService').pushMessageByUids('onItemUpdate', resResult(STATUS.SUCCESS, {goods: bagInfos}), uids); let skinInfos = []; + let addSkinIds = []; for (let skinId of skins) {//皮肤推送 let result = await addSkins(roleId, skinId); if (!!result) { showItems.push({id: skinId, count: 1}); skinInfos.push(result); + addSkinIds.push(skinId); } } - if (!!skinInfos.length) + if (!!skinInfos.length) { + calAllHeroCe(sid, roleId, 1, addSkinIds) pinus.app.get('channelService').pushMessageByUids('onHeroSkinChange', resResult(STATUS.SUCCESS, {skinInfos}), uids); + } return showItems; } diff --git a/gm-server/app/service/users.ts b/gm-server/app/service/users.ts index 9c81e5026..e7803be33 100644 --- a/gm-server/app/service/users.ts +++ b/gm-server/app/service/users.ts @@ -197,10 +197,11 @@ export default class GMUsers extends Service { if(hero) continue; let dicHero = ctx.service.utils.getHeroById(hid); if(!dicHero) continue; - let {quality, initialStars: star, jobid: job, name: hName} = dicHero; + let {quality, initialStars: star, jobid: job, name: hName, initialSkin} = dicHero; const heroInfo = { roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId, - lv: hlv + lv: hlv, + skins:[{id: initialSkin, enable: true}], } heroInfos.push(heroInfo); } diff --git a/shared/consts/constModules/itemConst.ts b/shared/consts/constModules/itemConst.ts index 08a71bace..ca2cb92cf 100644 --- a/shared/consts/constModules/itemConst.ts +++ b/shared/consts/constModules/itemConst.ts @@ -1,6 +1,5 @@ export const IT_TYPE = { BLUEPRT: 28, - JEWEL: 42 } @@ -38,6 +37,15 @@ export enum EQUIP_TYPE { END = 6 } +export enum JEWEL_TYPE { + WEAPON = 42, // 神兵(武器) + CLOTHES = 43, // 宝甲(上装) + SHOES = 45, // 行具(下装) + CAP = 44, // 冠冕(头部) + BOOK = 47, // 典籍(饰品) + ACCESSORY = 46, // 礼器(饰品) +} + export const ITEM_TABLE = { EQUIP: 'equip', ITEM: 'item', @@ -46,28 +54,28 @@ export const ITEM_TABLE = { } const itid_array = [ - { id: 1, name: '短兵(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON }, - { id: 2, name: '枪矛(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON }, - { id: 3, name: '重兵(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON }, - { id: 4, name: '弓弩(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON }, - { id: 5, name: '奇门(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON }, - { id: 6, name: '羽扇(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON }, - { id: 7, name: '法器(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON }, - { id: 8, name: '杖(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON }, - { id: 9, name: '头盔(冠冕)', table: 'equip', type: EQUIP_TYPE.CAP }, - { id: 10, name: '头巾(冠冕)', table: 'equip', type: EQUIP_TYPE.CAP }, - { id: 11, name: '重铠(宝甲)', table: 'equip', type: EQUIP_TYPE.CLOTHES }, - { id: 12, name: '皮甲(宝甲)', table: 'equip', type: EQUIP_TYPE.CLOTHES }, - { id: 13, name: '布衣(宝甲)', table: 'equip', type: EQUIP_TYPE.CLOTHES }, - { id: 14, name: '兵书(典籍)', table: 'equip', type: EQUIP_TYPE.BOOK }, - { id: 15, name: '杂记(典籍)', table: 'equip', type: EQUIP_TYPE.BOOK }, - { id: 16, name: '经典(典籍)', table: 'equip', type: EQUIP_TYPE.BOOK }, - { id: 17, name: '马(行具)', table: 'equip', type: EQUIP_TYPE.SHOES }, - { id: 18, name: '鞋(行具)', table: 'equip', type: EQUIP_TYPE.SHOES }, - { id: 19, name: '车(行具)', table: 'equip', type: EQUIP_TYPE.SHOES }, - { id: 20, name: '佩饰(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY }, - { id: 21, name: '钟鼎(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY }, - { id: 22, name: '印章(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY }, + { id: 1, name: '短兵(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON}, + { id: 2, name: '枪矛(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON }, + { id: 3, name: '重兵(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON }, + { id: 4, name: '弓弩(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON }, + { id: 5, name: '奇门(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON }, + { id: 6, name: '羽扇(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON }, + { id: 7, name: '法器(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON }, + { id: 8, name: '杖(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON }, + { id: 9, name: '头盔(冠冕)', table: 'equip', type: EQUIP_TYPE.CAP, equipJewel: JEWEL_TYPE.CAP }, + { id: 10, name: '头巾(冠冕)', table: 'equip', type: EQUIP_TYPE.CAP, equipJewel: JEWEL_TYPE.CAP }, + { id: 11, name: '重铠(宝甲)', table: 'equip', type: EQUIP_TYPE.CLOTHES, equipJewel: JEWEL_TYPE.CLOTHES }, + { id: 12, name: '皮甲(宝甲)', table: 'equip', type: EQUIP_TYPE.CLOTHES, equipJewel: JEWEL_TYPE.CLOTHES }, + { id: 13, name: '布衣(宝甲)', table: 'equip', type: EQUIP_TYPE.CLOTHES, equipJewel: JEWEL_TYPE.CLOTHES }, + { id: 14, name: '兵书(典籍)', table: 'equip', type: EQUIP_TYPE.BOOK, equipJewel: JEWEL_TYPE.BOOK }, + { id: 15, name: '杂记(典籍)', table: 'equip', type: EQUIP_TYPE.BOOK, equipJewel: JEWEL_TYPE.BOOK }, + { id: 16, name: '经典(典籍)', table: 'equip', type: EQUIP_TYPE.BOOK, equipJewel: JEWEL_TYPE.BOOK }, + { id: 17, name: '马(行具)', table: 'equip', type: EQUIP_TYPE.SHOES, equipJewel: JEWEL_TYPE.SHOES }, + { id: 18, name: '鞋(行具)', table: 'equip', type: EQUIP_TYPE.SHOES, equipJewel: JEWEL_TYPE.SHOES }, + { id: 19, name: '车(行具)', table: 'equip', type: EQUIP_TYPE.SHOES, equipJewel: JEWEL_TYPE.SHOES }, + { id: 20, name: '佩饰(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY }, + { id: 21, name: '钟鼎(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY }, + { id: 22, name: '印章(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY }, { id: 23, name: '消耗品', table: 'item', type: CONSUME_TYPE.CONSUME }, @@ -92,10 +100,15 @@ const itid_array = [ { id: 39, name: '时装', table: 'hero', type: CONSUME_TYPE.SKIN }, { id: 40, name: '装备碎片', table: 'item', type: CONSUME_TYPE.PIECE }, { id: 41, name: '图纸', table: 'item', type: CONSUME_TYPE.CONSUME }, - { id: 42, name: '宝石', table: 'item', type: CONSUME_TYPE.JEWEL } + { id: 42, name: '神兵宝石', table: 'item', type: CONSUME_TYPE.JEWEL }, + { id: 43, name: '宝甲宝石', table: 'item', type: CONSUME_TYPE.JEWEL }, + { id: 44, name: '免冠宝石', table: 'item', type: CONSUME_TYPE.JEWEL }, + { id: 45, name: '足具宝石', table: 'item', type: CONSUME_TYPE.JEWEL }, + { id: 46, name: '礼器宝石', table: 'item', type: CONSUME_TYPE.JEWEL }, + { id: 47, name: '典籍宝石', table: 'item', type: CONSUME_TYPE.JEWEL } ]; -export const ITID = new Map(); +export const ITID = new Map(); for(let obj of itid_array) { ITID.set(obj.id, obj); } diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index b0aae3446..8a71bd28d 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -113,7 +113,7 @@ export const STATUS = { DUNGEON_TIMES_LACK: { code: 20701, simStr: '挑战次数不足' }, // 通用 30000 - 30099 - ROLE_INFO_NOT_FOUND: { code: 30000, simStr: '数据表未找到' }, + DIC_DATA_NOT_FOUND: { code: 30000, simStr: '数据表未找到' }, ROLE_MATERIAL_NOT_ENOUGH: { code: 30001, simStr: '材料数量不足' }, // 武将养成通用 30100 - 30199 @@ -165,7 +165,7 @@ export const STATUS = { EQUIP_NOT_FILL_HOLE: {code: 30506, simStr: '未穿戴宝石' }, EQUIP_NOT_EQUIPED_HERO: {code: 30507, simStr: '装备不能被该武将穿戴'}, EQUIP_LEVEL_LIMIT: {code: 30508, simStr: '装备穿戴等级限制'}, - + EQUIP_NOT_MATCH_JEWEL: {code: 30504, simStr: '装备不能镶嵌该宝石' }, // 社交相关状态 40000 - 49999 // 运营模块相关状态 50000 - 59999 // GM后台相关状态 60000 - 69999 diff --git a/shared/db/Hero.ts b/shared/db/Hero.ts index 9a2a26d9c..7c9487ae8 100644 --- a/shared/db/Hero.ts +++ b/shared/db/Hero.ts @@ -160,7 +160,7 @@ export default class Hero extends BaseModel { return hero; } - public static async createHero(heroInfo: {roleId: string, serverId: number, roleName: string, hid: number, hName: string, star: number, quality: number, job: number, lv?: number }, lean = true) { + public static async createHero(heroInfo: {roleId: string, serverId: number, roleName: string, hid: number, hName: string, star: number, quality: number, job: number, lv?: number, skins:Skin[]}, lean = true) { const doc = new HeroModel(); const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1; const update = Object.assign(doc.toJSON(), heroInfo, {seqId}); diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 17d717300..155593926 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -12,6 +12,7 @@ interface roleUpdate { gold?:number; frdCnt?: number; expeditionPoint?:number; + globalCeAttr?:CeAttr; } class TopHero { diff --git a/shared/pubUtils/dictionary/DicGoods.ts b/shared/pubUtils/dictionary/DicGoods.ts index 544d66490..939cbe391 100644 --- a/shared/pubUtils/dictionary/DicGoods.ts +++ b/shared/pubUtils/dictionary/DicGoods.ts @@ -1,6 +1,6 @@ // 物品表 -import {decodeArrayListStr, readJsonFile, parseReward, parseNumberList, decodeArrayStr, deepCopy} from '../util' -import { FILENAME, IT_TYPE, ABI_TYPE } from '../../consts' +import {decodeArrayListStr, readJsonFile, parseReward, parseNumberList, decodeArrayStr} from '../util' +import { FILENAME, IT_TYPE, ABI_TYPE , GOOD_TYPE} from '../../consts' import { RewardInter } from '../interface'; const _ = require('lodash'); const underscore = require('underscore'); @@ -87,7 +87,6 @@ const DicGoodsKeys: KeysEnum = { export const dicJewel = new Map(); export const dicGoods = new Map(); export const blueprt = new Map>(); -let jewelsMap = {}; arr.forEach(o => { o.goodsAbility = parseAbility(o); o.goodsAbilityUp = parseAbilityUp(o); @@ -102,7 +101,7 @@ arr.forEach(o => { let arr = blueprt.get(o.quality)||new Array(); arr.push(o.good_id); blueprt.set(o.quality, arr); - } else if (o.itid == IT_TYPE.JEWEL) { + } else if (o.itid == GOOD_TYPE.JEWEL) { let material = o.composeMaterial[0]; if (!!material && !!material.id) { let lastJewel = underscore.findWhere(arr,{good_id:material.id}); @@ -115,7 +114,6 @@ arr.forEach(o => { } }); -jewelsMap = undefined; arr = undefined; function parseSpecialAttr(str: string) { diff --git a/shared/pubUtils/dictionary/DicHero.ts b/shared/pubUtils/dictionary/DicHero.ts index 71a3c7866..8c448e04b 100644 --- a/shared/pubUtils/dictionary/DicHero.ts +++ b/shared/pubUtils/dictionary/DicHero.ts @@ -26,13 +26,14 @@ export interface DicHero { // 主属性 readonly baseAbilityArr:Map; readonly baseAbilityUpArr:Map; + readonly initialSkin: number; } const str = readJsonFile(FILENAME.DIC_HERO); let arr = JSON.parse(str); type KeysEnum = { [P in keyof Required]: true }; -const DicHeroKeys: KeysEnum = {heroId: true, name: true, quality: true, camp: true, jobid: true, skill: true, pieceId: true, initialStars: true, pieceCount: true, baseAbilityArr: true, baseAbilityUpArr: true}; +const DicHeroKeys: KeysEnum = {heroId: true, name: true, quality: true, camp: true, jobid: true, skill: true, pieceId: true, initialStars: true, pieceCount: true, baseAbilityArr: true, baseAbilityUpArr: true, initialSkin: true}; export const dicHero = new Map(); arr.forEach(o => { o.baseAbilityArr = parseBaseAbilityArr(o); diff --git a/shared/pubUtils/playerCe.ts b/shared/pubUtils/playerCe.ts index 8a9a7e3ca..ce73599b5 100644 --- a/shared/pubUtils/playerCe.ts +++ b/shared/pubUtils/playerCe.ts @@ -8,7 +8,7 @@ import { deepCopy } from './util'; import { HeroModel, HeroType } from '../db/Hero'; import { RoleModel } from '../db/Role'; import { CeAttrData, CeAttr, CeAttrNumber } from '../db/generalField'; -import { getAttrNameByJobStage, getAttrCeRatio, getAtrrNameById, ABI_TYPE_TO_STAGE, ABI_STAGE, SEID_TYPE, HERO_ATTR} from '../consts'; +import { getAttrNameByJobStage, getAttrCeRatio, getAtrrNameById, ABI_TYPE_TO_STAGE, ABI_STAGE, SEID_TYPE} from '../consts'; import { gameData, getJobByGradeAndClass, getHeroWakeByQuality, getHeroStarByQuality, getFriendShipById } from './data'; import { Attributes } from './interface'; import { DicSe } from './dictionary/DicSe'; @@ -18,7 +18,7 @@ import { DicRandomEffectPool } from './dictionary/DicRandomEffectPool'; const HERO_CE_RATIO = 100; const _ = require('underscore'); //战力计算TODO -export function calPlayerCe(hero: HeroType, type: number, args: Array) { +export function calPlayerCe(globalCeAttr: CeAttr, hero: HeroType, type: number, args: Array) { let incCe = 0; let incArr: Attributes = {}; let reIncAttr: CeAttr = {}; // {"hp": {"base": number, "fixUp": number, "ratioUp": number}} @@ -33,7 +33,7 @@ export function calPlayerCe(hero: HeroType, type: number, args: Array) { } else if (type == HERO_SYSTEM_TYPE.STAGEUP) { reIncAttr = calHeroJobStageUpIncAttr(hero, args, addSeidList, removeSeidList ) } else if (type == HERO_SYSTEM_TYPE.SKIN) { - reIncAttr = calWaerHeroSkinIncAttr(hero, args); + reIncAttr = calHeroWearSkinIncAttr(hero, args); } else if (type == HERO_SYSTEM_TYPE.FAVOUR) { reIncAttr = calHeroFavourUpIncAttr(hero, args); } else if (type == HERO_SYSTEM_TYPE.CONNECT) { @@ -51,12 +51,12 @@ export function calPlayerCe(hero: HeroType, type: number, args: Array) { if(!hero.ceAttr) hero.ceAttr = new CeAttr(); for (let attrName in reIncAttr) { let originalAttrData: CeAttrData = hero.ceAttr[attrName]||new CeAttrData(); - let oldCe = (originalAttrData.fixUp + originalAttrData.equipUp||0) * HERO_CE_RATIO + originalAttrData.base *(HERO_CE_RATIO + originalAttrData.ratioUp); + let oldCe = (originalAttrData.fixUp + (originalAttrData.equipUp||0)) * HERO_CE_RATIO + originalAttrData.base *(HERO_CE_RATIO + originalAttrData.ratioUp + globalCeAttr[attrName].ratioUp); if(!hero.ceAttr[attrName]) hero.ceAttr[attrName] = new CeAttrData(); for (let attrKey in reIncAttr[attrName]) { hero.ceAttr[attrName][attrKey] = parseInt(reIncAttr[attrName][attrKey]||0); } - incArr[attrName] = (reIncAttr[attrName].fixUp + reIncAttr[attrName].equipUp||0) * HERO_CE_RATIO + reIncAttr[attrName].base *(HERO_CE_RATIO + reIncAttr[attrName].ratioUp) - oldCe; //计算属性 + incArr[attrName] = (reIncAttr[attrName].fixUp + (reIncAttr[attrName].equipUp||0)) * HERO_CE_RATIO + reIncAttr[attrName].base *(HERO_CE_RATIO + reIncAttr[attrName].ratioUp + globalCeAttr[attrName].ratioUp) - oldCe; //计算属性 incCe += incArr[attrName] * getAttrCeRatio(attrName); } hero.ce += incCe; @@ -67,19 +67,17 @@ export function calPlayerCe(hero: HeroType, type: number, args: Array) { export async function calPlayerCeAndSave(roleId: string, heros: Array, type?: number, args?: Array) { let incPlayerCe = 0; let pushHeros = new Array<{hid: number, ce: number, incHeroCe: number}>(); - + let role = await RoleModel.findByRoleId(roleId); for (let hero of heros) { - let incHeroCe = calPlayerCe(hero, type, args); + let incHeroCe = calPlayerCe(role.globalCeAttr, hero, type, args); incPlayerCe += incHeroCe; - - await HeroModel.updateHeroInfo(roleId, hero.hid, hero ); + await HeroModel.updateHeroInfo(roleId, hero.hid, hero); pushHeros.push({ hid: hero.hid, ce: hero.ce, incHeroCe : incHeroCe, }); } - let role = await RoleModel.findByRoleId(roleId); role.ce += incPlayerCe; await RoleModel.updateRoleInfo(roleId, role); return {pushHeros, role} @@ -177,7 +175,7 @@ export function calHeroJobStageUpIncAttr(hero: HeroType, args: Array, ad } //穿戴时装 -export function calWaerHeroSkinIncAttr(hero: HeroType, args: Array) { +export function calHeroWearSkinIncAttr(hero: HeroType, args: Array) { let res: CeAttr = {}; let addSkin = gameData.fashion.get(args[0]); let delSkin = gameData.fashion.get(args[1]); @@ -185,12 +183,12 @@ export function calWaerHeroSkinIncAttr(hero: HeroType, args: Array) { for (let attr of delSkin.actorAttr) { attrName = getAtrrNameById(attr.id); res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp}; - res[attrName].fixUp += attr.number * HERO_CE_RATIO; + res[attrName].fixUp -= attr.number * HERO_CE_RATIO; } for (let attr of addSkin.actorAttr) { attrName = getAtrrNameById(attr.id); res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp}; - res[attrName].fixUp -= attr.number * HERO_CE_RATIO; + res[attrName].fixUp += attr.number * HERO_CE_RATIO; } return res; } @@ -426,10 +424,54 @@ function addSeid(effectList: Array, seidId:number, rand: number, seidValue } return; } + effectList.push(curSeid); let seid: DicSe|DicRandomEffectPool = deepCopy(curSeid); if(curSeid.index > 0) { seid.gainValueArr[curSeid.index - 1] = rand; } - effectList.push(seid); -} \ No newline at end of file +} +//全局属性加成 +export async function reCalAllHeroCe(roleId: string, type: number, args:Array) { + let reIncAttr: CeAttr = {}; + let role = await RoleModel.findByRoleId(roleId); + if(!role.globalCeAttr) role.globalCeAttr = new CeAttr(); + let originalAttr = role.globalCeAttr; + let pushHeros:Array<{hid:number, ce:number, incHeroCe:number}> = [] + if (type == 1) {//获得皮肤 + reIncAttr = calHeroAddSkin(args, role.globalCeAttr); + } + for (let attrName in reIncAttr) { + role.globalCeAttr[attrName].fixUp = reIncAttr[attrName].fixUp; + role.globalCeAttr[attrName].ratioUp = reIncAttr[attrName].ratioUp; + } + let heros = await HeroModel.findByRole(roleId); + for (let hero of heros) { + let incHeroCe = 0; + for (let attrName in reIncAttr) { + let oldcCe = originalAttr[attrName].fixUp * HERO_CE_RATIO + hero.ceAttr[attrName].base * (HERO_CE_RATIO + originalAttr[attrName].ratioUp); + let incArr = role.globalCeAttr[attrName].fixUp * HERO_CE_RATIO + hero.ceAttr[attrName].base * (HERO_CE_RATIO + role.globalCeAttr[attrName].ratioUp) - oldcCe; + incHeroCe += incArr * getAttrCeRatio(attrName); + } + incHeroCe += incHeroCe; + hero.ce += incHeroCe; + pushHeros.push({ hid: hero.hid, ce: hero.ce, incHeroCe }); + await HeroModel.updateHeroInfo(roleId, hero.hid, {ce: hero.ce}); + } + await RoleModel.updateRoleInfo(roleId, {globalCeAttr: role.globalCeAttr, ce: role.ce}); + return {pushHeros, ce: role.ce} +} + +function calHeroAddSkin(args:Array, ceAttr: CeAttr){ + let res: CeAttr = {}; + for (let arg of args) { + let addSkin = gameData.fashion.get(arg); + let attrName: string; + for (let attr of addSkin.globalAttr) { + attrName = getAtrrNameById(attr.id); + res[attrName] = {fixUp: ceAttr[attrName].fixUp, ratioUp: ceAttr[attrName].ratioUp}; + res[attrName].fixUp += attr.number * HERO_CE_RATIO; + } + } + return res; +} diff --git a/shared/resource/jsons/dic_zyz_friend_ship.json b/shared/resource/jsons/dic_zyz_friend_ship.json index cf31d15f1..e19e4bddf 100644 --- a/shared/resource/jsons/dic_zyz_friend_ship.json +++ b/shared/resource/jsons/dic_zyz_friend_ship.json @@ -6,7 +6,7 @@ "name": "魏武之强", "level": 1, "memberId": "2&3&4&5", - "attribute": "1&200|2&300", + "attribute": "1&200", "costCoin": 0 }, { @@ -16,7 +16,7 @@ "name": "魏武之强", "level": 2, "memberId": "2&3&4&5", - "attribute": "1&300|2&400", + "attribute": "1&300", "costCoin": 0 }, { @@ -26,7 +26,7 @@ "name": "魏武之强", "level": 3, "memberId": "2&3&4&5", - "attribute": "1&400|2&500", + "attribute": "1&400", "costCoin": 0 }, { @@ -36,7 +36,7 @@ "name": "魏武之强", "level": 4, "memberId": "2&3&4&5", - "attribute": "1&600|2&700", + "attribute": "1&600", "costCoin": 0 }, { @@ -46,7 +46,7 @@ "name": "魏武之强", "level": 5, "memberId": "2&3&4&5", - "attribute": "1&800|2&900", + "attribute": "1&800", "costCoin": 0 }, { @@ -56,7 +56,7 @@ "name": "魏武之强", "level": 6, "memberId": "2&3&4&5", - "attribute": "1&1000|2&1000", + "attribute": "1&1000", "costCoin": 0 }, { @@ -66,7 +66,7 @@ "name": "家族之力", "level": 1, "memberId": "6&7", - "attribute": "1&200|2&300", + "attribute": "2&300", "costCoin": 0 }, { @@ -76,7 +76,7 @@ "name": "家族之力", "level": 2, "memberId": "6&7", - "attribute": "1&300|2&400", + "attribute": "2&400", "costCoin": 0 }, { @@ -86,7 +86,7 @@ "name": "家族之力", "level": 3, "memberId": "6&7", - "attribute": "1&400|2&500", + "attribute": "2&500", "costCoin": 0 }, { @@ -96,7 +96,7 @@ "name": "家族之力", "level": 4, "memberId": "6&7", - "attribute": "1&600|2&700", + "attribute": "2&700", "costCoin": 0 }, { @@ -106,7 +106,7 @@ "name": "家族之力", "level": 5, "memberId": "6&7", - "attribute": "1&800|2&900", + "attribute": "2&900", "costCoin": 0 }, { @@ -116,7 +116,7 @@ "name": "家族之力", "level": 6, "memberId": "6&7", - "attribute": "1&1000|2&1000", + "attribute": "2&1000", "costCoin": 0 }, { @@ -126,7 +126,7 @@ "name": "曹氏双雄", "level": 1, "memberId": "8&", - "attribute": "1&200|2&300", + "attribute": "2&300", "costCoin": 0 }, { @@ -136,7 +136,7 @@ "name": "曹氏双雄", "level": 2, "memberId": "8&", - "attribute": "1&300|2&400", + "attribute": "2&400", "costCoin": 0 }, { @@ -146,7 +146,7 @@ "name": "曹氏双雄", "level": 3, "memberId": "8&", - "attribute": "1&400|2&500", + "attribute": "2&500", "costCoin": 0 }, { @@ -156,7 +156,7 @@ "name": "曹氏双雄", "level": 4, "memberId": "8&", - "attribute": "1&600|2&700", + "attribute": "2&700", "costCoin": 0 }, { @@ -166,7 +166,7 @@ "name": "曹氏双雄", "level": 5, "memberId": "8&", - "attribute": "1&800|2&900", + "attribute": "2&900", "costCoin": 0 }, { @@ -176,7 +176,607 @@ "name": "曹氏双雄", "level": 6, "memberId": "8&", - "attribute": "1&1000|2&1000", + "attribute": "2&1000", + "costCoin": 0 + }, + { + "id": 19, + "shipId": 20001, + "actorId": 2, + "name": "本家兄弟", + "level": 1, + "memberId": "1&4", + "attribute": "1&200", + "costCoin": 0 + }, + { + "id": 20, + "shipId": 20001, + "actorId": 2, + "name": "本家兄弟", + "level": 2, + "memberId": "1&4", + "attribute": "1&300", + "costCoin": 0 + }, + { + "id": 21, + "shipId": 20001, + "actorId": 2, + "name": "本家兄弟", + "level": 3, + "memberId": "1&4", + "attribute": "1&400", + "costCoin": 0 + }, + { + "id": 22, + "shipId": 20001, + "actorId": 2, + "name": "本家兄弟", + "level": 4, + "memberId": "1&4", + "attribute": "1&600", + "costCoin": 0 + }, + { + "id": 23, + "shipId": 20001, + "actorId": 2, + "name": "本家兄弟", + "level": 5, + "memberId": "1&4", + "attribute": "1&800", + "costCoin": 0 + }, + { + "id": 24, + "shipId": 20001, + "actorId": 2, + "name": "本家兄弟", + "level": 6, + "memberId": "1&4", + "attribute": "1&1000", + "costCoin": 0 + }, + { + "id": 25, + "shipId": 20002, + "actorId": 2, + "name": "魏武先锋", + "level": 1, + "memberId": "7&15", + "attribute": "2&300", + "costCoin": 0 + }, + { + "id": 26, + "shipId": 20002, + "actorId": 2, + "name": "魏武先锋", + "level": 2, + "memberId": "7&15", + "attribute": "2&400", + "costCoin": 0 + }, + { + "id": 27, + "shipId": 20002, + "actorId": 2, + "name": "魏武先锋", + "level": 3, + "memberId": "7&15", + "attribute": "2&500", + "costCoin": 0 + }, + { + "id": 28, + "shipId": 20002, + "actorId": 2, + "name": "魏武先锋", + "level": 4, + "memberId": "7&15", + "attribute": "2&700", + "costCoin": 0 + }, + { + "id": 29, + "shipId": 20002, + "actorId": 2, + "name": "魏武先锋", + "level": 5, + "memberId": "7&15", + "attribute": "2&900", + "costCoin": 0 + }, + { + "id": 30, + "shipId": 20002, + "actorId": 2, + "name": "魏武先锋", + "level": 6, + "memberId": "7&15", + "attribute": "2&1000", + "costCoin": 0 + }, + { + "id": 31, + "shipId": 20003, + "actorId": 2, + "name": "武艺超群", + "level": 1, + "memberId": "24&", + "attribute": "1&200", + "costCoin": 0 + }, + { + "id": 32, + "shipId": 20003, + "actorId": 2, + "name": "武艺超群", + "level": 2, + "memberId": "24&", + "attribute": "1&300", + "costCoin": 0 + }, + { + "id": 33, + "shipId": 20003, + "actorId": 2, + "name": "武艺超群", + "level": 3, + "memberId": "24&", + "attribute": "1&400", + "costCoin": 0 + }, + { + "id": 34, + "shipId": 20003, + "actorId": 2, + "name": "武艺超群", + "level": 4, + "memberId": "24&", + "attribute": "1&600", + "costCoin": 0 + }, + { + "id": 35, + "shipId": 20003, + "actorId": 2, + "name": "武艺超群", + "level": 5, + "memberId": "24&", + "attribute": "1&800", + "costCoin": 0 + }, + { + "id": 36, + "shipId": 20003, + "actorId": 2, + "name": "武艺超群", + "level": 6, + "memberId": "24&", + "attribute": "1&1000", + "costCoin": 0 + }, + { + "id": 37, + "shipId": 30001, + "actorId": 3, + "name": "故友知交", + "level": 1, + "memberId": "18&", + "attribute": "2&300", + "costCoin": 0 + }, + { + "id": 38, + "shipId": 30001, + "actorId": 3, + "name": "故友知交", + "level": 2, + "memberId": "18&", + "attribute": "2&400", + "costCoin": 0 + }, + { + "id": 39, + "shipId": 30001, + "actorId": 3, + "name": "故友知交", + "level": 3, + "memberId": "18&", + "attribute": "2&500", + "costCoin": 0 + }, + { + "id": 40, + "shipId": 30001, + "actorId": 3, + "name": "故友知交", + "level": 4, + "memberId": "18&", + "attribute": "2&700", + "costCoin": 0 + }, + { + "id": 41, + "shipId": 30001, + "actorId": 3, + "name": "故友知交", + "level": 5, + "memberId": "18&", + "attribute": "2&900", + "costCoin": 0 + }, + { + "id": 42, + "shipId": 30001, + "actorId": 3, + "name": "故友知交", + "level": 6, + "memberId": "18&", + "attribute": "2&1000", + "costCoin": 0 + }, + { + "id": 43, + "shipId": 30002, + "actorId": 3, + "name": "孤胆冲阵", + "level": 1, + "memberId": "36&37", + "attribute": "1&200", + "costCoin": 0 + }, + { + "id": 44, + "shipId": 30002, + "actorId": 3, + "name": "孤胆冲阵", + "level": 2, + "memberId": "36&37", + "attribute": "1&300", + "costCoin": 0 + }, + { + "id": 45, + "shipId": 30002, + "actorId": 3, + "name": "孤胆冲阵", + "level": 3, + "memberId": "36&37", + "attribute": "1&400", + "costCoin": 0 + }, + { + "id": 46, + "shipId": 30002, + "actorId": 3, + "name": "孤胆冲阵", + "level": 4, + "memberId": "36&37", + "attribute": "1&600", + "costCoin": 0 + }, + { + "id": 47, + "shipId": 30002, + "actorId": 3, + "name": "孤胆冲阵", + "level": 5, + "memberId": "36&37", + "attribute": "1&800", + "costCoin": 0 + }, + { + "id": 48, + "shipId": 30002, + "actorId": 3, + "name": "孤胆冲阵", + "level": 6, + "memberId": "36&37", + "attribute": "1&1000", + "costCoin": 0 + }, + { + "id": 49, + "shipId": 30003, + "actorId": 3, + "name": "临危不惧", + "level": 1, + "memberId": "5&10", + "attribute": "2&300", + "costCoin": 0 + }, + { + "id": 50, + "shipId": 30003, + "actorId": 3, + "name": "临危不惧", + "level": 2, + "memberId": "5&10", + "attribute": "2&400", + "costCoin": 0 + }, + { + "id": 51, + "shipId": 30003, + "actorId": 3, + "name": "临危不惧", + "level": 3, + "memberId": "5&10", + "attribute": "2&500", + "costCoin": 0 + }, + { + "id": 52, + "shipId": 30003, + "actorId": 3, + "name": "临危不惧", + "level": 4, + "memberId": "5&10", + "attribute": "2&700", + "costCoin": 0 + }, + { + "id": 53, + "shipId": 30003, + "actorId": 3, + "name": "临危不惧", + "level": 5, + "memberId": "5&10", + "attribute": "2&900", + "costCoin": 0 + }, + { + "id": 54, + "shipId": 30003, + "actorId": 3, + "name": "临危不惧", + "level": 6, + "memberId": "5&10", + "attribute": "2&1000", + "costCoin": 0 + }, + { + "id": 55, + "shipId": 40001, + "actorId": 4, + "name": "箭术无双", + "level": 1, + "memberId": "21&45", + "attribute": "1&200", + "costCoin": 0 + }, + { + "id": 56, + "shipId": 40001, + "actorId": 4, + "name": "箭术无双", + "level": 2, + "memberId": "21&45", + "attribute": "1&300", + "costCoin": 0 + }, + { + "id": 57, + "shipId": 40001, + "actorId": 4, + "name": "箭术无双", + "level": 3, + "memberId": "21&45", + "attribute": "1&400", + "costCoin": 0 + }, + { + "id": 58, + "shipId": 40001, + "actorId": 4, + "name": "箭术无双", + "level": 4, + "memberId": "21&45", + "attribute": "1&600", + "costCoin": 0 + }, + { + "id": 59, + "shipId": 40001, + "actorId": 4, + "name": "箭术无双", + "level": 5, + "memberId": "21&45", + "attribute": "1&800", + "costCoin": 0 + }, + { + "id": 60, + "shipId": 40001, + "actorId": 4, + "name": "箭术无双", + "level": 6, + "memberId": "21&45", + "attribute": "1&1000", + "costCoin": 0 + }, + { + "id": 61, + "shipId": 40002, + "actorId": 4, + "name": "兄弟情深", + "level": 1, + "memberId": "1&2", + "attribute": "2&300", + "costCoin": 0 + }, + { + "id": 62, + "shipId": 40002, + "actorId": 4, + "name": "兄弟情深", + "level": 2, + "memberId": "1&2", + "attribute": "2&400", + "costCoin": 0 + }, + { + "id": 63, + "shipId": 40002, + "actorId": 4, + "name": "兄弟情深", + "level": 3, + "memberId": "1&2", + "attribute": "2&500", + "costCoin": 0 + }, + { + "id": 64, + "shipId": 40002, + "actorId": 4, + "name": "兄弟情深", + "level": 4, + "memberId": "1&2", + "attribute": "2&700", + "costCoin": 0 + }, + { + "id": 65, + "shipId": 40002, + "actorId": 4, + "name": "兄弟情深", + "level": 5, + "memberId": "1&2", + "attribute": "2&900", + "costCoin": 0 + }, + { + "id": 66, + "shipId": 40002, + "actorId": 4, + "name": "兄弟情深", + "level": 6, + "memberId": "1&2", + "attribute": "2&1000", + "costCoin": 0 + }, + { + "id": 67, + "shipId": 40003, + "actorId": 4, + "name": "恃勇轻谋", + "level": 1, + "memberId": "37&", + "attribute": "1&200", + "costCoin": 0 + }, + { + "id": 68, + "shipId": 40003, + "actorId": 4, + "name": "恃勇轻谋", + "level": 2, + "memberId": "37&", + "attribute": "1&300", + "costCoin": 0 + }, + { + "id": 69, + "shipId": 40003, + "actorId": 4, + "name": "恃勇轻谋", + "level": 3, + "memberId": "37&", + "attribute": "1&400", + "costCoin": 0 + }, + { + "id": 70, + "shipId": 40003, + "actorId": 4, + "name": "恃勇轻谋", + "level": 4, + "memberId": "37&", + "attribute": "1&600", + "costCoin": 0 + }, + { + "id": 71, + "shipId": 40003, + "actorId": 4, + "name": "恃勇轻谋", + "level": 5, + "memberId": "37&", + "attribute": "1&800", + "costCoin": 0 + }, + { + "id": 72, + "shipId": 40003, + "actorId": 4, + "name": "恃勇轻谋", + "level": 6, + "memberId": "37&", + "attribute": "1&1000", + "costCoin": 0 + }, + { + "id": 73, + "shipId": 50001, + "actorId": 5, + "name": "天妒英才", + "level": 1, + "memberId": "23&", + "attribute": "2&300", + "costCoin": 0 + }, + { + "id": 74, + "shipId": 50001, + "actorId": 5, + "name": "天妒英才", + "level": 2, + "memberId": "23&", + "attribute": "2&400", + "costCoin": 0 + }, + { + "id": 75, + "shipId": 50001, + "actorId": 5, + "name": "天妒英才", + "level": 3, + "memberId": "23&", + "attribute": "2&500", + "costCoin": 0 + }, + { + "id": 76, + "shipId": 50001, + "actorId": 5, + "name": "天妒英才", + "level": 4, + "memberId": "23&", + "attribute": "2&700", + "costCoin": 0 + }, + { + "id": 77, + "shipId": 50001, + "actorId": 5, + "name": "天妒英才", + "level": 5, + "memberId": "23&", + "attribute": "2&900", + "costCoin": 0 + }, + { + "id": 78, + "shipId": 50001, + "actorId": 5, + "name": "天妒英才", + "level": 6, + "memberId": "23&", + "attribute": "2&1000", "costCoin": 0 } ] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_hero.json b/shared/resource/jsons/dic_zyz_hero.json index da784d5da..57047ae78 100644 --- a/shared/resource/jsons/dic_zyz_hero.json +++ b/shared/resource/jsons/dic_zyz_hero.json @@ -38,7 +38,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-414&-193", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41001 }, { "heroId": 2, @@ -79,7 +80,8 @@ "imgPosofDialog": "693&-138", "imgPosofInfoUI": "-511&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41003 }, { "heroId": 3, @@ -120,7 +122,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-304&120", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41004 }, { "heroId": 4, @@ -161,7 +164,8 @@ "imgPosofDialog": "379&-245", "imgPosofInfoUI": "-292&-143", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41005 }, { "heroId": 5, @@ -202,7 +206,8 @@ "imgPosofDialog": "441&-355", "imgPosofInfoUI": "-204&-176", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41006 }, { "heroId": 6, @@ -243,7 +248,8 @@ "imgPosofDialog": "623&-335", "imgPosofInfoUI": "-418&-191", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41007 }, { "heroId": 7, @@ -284,7 +290,8 @@ "imgPosofDialog": "562&-212", "imgPosofInfoUI": "-408&-47", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41008 }, { "heroId": 8, @@ -325,7 +332,8 @@ "imgPosofDialog": "537&-209", "imgPosofInfoUI": "-387&-178", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41009 }, { "heroId": 9, @@ -366,7 +374,8 @@ "imgPosofDialog": "625&-243", "imgPosofInfoUI": "-413&-68", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41010 }, { "heroId": 10, @@ -407,7 +416,8 @@ "imgPosofDialog": "408&-183", "imgPosofInfoUI": "-393&-166", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41011 }, { "heroId": 11, @@ -448,7 +458,8 @@ "imgPosofDialog": "591&-202", "imgPosofInfoUI": "-269&-118", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41012 }, { "heroId": 12, @@ -489,7 +500,8 @@ "imgPosofDialog": "574&-202", "imgPosofInfoUI": "-443&-52", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41013 }, { "heroId": 13, @@ -530,7 +542,8 @@ "imgPosofDialog": "560&-183", "imgPosofInfoUI": "-387&-85", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41014 }, { "heroId": 14, @@ -571,7 +584,8 @@ "imgPosofDialog": "560&-220", "imgPosofInfoUI": "-413&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41015 }, { "heroId": 15, @@ -612,7 +626,8 @@ "imgPosofDialog": "608&-219", "imgPosofInfoUI": "-450&-156", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41016 }, { "heroId": 16, @@ -653,7 +668,8 @@ "imgPosofDialog": "533&-234", "imgPosofInfoUI": "-387&-156", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41017 }, { "heroId": 17, @@ -694,7 +710,8 @@ "imgPosofDialog": "606&-240", "imgPosofInfoUI": "-424&-213", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41018 }, { "heroId": 18, @@ -735,7 +752,8 @@ "imgPosofDialog": "444&-223", "imgPosofInfoUI": "-297&-158", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41019 }, { "heroId": 19, @@ -776,7 +794,8 @@ "imgPosofDialog": "678&-130", "imgPosofInfoUI": "-279&-90", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41020 }, { "heroId": 20, @@ -817,7 +836,8 @@ "imgPosofDialog": "646&-252", "imgPosofInfoUI": "-385&-120", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41021 }, { "heroId": 21, @@ -858,7 +878,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-199&-118", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41022 }, { "heroId": 22, @@ -899,7 +920,8 @@ "imgPosofDialog": "405&-243", "imgPosofInfoUI": "-327&-115", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41023 }, { "heroId": 23, @@ -940,7 +962,8 @@ "imgPosofDialog": "589&-77", "imgPosofInfoUI": "-438&-27", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41024 }, { "heroId": 24, @@ -981,7 +1004,8 @@ "imgPosofDialog": "695&-330", "imgPosofInfoUI": "-529&-183", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41025 }, { "heroId": 25, @@ -1022,7 +1046,8 @@ "imgPosofDialog": "606&-181", "imgPosofInfoUI": "-440&-35", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41026 }, { "heroId": 26, @@ -1063,7 +1088,8 @@ "imgPosofDialog": "596&-144", "imgPosofInfoUI": "-471&-65", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41027 }, { "heroId": 27, @@ -1104,7 +1130,8 @@ "imgPosofDialog": "720&-219", "imgPosofInfoUI": "-395&-85", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41028 }, { "heroId": 28, @@ -1145,7 +1172,8 @@ "imgPosofDialog": "683&-278", "imgPosofInfoUI": "-448&-166", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41029 }, { "heroId": 29, @@ -1186,7 +1214,8 @@ "imgPosofDialog": "540&-212", "imgPosofInfoUI": "-367&-120", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41030 }, { "heroId": 30, @@ -1227,7 +1256,8 @@ "imgPosofDialog": "495&-214", "imgPosofInfoUI": "-357&-141", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41031 }, { "heroId": 31, @@ -1268,7 +1298,8 @@ "imgPosofDialog": "519&-284", "imgPosofInfoUI": "-380&-186", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41032 }, { "heroId": 32, @@ -1309,7 +1340,8 @@ "imgPosofDialog": "499&-147", "imgPosofInfoUI": "-350&-118", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41033 }, { "heroId": 33, @@ -1350,7 +1382,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-511&-90", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41034 }, { "heroId": 34, @@ -1391,7 +1424,8 @@ "imgPosofDialog": "722&-284", "imgPosofInfoUI": "-529&-186", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41035 }, { "heroId": 35, @@ -1432,7 +1466,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-503&-123", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41036 }, { "heroId": 36, @@ -1473,7 +1508,8 @@ "imgPosofDialog": "557&-289", "imgPosofInfoUI": "-448&-153", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41037 }, { "heroId": 37, @@ -1514,7 +1550,8 @@ "imgPosofDialog": "790&-272", "imgPosofInfoUI": "-581&-153", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41038 }, { "heroId": 38, @@ -1555,7 +1592,8 @@ "imgPosofDialog": "538&-82", "imgPosofInfoUI": "-387&-37", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41039 }, { "heroId": 39, @@ -1596,7 +1634,8 @@ "imgPosofDialog": "583&-238", "imgPosofInfoUI": "-398&-173", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41040 }, { "heroId": 40, @@ -1637,7 +1676,8 @@ "imgPosofDialog": "664&-57", "imgPosofInfoUI": "-458&-108", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41041 }, { "heroId": 41, @@ -1678,7 +1718,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-541&-168", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41042 }, { "heroId": 42, @@ -1719,7 +1760,8 @@ "imgPosofDialog": "604&-217", "imgPosofInfoUI": "-435&-70", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41043 }, { "heroId": 43, @@ -1760,7 +1802,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-365&-171", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41044 }, { "heroId": 44, @@ -1801,7 +1844,8 @@ "imgPosofDialog": "657&-193", "imgPosofInfoUI": "-508&-118", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41045 }, { "heroId": 45, @@ -1842,7 +1886,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-330&-146", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41046 }, { "heroId": 46, @@ -1883,7 +1928,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-393&-17", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41047 }, { "heroId": 47, @@ -1924,7 +1970,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-445&-156", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41048 }, { "heroId": 48, @@ -1965,7 +2012,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-526&-146", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41049 }, { "heroId": 49, @@ -2006,7 +2054,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "60&-15", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41050 }, { "heroId": 50, @@ -2047,7 +2096,8 @@ "imgPosofDialog": "502&-275", "imgPosofInfoUI": "-299&-141", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41051 }, { "heroId": 51, @@ -2088,7 +2138,8 @@ "imgPosofDialog": "537&-245", "imgPosofInfoUI": "-433&-128", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41052 }, { "heroId": 52, @@ -2129,7 +2180,8 @@ "imgPosofDialog": "601&-171", "imgPosofInfoUI": "-390&-158", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41053 }, { "heroId": 53, @@ -2170,7 +2222,8 @@ "imgPosofDialog": "782&-145", "imgPosofInfoUI": "-604&-105", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41054 }, { "heroId": 54, @@ -2211,7 +2264,8 @@ "imgPosofDialog": "828&-222", "imgPosofInfoUI": "-617&-138", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41055 }, { "heroId": 55, @@ -2252,7 +2306,8 @@ "imgPosofDialog": "519&-227", "imgPosofInfoUI": "-410&-136", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41056 }, { "heroId": 56, @@ -2293,7 +2348,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-463&-123", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 41057 }, { "heroId": 57, @@ -2334,7 +2390,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-702&-188", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 58, @@ -2375,7 +2432,8 @@ "imgPosofDialog": "562&-163", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 301, @@ -2416,7 +2474,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-414&-193", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 302, @@ -2457,7 +2516,8 @@ "imgPosofDialog": "693&-138", "imgPosofInfoUI": "-511&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 303, @@ -2498,7 +2558,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-304&120", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 304, @@ -2539,7 +2600,8 @@ "imgPosofDialog": "379&-245", "imgPosofInfoUI": "-292&-143", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 305, @@ -2580,7 +2642,8 @@ "imgPosofDialog": "441&-355", "imgPosofInfoUI": "-204&-176", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 306, @@ -2621,7 +2684,8 @@ "imgPosofDialog": "623&-335", "imgPosofInfoUI": "-418&-191", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 307, @@ -2662,7 +2726,8 @@ "imgPosofDialog": "562&-212", "imgPosofInfoUI": "-408&-47", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 308, @@ -2703,7 +2768,8 @@ "imgPosofDialog": "537&-209", "imgPosofInfoUI": "-387&-178", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 309, @@ -2744,7 +2810,8 @@ "imgPosofDialog": "625&-243", "imgPosofInfoUI": "-413&-68", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 310, @@ -2785,7 +2852,8 @@ "imgPosofDialog": "408&-183", "imgPosofInfoUI": "-393&-166", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 311, @@ -2826,7 +2894,8 @@ "imgPosofDialog": "591&-202", "imgPosofInfoUI": "-269&-118", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 312, @@ -2867,7 +2936,8 @@ "imgPosofDialog": "574&-202", "imgPosofInfoUI": "-443&-52", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 313, @@ -2908,7 +2978,8 @@ "imgPosofDialog": "560&-183", "imgPosofInfoUI": "-387&-85", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 314, @@ -2949,7 +3020,8 @@ "imgPosofDialog": "560&-220", "imgPosofInfoUI": "-413&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 315, @@ -2990,7 +3062,8 @@ "imgPosofDialog": "608&-219", "imgPosofInfoUI": "-450&-156", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 316, @@ -3031,7 +3104,8 @@ "imgPosofDialog": "533&-234", "imgPosofInfoUI": "-387&-156", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 317, @@ -3072,7 +3146,8 @@ "imgPosofDialog": "606&-240", "imgPosofInfoUI": "-424&-213", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 318, @@ -3113,7 +3188,8 @@ "imgPosofDialog": "444&-223", "imgPosofInfoUI": "-297&-158", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 319, @@ -3154,7 +3230,8 @@ "imgPosofDialog": "678&-130", "imgPosofInfoUI": "-279&-90", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 320, @@ -3195,7 +3272,8 @@ "imgPosofDialog": "646&-252", "imgPosofInfoUI": "-385&-120", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 321, @@ -3236,7 +3314,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-199&-118", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 322, @@ -3277,7 +3356,8 @@ "imgPosofDialog": "405&-243", "imgPosofInfoUI": "-327&-115", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 323, @@ -3318,7 +3398,8 @@ "imgPosofDialog": "589&-77", "imgPosofInfoUI": "-438&-27", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 324, @@ -3359,7 +3440,8 @@ "imgPosofDialog": "695&-330", "imgPosofInfoUI": "-529&-183", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 325, @@ -3400,7 +3482,8 @@ "imgPosofDialog": "606&-181", "imgPosofInfoUI": "-440&-35", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 326, @@ -3441,7 +3524,8 @@ "imgPosofDialog": "596&-144", "imgPosofInfoUI": "-471&-65", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 327, @@ -3482,7 +3566,8 @@ "imgPosofDialog": "720&-219", "imgPosofInfoUI": "-395&-85", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 328, @@ -3523,7 +3608,8 @@ "imgPosofDialog": "683&-278", "imgPosofInfoUI": "-448&-166", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 329, @@ -3564,7 +3650,8 @@ "imgPosofDialog": "540&-212", "imgPosofInfoUI": "-367&-120", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 330, @@ -3605,7 +3692,8 @@ "imgPosofDialog": "495&-214", "imgPosofInfoUI": "-357&-141", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 331, @@ -3646,7 +3734,8 @@ "imgPosofDialog": "519&-284", "imgPosofInfoUI": "-380&-186", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 332, @@ -3687,7 +3776,8 @@ "imgPosofDialog": "499&-147", "imgPosofInfoUI": "-350&-118", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 333, @@ -3728,7 +3818,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-511&-90", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 334, @@ -3769,7 +3860,8 @@ "imgPosofDialog": "722&-284", "imgPosofInfoUI": "-529&-186", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 335, @@ -3810,7 +3902,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-503&-123", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 336, @@ -3851,7 +3944,8 @@ "imgPosofDialog": "557&-289", "imgPosofInfoUI": "-448&-153", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 337, @@ -3892,7 +3986,8 @@ "imgPosofDialog": "790&-272", "imgPosofInfoUI": "-581&-153", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 338, @@ -3933,7 +4028,8 @@ "imgPosofDialog": "538&-82", "imgPosofInfoUI": "-387&-37", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 339, @@ -3974,7 +4070,8 @@ "imgPosofDialog": "583&-238", "imgPosofInfoUI": "-398&-173", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 340, @@ -4015,7 +4112,8 @@ "imgPosofDialog": "664&-57", "imgPosofInfoUI": "-458&-108", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 341, @@ -4056,7 +4154,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-541&-168", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 342, @@ -4097,7 +4196,8 @@ "imgPosofDialog": "604&-217", "imgPosofInfoUI": "-435&-70", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 343, @@ -4138,7 +4238,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-365&-171", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 344, @@ -4179,7 +4280,8 @@ "imgPosofDialog": "33&-173", "imgPosofInfoUI": "-508&-118", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 345, @@ -4220,7 +4322,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-330&-146", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 346, @@ -4261,7 +4364,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-393&-17", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 347, @@ -4302,7 +4406,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-445&-156", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 348, @@ -4343,7 +4448,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-526&-146", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 349, @@ -4384,7 +4490,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "60&-15", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 350, @@ -4425,7 +4532,8 @@ "imgPosofDialog": "502&-275", "imgPosofInfoUI": "-299&-141", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 351, @@ -4466,7 +4574,8 @@ "imgPosofDialog": "537&-245", "imgPosofInfoUI": "-433&-128", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 352, @@ -4507,7 +4616,8 @@ "imgPosofDialog": "601&-171", "imgPosofInfoUI": "-390&-158", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 353, @@ -4548,7 +4658,8 @@ "imgPosofDialog": "782&-145", "imgPosofInfoUI": "-604&-105", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 354, @@ -4589,7 +4700,8 @@ "imgPosofDialog": "828&-222", "imgPosofInfoUI": "-617&-138", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 355, @@ -4630,7 +4742,8 @@ "imgPosofDialog": "519&-227", "imgPosofInfoUI": "-410&-136", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 356, @@ -4671,7 +4784,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-463&-123", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 357, @@ -4712,7 +4826,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-702&-188", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 358, @@ -4753,7 +4868,8 @@ "imgPosofDialog": "562&-163", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1001, @@ -4794,7 +4910,8 @@ "imgPosofDialog": "608&-151", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1002, @@ -4835,7 +4952,8 @@ "imgPosofDialog": "608&-151", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1003, @@ -4876,7 +4994,8 @@ "imgPosofDialog": "608&-151", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1004, @@ -4917,7 +5036,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1005, @@ -4958,7 +5078,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1006, @@ -4999,7 +5120,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1007, @@ -5040,7 +5162,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1008, @@ -5081,7 +5204,8 @@ "imgPosofDialog": "577&-139", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1009, @@ -5122,7 +5246,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1010, @@ -5163,7 +5288,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1011, @@ -5204,7 +5330,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1012, @@ -5245,7 +5372,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1013, @@ -5286,7 +5414,8 @@ "imgPosofDialog": "554&-106", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1014, @@ -5327,7 +5456,8 @@ "imgPosofDialog": "673&-151", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1015, @@ -5368,7 +5498,8 @@ "imgPosofDialog": "577&-143", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1016, @@ -5409,7 +5540,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1017, @@ -5450,7 +5582,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1018, @@ -5491,7 +5624,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1020, @@ -5532,7 +5666,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1021, @@ -5573,7 +5708,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1022, @@ -5614,7 +5750,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1023, @@ -5655,7 +5792,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1024, @@ -5696,7 +5834,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1025, @@ -5737,7 +5876,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1026, @@ -5778,7 +5918,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1027, @@ -5819,7 +5960,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1028, @@ -5860,7 +6002,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1029, @@ -5901,7 +6044,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1030, @@ -5942,7 +6086,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1031, @@ -5983,7 +6128,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1032, @@ -6024,7 +6170,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1033, @@ -6065,7 +6212,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1034, @@ -6106,7 +6254,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1035, @@ -6147,7 +6296,8 @@ "imgPosofDialog": "660&-40", "imgPosofInfoUI": "-471&-161", "skillScroll": "1&18|2&19", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1036, @@ -6188,7 +6338,8 @@ "imgPosofDialog": "582&-118", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1037, @@ -6229,7 +6380,8 @@ "imgPosofDialog": "596&-141", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1038, @@ -6270,7 +6422,8 @@ "imgPosofDialog": "597&-121", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1039, @@ -6311,7 +6464,8 @@ "imgPosofDialog": "596&-141", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1040, @@ -6352,7 +6506,8 @@ "imgPosofDialog": "596&-141", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1041, @@ -6393,7 +6548,8 @@ "imgPosofDialog": "596&-141", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1042, @@ -6434,7 +6590,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1043, @@ -6475,7 +6632,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1044, @@ -6516,7 +6674,8 @@ "imgPosofDialog": "560&-168", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1045, @@ -6557,7 +6716,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1046, @@ -6598,7 +6758,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1047, @@ -6639,7 +6800,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1048, @@ -6680,7 +6842,8 @@ "imgPosofDialog": "565&-168", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1049, @@ -6721,7 +6884,8 @@ "imgPosofDialog": "608&-150", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1050, @@ -6762,7 +6926,8 @@ "imgPosofDialog": "524&-168", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1051, @@ -6803,7 +6968,8 @@ "imgPosofDialog": "658&-229", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1052, @@ -6844,7 +7010,8 @@ "imgPosofDialog": "553&-113", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1053, @@ -6885,7 +7052,8 @@ "imgPosofDialog": "533&-182", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1054, @@ -6926,7 +7094,8 @@ "imgPosofDialog": "958&-227", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1055, @@ -6967,7 +7136,8 @@ "imgPosofDialog": "582&-118", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1056, @@ -7008,7 +7178,8 @@ "imgPosofDialog": "958&-227", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1057, @@ -7049,7 +7220,8 @@ "imgPosofDialog": "958&-227", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1074, @@ -7090,7 +7262,8 @@ "imgPosofDialog": "554&-106", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1075, @@ -7131,7 +7304,8 @@ "imgPosofDialog": "554&-106", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1076, @@ -7172,7 +7346,8 @@ "imgPosofDialog": "608&-150", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1077, @@ -7213,7 +7388,8 @@ "imgPosofDialog": "533&-182", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1078, @@ -7254,7 +7430,8 @@ "imgPosofDialog": "554&-106", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1080, @@ -7295,7 +7472,8 @@ "imgPosofDialog": "554&-107", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1502, @@ -7336,7 +7514,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1503, @@ -7377,7 +7556,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1504, @@ -7418,7 +7598,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1505, @@ -7459,7 +7640,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1506, @@ -7500,7 +7682,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1507, @@ -7541,7 +7724,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1508, @@ -7582,7 +7766,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1509, @@ -7623,7 +7808,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1510, @@ -7664,7 +7850,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1511, @@ -7705,7 +7892,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1512, @@ -7746,7 +7934,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 1513, @@ -7787,7 +7976,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 2001, @@ -7828,7 +8018,8 @@ "imgPosofDialog": "608&-151", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 2002, @@ -7869,7 +8060,8 @@ "imgPosofDialog": "608&-151", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 2003, @@ -7910,7 +8102,8 @@ "imgPosofDialog": "608&-151", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 2004, @@ -7951,7 +8144,8 @@ "imgPosofDialog": "300&400", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 2005, @@ -7992,7 +8186,8 @@ "imgPosofDialog": "596&-75", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 }, { "heroId": 2006, @@ -8033,6 +8228,7 @@ "imgPosofDialog": "553&-113", "imgPosofInfoUI": "-471&-161", "skillScroll": "&", - "position": "30&40&30" + "position": "30&40&30", + "initialSkin": 0 } ] \ No newline at end of file diff --git a/web-server/app/service/Auth.ts b/web-server/app/service/Auth.ts index 61151b67f..4f87e2f38 100644 --- a/web-server/app/service/Auth.ts +++ b/web-server/app/service/Auth.ts @@ -143,10 +143,11 @@ export default class Auth extends Service { if(!dicHero) { break; } - let {quality, initialStars: star, jobid: job, name: hName} = dicHero; + let {quality, initialStars: star, jobid: job, name: hName, initialSkin} = dicHero; hero = await HeroModel.createHero({ - roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId + roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId, + skins:[{id: initialSkin, enable: true}] }); await calPlayerCeAndSave(roleId, [hero], HERO_SYSTEM_TYPE.STAR, getAllAttrStage()); }