This commit is contained in:
mamengke01
2020-12-22 17:25:55 +08:00
parent eec53b688f
commit 9a377e94d8
18 changed files with 218 additions and 115 deletions
@@ -1,7 +1,7 @@
import { Application, BackendSession } from "pinus"; import { Application, BackendSession } from "pinus";
import { STATUS, EQUIP_STRENGTHEN_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, HERO_SYSTEM_TYPE, CONSUME_TYPE, GOOD_TYPE, HERO_GROW_MAX } from "../../../consts"; import { STATUS, EQUIP_STRENGTHEN_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, HERO_SYSTEM_TYPE, CONSUME_TYPE, GOOD_TYPE, HERO_GROW_MAX } from "../../../consts";
import { ItemInter } from "../../../pubUtils/interface"; import { ItemInter } from "../../../pubUtils/interface";
import { resResult, parseReward, getRandomByLen, deepCopy } from "../../../pubUtils/util"; import { resResult, parseGoodStr, getRandomByLen, deepCopy } from "../../../pubUtils/util";
import { addItems, handleCost } from "../../../services/rewardService"; import { addItems, handleCost } from "../../../services/rewardService";
import { EquipModel, RandSe } from "../../../db/Equip"; import { EquipModel, RandSe } from "../../../db/Equip";
import { HeroModel, EPlace } from "../../../db/Hero"; import { HeroModel, EPlace } from "../../../db/Hero";
@@ -228,11 +228,11 @@ export class EquipHandler {
let lockNum = randSe.filter(cur => cur.locked).length; let lockNum = randSe.filter(cur => cur.locked).length;
let consumes: Array<{ id: number, count: number }> = []; let consumes: Array<{ id: number, count: number }> = [];
if (lockNum == 0) { if (lockNum == 0) {
consumes = parseReward(EQUIP.EQUIP_ONE_LOCKED); consumes = parseGoodStr(EQUIP.EQUIP_ONE_LOCKED);
} else if (lockNum == 1) { } else if (lockNum == 1) {
consumes = parseReward(EQUIP.EQUIP_TWO_LOCKED); consumes = parseGoodStr(EQUIP.EQUIP_TWO_LOCKED);
} else if (lockNum == 2) { } else if (lockNum == 2) {
consumes = parseReward(EQUIP.EQUIP_THREE_LOCKED); consumes = parseGoodStr(EQUIP.EQUIP_THREE_LOCKED);
} else { } else {
return resResult(STATUS.ROLE_ALL_SE_LOCK); return resResult(STATUS.ROLE_ALL_SE_LOCK);
} }
@@ -295,13 +295,13 @@ export class EquipHandler {
// 消耗 // 消耗
let consumes: Array<{ id: number, count: number }> = []; let consumes: Array<{ id: number, count: number }> = [];
if (lockNum == 0) { if (lockNum == 0) {
consumes = parseReward(EQUIP.EQUIP_ONE_REFORGED); consumes = parseGoodStr(EQUIP.EQUIP_ONE_REFORGED);
} else if (lockNum == 1) { } else if (lockNum == 1) {
consumes = parseReward(EQUIP.EQUIP_TWO_REFORGED); consumes = parseGoodStr(EQUIP.EQUIP_TWO_REFORGED);
} else if (lockNum == 2) { } else if (lockNum == 2) {
consumes = parseReward(EQUIP.EQUIP_THREE_REFORGED); consumes = parseGoodStr(EQUIP.EQUIP_THREE_REFORGED);
} else { } else {
consumes = parseReward(EQUIP.EQUIP_FOUR_REFORGED); consumes = parseGoodStr(EQUIP.EQUIP_FOUR_REFORGED);
} }
let result = await handleCost(roleId, sid, consumes); let result = await handleCost(roleId, sid, consumes);
@@ -352,6 +352,7 @@ export class EquipHandler {
let { eid, hid, type } = msg; let { eid, hid, type } = msg;
let roleId: string = session.get('roleId'); let roleId: string = session.get('roleId');
let equip = await EquipModel.getEquip(eid); let equip = await EquipModel.getEquip(eid);
let sid: string = session.get('sid');
let goodInfo = getGoodById(equip.id); let goodInfo = getGoodById(equip.id);
let obj = ITID.get(goodInfo.itid); let obj = ITID.get(goodInfo.itid);
let id = obj.type; let id = obj.type;
@@ -378,6 +379,7 @@ export class EquipHandler {
curEquips.push({ seqId, hid, ePlaceId }); curEquips.push({ seqId, hid, ePlaceId });
} }
await HeroModel.addEquip(roleId, hid, id, equip._id); await HeroModel.addEquip(roleId, hid, id, equip._id);
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.EQUIP, []);
curEquips.push({ seqId: eid, hid, ePlaceId:id}); curEquips.push({ seqId: eid, hid, ePlaceId:id});
} else if (type == 2) { } else if (type == 2) {
if (!equip.hid) if (!equip.hid)
@@ -386,8 +388,9 @@ export class EquipHandler {
if (index < 0) if (index < 0)
return resResult(STATUS.WRONG_PARMS); return resResult(STATUS.WRONG_PARMS);
hero.ePlace[index].equip = null; hero.ePlace[index].equip = null;
await HeroModel.updateHeroInfo(roleId, hid, { ePlace: hero.ePlace }); //await HeroModel.updateHeroInfo(roleId, hid, { ePlace: hero.ePlace });
let {seqId, ePlaceId} = await EquipModel.updateEquipInfo(eid, { hid: 0, ePlaceId: 0 }); let {seqId, ePlaceId} = await EquipModel.updateEquipInfo(eid, { hid: 0, ePlaceId: 0 });
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.EQUIP, []);
curEquips.push({ seqId, hid, ePlaceId }); curEquips.push({ seqId, hid, ePlaceId });
} }
return resResult(STATUS.SUCCESS, { curEquips: curEquips }); return resResult(STATUS.SUCCESS, { curEquips: curEquips });
@@ -406,11 +409,11 @@ export class EquipHandler {
return resResult(STATUS.EQUIP_HOLE_IS_DUG); return resResult(STATUS.EQUIP_HOLE_IS_DUG);
let consumes: Array<{ id: number, count: number }> = []; let consumes: Array<{ id: number, count: number }> = [];
if (id == 1) { if (id == 1) {
consumes = parseReward(EQUIP.EQUIP_ONE_HOLE); consumes = parseGoodStr(EQUIP.EQUIP_ONE_HOLE);
} else if (id == 2) { } else if (id == 2) {
consumes = parseReward(EQUIP.EQUIP_TWO_HOLE); consumes = parseGoodStr(EQUIP.EQUIP_TWO_HOLE);
} else if (id == 3) { } else if (id == 3) {
consumes = parseReward(EQUIP.EQUIP_THREE_HOLE); consumes = parseGoodStr(EQUIP.EQUIP_THREE_HOLE);
} }
let result = await handleCost(roleId, sid, consumes); let result = await handleCost(roleId, sid, consumes);
if (!result) if (!result)
@@ -438,8 +441,9 @@ export class EquipHandler {
return resResult(STATUS.EQUIP_HOLE_NOT_FIND); return resResult(STATUS.EQUIP_HOLE_NOT_FIND);
if (!equip.holes[index].isOpen) if (!equip.holes[index].isOpen)
return resResult(STATUS.EQUIP_HOLE_IS_NOT_DUG); return resResult(STATUS.EQUIP_HOLE_IS_NOT_DUG);
if (!!equip.holes[index].jewel) let oldJewel = equip.holes[index].jewel;
goods.push({id: equip.holes[index].jewel, count:1}); if (!!oldJewel)
goods.push({id: oldJewel, count:1});
consumes.push({ id: jewel, count: 1 }); consumes.push({ id: jewel, count: 1 });
let result = await handleCost(roleId, sid, consumes); let result = await handleCost(roleId, sid, consumes);
if (!result) if (!result)
@@ -449,6 +453,10 @@ export class EquipHandler {
let roleName: string = session.get('roleName'); let roleName: string = session.get('roleName');
if (goods.length) if (goods.length)
await addItems(roleId, roleName, sid, goods); await addItems(roleId, roleName, sid, goods);
if (!!equip.hid) {
let hero = await HeroModel.findByHidAndRole(equip.hid, roleId);
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.JEWEL_ON, [jewel, oldJewel]);
}
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } }); return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
} }
@@ -514,12 +522,17 @@ export class EquipHandler {
let index = _.findIndex(equip.holes, { id }); let index = _.findIndex(equip.holes, { id });
if (index > 0) if (index > 0)
return resResult(STATUS.EQUIP_HOLE_NOT_FIND); return resResult(STATUS.EQUIP_HOLE_NOT_FIND);
if (!equip.holes[index].jewel) let jewel = equip.holes[index].jewel;
if (!jewel)
return resResult(STATUS.EQUIP_NOT_FILL_HOLE); return resResult(STATUS.EQUIP_NOT_FILL_HOLE);
goods.push({ id: equip.holes[index].jewel, count: 1 }); goods.push({ id: jewel, count: 1 });
equip.holes[index].jewel = 0; equip.holes[index].jewel = 0;
await EquipModel.updateEquipInfo(eid, { holes: equip.holes }); await EquipModel.updateEquipInfo(eid, { holes: equip.holes });
await addItems(roleId, roleName, sid, goods); await addItems(roleId, roleName, sid, goods);
if (!!equip.hid) {
let hero = await HeroModel.findByHidAndRole(equip.hid, roleId);
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.JEWEL_OFF, [jewel]);
}
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } }); return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
} }
} }
@@ -10,6 +10,7 @@ import { ItemModel } from '../../../db/Item';
import { gameData, getHeroExpByLv, getHeroStarByQuality, getHeroWakeByQuality, getHeroLvByExp, getMaxGradeByjobClass, getJobByGradeAndClass, getFriendShipById } from '../../../pubUtils/data'; import { gameData, getHeroExpByLv, getHeroStarByQuality, getHeroWakeByQuality, getHeroLvByExp, getMaxGradeByjobClass, getJobByGradeAndClass, getFriendShipById } from '../../../pubUtils/data';
import { RewardInter } from '../../../pubUtils/interface'; import { RewardInter } from '../../../pubUtils/interface';
import { getAllAttrStage } from '../../../pubUtils/playerCe'; import { getAllAttrStage } from '../../../pubUtils/playerCe';
import { Stats } from 'fs';
export default function(app: Application) { export default function(app: Application) {
return new HeroHandler(app); return new HeroHandler(app);
@@ -404,6 +405,8 @@ export class HeroHandler {
let exp:number = 0; let exp:number = 0;
for (let item of items) { for (let item of items) {
let itemInfo = gameData.goods.get(item.id); let itemInfo = gameData.goods.get(item.id);
if (!itemInfo)
return resResult(STATUS.DIC_DATA_NOT_FOUND)
let dicItid = ITID.get(itemInfo.itid); let dicItid = ITID.get(itemInfo.itid);
if (dicItid.type == CONSUME_TYPE.FAVOUR) { if (dicItid.type == CONSUME_TYPE.FAVOUR) {
exp += itemInfo.value; exp += itemInfo.value;
+2 -2
View File
@@ -1,6 +1,6 @@
import { ITID, CONSUME_TYPE, getCurNameById, ITEM_TABLE } from './../consts'; import { ITID, CONSUME_TYPE, getCurNameById, ITEM_TABLE } from './../consts';
import { EquipModel } from './../db/Equip'; import { EquipModel } from './../db/Equip';
import { resResult, parseReward } from '../pubUtils/util'; import { resResult, parseGoodStr } from '../pubUtils/util';
import { getGoodById } from '../pubUtils/gamedata'; import { getGoodById } from '../pubUtils/gamedata';
import { RoleModel } from '../db/Role'; import { RoleModel } from '../db/Role';
import { setAp } from './actionPointService'; import { setAp } from './actionPointService';
@@ -14,7 +14,7 @@ import { gameData } from '../pubUtils/data';
const _ = require('underscore'); const _ = require('underscore');
export async function handleFixedReward(roleId: string, roleName: string, sid: string, rewardStr: string, multi: number) { export async function handleFixedReward(roleId: string, roleName: string, sid: string, rewardStr: string, multi: number) {
let reward = parseReward(rewardStr); let reward = parseGoodStr(rewardStr);
let rewards = []; let rewards = [];
for(let obj of reward) for(let obj of reward)
rewards.push({ ...obj, count: Math.ceil(obj.count * multi)}); rewards.push({ ...obj, count: Math.ceil(obj.count * multi)});
+11 -1
View File
@@ -117,6 +117,15 @@ export const HERO_ATTR = {
17: "ap" // 怒气 17: "ap" // 怒气
}; };
export const JEWEL_ATTR = {
1: "hp",
2: "atk",
3: "def",
4: "mdef",
5: "agi",
6: "luk"
}
export const ABI_TYPE_TO_STAGE = new Map<number, number | ((jobType: number) => number)>([ export const ABI_TYPE_TO_STAGE = new Map<number, number | ((jobType: number) => number)>([
[ABI_STAGE.HP, ABI_TYPE.ABI_HP], [ABI_STAGE.HP, ABI_TYPE.ABI_HP],
[ABI_STAGE.ATK, (jobType:number) => { return jobType == JOB_TYPE.PHYSIC?ABI_TYPE.ABI_ATK: ABI_TYPE.ABI_MATK}], [ABI_STAGE.ATK, (jobType:number) => { return jobType == JOB_TYPE.PHYSIC?ABI_TYPE.ABI_ATK: ABI_TYPE.ABI_MATK}],
@@ -136,4 +145,5 @@ export function getAttrCeRatio(attr: string):number {
export function getAttrNameByJobStage(jobStage: number) { export function getAttrNameByJobStage(jobStage: number) {
return HEROTARIN[jobStage]; return HEROTARIN[jobStage];
}; };
+3 -1
View File
@@ -8,7 +8,9 @@ export const HERO_SYSTEM_TYPE = {
CONNECT:9, CONNECT:9,
EQUIP: 10, EQUIP: 10,
EQUIP_BASE: 11, EQUIP_BASE: 11,
RESTRENGTHEN: 12 RESTRENGTHEN: 12,
JEWEL_ON: 13,
JEWEL_OFF: 14
}; };
// 武将上限 // 武将上限
+3 -3
View File
@@ -1,5 +1,5 @@
// 奇遇表 // 奇遇表
import { parseReward, decodeArrayStr, readJsonFile, parseNumberList } from '../util' import { parseGoodStr, decodeArrayStr, readJsonFile, parseNumberList } from '../util'
import { FILENAME } from '../../consts' import { FILENAME } from '../../consts'
import { RewardInter } from '../../pubUtils/interface'; import { RewardInter } from '../../pubUtils/interface';
@@ -37,8 +37,8 @@ let arr = JSON.parse(str);
export const dicEvent = new Map<number, DicEvent>(); export const dicEvent = new Map<number, DicEvent>();
arr.forEach(o => { arr.forEach(o => {
o.winReward = parseReward(o.winReward); o.winReward = parseGoodStr(o.winReward);
o.loseReward = parseReward(o.loseReward); o.loseReward = parseGoodStr(o.loseReward);
o.suitLevel = parseSuitLevel(o.suitLevel); o.suitLevel = parseSuitLevel(o.suitLevel);
o.movePointArray = parseNumberList(o.movePointArray); o.movePointArray = parseNumberList(o.movePointArray);
@@ -1,5 +1,5 @@
// 远征点数奖励表 // 远征点数奖励表
import { parseReward, readJsonFile } from '../util'; import { parseGoodStr, readJsonFile } from '../util';
import { FILENAME } from '../../consts'; import { FILENAME } from '../../consts';
import { RewardInter } from '../interface'; import { RewardInter } from '../interface';
@@ -16,6 +16,6 @@ let arr = JSON.parse(str);
export const dicExpeditionPoint = new Map<number, DicExpeditionPoint>(); export const dicExpeditionPoint = new Map<number, DicExpeditionPoint>();
arr.forEach(o => { arr.forEach(o => {
o.reward = parseReward(o.reward); o.reward = parseGoodStr(o.reward);
dicExpeditionPoint.set(o.point, o); dicExpeditionPoint.set(o.point, o);
}); });
+3 -3
View File
@@ -1,5 +1,5 @@
// 物品表 // 物品表
import {decodeArrayListStr, readJsonFile, parseReward, parseNumberList, decodeArrayStr} from '../util' import {decodeArrayListStr, readJsonFile, parseGoodStr, parseNumberList, decodeArrayStr} from '../util'
import { FILENAME, IT_TYPE, ABI_TYPE , GOOD_TYPE} from '../../consts' import { FILENAME, IT_TYPE, ABI_TYPE , GOOD_TYPE} from '../../consts'
import { RewardInter } from '../interface'; import { RewardInter } from '../interface';
const _ = require('lodash'); const _ = require('lodash');
@@ -90,8 +90,8 @@ export const blueprt = new Map<number, Array<number>>();
arr.forEach(o => { arr.forEach(o => {
o.goodsAbility = parseAbility(o); o.goodsAbility = parseAbility(o);
o.goodsAbilityUp = parseAbilityUp(o); o.goodsAbilityUp = parseAbilityUp(o);
o.composeMaterial = parseReward(o.composeMaterial); o.composeMaterial = parseGoodStr(o.composeMaterial);
o.decomposeItem = parseReward(o.decomposeItem); o.decomposeItem = parseGoodStr(o.decomposeItem);
o.specialAttr = parseSpecialAttr(o.specialAttr); o.specialAttr = parseSpecialAttr(o.specialAttr);
o.specialMaterial = parseSpecialMaterial(o.specialMaterial); o.specialMaterial = parseSpecialMaterial(o.specialMaterial);
o.randomEffect = parseNumberList(o.randomEffect); o.randomEffect = parseNumberList(o.randomEffect);
@@ -1,5 +1,5 @@
// 武将技能表 // 武将技能表
import {parseReward, readJsonFile} from '../util' import {parseGoodStr, readJsonFile} from '../util'
import { FILENAME } from '../../consts' import { FILENAME } from '../../consts'
import { RewardInter } from '../interface'; import { RewardInter } from '../interface';
@@ -21,6 +21,6 @@ let arr = JSON.parse(str);
export const dicHeroQualityUp = new Map<number, DicHeroQualityUp>(); export const dicHeroQualityUp = new Map<number, DicHeroQualityUp>();
arr.forEach(o => { arr.forEach(o => {
o.consume = parseReward(o.consume); o.consume = parseGoodStr(o.consume);
dicHeroQualityUp.set(o.quality, o); dicHeroQualityUp.set(o.quality, o);
}); });
+2 -2
View File
@@ -1,5 +1,5 @@
// 武将觉醒表 // 武将觉醒表
import { readJsonFile, parseReward } from '../util' import { readJsonFile, parseGoodStr } from '../util'
import { ABI_STAGE, FILENAME } from '../../consts'; import { ABI_STAGE, FILENAME } from '../../consts';
import { RewardInter } from '../interface'; import { RewardInter } from '../interface';
const _ = require('lodash'); const _ = require('lodash');
@@ -29,7 +29,7 @@ const DicHeroWakeKeys: KeysEnum<DicHeroWake> = {id: true, quality: true, star: t
export const dicHeroWake = new Map<string, DicHeroWake>(); export const dicHeroWake = new Map<string, DicHeroWake>();
arr.forEach(o => { arr.forEach(o => {
o.consume = parseReward(o.consume); o.consume = parseGoodStr(o.consume);
o.ceAttr = parseCeAttr(o); o.ceAttr = parseCeAttr(o);
dicHeroWake.set(`${o.quality}_${o.star}`, _.pick(o, Object.keys(DicHeroWakeKeys))); dicHeroWake.set(`${o.quality}_${o.star}`, _.pick(o, Object.keys(DicHeroWakeKeys)));
}); });
+3 -3
View File
@@ -1,5 +1,5 @@
// 兵种表 // 兵种表
import {readJsonFile, parseNumberList, parseReward} from '../util' import {readJsonFile, parseNumberList, parseGoodStr} from '../util'
import { FILENAME } from '../../consts' import { FILENAME } from '../../consts'
import { RewardInter } from '../interface'; import { RewardInter } from '../interface';
const _ = require('lodash'); const _ = require('lodash');
@@ -50,8 +50,8 @@ export const jobClassAndgrades = new Map<string, {jobid:number, unlockLevel:numb
arr.forEach(o => { arr.forEach(o => {
o.seid = parseNumberList(o.seid); o.seid = parseNumberList(o.seid);
o.trainingConsume = parseReward(o.trainingConsume); o.trainingConsume = parseGoodStr(o.trainingConsume);
o.upGradeConsume = parseReward(o.upGradeConsume); o.upGradeConsume = parseGoodStr(o.upGradeConsume);
dicJob.set(o.jobid, _.pick(o, Object.keys(DicJobKeys))); dicJob.set(o.jobid, _.pick(o, Object.keys(DicJobKeys)));
let jobClass = jobClassMaxGrades.get(o.job_class); let jobClass = jobClassMaxGrades.get(o.job_class);
if (!!jobClass && jobClass.grade < o.grade) { if (!!jobClass && jobClass.grade < o.grade) {
+2 -2
View File
@@ -1,5 +1,5 @@
// 武将特技表 // 武将特技表
import { readJsonFile, parseReward } from '../util' import { readJsonFile, parseGoodStr } from '../util'
import { FILENAME } from '../../consts' import { FILENAME } from '../../consts'
import { RewardInter } from '../interface'; import { RewardInter } from '../interface';
@@ -25,7 +25,7 @@ let arr = JSON.parse(str);
export const dicRefine = new Map<number, DicRefine>(); export const dicRefine = new Map<number, DicRefine>();
arr.forEach(o => { arr.forEach(o => {
o.material = parseReward(o.material) o.material = parseGoodStr(o.material)
dicRefine.set(o.level, o); dicRefine.set(o.level, o);
}); });
+4 -4
View File
@@ -1,5 +1,5 @@
// 镇念塔表 // 镇念塔表
import {parseReward, decodeArrayListStr, readJsonFile, parseNumberList} from '../util' import {parseGoodStr, decodeArrayListStr, readJsonFile, parseNumberList} from '../util'
import { FILENAME } from '../../consts'; import { FILENAME } from '../../consts';
import { RewardInter } from '../../pubUtils/interface'; import { RewardInter } from '../../pubUtils/interface';
@@ -21,12 +21,12 @@ export const dicTower = new Map<number, DicTower>();
arr.forEach(o => { arr.forEach(o => {
o.warArray = parseNumberList(o.warArray); o.warArray = parseNumberList(o.warArray);
o.reward = parseReward(o.reward); o.reward = parseGoodStr(o.reward);
o.rewardOfcollect = parseRewardOfCollect(o.rewardOfcollect); o.rewardOfcollect = parseGoodStrOfCollect(o.rewardOfcollect);
dicTower.set(o.towerFloor, o); dicTower.set(o.towerFloor, o);
}); });
function parseRewardOfCollect(str: string) { function parseGoodStrOfCollect(str: string) {
let result = new Array<{id: number, count: number}>(); let result = new Array<{id: number, count: number}>();
if(!str) return result; if(!str) return result;
let decodeArr = decodeArrayListStr(str); let decodeArr = decodeArrayListStr(str);
+3 -3
View File
@@ -1,5 +1,5 @@
// 镇念塔派遣任务表 // 镇念塔派遣任务表
import {parseReward, decodeArrayListStr, decodeArrayStr, readJsonFile} from '../util' import {parseGoodStr, decodeArrayListStr, decodeArrayStr, readJsonFile} from '../util'
import { FILENAME } from '../../consts'; import { FILENAME } from '../../consts';
import { RewardInter } from '../interface'; import { RewardInter } from '../interface';
@@ -38,8 +38,8 @@ let arr = JSON.parse(str);
export const dicTowerTask = new Map<number, DicTowerTask>(); export const dicTowerTask = new Map<number, DicTowerTask>();
arr.forEach(o => { arr.forEach(o => {
o.reward = parseReward(o.reward); o.reward = parseGoodStr(o.reward);
o.additionalReward = parseReward(o.additionalReward); o.additionalReward = parseGoodStr(o.additionalReward);
o.termsForAdd = parseTermsForAdd(o.termsForAdd); o.termsForAdd = parseTermsForAdd(o.termsForAdd);
o.suitFloor = parseSuitFloor(o.suitFloor as string); o.suitFloor = parseSuitFloor(o.suitFloor as string);
dicTowerTask.set(o.taskId, o); dicTowerTask.set(o.taskId, o);
+40 -1
View File
@@ -14,6 +14,8 @@ import { Attributes } from './interface';
import { DicSe } from './dictionary/DicSe'; import { DicSe } from './dictionary/DicSe';
import { EquipType } from '../db/Equip'; import { EquipType } from '../db/Equip';
import { DicRandomEffectPool } from './dictionary/DicRandomEffectPool'; import { DicRandomEffectPool } from './dictionary/DicRandomEffectPool';
import { getGoodById } from './gamedata';
import { JEWEL_ATTR } from '../consts/constModules/abilityConst';
const HERO_CE_RATIO = 100; const HERO_CE_RATIO = 100;
const _ = require('underscore'); const _ = require('underscore');
@@ -44,6 +46,10 @@ export function calPlayerCe(globalCeAttr: CeAttr, hero: HeroType, type: number,
reIncAttr = calHeroEquipIncAttr(hero); reIncAttr = calHeroEquipIncAttr(hero);
} else if (type == HERO_SYSTEM_TYPE.RESTRENGTHEN) { } else if (type == HERO_SYSTEM_TYPE.RESTRENGTHEN) {
reIncAttr = calRestrengthenIncAttr(hero, args.shift(), args, addSeidList, removeSeidList); reIncAttr = calRestrengthenIncAttr(hero, args.shift(), args, addSeidList, removeSeidList);
} else if (type == HERO_SYSTEM_TYPE.JEWEL_ON) {//宝石穿戴
reIncAttr = calHeroCeWhenJewelOn(hero, args);
} else if (type == HERO_SYSTEM_TYPE.JEWEL_OFF) {//宝石卸下
reIncAttr = calHeroCeWhenJewelOff(hero, args);
} }
addSeidEffect(reIncAttr, hero.ceAttr, addSeidList, removeSeidList); // 处理加值 addSeidEffect(reIncAttr, hero.ceAttr, addSeidList, removeSeidList); // 处理加值
@@ -431,6 +437,38 @@ function addSeid(effectList: Array<any>, seidId:number, rand: number, seidValue
} }
effectList.push(seid); effectList.push(seid);
} }
function calHeroCeWhenJewelOn(hero: HeroType, args: Array<number>) {
let res: CeAttr = {};
let id = args[0];
let oldId = args[1];
let goodInfo = getGoodById(id);
let oldGoodInfo;
if (!!oldId)
oldGoodInfo = getGoodById(oldId);
for (let attrName in JEWEL_ATTR) {
if (!!goodInfo[attrName]) {
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
res[attrName].fixUp += goodInfo[attrName];
if (oldGoodInfo)
res[attrName].fixUp -= oldGoodInfo[attrName];
}
}
return res;
}
function calHeroCeWhenJewelOff(hero: HeroType, args: Array<number>) {
let res: CeAttr = {};
for (let id of args) {
let goodInfo = getGoodById(id);
for (let attrName in JEWEL_ATTR) {
if (!!goodInfo[attrName]) {
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
res[attrName].fixUp -= goodInfo[attrName];
}
}
}
return res;
}
//全局属性加成 //全局属性加成
export async function reCalAllHeroCe(roleId: string, type: number, args:Array<number>) { export async function reCalAllHeroCe(roleId: string, type: number, args:Array<number>) {
let reIncAttr: CeAttr = {}; let reIncAttr: CeAttr = {};
@@ -470,8 +508,9 @@ function calHeroAddSkin(args:Array<number>, ceAttr: CeAttr){
for (let attr of addSkin.globalAttr) { for (let attr of addSkin.globalAttr) {
attrName = getAtrrNameById(attr.id); attrName = getAtrrNameById(attr.id);
res[attrName] = {fixUp: ceAttr[attrName].fixUp, ratioUp: ceAttr[attrName].ratioUp}; res[attrName] = {fixUp: ceAttr[attrName].fixUp, ratioUp: ceAttr[attrName].ratioUp};
res[attrName].fixUp += attr.number * HERO_CE_RATIO; res[attrName].fixUp += attr.number * HERO_CE_RATIO;
} }
} }
return res; return res;
} }
+1 -1
View File
@@ -466,7 +466,7 @@ export function readWarJsonFileList() {
// 字典表常用解析方法 // 字典表常用解析方法
// 解析物品 {"id": number, "count": number} 格式 // 解析物品 {"id": number, "count": number} 格式
export function parseReward(str: string) { export function parseGoodStr(str: string) {
let result = new Array<{id: number, count: number}>(); let result = new Array<{id: number, count: number}>();
if(!str) return result; if(!str) return result;
let decodeArr = decodeArrayListStr(str); let decodeArr = decodeArrayListStr(str);
+99 -63
View File
@@ -23338,7 +23338,7 @@
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60006&3", "composeMaterial": "60006&3",
"specialMaterial": "&", "specialMaterial": "60060&1",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -23374,7 +23374,7 @@
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60007&3", "composeMaterial": "60007&3",
"specialMaterial": "&", "specialMaterial": "60060&3",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -23410,7 +23410,7 @@
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60008&3", "composeMaterial": "60008&3",
"specialMaterial": "&", "specialMaterial": "60060&9",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -23441,7 +23441,7 @@
"lvLimited": 1, "lvLimited": 1,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23477,7 +23477,7 @@
"lvLimited": 2, "lvLimited": 2,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23513,7 +23513,7 @@
"lvLimited": 3, "lvLimited": 3,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23549,7 +23549,7 @@
"lvLimited": 4, "lvLimited": 4,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23585,7 +23585,7 @@
"lvLimited": 5, "lvLimited": 5,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23621,7 +23621,7 @@
"lvLimited": 6, "lvLimited": 6,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23657,12 +23657,12 @@
"lvLimited": 7, "lvLimited": 7,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60016&3", "composeMaterial": "60016&3",
"specialMaterial": "&", "specialMaterial": "60060&1",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -23693,12 +23693,12 @@
"lvLimited": 8, "lvLimited": 8,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60017&3", "composeMaterial": "60017&3",
"specialMaterial": "&", "specialMaterial": "60060&3",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -23729,12 +23729,12 @@
"lvLimited": 9, "lvLimited": 9,
"quality": 5, "quality": 5,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 43,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60018&3", "composeMaterial": "60018&3",
"specialMaterial": "&", "specialMaterial": "60060&9",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -23765,7 +23765,7 @@
"lvLimited": 1, "lvLimited": 1,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23801,7 +23801,7 @@
"lvLimited": 2, "lvLimited": 2,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23837,7 +23837,7 @@
"lvLimited": 3, "lvLimited": 3,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23873,7 +23873,7 @@
"lvLimited": 4, "lvLimited": 4,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23909,7 +23909,7 @@
"lvLimited": 5, "lvLimited": 5,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23945,7 +23945,7 @@
"lvLimited": 6, "lvLimited": 6,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -23981,12 +23981,12 @@
"lvLimited": 7, "lvLimited": 7,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60026&3", "composeMaterial": "60026&3",
"specialMaterial": "&", "specialMaterial": "60060&1",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24017,12 +24017,12 @@
"lvLimited": 8, "lvLimited": 8,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60027&3", "composeMaterial": "60027&3",
"specialMaterial": "&", "specialMaterial": "60060&3",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24053,12 +24053,12 @@
"lvLimited": 9, "lvLimited": 9,
"quality": 5, "quality": 5,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 44,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60028&3", "composeMaterial": "60028&3",
"specialMaterial": "&", "specialMaterial": "60060&9",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24089,7 +24089,7 @@
"lvLimited": 1, "lvLimited": 1,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24125,7 +24125,7 @@
"lvLimited": 2, "lvLimited": 2,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24161,7 +24161,7 @@
"lvLimited": 3, "lvLimited": 3,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24197,7 +24197,7 @@
"lvLimited": 4, "lvLimited": 4,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24233,7 +24233,7 @@
"lvLimited": 5, "lvLimited": 5,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24269,7 +24269,7 @@
"lvLimited": 6, "lvLimited": 6,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24305,12 +24305,12 @@
"lvLimited": 7, "lvLimited": 7,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60036&3", "composeMaterial": "60036&3",
"specialMaterial": "&", "specialMaterial": "60060&1",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24341,12 +24341,12 @@
"lvLimited": 8, "lvLimited": 8,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60037&3", "composeMaterial": "60037&3",
"specialMaterial": "&", "specialMaterial": "60060&3",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24377,12 +24377,12 @@
"lvLimited": 9, "lvLimited": 9,
"quality": 5, "quality": 5,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 45,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60038&3", "composeMaterial": "60038&3",
"specialMaterial": "&", "specialMaterial": "60060&9",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24413,7 +24413,7 @@
"lvLimited": 1, "lvLimited": 1,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24449,7 +24449,7 @@
"lvLimited": 2, "lvLimited": 2,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24485,7 +24485,7 @@
"lvLimited": 3, "lvLimited": 3,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24521,7 +24521,7 @@
"lvLimited": 4, "lvLimited": 4,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24557,7 +24557,7 @@
"lvLimited": 5, "lvLimited": 5,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24593,7 +24593,7 @@
"lvLimited": 6, "lvLimited": 6,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24629,12 +24629,12 @@
"lvLimited": 7, "lvLimited": 7,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60046&3", "composeMaterial": "60046&3",
"specialMaterial": "&", "specialMaterial": "60060&1",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24665,12 +24665,12 @@
"lvLimited": 8, "lvLimited": 8,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60047&3", "composeMaterial": "60047&3",
"specialMaterial": "&", "specialMaterial": "60060&3",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24701,12 +24701,12 @@
"lvLimited": 9, "lvLimited": 9,
"quality": 5, "quality": 5,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 46,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60048&3", "composeMaterial": "60048&3",
"specialMaterial": "&", "specialMaterial": "60060&9",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24737,7 +24737,7 @@
"lvLimited": 1, "lvLimited": 1,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24773,7 +24773,7 @@
"lvLimited": 2, "lvLimited": 2,
"quality": 1, "quality": 1,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24809,7 +24809,7 @@
"lvLimited": 3, "lvLimited": 3,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24845,7 +24845,7 @@
"lvLimited": 4, "lvLimited": 4,
"quality": 2, "quality": 2,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24881,7 +24881,7 @@
"lvLimited": 5, "lvLimited": 5,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24917,7 +24917,7 @@
"lvLimited": 6, "lvLimited": 6,
"quality": 3, "quality": 3,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
@@ -24953,12 +24953,12 @@
"lvLimited": 7, "lvLimited": 7,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60056&3", "composeMaterial": "60056&3",
"specialMaterial": "&", "specialMaterial": "60060&1",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -24989,12 +24989,12 @@
"lvLimited": 8, "lvLimited": 8,
"quality": 4, "quality": 4,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60057&3", "composeMaterial": "60057&3",
"specialMaterial": "&", "specialMaterial": "60060&3",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -25025,12 +25025,12 @@
"lvLimited": 9, "lvLimited": 9,
"quality": 5, "quality": 5,
"image_id": 1, "image_id": 1,
"itid": 42, "itid": 47,
"goodType": 5, "goodType": 5,
"pieces": 0, "pieces": 0,
"pieceId": 0, "pieceId": 0,
"composeMaterial": "60058&3", "composeMaterial": "60058&3",
"specialMaterial": "&", "specialMaterial": "60060&9",
"decomposeItem": "&", "decomposeItem": "&",
"hole": 0, "hole": 0,
"randomEffect": "&", "randomEffect": "&",
@@ -25054,5 +25054,41 @@
"getWays": "1&0", "getWays": "1&0",
"value": 0, "value": 0,
"info": "&" "info": "&"
},
{
"good_id": 60060,
"name": "灵玄石",
"lvLimited": 1,
"quality": 5,
"image_id": 1,
"itid": 48,
"goodType": 5,
"pieces": 0,
"pieceId": 0,
"composeMaterial": "&",
"specialMaterial": "&",
"decomposeItem": "&",
"hole": 0,
"randomEffect": "&",
"hid": 0,
"hp": 0,
"atk": 0,
"matk": 0,
"def": 0,
"mdef": 100,
"agi": 0,
"luk": 0,
"hp_up": 0,
"atk_up": 0,
"matk_up": 0,
"def_up": 0,
"mdef_up": 0,
"agi_up": 0,
"luk_up": 0,
"specialAttr": "&",
"suitId": 0,
"getWays": "1&0",
"value": 0,
"info": "&"
} }
] ]
+6 -6
View File
@@ -3,7 +3,7 @@
"id": 41001, "id": 41001,
"name": "漂亮衣服1", "name": "漂亮衣服1",
"rSpine": "LH_jiaxu", "rSpine": "LH_jiaxu",
"sSpine": "jiaxu", "sSpine": "caocao",
"skill": "1&12|2&13", "skill": "1&12|2&13",
"seid": "1001&1005&1025", "seid": "1001&1005&1025",
"globalAttr": "1&2000|2&500", "globalAttr": "1&2000|2&500",
@@ -102,7 +102,7 @@
"id": 41010, "id": 41010,
"name": "漂亮衣服10", "name": "漂亮衣服10",
"rSpine": "LH_jiaxu", "rSpine": "LH_jiaxu",
"sSpine": "jiaxu", "sSpine": "dengai",
"skill": "1&12|2&13", "skill": "1&12|2&13",
"seid": "1001&1005&1025", "seid": "1001&1005&1025",
"globalAttr": "1&2000|2&500", "globalAttr": "1&2000|2&500",
@@ -124,7 +124,7 @@
"id": 41012, "id": 41012,
"name": "漂亮衣服12", "name": "漂亮衣服12",
"rSpine": "LH_xuchu", "rSpine": "LH_xuchu",
"sSpine": "xuchu", "sSpine": "caoren",
"skill": "1&12|2&13", "skill": "1&12|2&13",
"seid": "1001&1005&1025", "seid": "1001&1005&1025",
"globalAttr": "1&2000|2&500", "globalAttr": "1&2000|2&500",
@@ -146,7 +146,7 @@
"id": 41014, "id": 41014,
"name": "漂亮衣服14", "name": "漂亮衣服14",
"rSpine": "LH_jiaxu", "rSpine": "LH_jiaxu",
"sSpine": "jiaxu", "sSpine": "caiyan",
"skill": "1&12|2&13", "skill": "1&12|2&13",
"seid": "1001&1005&1025", "seid": "1001&1005&1025",
"globalAttr": "1&2000|2&500", "globalAttr": "1&2000|2&500",
@@ -410,7 +410,7 @@
"id": 41038, "id": 41038,
"name": "漂亮衣服38", "name": "漂亮衣服38",
"rSpine": "LH_xuchu", "rSpine": "LH_xuchu",
"sSpine": "xuchu", "sSpine": "ganning",
"skill": "1&12|2&13", "skill": "1&12|2&13",
"seid": "1001&1005&1025", "seid": "1001&1005&1025",
"globalAttr": "1&2000|2&500", "globalAttr": "1&2000|2&500",
@@ -465,7 +465,7 @@
"id": 41043, "id": 41043,
"name": "漂亮衣服43", "name": "漂亮衣服43",
"rSpine": "LH_xuchu", "rSpine": "LH_xuchu",
"sSpine": "xuchu", "sSpine": "bulianshi",
"skill": "1&12|2&13", "skill": "1&12|2&13",
"seid": "1001&1005&1025", "seid": "1001&1005&1025",
"globalAttr": "1&2000|2&500", "globalAttr": "1&2000|2&500",