diff --git a/game-server/app/servers/role/handler/authorBookHandler.ts b/game-server/app/servers/role/handler/authorBookHandler.ts new file mode 100644 index 000000000..28d169876 --- /dev/null +++ b/game-server/app/servers/role/handler/authorBookHandler.ts @@ -0,0 +1,179 @@ +import { Application, BackendSession, HandlerService, } from "pinus"; +import { STATUS, HERO_SYSTEM_TYPE, ITEM_CHANGE_REASON, TASK_TYPE } from "../../../consts"; +import { ArtifactModel, ArtifactModelType, ArtifactModelUpdate } from "../../../db/Artifact"; +import { HeroModel } from "../../../db/Hero"; +import { ArtifactParam } from "../../../domain/roleField/hero"; +import { gameData, getArtifactByGidAndType, getArtifactStageZero, getArtifactWithQuality, getDicArtifactLvByPlanId, getDicAuthorBookSub, getNextArtifact } from "../../../pubUtils/data"; +import { ARTIFACT, BAG } from "../../../pubUtils/dicParam"; +import { ItemInter, RewardInter } from "../../../pubUtils/interface"; + +import { resResult, parseGoodStr, arrToMap, genCode } from "../../../pubUtils/util"; +import { checkArtifactCanCompose, getRebuildConsume, hasArtifactStrength } from "../../../services/equipService"; +import { calculateCeWithHero, calculateCeWithRole } from "../../../services/playerCeService"; +import { CheckMeterial } from "../../../services/role/checkMaterial"; +import { addItems, handleCost } from "../../../services/role/rewardService"; +import { combineItems } from "../../../services/role/util"; +import { checkTask } from "../../../services/task/taskService"; +import { AuthorBookModel } from "../../../db/AuthorBook"; +import { checkAuthorBookLimit, replaceAuthorBooks } from "../../../services/roleService"; + +export default function (app: Application) { + new HandlerService(app, {}); + return new AuthorsBookHandler(app); +} + +export class AuthorsBookHandler { + + constructor(private app: Application) { + } + + public async starUp(msg: { bookId: number, subId: number, star: number, useItem: boolean }, session: BackendSession) { + const roleId: string = session.get('roleId'); + const sid: string = session.get('sid'); + const roleName: string = session.get('roleName'); + const serverId: number = session.get('serverId'); + + const { bookId, subId, star, useItem } = msg; + let allAuthorBooks = await AuthorBookModel.findByRoleId(roleId); + let authorBookData = allAuthorBooks.find(authorBook => authorBook.bookId == bookId); + let starInData = authorBookData?.authors?.find(cur => cur.subId == subId)?.star??0; + if(star != starInData) return resResult(STATUS.ACCESS_BUSY); + + let dicAuthorsBookSub = getDicAuthorBookSub(bookId, subId, star + 1); + if(!dicAuthorsBookSub) return resResult(STATUS.AUTHOR_BOOK_SUB_MAX); + + // 是否解锁(进度解锁) + if(!checkAuthorBookLimit(allAuthorBooks, bookId)) return resResult(STATUS.AUTHOR_BOOK_LOCK); + // 英灵是否够 + let check = new CheckMeterial(roleId); + let isEnough = await check.decreaseItemsContinue(dicAuthorsBookSub.spirits); + console.log('@@@@@@@@@@ isEnough', isEnough, dicAuthorsBookSub.spirits) + let useItemCnt = 0; + if(useItem) { // 使用英灵石代替 + if(!isEnough) { + let notEnoughItems = check.getNotEnoughItems(); + console.log('@@@@@@@@ getNotEnoughItems', notEnoughItems) + let replaceItems: RewardInter[] = []; + for(let [ id, count ] of notEnoughItems) { + let dicSpirit = gameData.spirit.get(id); + if(!dicSpirit) return resResult(STATUS.DIC_DATA_NOT_FOUND); // 应该是表填错,正常情况不可能出现 + + for(let item of dicSpirit.composeItem) { + replaceItems.push({ id: item.id, count: item.count * count }); + useItemCnt += item.count * count; + } + } + isEnough = await check.decreaseItemsContinue(replaceItems); + } + } + + if(!isEnough) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); + let consumes = check.getConsume(); + let costResult = await handleCost(roleId, sid, consumes, ITEM_CHANGE_REASON.AUTHOR_BOOK_STAR_UP); + if (!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); + + // 升星 + authorBookData = await AuthorBookModel.upStar(roleId, bookId, subId, star, dicAuthorsBookSub.value, gameData.authorBookSubs.get(bookId)||[]); + if(!authorBookData) { + // 防并发问题 + await addItems(roleId, roleName, sid, consumes, ITEM_CHANGE_REASON.AUTHOR_BOOK_STAR_RETURN); + return resResult(STATUS.ACCESS_BUSY); + } + // 计算战力更新 + + await calculateCeWithRole(HERO_SYSTEM_TYPE.AUTHOR_BOOK_STAR, roleId, serverId, sid, {}, { authorBooks: replaceAuthorBooks(allAuthorBooks, authorBookData), bookId, subId }); + + let curAuthorBook = authorBookData.authors?.find(cur => cur.subId == subId); + let maxProgress = gameData.authorBookMaxProgress.get(bookId)??0; + return resResult(STATUS.SUCCESS, { + bookId, + subId, + star: curAuthorBook?.star??0, + progress: authorBookData.progress, + maxProgress, + useItemCnt + }); + } + + // 重置条目 + public async resetAuthor(msg: { bookId: number, subId: number, star: number }, session: BackendSession) { + const roleId: string = session.get('roleId'); + const sid: string = session.get('sid'); + const roleName: string = session.get('roleName'); + const serverId: number = session.get('serverId'); + + const { bookId, subId, star } = msg; + let allAuthorBooks = await AuthorBookModel.findByRoleId(roleId); + let authorBookData = allAuthorBooks.find(authorBook => authorBook.bookId == bookId); + if(!authorBookData) return resResult(STATUS.ACCESS_BUSY) + let starInData = authorBookData?.authors?.find(cur => cur.subId == subId)?.star??0; + if(star != starInData) return resResult(STATUS.ACCESS_BUSY); + + let progress = 0, spirits: RewardInter[] = []; + for(let i = 1; i <= star; i++) { + let dicAuthorsBookSub = getDicAuthorBookSub(bookId, subId, i); + if(!dicAuthorsBookSub) return resResult(STATUS.DIC_DATA_NOT_FOUND); + progress += dicAuthorsBookSub.value; + spirits.push(...dicAuthorsBookSub.spirits); + } + // 重置诸子列传 + authorBookData = await AuthorBookModel.resetSub(roleId, bookId, subId, star, -progress); + if(!authorBookData) return resResult(STATUS.ACCESS_BUSY); + + let goods = await addItems(roleId, roleName, sid, combineItems(spirits), ITEM_CHANGE_REASON.AUTHOR_BOOK_SUB_RESET); + + // 计算战力更新 + await calculateCeWithRole(HERO_SYSTEM_TYPE.AUTHOR_BOOK_SUB_RESET, roleId, serverId, sid, {}, { authorBooks: replaceAuthorBooks(allAuthorBooks, authorBookData), bookId, subId }); + + let curAuthorBook = authorBookData.authors?.find(cur => cur.subId == subId); + let maxProgress = gameData.authorBookMaxProgress.get(bookId)??0; + return resResult(STATUS.SUCCESS, { + bookId, + subId, + star: curAuthorBook?.star??0, + progress: authorBookData.progress, + maxProgress, + goods + }); + + } + + // 买英灵 + public async buySpirit(msg: { id: number, count: number }, session: BackendSession) { + let roleId: string = session.get('roleId'); + let sid: string = session.get('sid'); + let roleName: string = session.get('roleName'); + + const { id, count } = msg; + let dicSpirit = gameData.spirit.get(id); + if(!dicSpirit) return resResult(STATUS.DIC_DATA_NOT_FOUND); + + let consumes = dicSpirit.composeItem.map(cur => ({ id: cur.id, count: cur.count * count })); + let costResult = await handleCost(roleId, sid, consumes, ITEM_CHANGE_REASON.BUY_SPIRIT); + if (!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); + + let reward = [{ id, count }]; + let goods = await addItems(roleId, roleName, sid, reward, ITEM_CHANGE_REASON.BUY_SPIRIT); + + return resResult(STATUS.SUCCESS, { goods }); + } + + public async decomposeSpirit(msg: { id: number, count: number }, session: BackendSession) { + let roleId: string = session.get('roleId'); + let sid: string = session.get('sid'); + let roleName: string = session.get('roleName'); + + const { id, count } = msg; + let dicSpirit = gameData.spirit.get(id); + if(!dicSpirit) return resResult(STATUS.DIC_DATA_NOT_FOUND); + + let consumes = [{ id, count }]; + let costResult = await handleCost(roleId, sid, consumes, ITEM_CHANGE_REASON.DECOMPOSE_SPIRIT); + if (!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); + + let reward = dicSpirit.decomposeItem; + let goods = await addItems(roleId, roleName, sid, reward, ITEM_CHANGE_REASON.DECOMPOSE_SPIRIT); + + return resResult(STATUS.SUCCESS, { goods }); + } +} \ No newline at end of file diff --git a/game-server/app/services/checkParam.ts b/game-server/app/services/checkParam.ts index a72aa499c..3c0a92ab2 100644 --- a/game-server/app/services/checkParam.ts +++ b/game-server/app/services/checkParam.ts @@ -2012,6 +2012,23 @@ export function checkRouteParam(route: string, msg: any) { if(!isBoolean(msg.hasComment)) return false; break; } + case "role.authorsBookHandler.starUp": + { + if(!checkNaturalNumbers(msg.bookId, msg.subId, msg.star)) return false; + if(!isBoolean(msg.useItem)) return false; + break; + } + case "role.authorsBookHandler.resetAuthor": + { + if(!checkNaturalNumbers(msg.bookId, msg.subId, msg.star)) return false; + break; + } + case "role.authorsBookHandler.buySpirit": + case "role.authorsBookHandler.decomposeSpirit": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; + break; + } case 'activity.dragonBoatHandler.gameStart': case 'activity.dragonBoatHandler.gameEnd': { diff --git a/game-server/app/services/connectorService.ts b/game-server/app/services/connectorService.ts index 3a8677563..4aa1d159f 100644 --- a/game-server/app/services/connectorService.ts +++ b/game-server/app/services/connectorService.ts @@ -52,6 +52,8 @@ import { ArtifactModel } from '../db/Artifact'; import { ActivityItemModel } from '../db/ActivityItem'; import { LinkModel } from '../db/Link'; import { getHiddenData } from './memoryCache/hiddenData'; +import { AuthorBookModel } from '../db/AuthorBook'; +import { gameData } from '../pubUtils/data'; /** * init: 初始的时候是否推送 true-推 false-不推 @@ -128,7 +130,6 @@ export async function getModuleData(type: string, data: { role: RoleType, sessio let artifacts = await ArtifactModel.findbyRole(role.roleId, ARTIFACT_SELECT.ENTRY); let activityItems = await ActivityItemModel.findbyRole(role.roleId, ACTIVITYITEM_SELECT.ENTRY); let link = await LinkModel.findByType(SNS_LINK_TYPE.CUSTOMER); - role['heros'] = heros.map(hero => new HeroParam(hero)); role['jewels'] = jewels; role['consumeGoods'] = items; @@ -138,6 +139,7 @@ export async function getModuleData(type: string, data: { role: RoleType, sessio role['ipLocation'] = role.fixedIpLocation||role.ipLocation||'未知'; role['artifacts'] = artifacts; role['activityItems'] = activityItems; + role['authorBook'] = await getAuthorBook(role.roleId); if (!role.showLineup) role.showLineup = role.topLineup.map(cur => cur.hid); role.heads = role.heads.filter(cur => cur.status); @@ -432,4 +434,13 @@ export async function leaveServer(session: FrontendOrBackendSession) { incServerNum(sid, -1); incConnectorNum(sid, -1); +} + +async function getAuthorBook(roleId: string) { + let authorBooks = await AuthorBookModel.findByRoleId(roleId); + return authorBooks.map(authorBook => { + let maxProgress = gameData.authorBookMaxProgress.get(authorBook.bookId); + let { bookId, authors, progress } = authorBook; + return { bookId, authors, progress, maxProgress: maxProgress??0 } + }) } \ No newline at end of file diff --git a/game-server/app/services/playerCeService.ts b/game-server/app/services/playerCeService.ts index 52cacbddb..8e39cfeb4 100644 --- a/game-server/app/services/playerCeService.ts +++ b/game-server/app/services/playerCeService.ts @@ -21,6 +21,7 @@ import { SkinType } from '../db/Skin'; import { LadderMatchModel } from '../db/LadderMatch'; import { ArtifactModelType } from '../db/Artifact'; import { GVGVestigeRankModel } from '../db/GVGVestigeRank'; +import { AuthorBookType } from '../db/AuthorBook'; interface Param { isInitRole?: boolean, @@ -49,6 +50,9 @@ interface Param { artifact?: ArtifactModelType, artifacts?: ArtifactModelType[], job?: number, + authorBooks?: AuthorBookType[], + bookId?: number, + subId?: number, } export async function calculateCeWithHero(type: HERO_SYSTEM_TYPE, roleId: string, serverId: number, sid: string, hid: number, heroUpdate: HeroUpdate, param: Param = {}) { @@ -427,6 +431,14 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve } break; } + case HERO_SYSTEM_TYPE.AUTHOR_BOOK_STAR: // 40. 诸子百家升星 + { + let { authorBooks = [], bookId, subId } = param; + calCe.setAuthorBooks(authorBooks); + ceChangeTxt.push(`诸子列传 ${bookId} 的 ${subId} 重置星级`); + + break; + } } let { heroCe, roleInc } = calCe.getCeInc(); // 计算战力,获得有变化的武将战力 let changeHids: number[] = []; diff --git a/game-server/app/services/role/calCe.ts b/game-server/app/services/role/calCe.ts index a7591b2f2..42d42f4d3 100644 --- a/game-server/app/services/role/calCe.ts +++ b/game-server/app/services/role/calCe.ts @@ -1,12 +1,13 @@ import { ABI_STAGE, ABI_STAGE_TO_TYPE, ABI_TYPE, ABI_TYPE_MAIN, LINEUP_NUM, SEID_TYPE, TALENT_RELATION_TYPE } from "../../consts"; import { ArtifactModelType } from "../../db/Artifact"; +import { AuthorBookType } from "../../db/AuthorBook"; import { Connect, EPlace, HeroSkin, HeroType, HeroUpdate, Stone, Talent } from "../../db/Hero"; import { JewelType } from "../../db/Jewel"; import { RoleUpdate, Teraph } from "../../db/Role"; import { AttrCell, Attribute, EquipAttr, HeroAttr, RoleCeType, SchoolAttr, ScrollAttr } from "../../db/RoleCe"; import { TopHero } from "../../domain/dbGeneral"; import { AttributeCal } from "../../domain/roleField/attribute"; -import { gameData, getDicArtifactLvByPlanId, getEquipQualityIdByEquipIdAndPoint, getEquipStarAttrByStage, getEquipStrenthenAttr, getEquipSuitByHero, getFriendShipByIdAndLv, getHeroStarByQuality, getHeroWakeByQuality, getJewelConditionByLvAndSeId, getJobByGradeAndClass, getSchoolRateByStar, getScollByStar, getTeraph } from "../../pubUtils/data"; +import { gameData, getDicArtifactLvByPlanId, getDicAuthorBookSub, getEquipQualityIdByEquipIdAndPoint, getEquipStarAttrByStage, getEquipStrenthenAttr, getEquipSuitByHero, getFriendShipByIdAndLv, getHeroStarByQuality, getHeroWakeByQuality, getJewelConditionByLvAndSeId, getJobByGradeAndClass, getSchoolRateByStar, getScollByStar, getTeraph } from "../../pubUtils/data"; import { DicRandomEffectPool } from "../../pubUtils/dictionary/DicRandomEffectPool"; import { DicSe } from "../../pubUtils/dictionary/DicSe"; import { addToMap, deepCopy } from "../../pubUtils/util"; @@ -47,20 +48,20 @@ export class CalCe { for(let attrId = ABI_TYPE.ABI_HP; attrId < ABI_TYPE.ABI_MAX; attrId++) { if(!this.data.heroAttrs.has(`${hid}_${attrId}`) && !this.data.globalAttrs.has(attrId)) continue; let { mainBase = 0, mainBaseUp = 0, subBase = 0, job = 0, starUp = 0, connect = 0, talent = 0, equipQuality = 0, equipStrength = 0, equipStar = 0, equipSuit = 0, jewel = 0, stone = 0, artifactLv = 0, artifactQuality = 0, artifactSeid = 0, jewelBase = 0 } = this.data.heroAttrs.get(`${hid}_${attrId}`)||{}; - let { school = 0, teraph = 0, title = 0, scroll = 0, skin = 0 } = this.data.getGlobalAttrById(attrId)||{}; + let { school = 0, teraph = 0, title = 0, scroll = 0, skin = 0, authorBook = 0 } = this.data.getGlobalAttrById(attrId)||{}; let val = 0, ceVal = 0, str = '', ceStr = ''; if(ABI_TYPE_MAIN.indexOf(attrId) != -1) { // {[ hp1 + lv * hp2 ] * ( 1 + hp5 ) + [( hp6 + hp7 ) * ( 1 + hp8 )]} * ( 1 + hp9 ) + hp10 + hp11 + hp14 - val = (( mainBase + job + lv * ( starUp + mainBaseUp ) ) * ( 1 + connect/100 ) + (( equipQuality + equipStrength ) * ( 1 + ( equipStar/100 + equipSuit/100 )))) * ( 1 + jewel/100 + school/100 + talent/100 + skin/100 + artifactSeid/100) + stone + teraph + title + scroll + artifactLv + artifactQuality + jewelBase; - ceVal = (( mainBase + job + lv * ( starUp + mainBaseUp ) ) * ( 1 + connect/100 ) + (( equipQuality + equipStrength ) * ( 1 + ( equipStar/100 + equipSuit/100 )))) * ( 1 + jewel/100 + school/100 + talent/100 + skin/100 + artifactSeid/100) + stone + teraph + title + scroll + artifactLv + artifactQuality + jewelBase; - str += `{[${mainBase}+${job}+${lv}*(${starUp}+${mainBaseUp})]* ( 1 + ${connect}/100) + [(${equipQuality}+${equipStrength}) * ( 1 + ${equipStar}/100+${equipSuit}/100)]} * (1+${jewel}/100+${school}/100+${talent}/100+${skin}/100+${artifactSeid}/100)+${stone}+${teraph}+${title}+${scroll}+${artifactLv}+${artifactQuality}+${jewelBase}`; - ceStr += `{[${mainBase}+${job}+${lv}*(${starUp}+${mainBaseUp})]* ( 1 + ${connect}/100) + [(${equipQuality}+${equipStrength}) * ( 1 + ${equipStar}/100+${equipSuit}/100)]} * (1+${jewel}/100+${school}/100+${talent}/100+${skin}/100+${artifactSeid}/100)+${stone}+${teraph}+${title}+${scroll}+${artifactLv}+${artifactQuality}+${jewelBase}`; + val = (( mainBase + job + lv * ( starUp + mainBaseUp ) ) * ( 1 + connect/100 ) + (( equipQuality + equipStrength ) * ( 1 + ( equipStar/100 + equipSuit/100 )))) * ( 1 + jewel/100 + school/100 + talent/100 + skin/100 + artifactSeid/100) + stone + teraph + title + scroll + artifactLv + artifactQuality + jewelBase + authorBook; + ceVal = (( mainBase + job + lv * ( starUp + mainBaseUp ) ) * ( 1 + connect/100 ) + (( equipQuality + equipStrength ) * ( 1 + ( equipStar/100 + equipSuit/100 )))) * ( 1 + jewel/100 + school/100 + talent/100 + skin/100 + artifactSeid/100) + stone + teraph + title + scroll + artifactLv + artifactQuality + jewelBase + authorBook; + str += `{[${mainBase}+${job}+${lv}*(${starUp}+${mainBaseUp})]* ( 1 + ${connect}/100) + [(${equipQuality}+${equipStrength}) * ( 1 + ${equipStar}/100+${equipSuit}/100)]} * (1+${jewel}/100+${school}/100+${talent}/100+${skin}/100+${artifactSeid}/100)+${stone}+${teraph}+${title}+${scroll}+${artifactLv}+${artifactQuality}+${jewelBase}+${authorBook}`; + ceStr += `{[${mainBase}+${job}+${lv}*(${starUp}+${mainBaseUp})]* ( 1 + ${connect}/100) + [(${equipQuality}+${equipStrength}) * ( 1 + ${equipStar}/100+${equipSuit}/100)]} * (1+${jewel}/100+${school}/100+${talent}/100+${skin}/100+${artifactSeid}/100)+${stone}+${teraph}+${title}+${scroll}+${artifactLv}+${artifactQuality}+${jewelBase}+${authorBook}`; } else { - // attr1 + attr2 + attr4 + attr5 + attr6 + attr7 + attr9 - val = subBase + job + teraph + school + title + jewel + equipStar; - ceVal = job + teraph + school + title + jewel + equipStar; - str += `${subBase}+${job}+${teraph}+${school}+${title}+${jewel}+${equipStar}`; - ceStr += `${job}+${teraph}+${school}+${title}+${jewel}+${equipStar}`; + // attr1 + attr2 + attr4 + attr5 + attr6 + attr7 + attr9 + attr10 + val = subBase + job + teraph + school + title + jewel + equipStar + authorBook; + ceVal = job + teraph + school + title + jewel + equipStar + authorBook; + str += `${subBase}+${job}+${teraph}+${school}+${title}+${jewel}+${equipStar}+${authorBook}`; + ceStr += `${job}+${teraph}+${school}+${title}+${jewel}+${equipStar}+${authorBook}`; } if(!attrs.has(hid)) attrs.set(hid, []); attrs.get(hid).push({ id: attrId, val, ceVal, str, ceStr }); @@ -566,6 +567,34 @@ export class CalCe { } } + // 诸子列传属性 + public setAuthorBooks(authorBooks: AuthorBookType[]) { + + this.data.clearRoleAttr('authorBook'); + let attrResult = new Map(); + for(let { bookId, progress, authors } of authorBooks) { + // 升星的属性 + for(let { subId, star } of authors) { + let dicAuthorBook = getDicAuthorBookSub(bookId, subId, star); + if(dicAuthorBook) { + for(let {id, val} of dicAuthorBook.attr) addToMap(attrResult, id, val); + } + } + + let dicPoints = gameData.authorBookPoint.get(bookId)||[]; + for(let { value, attr } of dicPoints) { + if(progress > value) { + for(let { id, val } of attr) addToMap(attrResult, id, val); + } + } + } + + for(let [attrId, value] of attrResult) { + let globalAttr = this.data.getGlobalAttrById(attrId); + globalAttr.authorBook = value; + } + } + // 宝物品质 public setArtifactQuality(hid: number, artifactId: number) { this.data.clearHeroAttrByHid(hid, 'artifactQuality'); @@ -969,6 +998,7 @@ abstract class GlobalAllAttr { title: number = 0; scroll: number = 0; skin: number = 0; + authorBook: number = 0; constructor(attrId: number) { this.attrId = attrId; @@ -1003,6 +1033,8 @@ class GlobalMainAttr extends GlobalAllAttr { this.scroll = value; break; case GLOBAL_MAIN_ATTR_INDEX.SKIN: this.skin = value; break; + case GLOBAL_MAIN_ATTR_INDEX.AUTH_BOOK: + this.authorBook = value; break; } } } @@ -1027,6 +1059,9 @@ class GlobalMainAttr extends GlobalAllAttr { case GLOBAL_MAIN_ATTR_INDEX.SKIN: values.push(this.skin); break; + case GLOBAL_MAIN_ATTR_INDEX.AUTH_BOOK: + values.push(this.authorBook); + break; } } return values; @@ -1042,12 +1077,14 @@ class GlobalSubAttr extends GlobalAllAttr { switch(i) { case GLOBAL_SUB_ATTR_INDEX.SCHOOL: this.school = value; break; - case GLOBAL_MAIN_ATTR_INDEX.TERAPH: + case GLOBAL_SUB_ATTR_INDEX.TERAPH: this.teraph = value; break; - case GLOBAL_MAIN_ATTR_INDEX.TITLE: + case GLOBAL_SUB_ATTR_INDEX.TITLE: this.title = value; break; - case GLOBAL_MAIN_ATTR_INDEX.SKIN: + case GLOBAL_SUB_ATTR_INDEX.SKIN: this.skin = value; break; + case GLOBAL_SUB_ATTR_INDEX.AUTH_BOOK: + this.authorBook = value; break; } } } @@ -1055,20 +1092,23 @@ class GlobalSubAttr extends GlobalAllAttr { public getValues() { let values: number[] = []; - for(let i = GLOBAL_MAIN_ATTR_INDEX.START; i < GLOBAL_MAIN_ATTR_INDEX.END; i++) { + for(let i = GLOBAL_SUB_ATTR_INDEX.START; i < GLOBAL_SUB_ATTR_INDEX.END; i++) { switch(i) { - case GLOBAL_MAIN_ATTR_INDEX.SCHOOL: + case GLOBAL_SUB_ATTR_INDEX.SCHOOL: values.push(this.school); break; - case GLOBAL_MAIN_ATTR_INDEX.TERAPH: + case GLOBAL_SUB_ATTR_INDEX.TERAPH: values.push(this.teraph); break; - case GLOBAL_MAIN_ATTR_INDEX.TITLE: + case GLOBAL_SUB_ATTR_INDEX.TITLE: values.push(this.title); break; - case GLOBAL_MAIN_ATTR_INDEX.SKIN: + case GLOBAL_SUB_ATTR_INDEX.SKIN: values.push(this.skin); break; + case GLOBAL_SUB_ATTR_INDEX.AUTH_BOOK: + values.push(this.authorBook); + break; } } return values; @@ -1382,6 +1422,7 @@ enum GLOBAL_MAIN_ATTR_INDEX { TITLE = 2, // hp11, 爵位加成(dic_zyz_title的hp) SCROLL = 3, // hp11,名将谱加成(dic_zyz_heroScroll的hp) SKIN = 4, // hp12, 皮肤加成(dic_zyz_fashion的actorAttr) + AUTH_BOOK = 5, // hp16,诸子列传 END } @@ -1391,6 +1432,7 @@ enum GLOBAL_SUB_ATTR_INDEX { TERAPH = 1, // attr4, 神像加成(dic_zyz_teraph中的assistAttrValue) TITLE = 2, // attr6, 爵位(dic_zyz_title中的pdi、mdi) SKIN = 3, // attr8, 皮肤 + AUTH_BOOK = 4, // attr10,诸子列传 END } diff --git a/game-server/app/services/role/checkMaterial.ts b/game-server/app/services/role/checkMaterial.ts index c4f95738e..4c45dfa91 100644 --- a/game-server/app/services/role/checkMaterial.ts +++ b/game-server/app/services/role/checkMaterial.ts @@ -36,7 +36,7 @@ export class CheckMeterial { this.notEnoughItems.set(id, this.notEnoughItems.get(id) + count); } - private getNotEnoughItems() { + public getNotEnoughItems() { let map = new Map(); for(let [ id, count ] of this.notEnoughItems) { map.set(id, count); @@ -74,6 +74,27 @@ export class CheckMeterial { return true; } + // 当消耗不足的时候,不提前返回,也不去算元宝和铜币 + public async decreaseItemsContinue(goods: {id: number, count: number}[]) { + this.tempConsumes.splice(0, this.tempConsumes.length); + this.notEnoughItems.clear(); + let { items } = sortItems(goods, HANDLE_REWARD_TYPE.COST); + let itemIsEnough = true; + for(let { id, count} of items) { + let notEnoughCount = await this.decreaseItem(id, count); + if(notEnoughCount > 0) { + let isEnough = await this.checkReplaceItem(id, notEnoughCount); + if(isEnough) { + this.tempConsumes.push({ id, count: count - notEnoughCount }); + } else { + itemIsEnough = false; + } + } + } + this.consumes.push(...this.tempConsumes); + return itemIsEnough; + } + public setCanReplace(canReplace: boolean) { this.canReplace = canReplace; } diff --git a/game-server/app/services/roleService.ts b/game-server/app/services/roleService.ts index 0f9e48c91..a006fcc6c 100644 --- a/game-server/app/services/roleService.ts +++ b/game-server/app/services/roleService.ts @@ -1,6 +1,6 @@ import { Channel, pinus } from 'pinus'; import { getRandValueByMinMax, getRandEelm, decodeIdCntArrayStr, compareVersion } from '../pubUtils/util'; -import { DEFAULT_HEROES, LINEUP_NUM, ROLE_SELECT, TALENT_RELATION_TYPE, TERAPH_RANDOM, SYSTEM_OPEN_ID, GuideUnloadNum, CHECK_HERO_CONSUME, ABI_STAGE } from "../consts"; +import { DEFAULT_HEROES, LINEUP_NUM, ROLE_SELECT, TALENT_RELATION_TYPE, TERAPH_RANDOM, SYSTEM_OPEN_ID, GuideUnloadNum, CHECK_HERO_CONSUME, ABI_STAGE, AUTHOR_BOOK_LIMIT_TYPE } from "../consts"; import { DicTeraph } from '../pubUtils/dictionary/DicTeraph'; import { Teraph, RoleModel, RoleType, RoleUpdate } from '../db/Role'; import { SCHOOL } from '../pubUtils/dicParam'; @@ -18,6 +18,7 @@ import { getServerCreateTime } from './redisService'; import { checkWhiteList } from '../pubUtils/sysUtil'; import { nowSeconds } from '../pubUtils/timeUtil'; import { ServerlistModel } from '../db/Serverlist'; +import { AuthorBookModel, AuthorBookType } from '../db/AuthorBook'; const query = new IP2Region({ disableIpv6: true }); @@ -356,4 +357,37 @@ function decreaseConsume(origin: Reward[], pieceId: number, decrease: number) { } } return { consumes, newConsumes }; +} + +/** + * 诸子列表是否解锁 + * @param roleId + * @param bookId + * @returns true: 可以解锁 false:不可解锁 + */ +export function checkAuthorBookLimit(authorBooks: AuthorBookType[], bookId: number) { + let dicAuthorsBook = gameData.authorBook.get(bookId); + if(!dicAuthorsBook) return false; + + for(let { type, bookId, value } of dicAuthorsBook.limit) { + if(type == AUTHOR_BOOK_LIMIT_TYPE.ALL) { + let allProgress = authorBooks.reduce((pre, cur) => pre + cur.progress, 0); + if(allProgress < value) return false; + } else if(type == AUTHOR_BOOK_LIMIT_TYPE.ASSIGN) { + let curBook = authorBooks.find(cur => cur.bookId == bookId); + let progress = curBook?.progress??0; + if(progress < value) return false; + } + } + return true; +} + +export function replaceAuthorBooks(authorBooks: AuthorBookType[], authorBook: AuthorBookType) { + let index = authorBooks.findIndex(cur => cur.bookId == authorBook.bookId); + if(index == -1) { + authorBooks.push(authorBook); + } else { + authorBooks[index] = authorBook; + } + return authorBooks; } \ No newline at end of file diff --git a/shared/consts/constModules/abilityConst.ts b/shared/consts/constModules/abilityConst.ts index e9d4939f1..37eb16e3d 100644 --- a/shared/consts/constModules/abilityConst.ts +++ b/shared/consts/constModules/abilityConst.ts @@ -63,6 +63,47 @@ export enum ABI_TYPE { ABI_BLOOD_REBOUND = 27, /** 反击伤害 */ ABI_STRIKE_BACK = 28, + /** 加怒气值 */ + ABI_GAIN_AP = 29, + + /** 怒气提升效率 / 1000*/ + ABI_RAGE_ADD_PERCENT = 30, + + /** 格挡减伤提升效率 / 1000*/ + ABI_BLOCK_ADD_PERCENT = 31, + + /** 护盾 */ + ABI_SHIELD = 32, + + /** 竞技增伤 */ + ABI_PVP_ADD = 33, + + /** 竞技减伤 */ + ABI_PVP_MINUS = 34, + + /** 对魏增伤 */ + ABI_WEI_ADD = 35, + + /** 对魏减伤 */ + ABI_WEI_MINUS = 36, + + /** 对蜀增伤 */ + ABI_SHU_ADD = 37, + + /** 对蜀减伤 */ + ABI_SHU_MINUS = 38, + + /** 对吴增伤 */ + ABI_WU_ADD = 39, + + /** 对吴减伤 */ + ABI_WU_MINUS = 40, + + /** 对群增伤 */ + ABI_OTHER_ADD = 41, + + /** 对群减伤 */ + ABI_OTHER_MINUS = 42, ABI_MAX, } @@ -95,8 +136,35 @@ export const ABI_TYPE_SUB = [ ABI_TYPE.ABI_ACCEPT_TREATMENT_DECREASE, ABI_TYPE.ABI_BLOOD_REBOUND, ABI_TYPE.ABI_STRIKE_BACK, + ABI_TYPE.ABI_GAIN_AP, + ABI_TYPE.ABI_RAGE_ADD_PERCENT, + ABI_TYPE.ABI_BLOCK_ADD_PERCENT, + ABI_TYPE.ABI_SHIELD, + ABI_TYPE.ABI_PVP_ADD, + ABI_TYPE.ABI_PVP_MINUS, + ABI_TYPE.ABI_WEI_ADD, + ABI_TYPE.ABI_WEI_MINUS, + ABI_TYPE.ABI_SHU_ADD, + ABI_TYPE.ABI_SHU_MINUS, + ABI_TYPE.ABI_WU_ADD, + ABI_TYPE.ABI_WU_MINUS, + ABI_TYPE.ABI_OTHER_ADD, + ABI_TYPE.ABI_OTHER_MINUS ]; +export const ABI_TYPE_PVP = [ + ABI_TYPE.ABI_PVP_ADD, + ABI_TYPE.ABI_PVP_MINUS, + ABI_TYPE.ABI_WEI_ADD, + ABI_TYPE.ABI_WEI_MINUS, + ABI_TYPE.ABI_SHU_ADD, + ABI_TYPE.ABI_SHU_MINUS, + ABI_TYPE.ABI_WU_ADD, + ABI_TYPE.ABI_WU_MINUS, + ABI_TYPE.ABI_OTHER_ADD, + ABI_TYPE.ABI_OTHER_MINUS +] + export enum SEID_TYPE { /**属性固定值加成(数值) */ FIX = 1, diff --git a/shared/consts/constModules/heroConst.ts b/shared/consts/constModules/heroConst.ts index 04ba314d8..d9d2b3610 100644 --- a/shared/consts/constModules/heroConst.ts +++ b/shared/consts/constModules/heroConst.ts @@ -40,6 +40,8 @@ export enum HERO_SYSTEM_TYPE { ARTIFACT_QUALITY = 37, // 宝物品质 ARTIFACT_TRANSFER = 38, // 宝物转换 ARTIFACT_REBUILD = 39, // 宝物重铸 + AUTHOR_BOOK_STAR = 40, // 诸子列传升星 + AUTHOR_BOOK_SUB_RESET = 41, // 诸子列传重置 }; // 武将上限 @@ -66,4 +68,10 @@ export const HERO_INITIAL_QUALITY = { UR: 4, } -export const CHECK_HERO_CONSUME = true; \ No newline at end of file +export const CHECK_HERO_CONSUME = true; + +// 诸子列传解锁条件 +export enum AUTHOR_BOOK_LIMIT_TYPE { + ALL = 1, // 所有的进度解锁 + ASSIGN = 2, // 指定的进度解锁 +} \ No newline at end of file diff --git a/shared/consts/constModules/itemConst.ts b/shared/consts/constModules/itemConst.ts index 32c038dbf..36d89b537 100644 --- a/shared/consts/constModules/itemConst.ts +++ b/shared/consts/constModules/itemConst.ts @@ -39,6 +39,7 @@ export const CONSUME_TYPE = { DRAWING: 17, // 图纸 VOUCHER: 18, // 代金券 ARTIFACT_GENERAL: 19, // 宝物通用 + SPIRIT_STONE: 20, // 灵石 }; export enum ROLE_TERAPH { @@ -155,6 +156,7 @@ const itid_array = [ { id: 64, name: '宝物', table: 'artifact' }, { id: 65, name: '宝物通用材料', table: 'item', type: CONSUME_TYPE.ARTIFACT_GENERAL }, { id: 66, name: '活动限时材料', table: 'activityItem' }, + { id: 67, name: '灵石', table: 'item', type: CONSUME_TYPE.SPIRIT_STONE }, ]; export const ITID = new Map(); diff --git a/shared/consts/constModules/selectConst.ts b/shared/consts/constModules/selectConst.ts index 72b0bc9f2..215e96b15 100644 --- a/shared/consts/constModules/selectConst.ts +++ b/shared/consts/constModules/selectConst.ts @@ -57,7 +57,7 @@ export enum FRIEND_SHIP_SELECT { GET_FRIEND_VALUE = 'friendValue friendLv' } -export const ENTERY_ROLE_PICK = ['roleId', 'roleName', 'serverId', 'ce', 'topLineupCe', 'coin', 'lv', 'exp', 'vLv', 'gold', 'heros', 'jewels', 'artifacts', 'consumeGoods', 'title', 'teraphs', 'showLineup', 'heads', 'head', 'frames', 'frame', 'spines', 'spine', 'hasGuild', 'guildCode', 'todayZeroPoint', 'apJson', 'skins', 'totalPay', 'guide', 'hasInit', 'renameCnt', 'totalCost', 'guildName', 'isVip', 'createTime', 'ipLocation', 'activityItems', 'customerLink', 'isClosePush', 'hasComment']; +export const ENTERY_ROLE_PICK = ['roleId', 'roleName', 'serverId', 'ce', 'topLineupCe', 'coin', 'lv', 'exp', 'vLv', 'gold', 'heros', 'jewels', 'artifacts', 'consumeGoods', 'title', 'teraphs', 'showLineup', 'heads', 'head', 'frames', 'frame', 'spines', 'spine', 'hasGuild', 'guildCode', 'todayZeroPoint', 'apJson', 'skins', 'totalPay', 'guide', 'hasInit', 'renameCnt', 'totalCost', 'guildName', 'isVip', 'createTime', 'ipLocation', 'activityItems', 'customerLink', 'isClosePush', 'hasComment', 'authorBook']; export enum SURVEY_SELECT { FIND = '-__v -_id -surveyName -roleIndex -reward -mailContent -receivedRole -createdAt -updatedAt' diff --git a/shared/consts/constModules/sysConst.ts b/shared/consts/constModules/sysConst.ts index 057cb9ae5..23cf9b1ce 100644 --- a/shared/consts/constModules/sysConst.ts +++ b/shared/consts/constModules/sysConst.ts @@ -646,6 +646,10 @@ export const FILENAME = { DIC_GK_GVGBATTLE: 'dic_zyz_gk_GVGBattle', DIC_GVG_VESTIGE_PLAYER_RANK: 'dic_zyz_GVGVestigePlayerRank', DIC_PUSH_MESSAGE: 'dic_zyz_pushMessage', + DIC_AUTHORS_BOOK: 'dic_zyz_authorsBook', + DIC_AUTHORS_BOOK_POINT: 'dic_zyz_authorsBookPoint', + DIC_AUTHORS_BOOK_SUB: 'dic_zyz_authorsBookSub', + DIC_AUTHORS_GOODID: 'dic_zyz_authorsGoodId', } export const WAR_RELATE_TABLES = [ @@ -1194,6 +1198,11 @@ export enum ITEM_CHANGE_REASON { ACT_DRAGON_BOAT_BUY_COST = 187, // 购买龙舟挑战奖励 ACT_ENTERTAIN = 188, // 宴请百家奖励 ACT_ENTERTAIN_BUY_COST = 189, // 宴请百家奖励花费 + AUTHOR_BOOK_STAR_UP = 190, // 诸子列传升星 + AUTHOR_BOOK_STAR_RETURN = 191, // 诸子列传升星并发返回 + AUTHOR_BOOK_SUB_RESET = 192, // 重置列传 + DECOMPOSE_SPIRIT = 193, // 分解英灵 + BUY_SPIRIT = 194, // 分解英灵 } export enum TA_EVENT { diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index cc3cc1223..324d57e5b 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -533,6 +533,10 @@ export const STATUS = { ROLE_SCHOOL_POSITION_UNLOCK_NOT_NEED: { code: 30605, simStr: '该位置已解锁' }, ROLE_SCROLL_REACH_MAX: { code: 30606, simStr: '已经升到可以升的最高等级' }, + // 诸子列传 30700-30701 + AUTHOR_BOOK_LOCK: { code: 30700, simStr: '诸子列传本篇解锁中' }, + AUTHOR_BOOK_SUB_MAX: { code: 30701, simStr: '诸子列传条目已达到最大星级' }, + // 好友30700-30799 FRIEND_MY_CNT_MAX: { code: 30700, simStr: '好友数量已达上限' }, FRIEND_THEY_CNT_MAX: { code: 30701, simStr: '玩家好友已满' }, diff --git a/shared/db/AuthorBook.ts b/shared/db/AuthorBook.ts new file mode 100644 index 000000000..31ee45e08 --- /dev/null +++ b/shared/db/AuthorBook.ts @@ -0,0 +1,59 @@ +import BaseModel from './BaseModel'; +import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose'; + +/** + * 诸子百家 +**/ + +class Author { + @prop({ required: true, default: 0 }) + subId: number; // 条目id + + @prop({ required: true, default: 0 }) + star: number; // 星级 +} + +@index({ roleId: 1, bookId: 1 }) + +export default class AuthorBook extends BaseModel { + @prop({ required: true, default: '' }) + roleId: string; // 举报人的 roleId + + @prop({ required: true, default: '' }) + bookId: number; // 列传id + + @prop({ required: true, default: '' }) + progress: number; // 进度 + + @prop({ required: true, default: [], type: Author, _id: false }) + authors: Author[]; + + public static async findByRoleId(roleId: string) { + let result: AuthorBookType[] = await AuthorBookModel.find({ roleId }).select('-_id -roleId').lean(); + return result; + } + + public static async findByBookId(roleId: string, bookId: number) { + let result: AuthorBookType = await AuthorBookModel.findOne({ roleId, bookId }).select('-_id').lean(); + return result; + } + + // 升星 + public static async upStar(roleId: string, bookId: number, subId: number, star: number, addProgress: number, initAuthors: number[]) { + await AuthorBookModel.findOneAndUpdate({ roleId, bookId }, { $setOnInsert: { progress: 0, authors: initAuthors.map(subId => ({ subId, star: 0 })) } }, { upsert: true }); + let result: AuthorBookType = await AuthorBookModel.findOneAndUpdate({ roleId, bookId, 'authors.subId': subId, 'authors.star': star }, { $inc: { progress: addProgress, 'authors.$.star': 1 } }, { new: true }).lean(); + return result; + } + + // 重置目录 + public static async resetSub(roleId: string, bookId: number, subId: number, oldStar: number, incProgress: number) { + let result: AuthorBookType = await AuthorBookModel.findOneAndUpdate({ roleId, bookId, 'authors.subId': subId, 'authors.star': oldStar }, { $set: {'authors.$.star': 0}, $inc: { progress: incProgress } }, { new: true }).lean(); + return result; + } + +} + +export const AuthorBookModel = getModelForClass(AuthorBook); + +export interface AuthorBookType extends Pick, keyof AuthorBook> { } +export type AuthorBookParam = Partial; diff --git a/shared/pubUtils/data.ts b/shared/pubUtils/data.ts index 151a7e889..f000c7016 100644 --- a/shared/pubUtils/data.ts +++ b/shared/pubUtils/data.ts @@ -136,6 +136,10 @@ import { DicGVGVestigePlayerRank, dicGVGVestigePlayerRank, loadGVGVestigePlayerR import { dicGVGAreaPoint, loadGVGAreaPoint, dicGVGPointsByAreaId } from "./dictionary/DicGVGAreaPoint"; import { DicGVGBattleRankReward, dicGVGBattleRankReward, loadGVGBattleRankReward } from './dictionary/DicGVGBattleRankReward'; import { dicPushMessage, loadPushMessage } from './dictionary/DicPushMessage'; +import { dicAuthorsBookGoodId, loadAuthorsBookGoodId } from "./dictionary/DicAuthorsBookGoodId"; +import { dicAuthorsBookMaxProgress, dicAuthorsBookSubs, dicAuthorsBookSubStar, loadAuthorsBookSub } from "./dictionary/DicAuthorsBookSub"; +import { dicAuthorsBookPoint, loadAuthorsBookPoint } from "./dictionary/DicAuthorsBookPoint"; +import { dicAuthorsBook, loadAuthorsBook } from './dictionary/DicAuthorsBook'; export const gameData = { daily: dicDaily, @@ -346,7 +350,13 @@ export const gameData = { gvgReviveGold: new Map(), dicPushMessage: dicPushMessage, guildQuitCd: new Array<{day: number, minute: number}>(), - trainIdByIndex: dicTrainIdByIndex + trainIdByIndex: dicTrainIdByIndex, + spirit: dicAuthorsBookGoodId, + authorBook: dicAuthorsBook, + authorBookSubStar: dicAuthorsBookSubStar, + authorBookSubs: dicAuthorsBookSubs, + authorBookPoint: dicAuthorsBookPoint, + authorBookMaxProgress: dicAuthorsBookMaxProgress }; // 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据 @@ -786,6 +796,10 @@ export function getRaceEventItems() { return items; } +export function getDicAuthorBookSub(bookId: number, subId: number, star: number) { + return gameData.authorBookSubStar.get(`${bookId}_${subId}_${star}`); +} + // export function getRaceEventItems(members: WoodenHorseMember[], items: { id: number, total: number, max: number }[]) { // let result = new Array(); // for (let { id, min, max } of items) { @@ -1645,6 +1659,14 @@ function loadDatas(type?: string) { loadGVGBattleRankReward(); if(type == undefined || type == 'loadPushMessage') loadPushMessage(); + if(type == undefined || type == 'loadAuthorsBookGoodId') + loadAuthorsBookGoodId(); + if(type == undefined || type == 'loadAuthorsBookSub') + loadAuthorsBookSub(); + if(type == undefined || type == 'loadAuthorsBookPoint') + loadAuthorsBookPoint(); + if(type == undefined || type == 'loadAuthorsBook') + loadAuthorsBook(); console.log('loadDatas type: ', type||'all'); } diff --git a/shared/pubUtils/dictionary/DicAuthorsBook.ts b/shared/pubUtils/dictionary/DicAuthorsBook.ts new file mode 100644 index 000000000..492c61f9f --- /dev/null +++ b/shared/pubUtils/dictionary/DicAuthorsBook.ts @@ -0,0 +1,46 @@ +// 列传内的条目 +import {decodeArrayListStr, readFileAndParse} from '../util' +import { FILENAME } from '../../consts' +const _ = require('lodash'); + +export interface DicAuthorsBook { + // 列传id + readonly id: number; + // 限制条件 + readonly limit: { type: number, bookId?: number, value: number }[]; +} + +type KeysEnum = { [P in keyof Required]: true }; +const DicAuthorsBookKeys: KeysEnum = { + id: true, + limit: true, +} + +export const dicAuthorsBook = new Map(); +export function loadAuthorsBook() { + dicAuthorsBook.clear(); + let arr = readFileAndParse(FILENAME.DIC_AUTHORS_BOOK); + + arr.forEach(o => { + o.limit = parseLimit(o.limit); + dicAuthorsBook.set(o.id, _.pick(o, Object.keys(DicAuthorsBookKeys))); + }); + arr = undefined; +} + +function parseLimit(str: string) { + let result: { type: number, bookId?: number, value: number }[] = []; + if (!str) return result; + let decodeArr = decodeArrayListStr(str); + for (let [ str1, str2, str3 ] of decodeArr) { + if (isNaN(parseInt(str1)) || isNaN(parseInt(str2)) || (str3 && isNaN(parseInt(str3)))) { + throw new Error('data table format wrong'); + } + if(str3) { + result.push({ type: parseInt(str1), bookId: parseInt(str2), value: parseInt(str3) }); + } else { + result.push({ type: parseInt(str1), value: parseInt(str2) }); + } + } + return result +} \ No newline at end of file diff --git a/shared/pubUtils/dictionary/DicAuthorsBookGoodId.ts b/shared/pubUtils/dictionary/DicAuthorsBookGoodId.ts new file mode 100644 index 000000000..59d020b87 --- /dev/null +++ b/shared/pubUtils/dictionary/DicAuthorsBookGoodId.ts @@ -0,0 +1,28 @@ +// 英灵对应的物品表 +import { parseGoodStr, readFileAndParse } from '../util' +import { FILENAME } from '../../consts' +import { RewardInter } from '../interface'; + +export interface DicAuthorsBookGoodId { + // id + readonly id: number; + // 对应物品表id + readonly goodId: number; + // 分解可得 + readonly decomposeItem: RewardInter[]; + // 英灵替换 + readonly composeItem: RewardInter[]; +} + +export const dicAuthorsBookGoodId = new Map(); +export function loadAuthorsBookGoodId() { + dicAuthorsBookGoodId.clear(); + let arr = readFileAndParse(FILENAME.DIC_AUTHORS_GOODID); + + arr.forEach(o => { + o.decomposeItem = parseGoodStr(o.decomposeItem); + o.composeItem = parseGoodStr(o.composeItem) + dicAuthorsBookGoodId.set(o.goodId, o); + }); + arr = undefined; +} diff --git a/shared/pubUtils/dictionary/DicAuthorsBookPoint.ts b/shared/pubUtils/dictionary/DicAuthorsBookPoint.ts new file mode 100644 index 000000000..d9cfa82af --- /dev/null +++ b/shared/pubUtils/dictionary/DicAuthorsBookPoint.ts @@ -0,0 +1,38 @@ +// 列传的进度节点 +import {decodeArrayListStr, readFileAndParse} from '../util' +import { FILENAME } from '../../consts' + +export interface DicAuthorsBookPoint { + // 列传 + readonly bookId: number; + // 进度节点 + readonly value: number; + // 到这个节点可得的属性 + readonly attr: { id: number, val: number }[] +} + +export const dicAuthorsBookPoint = new Map(); +export function loadAuthorsBookPoint() { + dicAuthorsBookPoint.clear(); + let arr = readFileAndParse(FILENAME.DIC_AUTHORS_BOOK_POINT); + + arr.forEach(o => { + o.attr = parseAttribute(o.attr); + if(!dicAuthorsBookPoint.has(o.id)) dicAuthorsBookPoint.set(o.id, []); + dicAuthorsBookPoint.get(o.id)?.push(o); + }); + arr = undefined; +} + +function parseAttribute(str: string) { + let result = new Array<{ id: number, val: number }>(); + if (!str) return result; + let decodeArr = decodeArrayListStr(str); + for (let [id, val] of decodeArr) { + if (isNaN(parseInt(id)) || isNaN(parseInt(val))) { + throw new Error('data table format wrong'); + } + result.push({ id: parseInt(id), val: parseInt(val) }); + } + return result +} diff --git a/shared/pubUtils/dictionary/DicAuthorsBookSub.ts b/shared/pubUtils/dictionary/DicAuthorsBookSub.ts new file mode 100644 index 000000000..dfcaf55cb --- /dev/null +++ b/shared/pubUtils/dictionary/DicAuthorsBookSub.ts @@ -0,0 +1,71 @@ +// 列传内的条目 +import {decodeArrayListStr, parseNumberList, readFileAndParse} from '../util' +import { FILENAME } from '../../consts' +import { RewardInter } from '../interface'; +const _ = require('lodash'); + +export interface DicAuthorsBookSub { + // 列传id + readonly bookId: number; + // 条目id + readonly subId: number; + // 星级 + readonly star: number; + // 星级 + readonly maxStar: number; + // 所需的英灵 + readonly spirits: RewardInter[]; + // 每升一颗星可以获得的进度 + readonly value: number; + // 到这个节点可得的属性 + readonly attr: { id: number, val: number }[] +} + +type KeysEnum = { [P in keyof Required]: true }; +const DicAuthorsBookSubKeys: KeysEnum = { + bookId: true, + subId: true, + star: true, + maxStar: true, + spirits: true, + value: true, + attr: true, +} + +export const dicAuthorsBookSubStar = new Map(); +export const dicAuthorsBookSubs = new Map(); +export const dicAuthorsBookMaxProgress = new Map(); // bookId => maxProgress +export function loadAuthorsBookSub() { + dicAuthorsBookSubStar.clear(); + dicAuthorsBookSubs.clear(); + dicAuthorsBookMaxProgress.clear(); + let arr = readFileAndParse(FILENAME.DIC_AUTHORS_BOOK_SUB); + arr.forEach(o => { + o.attr = parseAttribute(o.attr); + o.spirits = parseSpirit(o.goodsId); + dicAuthorsBookSubStar.set(`${o.bookId}_${o.subId}_${o.star}`, _.pick(o, Object.keys(DicAuthorsBookSubKeys))); + if(!dicAuthorsBookSubs.has(o.bookId)) dicAuthorsBookSubs.set(o.bookId, []); + if(dicAuthorsBookSubs.get(o.bookId).indexOf(o.subId) == -1) dicAuthorsBookSubs.get(o.bookId).push(o.subId); + if(!dicAuthorsBookMaxProgress.has(o.bookId)) dicAuthorsBookMaxProgress.set(o.bookId, 0); + dicAuthorsBookMaxProgress.set(o.bookId, dicAuthorsBookMaxProgress.get(o.bookId) + o.value); + }); + arr = undefined; +} + +function parseAttribute(str: string) { + let result = new Array<{ id: number, val: number }>(); + if (!str) return result; + let decodeArr = decodeArrayListStr(str); + for (let [id, val] of decodeArr) { + if (isNaN(parseInt(id)) || isNaN(parseInt(val))) { + throw new Error('data table format wrong'); + } + result.push({ id: parseInt(id), val: parseInt(val) }); + } + return result +} + +function parseSpirit(str: string): RewardInter[] { + let arr = parseNumberList(str); + return arr.map(id => ({ id, count: 1 })); +} diff --git a/shared/resource/jsons/dic_goods.json b/shared/resource/jsons/dic_goods.json index 25e5bee76..e408c5828 100644 --- a/shared/resource/jsons/dic_goods.json +++ b/shared/resource/jsons/dic_goods.json @@ -9383,6 +9383,30 @@ "activityType": 0, "info": "盛夏集会专属货币,可用于集会商铺中兑换商品。" }, + { + "good_id": 40020, + "name": "灵石", + "quality": 1, + "image_id": "lingshi", + "itid": 34, + "goodType": 8, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "英灵商店专用" + }, { "good_id": 41001, "name": "曹操-初始", @@ -11085,7 +11109,7 @@ "isShow": 0, "seasonNum": 3, "activityType": 0, - "info": "刘备第四赛季非技能皮肤" + "info": "昭烈辛苦事干戈,帝业兴隆俊杰多。隆中三顾再兴汉,楼桑树下大风歌。高祖在上,靖王在旁,不肖子孙刘备,今日再兴汉室!" }, { "good_id": 41122, @@ -11205,7 +11229,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "孙策皮肤" + "info": "霸略谁堪敌伯符,独战东南称霸王。 三千扫众横江去,十七成功自古无。孙家征服江东之路,便自此战开始,挡在面前的,只有臣服和毁灭。" }, { "good_id": 41134, @@ -11253,7 +11277,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "太史慈皮肤" + "info": "北海施恩有义名,神亭酣战惜雏英。站在江东的土地上,两位当世可数的猛将碰撞在小小的神亭之中,枪戟相撞,崩出无数热烈冲天的战意和豪情。" }, { "good_id": 41136, @@ -11397,7 +11421,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "&" + "info": "日轮当午蒸汗意,轻舞踏浪正欢迷。烈日炎炎,少女凭借自身轻巧的身法戏水踏浪,灵活穿梭于浪潮之中,好不快乐。" }, { "good_id": 41153, @@ -11517,7 +11541,7 @@ "isShow": 0, "seasonNum": 4, "activityType": 0, - "info": "第四赛季张飞技能皮" + "info": "“荆州初定,拜新亭侯,自命匠链赤朱山铁为一刀,铭曰新亭侯汉大将也。”此刀凛凛生威,有据水断桥之霸气,张飞南征北战长携左右,冲阵破军,唯靠此刀。" }, { "good_id": 41219, @@ -11613,7 +11637,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "&" + "info": "夏伏热浪艳阳烧,身轻衣薄入碧涛。骄阳似火,唯有躲入水中感受那难得的清凉,虽然不会游泳,但有墨家的漂浮之物也能纵情玩水啦。" }, { "good_id": 41078, @@ -21813,7 +21837,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张星彩专属宝物。" + "info": "武将张星彩专属宝物。由大师蒲元和左慈携手铸就的大盾,以星辰为体,用术法构建法阵减轻了重量,可以自由改变护盾大小,而不会影响自身行动。" }, { "good_id": 84202, @@ -21837,7 +21861,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张星彩专属宝物。" + "info": "武将张星彩专属宝物。由大师蒲元和左慈携手铸就的大盾,以星辰为体,用术法构建法阵减轻了重量,可以自由改变护盾大小,而不会影响自身行动。" }, { "good_id": 84203, @@ -21861,7 +21885,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张星彩专属宝物。" + "info": "武将张星彩专属宝物。由大师蒲元和左慈携手铸就的大盾,以星辰为体,用术法构建法阵减轻了重量,可以自由改变护盾大小,而不会影响自身行动。" }, { "good_id": 84204, @@ -21885,7 +21909,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张星彩专属宝物。" + "info": "武将张星彩专属宝物。由大师蒲元和左慈携手铸就的大盾,以星辰为体,用术法构建法阵减轻了重量,可以自由改变护盾大小,而不会影响自身行动。" }, { "good_id": 84205, @@ -21909,7 +21933,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张星彩专属宝物。" + "info": "武将张星彩专属宝物。由大师蒲元和左慈携手铸就的大盾,以星辰为体,用术法构建法阵减轻了重量,可以自由改变护盾大小,而不会影响自身行动。" }, { "good_id": 84206, @@ -21933,7 +21957,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张星彩专属宝物。" + "info": "武将张星彩专属宝物。由大师蒲元和左慈携手铸就的大盾,以星辰为体,用术法构建法阵减轻了重量,可以自由改变护盾大小,而不会影响自身行动。" }, { "good_id": 84207, @@ -21957,7 +21981,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张星彩专属宝物。" + "info": "武将张星彩专属宝物。由大师蒲元和左慈携手铸就的大盾,以星辰为体,用术法构建法阵减轻了重量,可以自由改变护盾大小,而不会影响自身行动。" }, { "good_id": 84208, @@ -21981,7 +22005,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张星彩专属宝物。" + "info": "武将张星彩专属宝物。由大师蒲元和左慈携手铸就的大盾,以星辰为体,用术法构建法阵减轻了重量,可以自由改变护盾大小,而不会影响自身行动。" }, { "good_id": 84301, @@ -22005,7 +22029,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张辽专属宝物。" + "info": "武将张飞专属宝物。乃是天下一等一的凶器,昔日逍遥津之上,张辽便持此兵,冲至孙权麾前。江东小儿见此而止啼。" }, { "good_id": 84302, @@ -22029,7 +22053,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张辽专属宝物。" + "info": "武将张飞专属宝物。乃是天下一等一的凶器,昔日逍遥津之上,张辽便持此兵,冲至孙权麾前。江东小儿见此而止啼。" }, { "good_id": 84303, @@ -22053,7 +22077,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张辽专属宝物。" + "info": "武将张飞专属宝物。乃是天下一等一的凶器,昔日逍遥津之上,张辽便持此兵,冲至孙权麾前。江东小儿见此而止啼。" }, { "good_id": 84304, @@ -22077,7 +22101,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张辽专属宝物。" + "info": "武将张飞专属宝物。乃是天下一等一的凶器,昔日逍遥津之上,张辽便持此兵,冲至孙权麾前。江东小儿见此而止啼。" }, { "good_id": 84305, @@ -22101,7 +22125,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张辽专属宝物。" + "info": "武将张飞专属宝物。乃是天下一等一的凶器,昔日逍遥津之上,张辽便持此兵,冲至孙权麾前。江东小儿见此而止啼。" }, { "good_id": 84306, @@ -22125,7 +22149,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张辽专属宝物。" + "info": "武将张飞专属宝物。乃是天下一等一的凶器,昔日逍遥津之上,张辽便持此兵,冲至孙权麾前。江东小儿见此而止啼。" }, { "good_id": 84307, @@ -22149,7 +22173,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张辽专属宝物。" + "info": "武将张飞专属宝物。乃是天下一等一的凶器,昔日逍遥津之上,张辽便持此兵,冲至孙权麾前。江东小儿见此而止啼。" }, { "good_id": 84308, @@ -22173,7 +22197,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张辽专属宝物。" + "info": "武将张飞专属宝物。乃是天下一等一的凶器,昔日逍遥津之上,张辽便持此兵,冲至孙权麾前。江东小儿见此而止啼。" }, { "good_id": 84401, @@ -22197,7 +22221,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张飞专属宝物。" + "info": "武将张飞专属宝物。矛尖如蛇,蜿蜒曲折,乃是张飞赖以冲阵之兵器,和方天戟、青龙刀一样,就此和人深深绑定在一起。" }, { "good_id": 84402, @@ -22221,7 +22245,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张飞专属宝物。" + "info": "武将张飞专属宝物。矛尖如蛇,蜿蜒曲折,乃是张飞赖以冲阵之兵器,和方天戟、青龙刀一样,就此和人深深绑定在一起。" }, { "good_id": 84403, @@ -22245,7 +22269,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张飞专属宝物。" + "info": "武将张飞专属宝物。矛尖如蛇,蜿蜒曲折,乃是张飞赖以冲阵之兵器,和方天戟、青龙刀一样,就此和人深深绑定在一起。" }, { "good_id": 84404, @@ -22269,7 +22293,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张飞专属宝物。" + "info": "武将张飞专属宝物。矛尖如蛇,蜿蜒曲折,乃是张飞赖以冲阵之兵器,和方天戟、青龙刀一样,就此和人深深绑定在一起。" }, { "good_id": 84405, @@ -22293,7 +22317,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张飞专属宝物。" + "info": "武将张飞专属宝物。矛尖如蛇,蜿蜒曲折,乃是张飞赖以冲阵之兵器,和方天戟、青龙刀一样,就此和人深深绑定在一起。" }, { "good_id": 84406, @@ -22317,7 +22341,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张飞专属宝物。" + "info": "武将张飞专属宝物。矛尖如蛇,蜿蜒曲折,乃是张飞赖以冲阵之兵器,和方天戟、青龙刀一样,就此和人深深绑定在一起。" }, { "good_id": 84407, @@ -22341,7 +22365,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张飞专属宝物。" + "info": "武将张飞专属宝物。矛尖如蛇,蜿蜒曲折,乃是张飞赖以冲阵之兵器,和方天戟、青龙刀一样,就此和人深深绑定在一起。" }, { "good_id": 84408, @@ -22365,7 +22389,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将张飞专属宝物。" + "info": "武将张飞专属宝物。矛尖如蛇,蜿蜒曲折,乃是张飞赖以冲阵之兵器,和方天戟、青龙刀一样,就此和人深深绑定在一起。" }, { "good_id": 84501, @@ -22389,7 +22413,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将太史慈专属宝物。" + "info": "武将太史慈专属宝物。通体有闪电流转,非选定之人不能使用。威烈赫赫,太史慈便依此兵而立不世之功。" }, { "good_id": 84502, @@ -22413,7 +22437,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将太史慈专属宝物。" + "info": "武将太史慈专属宝物。通体有闪电流转,非选定之人不能使用。威烈赫赫,太史慈便依此兵而立不世之功。" }, { "good_id": 84503, @@ -22437,7 +22461,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将太史慈专属宝物。" + "info": "武将太史慈专属宝物。通体有闪电流转,非选定之人不能使用。威烈赫赫,太史慈便依此兵而立不世之功。" }, { "good_id": 84504, @@ -22461,7 +22485,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将太史慈专属宝物。" + "info": "武将太史慈专属宝物。通体有闪电流转,非选定之人不能使用。威烈赫赫,太史慈便依此兵而立不世之功。" }, { "good_id": 84505, @@ -22485,7 +22509,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将太史慈专属宝物。" + "info": "武将太史慈专属宝物。通体有闪电流转,非选定之人不能使用。威烈赫赫,太史慈便依此兵而立不世之功。" }, { "good_id": 84506, @@ -22509,7 +22533,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将太史慈专属宝物。" + "info": "武将太史慈专属宝物。通体有闪电流转,非选定之人不能使用。威烈赫赫,太史慈便依此兵而立不世之功。" }, { "good_id": 84507, @@ -22533,7 +22557,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将太史慈专属宝物。" + "info": "武将太史慈专属宝物。通体有闪电流转,非选定之人不能使用。威烈赫赫,太史慈便依此兵而立不世之功。" }, { "good_id": 84508, @@ -22557,7 +22581,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将太史慈专属宝物。" + "info": "武将太史慈专属宝物。通体有闪电流转,非选定之人不能使用。威烈赫赫,太史慈便依此兵而立不世之功。" }, { "good_id": 84601, @@ -22581,7 +22605,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将大乔专属宝物。" + "info": "武将大乔专属宝物。精金所锻的软鞭上传来牡丹的香气,这条长鞭比起武器更像是巧夺天工的饰品,将主人的杀气都隐藏在了娇媚的花容之下。" }, { "good_id": 84602, @@ -22605,7 +22629,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将大乔专属宝物。" + "info": "武将大乔专属宝物。精金所锻的软鞭上传来牡丹的香气,这条长鞭比起武器更像是巧夺天工的饰品,将主人的杀气都隐藏在了娇媚的花容之下。" }, { "good_id": 84603, @@ -22629,7 +22653,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将大乔专属宝物。" + "info": "武将大乔专属宝物。精金所锻的软鞭上传来牡丹的香气,这条长鞭比起武器更像是巧夺天工的饰品,将主人的杀气都隐藏在了娇媚的花容之下。" }, { "good_id": 84604, @@ -22653,7 +22677,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将大乔专属宝物。" + "info": "武将大乔专属宝物。精金所锻的软鞭上传来牡丹的香气,这条长鞭比起武器更像是巧夺天工的饰品,将主人的杀气都隐藏在了娇媚的花容之下。" }, { "good_id": 84605, @@ -22677,7 +22701,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将大乔专属宝物。" + "info": "武将大乔专属宝物。精金所锻的软鞭上传来牡丹的香气,这条长鞭比起武器更像是巧夺天工的饰品,将主人的杀气都隐藏在了娇媚的花容之下。" }, { "good_id": 84606, @@ -22701,7 +22725,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将大乔专属宝物。" + "info": "武将大乔专属宝物。精金所锻的软鞭上传来牡丹的香气,这条长鞭比起武器更像是巧夺天工的饰品,将主人的杀气都隐藏在了娇媚的花容之下。" }, { "good_id": 84607, @@ -22725,7 +22749,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将大乔专属宝物。" + "info": "武将大乔专属宝物。精金所锻的软鞭上传来牡丹的香气,这条长鞭比起武器更像是巧夺天工的饰品,将主人的杀气都隐藏在了娇媚的花容之下。" }, { "good_id": 84608, @@ -22749,7 +22773,7 @@ "isShow": 0, "seasonNum": 0, "activityType": 0, - "info": "武将大乔专属宝物。" + "info": "武将大乔专属宝物。精金所锻的软鞭上传来牡丹的香气,这条长鞭比起武器更像是巧夺天工的饰品,将主人的杀气都隐藏在了娇媚的花容之下。" }, { "good_id": 100001, @@ -23086,5 +23110,1469 @@ "seasonNum": 0, "activityType": 0, "info": "mumu预约专属头像框" + }, + { + "good_id": 110001, + "name": "曹操英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "曹操英灵" + }, + { + "good_id": 110002, + "name": "夏侯惇英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "夏侯惇英灵" + }, + { + "good_id": 110003, + "name": "张辽英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "张辽英灵" + }, + { + "good_id": 110004, + "name": "夏侯渊英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "夏侯渊英灵" + }, + { + "good_id": 110005, + "name": "郭嘉英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "郭嘉英灵" + }, + { + "good_id": 110006, + "name": "典韦英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "典韦英灵" + }, + { + "good_id": 110007, + "name": "庞德英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "庞德英灵" + }, + { + "good_id": 110008, + "name": "徐晃英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "徐晃英灵" + }, + { + "good_id": 110009, + "name": "曹仁英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "曹仁英灵" + }, + { + "good_id": 110010, + "name": "李典英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "李典英灵" + }, + { + "good_id": 110011, + "name": "蔡琰英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "蔡琰英灵" + }, + { + "good_id": 110012, + "name": "贾诩英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "贾诩英灵" + }, + { + "good_id": 110013, + "name": "许褚英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "许褚英灵" + }, + { + "good_id": 110014, + "name": "乐进英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "乐进英灵" + }, + { + "good_id": 110015, + "name": "张飞英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "张飞英灵" + }, + { + "good_id": 110016, + "name": "关羽英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "关羽英灵" + }, + { + "good_id": 110017, + "name": "赵云英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "赵云英灵" + }, + { + "good_id": 110018, + "name": "刘备英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "刘备英灵" + }, + { + "good_id": 110019, + "name": "黄忠英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "黄忠英灵" + }, + { + "good_id": 110020, + "name": "诸葛亮英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "诸葛亮英灵" + }, + { + "good_id": 110021, + "name": "魏延英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "魏延英灵" + }, + { + "good_id": 110022, + "name": "陈到英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "陈到英灵" + }, + { + "good_id": 110023, + "name": "关银屏英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "关银屏英灵" + }, + { + "good_id": 110024, + "name": "马云禄英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "马云禄英灵" + }, + { + "good_id": 110025, + "name": "马良英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "马良英灵" + }, + { + "good_id": 110026, + "name": "张星彩英灵", + "quality": 4, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "张星彩英灵" + }, + { + "good_id": 110027, + "name": "王平英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "王平英灵" + }, + { + "good_id": 110028, + "name": "孙乾英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "孙乾英灵" + }, + { + "good_id": 110029, + "name": "周泰英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "周泰英灵" + }, + { + "good_id": 110030, + "name": "孙策英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "孙策英灵" + }, + { + "good_id": 110031, + "name": "周瑜英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "周瑜英灵" + }, + { + "good_id": 110032, + "name": "太史慈英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "太史慈英灵" + }, + { + "good_id": 110033, + "name": "孙权英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "孙权英灵" + }, + { + "good_id": 110034, + "name": "甘宁英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "甘宁英灵" + }, + { + "good_id": 110035, + "name": "孙尚香英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "孙尚香英灵" + }, + { + "good_id": 110036, + "name": "小乔英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "小乔英灵" + }, + { + "good_id": 110037, + "name": "大乔英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "大乔英灵" + }, + { + "good_id": 110038, + "name": "步练师英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "步练师英灵" + }, + { + "good_id": 110039, + "name": "吕布英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "吕布英灵" + }, + { + "good_id": 110040, + "name": "张任英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "张任英灵" + }, + { + "good_id": 110041, + "name": "华佗英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "华佗英灵" + }, + { + "good_id": 110042, + "name": "张角英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "张角英灵" + }, + { + "good_id": 110043, + "name": "高顺英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "高顺英灵" + }, + { + "good_id": 110044, + "name": "麹义英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "麹义英灵" + }, + { + "good_id": 110045, + "name": "李儒英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "李儒英灵" + }, + { + "good_id": 110046, + "name": "庞舞英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "庞舞英灵" + }, + { + "good_id": 110047, + "name": "夏侯轻衣英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "夏侯轻衣英灵" + }, + { + "good_id": 110048, + "name": "文丑英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "文丑英灵" + }, + { + "good_id": 110049, + "name": "颜良英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "颜良英灵" + }, + { + "good_id": 110050, + "name": "貂蝉英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "貂蝉英灵" + }, + { + "good_id": 110051, + "name": "王越英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "王越英灵" + }, + { + "good_id": 110052, + "name": "董卓英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "董卓英灵" + }, + { + "good_id": 110053, + "name": "童渊英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "童渊英灵" + }, + { + "good_id": 110054, + "name": "赵云英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "赵云英灵" + }, + { + "good_id": 110055, + "name": "夏侯轻衣英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "夏侯轻衣英灵" + }, + { + "good_id": 110056, + "name": "潘璋英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "潘璋英灵" + }, + { + "good_id": 110057, + "name": "凌统英灵", + "quality": 1, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "凌统英灵" + }, + { + "good_id": 110058, + "name": "黄盖英灵", + "quality": 2, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "黄盖英灵" + }, + { + "good_id": 110059, + "name": "陈宫英灵", + "quality": 3, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "陈宫英灵" + }, + { + "good_id": 110060, + "name": "马超英灵", + "quality": 4, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "马超英灵" + }, + { + "good_id": 110061, + "name": "阿丽雅英灵", + "quality": 4, + "image_id": 1, + "itid": 67, + "goodType": 17, + "urType": 0, + "redPoint": 0, + "decomposeItem": "&", + "hid": 0, + "getWays": "&", + "addGetWay": "&", + "useWays": "&", + "value": 0, + "condition": 0, + "timelimit": 0, + "gift": 0, + "randomShow": 0, + "isShow": 0, + "seasonNum": 0, + "activityType": 0, + "info": "阿丽雅英灵" } ] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_authorsBook.json b/shared/resource/jsons/dic_zyz_authorsBook.json new file mode 100644 index 000000000..56007046c --- /dev/null +++ b/shared/resource/jsons/dic_zyz_authorsBook.json @@ -0,0 +1,37 @@ +[ + { + "id": 1, + "name": "列传1", + "image": 1, + "limit": "&", + "pointArr": "1&2&3&4&5&6&7&8" + }, + { + "id": 2, + "name": "列传2", + "image": 2, + "limit": "&", + "pointArr": "9&10&11&12&13&14&15&16" + }, + { + "id": 3, + "name": "列传3", + "image": 3, + "limit": "1&500", + "pointArr": "17&18&19&20&21&22&23&24" + }, + { + "id": 4, + "name": "列传4", + "image": 4, + "limit": "2&3&800", + "pointArr": "25&26&27&28&29&30&31&32" + }, + { + "id": 5, + "name": "列传5", + "image": 5, + "limit": "2&4&500", + "pointArr": "33&34&35&36&37&38&39&40" + } +] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_authorsBookPoint.json b/shared/resource/jsons/dic_zyz_authorsBookPoint.json new file mode 100644 index 000000000..1a444c526 --- /dev/null +++ b/shared/resource/jsons/dic_zyz_authorsBookPoint.json @@ -0,0 +1,322 @@ +[ + { + "id": 1, + "name": "寂灭破斩1", + "image": "zu1_1", + "bookId": 1, + "value": 100, + "attr": "2&101|3&101" + }, + { + "id": 2, + "name": "寂灭破斩2", + "image": "zu1_2", + "bookId": 1, + "value": 200, + "attr": "2&102|3&102" + }, + { + "id": 3, + "name": "反戈一击1", + "image": "zu1_3", + "bookId": 1, + "value": 300, + "attr": "2&103" + }, + { + "id": 4, + "name": "反戈一击2", + "image": "zu1_4", + "bookId": 1, + "value": 400, + "attr": "2&104" + }, + { + "id": 5, + "name": "反戈一击3", + "image": "zu1_5", + "bookId": 1, + "value": 500, + "attr": "2&105" + }, + { + "id": 6, + "name": "固若金汤1", + "image": "zu1_6", + "bookId": 1, + "value": 600, + "attr": "2&106" + }, + { + "id": 7, + "name": "固若金汤2", + "image": "zu1_7", + "bookId": 1, + "value": 700, + "attr": "2&107" + }, + { + "id": 8, + "name": "喋血复仇", + "image": "zu1_8", + "bookId": 1, + "value": 1000, + "attr": "2&108" + }, + { + "id": 9, + "name": "破釜沉舟", + "image": "zu2_1", + "bookId": 2, + "value": 100, + "attr": "3&101" + }, + { + "id": 10, + "name": "风影突袭1", + "image": "zu2_2", + "bookId": 2, + "value": 200, + "attr": "3&102" + }, + { + "id": 11, + "name": "风影突袭2", + "image": "zu2_3", + "bookId": 2, + "value": 300, + "attr": "3&103" + }, + { + "id": 12, + "name": "奇兵突进1", + "image": "zu2_4", + "bookId": 2, + "value": 400, + "attr": "3&104" + }, + { + "id": 13, + "name": "奇兵突进2", + "image": "zu2_5", + "bookId": 2, + "value": 500, + "attr": "3&105" + }, + { + "id": 14, + "name": "贪狼之势1", + "image": "zu2_6", + "bookId": 2, + "value": 600, + "attr": "3&106" + }, + { + "id": 15, + "name": "贪狼之势2", + "image": "zu2_7", + "bookId": 2, + "value": 700, + "attr": "3&107" + }, + { + "id": 16, + "name": "贪狼之势3", + "image": "zu2_8", + "bookId": 2, + "value": 1000, + "attr": "3&108" + }, + { + "id": 17, + "name": "冲锋陷阵1", + "image": "zu3_1", + "bookId": 3, + "value": 100, + "attr": "1&1001" + }, + { + "id": 18, + "name": "冲锋陷阵2", + "image": "zu3_2", + "bookId": 3, + "value": 200, + "attr": "1&1002" + }, + { + "id": 19, + "name": "召虎之姿", + "image": "zu3_3", + "bookId": 3, + "value": 300, + "attr": "1&1003" + }, + { + "id": 20, + "name": "威震逍遥", + "image": "zu3_4", + "bookId": 3, + "value": 400, + "attr": "1&1004" + }, + { + "id": 21, + "name": "镇魂箭雨1", + "image": "zu3_5", + "bookId": 3, + "value": 500, + "attr": "1&1005" + }, + { + "id": 22, + "name": "镇魂箭雨2", + "image": "zu3_6", + "bookId": 3, + "value": 600, + "attr": "1&1006" + }, + { + "id": 23, + "name": "追命散射1", + "image": "zu3_7", + "bookId": 3, + "value": 700, + "attr": "1&1007" + }, + { + "id": 24, + "name": "追命散射2", + "image": "zu3_8", + "bookId": 3, + "value": 1000, + "attr": "1&1008" + }, + { + "id": 25, + "name": "飞骑弓射1", + "image": "zu4_1", + "bookId": 4, + "value": 100, + "attr": "2&11" + }, + { + "id": 26, + "name": "飞骑弓射2", + "image": "zu4_2", + "bookId": 4, + "value": 200, + "attr": "2&12" + }, + { + "id": 27, + "name": "飞骑弓射3", + "image": "zu4_3", + "bookId": 4, + "value": 300, + "attr": "2&13" + }, + { + "id": 28, + "name": "强弓劲弩1", + "image": "zu4_4", + "bookId": 4, + "value": 400, + "attr": "2&14" + }, + { + "id": 29, + "name": "强弓劲弩2", + "image": "zu4_5", + "bookId": 4, + "value": 500, + "attr": "2&15" + }, + { + "id": 30, + "name": "反曲长弓", + "image": "zu4_6", + "bookId": 4, + "value": 600, + "attr": "2&16" + }, + { + "id": 31, + "name": "千里夺魂", + "image": "zu4_7", + "bookId": 4, + "value": 700, + "attr": "2&17" + }, + { + "id": 32, + "name": "十胜天机1", + "image": "zu4_8", + "bookId": 4, + "value": 1000, + "attr": "2&18" + }, + { + "id": 33, + "name": "十胜天机2", + "image": "zu5_1", + "bookId": 5, + "value": 100, + "attr": "1&1001|2&500" + }, + { + "id": 34, + "name": "飞骑弓射3", + "image": "zu5_2", + "bookId": 5, + "value": 200, + "attr": "1&1002|2&500" + }, + { + "id": 35, + "name": "十面埋伏1", + "image": "zu5_3", + "bookId": 5, + "value": 300, + "attr": "1&1001|2&501" + }, + { + "id": 36, + "name": "十面埋伏2", + "image": "zu5_4", + "bookId": 5, + "value": 400, + "attr": "1&1002|2&501" + }, + { + "id": 37, + "name": "逆命风流1", + "image": "zu5_5", + "bookId": 5, + "value": 500, + "attr": "1&1001|2&502" + }, + { + "id": 38, + "name": "逆命风流2", + "image": "zu5_6", + "bookId": 5, + "value": 600, + "attr": "1&1002|2&502" + }, + { + "id": 39, + "name": "逆命风流3", + "image": "zu5_7", + "bookId": 5, + "value": 700, + "attr": "1&1001|2&503" + }, + { + "id": 40, + "name": "运筹帷幄1", + "image": "zu5_8", + "bookId": 5, + "value": 1000, + "attr": "1&1002|2&503" + } +] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_authorsBookSub.json b/shared/resource/jsons/dic_zyz_authorsBookSub.json new file mode 100644 index 000000000..f513b65aa --- /dev/null +++ b/shared/resource/jsons/dic_zyz_authorsBookSub.json @@ -0,0 +1,2222 @@ +[ + { + "id": 1, + "bookId": 1, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 1, + "goodsId": "110001&110002&110003&110026&110050", + "value": 1, + "attr": "1&100", + "attrType": "1&" + }, + { + "id": 2, + "bookId": 1, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 2, + "goodsId": "110002&110003&110004&110027&110051", + "value": 1, + "attr": "1&101", + "attrType": "1&" + }, + { + "id": 3, + "bookId": 1, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 3, + "goodsId": "110003&110004&110005&110028&110052", + "value": 1, + "attr": "1&102", + "attrType": "1&" + }, + { + "id": 4, + "bookId": 1, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 1, + "goodsId": "110004&110005&110006&110029&110053&110026", + "value": 2, + "attr": "1&103", + "attrType": "1&" + }, + { + "id": 5, + "bookId": 1, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 2, + "goodsId": "110005&110006&110007&110030&110054&110027", + "value": 2, + "attr": "1&104", + "attrType": "1&" + }, + { + "id": 6, + "bookId": 1, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 3, + "goodsId": "110006&110007&110008&110031&110055&110028", + "value": 2, + "attr": "1&105", + "attrType": "1&" + }, + { + "id": 7, + "bookId": 1, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 4, + "goodsId": "110007&110008&110009&110032&110056&110029", + "value": 2, + "attr": "1&106", + "attrType": "1&" + }, + { + "id": 8, + "bookId": 1, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 5, + "goodsId": "110008&110009&110010&110033&110057&110030", + "value": 2, + "attr": "1&107", + "attrType": "1&" + }, + { + "id": 9, + "bookId": 1, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 6, + "goodsId": "110009&110010&110011&110034&110058&110031", + "value": 2, + "attr": "1&108", + "attrType": "1&" + }, + { + "id": 10, + "bookId": 1, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 1, + "goodsId": "110010&110011&110012&110035&110059&110032", + "value": 2, + "attr": "1&109", + "attrType": "1&" + }, + { + "id": 11, + "bookId": 1, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 2, + "goodsId": "110011&110012&110013&110036&110060", + "value": 2, + "attr": "1&110", + "attrType": "1&" + }, + { + "id": 12, + "bookId": 1, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 3, + "goodsId": "110012&110013&110014&110037&110061", + "value": 2, + "attr": "1&111", + "attrType": "1&" + }, + { + "id": 13, + "bookId": 1, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 4, + "goodsId": "110013&110014&110015&110038", + "value": 2, + "attr": "2&100", + "attrType": "2&" + }, + { + "id": 14, + "bookId": 1, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 5, + "goodsId": "110014&110015&110016&110039", + "value": 2, + "attr": "2&101", + "attrType": "2&" + }, + { + "id": 15, + "bookId": 1, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 1, + "goodsId": "110015&110016&110017&110040", + "value": 4, + "attr": "2&102", + "attrType": "2&" + }, + { + "id": 16, + "bookId": 1, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 2, + "goodsId": "110016&110017&110018&110041", + "value": 4, + "attr": "2&103", + "attrType": "2&" + }, + { + "id": 17, + "bookId": 1, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 3, + "goodsId": "110017&110018&110019&110042", + "value": 4, + "attr": "2&104", + "attrType": "2&" + }, + { + "id": 18, + "bookId": 1, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 4, + "goodsId": "110018&110019&110020&110043", + "value": 4, + "attr": "2&105", + "attrType": "2&" + }, + { + "id": 19, + "bookId": 1, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 5, + "goodsId": "110019&110020&110021&110044", + "value": 4, + "attr": "2&106", + "attrType": "2&" + }, + { + "id": 20, + "bookId": 1, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 6, + "goodsId": "110020&110021&110022&110045", + "value": 4, + "attr": "2&107", + "attrType": "2&" + }, + { + "id": 21, + "bookId": 1, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 1, + "goodsId": "110021&110022&110023&110046", + "value": 5, + "attr": "2&108", + "attrType": "2&" + }, + { + "id": 22, + "bookId": 1, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 2, + "goodsId": "110022&110023&110024&110047", + "value": 5, + "attr": "2&109", + "attrType": "2&" + }, + { + "id": 23, + "bookId": 1, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 3, + "goodsId": "110023&110024&110025&110048", + "value": 5, + "attr": "2&110", + "attrType": "2&" + }, + { + "id": 24, + "bookId": 1, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 1, + "goodsId": "110024&110025&&110049", + "value": 3, + "attr": "2&111", + "attrType": "2&" + }, + { + "id": 25, + "bookId": 1, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 2, + "goodsId": "110025&", + "value": 3, + "attr": "2&112", + "attrType": "2&" + }, + { + "id": 26, + "bookId": 1, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 3, + "goodsId": "110026&", + "value": 3, + "attr": "2&113", + "attrType": "2&" + }, + { + "id": 27, + "bookId": 1, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 4, + "goodsId": "110027&", + "value": 3, + "attr": "2&114", + "attrType": "2&" + }, + { + "id": 28, + "bookId": 1, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 1, + "goodsId": "110028&", + "value": 1, + "attr": "2&115", + "attrType": "2&" + }, + { + "id": 29, + "bookId": 1, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 2, + "goodsId": "110029&", + "value": 1, + "attr": "2&116", + "attrType": "2&" + }, + { + "id": 30, + "bookId": 1, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 3, + "goodsId": "110030&", + "value": 1, + "attr": "1&100|2&100", + "attrType": "1&2&" + }, + { + "id": 31, + "bookId": 1, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 4, + "goodsId": "110031&", + "value": 1, + "attr": "1&100|2&101", + "attrType": "1&2&" + }, + { + "id": 32, + "bookId": 1, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 5, + "goodsId": "110032&", + "value": 1, + "attr": "1&100|2&102", + "attrType": "1&2&" + }, + { + "id": 33, + "bookId": 1, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 6, + "goodsId": "110033&", + "value": 1, + "attr": "1&100|2&103", + "attrType": "1&2&" + }, + { + "id": 34, + "bookId": 1, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 1, + "goodsId": "110034&", + "value": 2, + "attr": "1&100|2&104", + "attrType": "1&2&" + }, + { + "id": 35, + "bookId": 1, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 2, + "goodsId": "110035&", + "value": 2, + "attr": "1&100|2&105", + "attrType": "1&2&" + }, + { + "id": 36, + "bookId": 1, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 3, + "goodsId": "110036&", + "value": 2, + "attr": "1&100|2&106", + "attrType": "1&2&" + }, + { + "id": 37, + "bookId": 1, + "subId": 9, + "name": "焚书坑儒", + "maxStar": 1, + "star": 1, + "goodsId": "110037&", + "value": 5, + "attr": "1&100|2&107", + "attrType": "1&2&" + }, + { + "id": 38, + "bookId": 2, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 1, + "goodsId": "110038&", + "value": 2, + "attr": "1&100|2&108", + "attrType": "1&2&" + }, + { + "id": 39, + "bookId": 2, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 2, + "goodsId": "110039&", + "value": 2, + "attr": "1&100|2&109", + "attrType": "1&2&" + }, + { + "id": 40, + "bookId": 2, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 3, + "goodsId": "110040&", + "value": 2, + "attr": "1&100|2&110", + "attrType": "1&2&" + }, + { + "id": 41, + "bookId": 2, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 1, + "goodsId": "110041&", + "value": 2, + "attr": "1&100|2&111", + "attrType": "1&2&" + }, + { + "id": 42, + "bookId": 2, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 2, + "goodsId": "110042&", + "value": 2, + "attr": "1&100|2&112", + "attrType": "1&2&" + }, + { + "id": 43, + "bookId": 2, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 3, + "goodsId": "110043&", + "value": 2, + "attr": "1&100|2&113", + "attrType": "1&2&" + }, + { + "id": 44, + "bookId": 2, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 4, + "goodsId": "110044&", + "value": 2, + "attr": "1&100|2&114", + "attrType": "1&2&" + }, + { + "id": 45, + "bookId": 2, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 5, + "goodsId": "110045&", + "value": 2, + "attr": "1&100|2&115", + "attrType": "1&2&" + }, + { + "id": 46, + "bookId": 2, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 6, + "goodsId": "110046&", + "value": 2, + "attr": "1&100|2&116", + "attrType": "1&2&" + }, + { + "id": 47, + "bookId": 2, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 1, + "goodsId": "110047&", + "value": 2, + "attr": "1&100|2&117", + "attrType": "1&2&" + }, + { + "id": 48, + "bookId": 2, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 2, + "goodsId": "110048&", + "value": 2, + "attr": "1&100|2&118", + "attrType": "1&2&" + }, + { + "id": 49, + "bookId": 2, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 3, + "goodsId": "110049&110050", + "value": 2, + "attr": "1&100|2&119", + "attrType": "1&2&" + }, + { + "id": 50, + "bookId": 2, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 4, + "goodsId": "110050&110051", + "value": 2, + "attr": "1&100|2&120", + "attrType": "1&2&" + }, + { + "id": 51, + "bookId": 2, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 5, + "goodsId": "110051&110052", + "value": 2, + "attr": "1&100|2&121", + "attrType": "1&2&" + }, + { + "id": 52, + "bookId": 2, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 1, + "goodsId": "110052&110053", + "value": 4, + "attr": "1&100|2&122", + "attrType": "1&2&" + }, + { + "id": 53, + "bookId": 2, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 2, + "goodsId": "110053&110054", + "value": 4, + "attr": "1&100|2&123", + "attrType": "1&2&" + }, + { + "id": 54, + "bookId": 2, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 3, + "goodsId": "110054&110055", + "value": 4, + "attr": "1&100|2&124", + "attrType": "1&2&" + }, + { + "id": 55, + "bookId": 2, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 4, + "goodsId": "110055&110056", + "value": 4, + "attr": "1&100|2&125", + "attrType": "1&2&" + }, + { + "id": 56, + "bookId": 2, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 5, + "goodsId": "110056&110057", + "value": 4, + "attr": "1&100|2&126", + "attrType": "1&2&" + }, + { + "id": 57, + "bookId": 2, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 6, + "goodsId": "110057&110058", + "value": 4, + "attr": "1&100|2&127", + "attrType": "1&2&" + }, + { + "id": 58, + "bookId": 2, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 1, + "goodsId": "110058&110059", + "value": 5, + "attr": "1&100|2&128", + "attrType": "1&2&" + }, + { + "id": 59, + "bookId": 2, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 2, + "goodsId": "110059&110060", + "value": 5, + "attr": "1&100|2&129", + "attrType": "1&2&" + }, + { + "id": 60, + "bookId": 2, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 3, + "goodsId": "110060&110061", + "value": 5, + "attr": "1&100|2&130", + "attrType": "1&2&" + }, + { + "id": 61, + "bookId": 2, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 1, + "goodsId": "110061&", + "value": 3, + "attr": "1&100|2&131", + "attrType": "1&2&" + }, + { + "id": 62, + "bookId": 2, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 2, + "goodsId": "110001&110002&110003&110026&110050", + "value": 3, + "attr": "1&100|2&132", + "attrType": "1&2&" + }, + { + "id": 63, + "bookId": 2, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 3, + "goodsId": "110002&110003&110004&110027&110051", + "value": 3, + "attr": "1&100|2&133", + "attrType": "1&2&" + }, + { + "id": 64, + "bookId": 2, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 4, + "goodsId": "110003&110004&110005&110028&110052", + "value": 3, + "attr": "1&100|2&134", + "attrType": "1&2&" + }, + { + "id": 65, + "bookId": 2, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 1, + "goodsId": "110004&110005&110006&110029&110053&110026", + "value": 1, + "attr": "1&100|2&135", + "attrType": "1&2&" + }, + { + "id": 66, + "bookId": 2, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 2, + "goodsId": "110005&110006&110007&110030&110054&110027", + "value": 1, + "attr": "1&100|2&136", + "attrType": "1&2&" + }, + { + "id": 67, + "bookId": 2, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 3, + "goodsId": "110006&110007&110008&110031&110055&110028", + "value": 1, + "attr": "1&100|2&137", + "attrType": "1&2&" + }, + { + "id": 68, + "bookId": 2, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 4, + "goodsId": "110007&110008&110009&110032&110056&110029", + "value": 1, + "attr": "1&100|2&138", + "attrType": "1&2&" + }, + { + "id": 69, + "bookId": 2, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 5, + "goodsId": "110008&110009&110010&110033&110057&110030", + "value": 1, + "attr": "1&100|2&139", + "attrType": "1&2&" + }, + { + "id": 70, + "bookId": 2, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 6, + "goodsId": "110009&110010&110011&110034&110058&110031", + "value": 1, + "attr": "1&100|2&140", + "attrType": "1&2&" + }, + { + "id": 71, + "bookId": 2, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 1, + "goodsId": "110010&110011&110012&110035&110059&110032", + "value": 2, + "attr": "1&100|2&141", + "attrType": "1&2&" + }, + { + "id": 72, + "bookId": 2, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 2, + "goodsId": "110011&110012&110013&110036&110060", + "value": 2, + "attr": "1&100|2&142", + "attrType": "1&2&" + }, + { + "id": 73, + "bookId": 2, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 3, + "goodsId": "110012&110013&110014&110037&110061", + "value": 2, + "attr": "1&100|2&143", + "attrType": "1&2&" + }, + { + "id": 74, + "bookId": 2, + "subId": 9, + "name": "焚书坑儒", + "maxStar": 1, + "star": 1, + "goodsId": "110013&110014&110015&110038", + "value": 5, + "attr": "1&100|2&144", + "attrType": "1&2&" + }, + { + "id": 75, + "bookId": 3, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 1, + "goodsId": "110014&110015&110016&110039", + "value": 3, + "attr": "1&100|2&145", + "attrType": "1&2&" + }, + { + "id": 76, + "bookId": 3, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 2, + "goodsId": "110015&110016&110017&110040", + "value": 3, + "attr": "1&100|2&146", + "attrType": "1&2&" + }, + { + "id": 77, + "bookId": 3, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 3, + "goodsId": "110016&110017&110018&110041", + "value": 3, + "attr": "1&100|2&147", + "attrType": "1&2&" + }, + { + "id": 78, + "bookId": 3, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 1, + "goodsId": "110017&110018&110019&110042", + "value": 2, + "attr": "1&100|2&148", + "attrType": "1&2&" + }, + { + "id": 79, + "bookId": 3, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 2, + "goodsId": "110018&110019&110020&110043", + "value": 2, + "attr": "1&100|2&149", + "attrType": "1&2&" + }, + { + "id": 80, + "bookId": 3, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 3, + "goodsId": "110019&110020&110021&110044", + "value": 2, + "attr": "1&100|2&150", + "attrType": "1&2&" + }, + { + "id": 81, + "bookId": 3, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 4, + "goodsId": "110020&110021&110022&110045", + "value": 2, + "attr": "1&100|2&151", + "attrType": "1&2&" + }, + { + "id": 82, + "bookId": 3, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 5, + "goodsId": "110021&110022&110023&110046", + "value": 2, + "attr": "1&100|2&152", + "attrType": "1&2&" + }, + { + "id": 83, + "bookId": 3, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 6, + "goodsId": "110022&110023&110024&110047", + "value": 2, + "attr": "1&100|2&153", + "attrType": "1&2&" + }, + { + "id": 84, + "bookId": 3, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 1, + "goodsId": "110023&110024&110025&110048", + "value": 2, + "attr": "1&100|2&154", + "attrType": "1&2&" + }, + { + "id": 85, + "bookId": 3, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 2, + "goodsId": "110024&110025&&110049", + "value": 2, + "attr": "1&100|2&155", + "attrType": "1&2&" + }, + { + "id": 86, + "bookId": 3, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 3, + "goodsId": "110025&", + "value": 2, + "attr": "1&100|2&156", + "attrType": "1&2&" + }, + { + "id": 87, + "bookId": 3, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 4, + "goodsId": "110026&", + "value": 2, + "attr": "1&100|2&157", + "attrType": "1&2&" + }, + { + "id": 88, + "bookId": 3, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 5, + "goodsId": "110027&", + "value": 2, + "attr": "1&100|2&158", + "attrType": "1&2&" + }, + { + "id": 89, + "bookId": 3, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 1, + "goodsId": "110028&", + "value": 4, + "attr": "1&100|2&159", + "attrType": "1&2&" + }, + { + "id": 90, + "bookId": 3, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 2, + "goodsId": "110029&", + "value": 4, + "attr": "1&100|2&160", + "attrType": "1&2&" + }, + { + "id": 91, + "bookId": 3, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 3, + "goodsId": "110030&", + "value": 4, + "attr": "1&100|2&161", + "attrType": "1&2&" + }, + { + "id": 92, + "bookId": 3, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 4, + "goodsId": "110031&", + "value": 4, + "attr": "1&100|2&162", + "attrType": "1&2&" + }, + { + "id": 93, + "bookId": 3, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 5, + "goodsId": "110032&", + "value": 4, + "attr": "1&100|2&163", + "attrType": "1&2&" + }, + { + "id": 94, + "bookId": 3, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 6, + "goodsId": "110033&", + "value": 4, + "attr": "1&100|2&164", + "attrType": "1&2&" + }, + { + "id": 95, + "bookId": 3, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 1, + "goodsId": "110034&", + "value": 5, + "attr": "1&100|2&165", + "attrType": "1&2&" + }, + { + "id": 96, + "bookId": 3, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 2, + "goodsId": "110035&", + "value": 5, + "attr": "1&100|2&166", + "attrType": "1&2&" + }, + { + "id": 97, + "bookId": 3, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 3, + "goodsId": "110036&", + "value": 5, + "attr": "1&100|2&167", + "attrType": "1&2&" + }, + { + "id": 98, + "bookId": 3, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 1, + "goodsId": "110037&", + "value": 3, + "attr": "1&100|2&168", + "attrType": "1&2&" + }, + { + "id": 99, + "bookId": 3, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 2, + "goodsId": "110038&", + "value": 3, + "attr": "1&100|2&169", + "attrType": "1&2&" + }, + { + "id": 100, + "bookId": 3, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 3, + "goodsId": "110039&", + "value": 3, + "attr": "1&100|2&170", + "attrType": "1&2&" + }, + { + "id": 101, + "bookId": 3, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 4, + "goodsId": "110040&", + "value": 3, + "attr": "1&100|2&171", + "attrType": "1&2&" + }, + { + "id": 102, + "bookId": 3, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 1, + "goodsId": "110041&", + "value": 1, + "attr": "1&100|2&172", + "attrType": "1&2&" + }, + { + "id": 103, + "bookId": 3, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 2, + "goodsId": "110042&", + "value": 1, + "attr": "1&100|2&173", + "attrType": "1&2&" + }, + { + "id": 104, + "bookId": 3, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 3, + "goodsId": "110043&", + "value": 1, + "attr": "1&100|2&174", + "attrType": "1&2&" + }, + { + "id": 105, + "bookId": 3, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 4, + "goodsId": "110044&", + "value": 1, + "attr": "1&100|2&175", + "attrType": "1&2&" + }, + { + "id": 106, + "bookId": 3, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 5, + "goodsId": "110045&", + "value": 1, + "attr": "1&100|2&176", + "attrType": "1&2&" + }, + { + "id": 107, + "bookId": 3, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 6, + "goodsId": "110046&", + "value": 1, + "attr": "1&100|2&177", + "attrType": "1&2&" + }, + { + "id": 108, + "bookId": 3, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 1, + "goodsId": "110047&", + "value": 2, + "attr": "1&100|2&178", + "attrType": "1&2&" + }, + { + "id": 109, + "bookId": 3, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 2, + "goodsId": "110048&", + "value": 2, + "attr": "1&100|2&179", + "attrType": "1&2&" + }, + { + "id": 110, + "bookId": 3, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 3, + "goodsId": "110049&110050", + "value": 2, + "attr": "1&100|2&180", + "attrType": "1&2&" + }, + { + "id": 111, + "bookId": 3, + "subId": 9, + "name": "焚书坑儒", + "maxStar": 1, + "star": 1, + "goodsId": "110050&110051", + "value": 5, + "attr": "1&100|2&181", + "attrType": "1&2&" + }, + { + "id": 112, + "bookId": 4, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 1, + "goodsId": "110051&110052", + "value": 4, + "attr": "1&100|2&182", + "attrType": "1&2&" + }, + { + "id": 113, + "bookId": 4, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 2, + "goodsId": "110052&110053", + "value": 4, + "attr": "1&100|2&183", + "attrType": "1&2&" + }, + { + "id": 114, + "bookId": 4, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 3, + "goodsId": "110053&110054", + "value": 4, + "attr": "1&100|2&184", + "attrType": "1&2&" + }, + { + "id": 115, + "bookId": 4, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 1, + "goodsId": "110054&110055", + "value": 2, + "attr": "1&100|2&185", + "attrType": "1&2&" + }, + { + "id": 116, + "bookId": 4, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 2, + "goodsId": "110055&110056", + "value": 2, + "attr": "1&100|2&186", + "attrType": "1&2&" + }, + { + "id": 117, + "bookId": 4, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 3, + "goodsId": "110056&110057", + "value": 2, + "attr": "1&100|2&187", + "attrType": "1&2&" + }, + { + "id": 118, + "bookId": 4, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 4, + "goodsId": "110057&110058", + "value": 2, + "attr": "1&100|2&188", + "attrType": "1&2&" + }, + { + "id": 119, + "bookId": 4, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 5, + "goodsId": "110058&110059", + "value": 2, + "attr": "1&100|2&189", + "attrType": "1&2&" + }, + { + "id": 120, + "bookId": 4, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 6, + "goodsId": "110059&110060", + "value": 2, + "attr": "1&100|2&190", + "attrType": "1&2&" + }, + { + "id": 121, + "bookId": 4, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 1, + "goodsId": "110060&110061", + "value": 2, + "attr": "1&100|2&191", + "attrType": "1&2&" + }, + { + "id": 122, + "bookId": 4, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 2, + "goodsId": "110061&", + "value": 2, + "attr": "1&100|2&192", + "attrType": "1&2&" + }, + { + "id": 123, + "bookId": 4, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 3, + "goodsId": "110001&110002&110003&110026&110050", + "value": 2, + "attr": "1&100|2&193", + "attrType": "1&2&" + }, + { + "id": 124, + "bookId": 4, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 4, + "goodsId": "110002&110003&110004&110027&110051", + "value": 2, + "attr": "1&100|2&194", + "attrType": "1&2&" + }, + { + "id": 125, + "bookId": 4, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 5, + "goodsId": "110003&110004&110005&110028&110052", + "value": 2, + "attr": "1&100|2&195", + "attrType": "1&2&" + }, + { + "id": 126, + "bookId": 4, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 1, + "goodsId": "110004&110005&110006&110029&110053&110026", + "value": 4, + "attr": "1&100|2&196", + "attrType": "1&2&" + }, + { + "id": 127, + "bookId": 4, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 2, + "goodsId": "110005&110006&110007&110030&110054&110027", + "value": 4, + "attr": "1&100|2&197", + "attrType": "1&2&" + }, + { + "id": 128, + "bookId": 4, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 3, + "goodsId": "110006&110007&110008&110031&110055&110028", + "value": 4, + "attr": "1&100|2&198", + "attrType": "1&2&" + }, + { + "id": 129, + "bookId": 4, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 4, + "goodsId": "110007&110008&110009&110032&110056&110029", + "value": 4, + "attr": "1&100|2&199", + "attrType": "1&2&" + }, + { + "id": 130, + "bookId": 4, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 5, + "goodsId": "110008&110009&110010&110033&110057&110030", + "value": 4, + "attr": "1&100|2&200", + "attrType": "1&2&" + }, + { + "id": 131, + "bookId": 4, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 6, + "goodsId": "110009&110010&110011&110034&110058&110031", + "value": 4, + "attr": "1&100|2&201", + "attrType": "1&2&" + }, + { + "id": 132, + "bookId": 4, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 1, + "goodsId": "110010&110011&110012&110035&110059&110032", + "value": 5, + "attr": "1&100|2&202", + "attrType": "1&2&" + }, + { + "id": 133, + "bookId": 4, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 2, + "goodsId": "110011&110012&110013&110036&110060", + "value": 5, + "attr": "4&100", + "attrType": "4&" + }, + { + "id": 134, + "bookId": 4, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 3, + "goodsId": "110012&110013&110014&110037&110061", + "value": 5, + "attr": "4&101", + "attrType": "4&" + }, + { + "id": 135, + "bookId": 4, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 1, + "goodsId": "110013&110014&110015&110038", + "value": 3, + "attr": "4&102", + "attrType": "4&" + }, + { + "id": 136, + "bookId": 4, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 2, + "goodsId": "110014&110015&110016&110039", + "value": 3, + "attr": "4&103", + "attrType": "4&" + }, + { + "id": 137, + "bookId": 4, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 3, + "goodsId": "110015&110016&110017&110040", + "value": 3, + "attr": "4&104", + "attrType": "4&" + }, + { + "id": 138, + "bookId": 4, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 4, + "goodsId": "110016&110017&110018&110041", + "value": 3, + "attr": "4&105", + "attrType": "4&" + }, + { + "id": 139, + "bookId": 4, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 1, + "goodsId": "110017&110018&110019&110042", + "value": 1, + "attr": "4&106", + "attrType": "4&" + }, + { + "id": 140, + "bookId": 4, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 2, + "goodsId": "110018&110019&110020&110043", + "value": 1, + "attr": "4&107", + "attrType": "4&" + }, + { + "id": 141, + "bookId": 4, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 3, + "goodsId": "110019&110020&110021&110044", + "value": 1, + "attr": "4&108", + "attrType": "4&" + }, + { + "id": 142, + "bookId": 4, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 4, + "goodsId": "110020&110021&110022&110045", + "value": 1, + "attr": "4&109", + "attrType": "4&" + }, + { + "id": 143, + "bookId": 4, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 5, + "goodsId": "110021&110022&110023&110046", + "value": 1, + "attr": "4&110", + "attrType": "4&" + }, + { + "id": 144, + "bookId": 4, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 6, + "goodsId": "110022&110023&110024&110047", + "value": 1, + "attr": "4&111", + "attrType": "4&" + }, + { + "id": 145, + "bookId": 4, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 1, + "goodsId": "110023&110024&110025&110048", + "value": 2, + "attr": "4&112", + "attrType": "4&" + }, + { + "id": 146, + "bookId": 4, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 2, + "goodsId": "110024&110025&&110049", + "value": 2, + "attr": "4&113", + "attrType": "4&" + }, + { + "id": 147, + "bookId": 4, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 3, + "goodsId": "110025&", + "value": 2, + "attr": "4&114", + "attrType": "4&" + }, + { + "id": 148, + "bookId": 4, + "subId": 9, + "name": "焚书坑儒", + "maxStar": 1, + "star": 1, + "goodsId": "110026&", + "value": 5, + "attr": "4&115", + "attrType": "4&" + }, + { + "id": 149, + "bookId": 5, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 1, + "goodsId": "110027&", + "value": 5, + "attr": "4&116", + "attrType": "4&" + }, + { + "id": 150, + "bookId": 5, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 2, + "goodsId": "110028&", + "value": 5, + "attr": "4&117", + "attrType": "4&" + }, + { + "id": 151, + "bookId": 5, + "subId": 1, + "name": "完璧归赵", + "maxStar": 3, + "star": 3, + "goodsId": "110029&", + "value": 5, + "attr": "4&118", + "attrType": "4&" + }, + { + "id": 152, + "bookId": 5, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 1, + "goodsId": "110030&", + "value": 2, + "attr": "4&119", + "attrType": "4&" + }, + { + "id": 153, + "bookId": 5, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 2, + "goodsId": "110031&", + "value": 2, + "attr": "4&120", + "attrType": "4&" + }, + { + "id": 154, + "bookId": 5, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 3, + "goodsId": "110032&", + "value": 2, + "attr": "4&121", + "attrType": "4&" + }, + { + "id": 155, + "bookId": 5, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 4, + "goodsId": "110033&", + "value": 2, + "attr": "4&122", + "attrType": "4&" + }, + { + "id": 156, + "bookId": 5, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 5, + "goodsId": "110034&", + "value": 2, + "attr": "4&123", + "attrType": "4&" + }, + { + "id": 157, + "bookId": 5, + "subId": 2, + "name": "退避三舍", + "maxStar": 6, + "star": 6, + "goodsId": "110035&", + "value": 2, + "attr": "4&124", + "attrType": "4&" + }, + { + "id": 158, + "bookId": 5, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 1, + "goodsId": "110036&", + "value": 2, + "attr": "4&125", + "attrType": "4&" + }, + { + "id": 159, + "bookId": 5, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 2, + "goodsId": "110037&", + "value": 2, + "attr": "4&126", + "attrType": "4&" + }, + { + "id": 160, + "bookId": 5, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 3, + "goodsId": "110038&", + "value": 2, + "attr": "4&127", + "attrType": "4&" + }, + { + "id": 161, + "bookId": 5, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 4, + "goodsId": "110039&", + "value": 2, + "attr": "4&128", + "attrType": "4&" + }, + { + "id": 162, + "bookId": 5, + "subId": 3, + "name": "毛遂自荐", + "maxStar": 5, + "star": 5, + "goodsId": "110040&", + "value": 2, + "attr": "4&129", + "attrType": "4&" + }, + { + "id": 163, + "bookId": 5, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 1, + "goodsId": "110041&", + "value": 4, + "attr": "4&130", + "attrType": "4&" + }, + { + "id": 164, + "bookId": 5, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 2, + "goodsId": "110042&", + "value": 4, + "attr": "4&131", + "attrType": "4&" + }, + { + "id": 165, + "bookId": 5, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 3, + "goodsId": "110043&", + "value": 4, + "attr": "4&132", + "attrType": "4&" + }, + { + "id": 166, + "bookId": 5, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 4, + "goodsId": "110044&", + "value": 4, + "attr": "4&133", + "attrType": "4&" + }, + { + "id": 167, + "bookId": 5, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 5, + "goodsId": "110045&", + "value": 4, + "attr": "4&134", + "attrType": "4&" + }, + { + "id": 168, + "bookId": 5, + "subId": 4, + "name": "负荆请罪", + "maxStar": 6, + "star": 6, + "goodsId": "110046&", + "value": 4, + "attr": "4&135", + "attrType": "4&" + }, + { + "id": 169, + "bookId": 5, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 1, + "goodsId": "110047&", + "value": 5, + "attr": "4&136", + "attrType": "4&" + }, + { + "id": 170, + "bookId": 5, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 2, + "goodsId": "110048&", + "value": 5, + "attr": "4&137", + "attrType": "4&" + }, + { + "id": 171, + "bookId": 5, + "subId": 5, + "name": "一鼓作气", + "maxStar": 3, + "star": 3, + "goodsId": "110049&110050", + "value": 5, + "attr": "4&138", + "attrType": "4&" + }, + { + "id": 172, + "bookId": 5, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 1, + "goodsId": "110050&110051", + "value": 3, + "attr": "4&139", + "attrType": "4&" + }, + { + "id": 173, + "bookId": 5, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 2, + "goodsId": "110051&110052", + "value": 3, + "attr": "4&140", + "attrType": "4&" + }, + { + "id": 174, + "bookId": 5, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 3, + "goodsId": "110052&110053", + "value": 3, + "attr": "4&141", + "attrType": "4&" + }, + { + "id": 175, + "bookId": 5, + "subId": 6, + "name": "讳疾忌医", + "maxStar": 4, + "star": 4, + "goodsId": "110053&110054", + "value": 3, + "attr": "4&142", + "attrType": "4&" + }, + { + "id": 176, + "bookId": 5, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 1, + "goodsId": "110054&110055", + "value": 1, + "attr": "4&143", + "attrType": "4&" + }, + { + "id": 177, + "bookId": 5, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 2, + "goodsId": "110055&110056", + "value": 1, + "attr": "4&144", + "attrType": "4&" + }, + { + "id": 178, + "bookId": 5, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 3, + "goodsId": "110056&110057", + "value": 1, + "attr": "4&145", + "attrType": "4&" + }, + { + "id": 179, + "bookId": 5, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 4, + "goodsId": "110057&110058", + "value": 1, + "attr": "4&146", + "attrType": "4&" + }, + { + "id": 180, + "bookId": 5, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 5, + "goodsId": "110058&110059", + "value": 1, + "attr": "4&147", + "attrType": "4&" + }, + { + "id": 181, + "bookId": 5, + "subId": 7, + "name": "惊弓之鸟", + "maxStar": 6, + "star": 6, + "goodsId": "110059&110060", + "value": 1, + "attr": "4&148", + "attrType": "4&" + }, + { + "id": 182, + "bookId": 5, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 1, + "goodsId": "110060&110061", + "value": 2, + "attr": "4&149", + "attrType": "4&" + }, + { + "id": 183, + "bookId": 5, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 2, + "goodsId": "110061&", + "value": 2, + "attr": "4&150", + "attrType": "4&" + }, + { + "id": 184, + "bookId": 5, + "subId": 8, + "name": "指鹿为马", + "maxStar": 3, + "star": 3, + "goodsId": "110060&110061", + "value": 2, + "attr": "4&151", + "attrType": "4&" + }, + { + "id": 185, + "bookId": 5, + "subId": 9, + "name": "焚书坑儒", + "maxStar": 1, + "star": 1, + "goodsId": "110061&", + "value": 5, + "attr": "4&152", + "attrType": "4&" + } +] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_authorsGoodId.json b/shared/resource/jsons/dic_zyz_authorsGoodId.json new file mode 100644 index 000000000..302b76afd --- /dev/null +++ b/shared/resource/jsons/dic_zyz_authorsGoodId.json @@ -0,0 +1,612 @@ +[ + { + "id": 1, + "goodId": 110001, + "name": "曹操英灵", + "quality": 3, + "imageName": "caocao", + "authorsType": 1, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 2, + "goodId": 110002, + "name": "夏侯惇英灵", + "quality": 3, + "imageName": "xiahoudun", + "authorsType": 2, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 3, + "goodId": 110003, + "name": "张辽英灵", + "quality": 3, + "imageName": "zhangliao", + "authorsType": 3, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 4, + "goodId": 110004, + "name": "夏侯渊英灵", + "quality": 3, + "imageName": "xiahouyuan", + "authorsType": 4, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 5, + "goodId": 110005, + "name": "郭嘉英灵", + "quality": 3, + "imageName": "guojia", + "authorsType": 5, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 6, + "goodId": 110006, + "name": "典韦英灵", + "quality": 3, + "imageName": "dianwei", + "authorsType": 6, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 7, + "goodId": 110007, + "name": "庞德英灵", + "quality": 2, + "imageName": "pangde", + "authorsType": 7, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 8, + "goodId": 110008, + "name": "徐晃英灵", + "quality": 2, + "imageName": "xuhuang", + "authorsType": 8, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 9, + "goodId": 110009, + "name": "曹仁英灵", + "quality": 2, + "imageName": "caoren", + "authorsType": 9, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 10, + "goodId": 110010, + "name": "李典英灵", + "quality": 2, + "imageName": "lidian", + "authorsType": 10, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 11, + "goodId": 110011, + "name": "蔡琰英灵", + "quality": 1, + "imageName": "caiyan", + "authorsType": 1, + "decomposeItem": "40020&10", + "composeItem": "40020&20" + }, + { + "id": 12, + "goodId": 110012, + "name": "贾诩英灵", + "quality": 2, + "imageName": "jiaxu", + "authorsType": 2, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 13, + "goodId": 110013, + "name": "许褚英灵", + "quality": 3, + "imageName": "xuchu", + "authorsType": 3, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 14, + "goodId": 110014, + "name": "乐进英灵", + "quality": 1, + "imageName": "yuejin", + "authorsType": 4, + "decomposeItem": "40020&10", + "composeItem": "40020&20" + }, + { + "id": 15, + "goodId": 110015, + "name": "张飞英灵", + "quality": 3, + "imageName": "zhangfei", + "authorsType": 5, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 16, + "goodId": 110016, + "name": "关羽英灵", + "quality": 3, + "imageName": "guanyu", + "authorsType": 6, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 17, + "goodId": 110017, + "name": "赵云英灵", + "quality": 1, + "imageName": "zhaoyun", + "authorsType": 7, + "decomposeItem": "40020&10", + "composeItem": "40020&20" + }, + { + "id": 18, + "goodId": 110018, + "name": "刘备英灵", + "quality": 3, + "imageName": "liubei", + "authorsType": 8, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 19, + "goodId": 110019, + "name": "黄忠英灵", + "quality": 3, + "imageName": "huangzhong", + "authorsType": 9, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 20, + "goodId": 110020, + "name": "诸葛亮英灵", + "quality": 3, + "imageName": "zhugeliang", + "authorsType": 10, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 21, + "goodId": 110021, + "name": "魏延英灵", + "quality": 3, + "imageName": "weiyan", + "authorsType": 1, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 22, + "goodId": 110022, + "name": "陈到英灵", + "quality": 2, + "imageName": "chendao", + "authorsType": 2, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 23, + "goodId": 110023, + "name": "关银屏英灵", + "quality": 2, + "imageName": "guanyinping", + "authorsType": 3, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 24, + "goodId": 110024, + "name": "马云禄英灵", + "quality": 2, + "imageName": "mayunlu", + "authorsType": 4, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 25, + "goodId": 110025, + "name": "马良英灵", + "quality": 2, + "imageName": "maliang", + "authorsType": 5, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 26, + "goodId": 110026, + "name": "张星彩英灵", + "quality": 4, + "imageName": "tongyongjunguan", + "authorsType": 6, + "decomposeItem": "40020&100", + "composeItem": "&" + }, + { + "id": 27, + "goodId": 110027, + "name": "王平英灵", + "quality": 2, + "imageName": "wangping", + "authorsType": 7, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 28, + "goodId": 110028, + "name": "孙乾英灵", + "quality": 1, + "imageName": "sunqian", + "authorsType": 8, + "decomposeItem": "40020&10", + "composeItem": "40020&15" + }, + { + "id": 29, + "goodId": 110029, + "name": "周泰英灵", + "quality": 3, + "imageName": "zhoutai", + "authorsType": 9, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 30, + "goodId": 110030, + "name": "孙策英灵", + "quality": 3, + "imageName": "sunce", + "authorsType": 10, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 31, + "goodId": 110031, + "name": "周瑜英灵", + "quality": 3, + "imageName": "zhouyu", + "authorsType": 1, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 32, + "goodId": 110032, + "name": "太史慈英灵", + "quality": 3, + "imageName": "taishici", + "authorsType": 2, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 33, + "goodId": 110033, + "name": "孙权英灵", + "quality": 2, + "imageName": "sunquan", + "authorsType": 3, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 34, + "goodId": 110034, + "name": "甘宁英灵", + "quality": 2, + "imageName": "ganning", + "authorsType": 4, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 35, + "goodId": 110035, + "name": "孙尚香英灵", + "quality": 3, + "imageName": "sunshangxiang", + "authorsType": 5, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 36, + "goodId": 110036, + "name": "小乔英灵", + "quality": 3, + "imageName": "xiaoqiao", + "authorsType": 6, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 37, + "goodId": 110037, + "name": "大乔英灵", + "quality": 3, + "imageName": "daqiao", + "authorsType": 7, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 38, + "goodId": 110038, + "name": "步练师英灵", + "quality": 3, + "imageName": "bulianshi", + "authorsType": 8, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 39, + "goodId": 110039, + "name": "吕布英灵", + "quality": 3, + "imageName": "lvbu", + "authorsType": 9, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 40, + "goodId": 110040, + "name": "张任英灵", + "quality": 3, + "imageName": "zhangren", + "authorsType": 10, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 41, + "goodId": 110041, + "name": "华佗英灵", + "quality": 3, + "imageName": "huatuo", + "authorsType": 1, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 42, + "goodId": 110042, + "name": "张角英灵", + "quality": 3, + "imageName": "zhangjiao", + "authorsType": 2, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 43, + "goodId": 110043, + "name": "高顺英灵", + "quality": 3, + "imageName": "gaoshun", + "authorsType": 3, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 44, + "goodId": 110044, + "name": "麹义英灵", + "quality": 2, + "imageName": "quyi", + "authorsType": 4, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 45, + "goodId": 110045, + "name": "李儒英灵", + "quality": 2, + "imageName": "liru", + "authorsType": 5, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 46, + "goodId": 110046, + "name": "庞舞英灵", + "quality": 2, + "imageName": "pangwu", + "authorsType": 6, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 47, + "goodId": 110047, + "name": "夏侯轻衣英灵", + "quality": 1, + "imageName": "xiahouqingyi", + "authorsType": 7, + "decomposeItem": "40020&10", + "composeItem": "40020&15" + }, + { + "id": 48, + "goodId": 110048, + "name": "文丑英灵", + "quality": 1, + "imageName": "wenchou", + "authorsType": 8, + "decomposeItem": "40020&10", + "composeItem": "40020&15" + }, + { + "id": 49, + "goodId": 110049, + "name": "颜良英灵", + "quality": 1, + "imageName": "yanliang", + "authorsType": 9, + "decomposeItem": "40020&10", + "composeItem": "40020&15" + }, + { + "id": 50, + "goodId": 110050, + "name": "貂蝉英灵", + "quality": 3, + "imageName": "diaochan", + "authorsType": 10, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 51, + "goodId": 110051, + "name": "王越英灵", + "quality": 3, + "imageName": "wangyue", + "authorsType": 1, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 52, + "goodId": 110052, + "name": "董卓英灵", + "quality": 3, + "imageName": "dongzhuo", + "authorsType": 2, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 53, + "goodId": 110053, + "name": "童渊英灵", + "quality": 3, + "imageName": "tongyuan", + "authorsType": 3, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 54, + "goodId": 110054, + "name": "赵云英灵", + "quality": 1, + "imageName": "shaonianzhaoyun", + "authorsType": 4, + "decomposeItem": "40020&10", + "composeItem": "40020&15" + }, + { + "id": 55, + "goodId": 110055, + "name": "夏侯轻衣英灵", + "quality": 1, + "imageName": "shaonianxiahouqingyi", + "authorsType": 5, + "decomposeItem": "40020&10", + "composeItem": "40020&15" + }, + { + "id": 56, + "goodId": 110056, + "name": "潘璋英灵", + "quality": 1, + "imageName": "panzhang", + "authorsType": 6, + "decomposeItem": "40020&10", + "composeItem": "40020&15" + }, + { + "id": 57, + "goodId": 110057, + "name": "凌统英灵", + "quality": 1, + "imageName": "lingtong", + "authorsType": 7, + "decomposeItem": "40020&10", + "composeItem": "40020&15" + }, + { + "id": 58, + "goodId": 110058, + "name": "黄盖英灵", + "quality": 2, + "imageName": "huanggai", + "authorsType": 8, + "decomposeItem": "40020&20", + "composeItem": "40020&15" + }, + { + "id": 59, + "goodId": 110059, + "name": "陈宫英灵", + "quality": 3, + "imageName": "chengong", + "authorsType": 9, + "decomposeItem": "40020&30", + "composeItem": "40020&50" + }, + { + "id": 60, + "goodId": 110060, + "name": "马超英灵", + "quality": 4, + "imageName": "machao", + "authorsType": 10, + "decomposeItem": "40020&100", + "composeItem": "&" + }, + { + "id": 61, + "goodId": 110061, + "name": "阿丽雅英灵", + "quality": 4, + "imageName": "aliya2", + "authorsType": 4, + "decomposeItem": "40020&100", + "composeItem": "&" + } +] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_authorsType.json b/shared/resource/jsons/dic_zyz_authorsType.json new file mode 100644 index 000000000..a9c89f24b --- /dev/null +++ b/shared/resource/jsons/dic_zyz_authorsType.json @@ -0,0 +1,52 @@ +[ + { + "id": 1, + "name": "儒家", + "imageName": "touxiang_rujia" + }, + { + "id": 2, + "name": "道家", + "imageName": "yinyangjia" + }, + { + "id": 3, + "name": "墨家", + "imageName": "touxiang_mojia" + }, + { + "id": 4, + "name": "法家", + "imageName": "touxiang_fajia" + }, + { + "id": 5, + "name": "名家", + "imageName": "touxiang_mingjia" + }, + { + "id": 6, + "name": "阴阳家", + "imageName": "touxiang_daojia" + }, + { + "id": 7, + "name": "纵横家", + "imageName": "touxiang_zongheng" + }, + { + "id": 8, + "name": "杂家", + "imageName": "touxiang_zajia" + }, + { + "id": 9, + "name": "兵家", + "imageName": "touxiang_bingjia" + }, + { + "id": 10, + "name": "医家", + "imageName": "touxiang_yijia" + } +] \ No newline at end of file