添加字典表解析
This commit is contained in:
@@ -4,11 +4,13 @@ import { calPlayerCeAndSave, getAllAttrStage } from '../../../services/playerCeS
|
||||
import { resResult, getItems, decodeStr } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import {HeroModel} from '../../../db/Hero';
|
||||
import {CURRENCY_BY_TYPE, CURRENCY_TYPE, ITID, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE} from '../../../consts/consts';
|
||||
import {getJobInfoById, getMaxGradeByjobClass, getHidAndLevelByShipId, getHeroInfoById, getGoodById, getHeroExpByLv, getGamedata, getJobByGradeAndClass, getFriendShipById, getFriendShipLevels, getFashionsById, getHeroLvByExp, getExpByLv} from '../../../pubUtils/gamedata';
|
||||
import {CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ITID} from '../../../consts/consts';
|
||||
import {getJobInfoById, getMaxGradeByjobClass, getHidAndLevelByShipId, getGoodById, getJobByGradeAndClass, getFriendShipById, getFriendShipLevels, getFashionsById} from '../../../pubUtils/gamedata';
|
||||
import { ABI_STAGE } from '../../../consts/abilityConst';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import Item, { ItemModel } from '../../../db/Item';
|
||||
import { ItemModel } from '../../../db/Item';
|
||||
import { gameData, getHeroExpByLv, getHeroStarByQuality, getHeroWakeByQuality, getHeroLvByExp } from '../../../pubUtils/data';
|
||||
import { RewardInter } from '../../../pubUtils/interface';
|
||||
|
||||
const _ = require('underscore');
|
||||
|
||||
@@ -50,7 +52,7 @@ export class HeroHandler {
|
||||
let hasHero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
if(hasHero) return resResult(STATUS.ROLE_HERO_EXISTS);
|
||||
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
|
||||
let dicHero = getHeroInfoById(hid);
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let {pieceId, quality, initialStars: star, pieceCount, jobid: job, name: hName} = dicHero;
|
||||
// 碎片数量是否足够
|
||||
@@ -91,9 +93,9 @@ export class HeroHandler {
|
||||
|
||||
// 计算得材料可转换的经验
|
||||
let originalConsumes: Array<any> = await ItemModel.findByRoleAndType(roleId, CONSUME_TYPE.EXP);
|
||||
let material = new Array<{id: number, count: number}>();
|
||||
let material = new Array<RewardInter>();
|
||||
for(let {id, count} of originalConsumes) {
|
||||
let dicGoods = getGoodById(id);
|
||||
let dicGoods = gameData.goods.get(id);
|
||||
if(!dicGoods) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let _count = Math.ceil(needExp/dicGoods.value);
|
||||
if(_count < count) {
|
||||
@@ -132,7 +134,7 @@ export class HeroHandler {
|
||||
|
||||
let {hid, star, starStage} = msg;
|
||||
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
|
||||
let dicHero = getHeroInfoById(hid);
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let {pieceId} = dicHero;
|
||||
|
||||
@@ -147,8 +149,7 @@ export class HeroHandler {
|
||||
return resResult(STATUS.ROLE_STAR_REACH_MAX);
|
||||
}
|
||||
// 根据dic_zyz_hero_star 计算需要花的碎片并检查碎片数量
|
||||
const dicHeroStar = getGamedata('dic_zyz_hero_star');
|
||||
const curDicHeroStar = dicHeroStar.find(cur => cur.quality == quality && cur.star && oldStar);
|
||||
const curDicHeroStar = getHeroStarByQuality(quality, oldStar);
|
||||
if(!curDicHeroStar) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
|
||||
let costResult = await handleCost(roleId, sid, [{id: pieceId, count: curDicHeroStar.advanceUpFragmentNum}]);
|
||||
@@ -175,7 +176,7 @@ export class HeroHandler {
|
||||
let sid: string = session.get('sid');
|
||||
|
||||
let {hid, quality} = msg;
|
||||
let dicHero = getHeroInfoById(hid);
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
// 根据dic_hero 获得 碎片id
|
||||
let {pieceId} = dicHero;
|
||||
@@ -194,8 +195,7 @@ export class HeroHandler {
|
||||
}
|
||||
|
||||
// 根据dic_zyz_hero_quality_up 获得需要的材料
|
||||
let dicHeroQualityUp = getGamedata('dic_zyz_hero_quality_up');
|
||||
const curDicHeroQualityUp = dicHeroQualityUp.find(cur => cur.quality == quality);
|
||||
const curDicHeroQualityUp = gameData.heroQualityUp.get(quality);
|
||||
if(!curDicHeroQualityUp) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let {fragmentNum} = curDicHeroQualityUp;
|
||||
|
||||
@@ -219,7 +219,7 @@ export class HeroHandler {
|
||||
|
||||
let {hid, colorStar, colorStarStage} = msg;
|
||||
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
|
||||
let dicHero = getHeroInfoById(hid);
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let {pieceId} = dicHero;
|
||||
|
||||
@@ -237,16 +237,13 @@ export class HeroHandler {
|
||||
return resResult(STATUS.ROLE_QUALITY_NOT_ENOUGH);
|
||||
}
|
||||
// 根据dic_zyz_hero_wake 计算需要花的碎片并检查碎片数量
|
||||
const dicHeroStar = getGamedata('dic_zyz_hero_wake');
|
||||
const curDicHeroStar = dicHeroStar.find(cur => cur.quality == quality && cur.star == oldColorStar);
|
||||
const curDicHeroStar = getHeroWakeByQuality(quality, oldColorStar)
|
||||
if(!curDicHeroStar) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
|
||||
let {fragmentNum, consume} = curDicHeroStar;
|
||||
let consumeArr = decodeStr('cost', consume);
|
||||
|
||||
// console.log(JSON.stringify([{id: pieceId, count: fragmentNum}, ...consumeArr]))
|
||||
let costResult = await handleCost(roleId, sid, [{id: pieceId, count: fragmentNum}, ...consumeArr]);
|
||||
|
||||
let costResult = await handleCost(roleId, sid, [{id: pieceId, count: fragmentNum}, ...consume]);
|
||||
if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
|
||||
let isUpStar = oldColorStar == 0|| oldColorStarStage + 1 == ABI_STAGE.END;
|
||||
@@ -389,8 +386,9 @@ export class HeroHandler {
|
||||
//计算消耗物品转化的经验
|
||||
let exp:number = 0;
|
||||
for (let item of items) {
|
||||
let itemInfo = getGoodById(item.id);
|
||||
if (itemInfo.itid == CONSUME_TYPE.FAVOUR) {
|
||||
let itemInfo = gameData.goods.get(item.id);
|
||||
let dicItid = ITID.get(itemInfo.itid);
|
||||
if (dicItid.type == CONSUME_TYPE.FAVOUR) {
|
||||
exp += itemInfo.value;
|
||||
} else {
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
@@ -12,7 +12,7 @@ import { RoleModel } from '../db/Role';
|
||||
import { CeAttrData, CeAttr } from '../db/BaseModel';
|
||||
import { getFashionsById, getJobInfoById, getJobByGradeAndClass, getHeroInfoById, getHeroStar, getHeroWake, getFiendShipLevel, getFriendShipById, getHeroSkillById, getSeidById } from '../pubUtils/gamedata';
|
||||
import { getAttrNameByJobStage, getAttrCeRatio, getAtrrNameById, ABI_TYPE_TO_STAGE, ABI_STAGE, SEID_TYPE, HERO_ATTR} from '../consts/abilityConst';
|
||||
import { SSL_OP_SSLEAY_080_CLIENT_DH_BUG } from 'constants';
|
||||
|
||||
const HERO_CE_RATIO = 100;
|
||||
const _ = require('underscore');
|
||||
//战力计算TODO
|
||||
@@ -62,7 +62,6 @@ export async function calPlayerCeAndSave(sid: string, roleId: string, heros: Arr
|
||||
for (let hero of heros) {
|
||||
let incHeroCe = calPlayerCe(hero, type, args);
|
||||
incPlayerCe += incHeroCe;
|
||||
console.log('*******', JSON.stringify(hero))
|
||||
await hero.save();
|
||||
pushHeros.push({
|
||||
hid: hero.hid,
|
||||
|
||||
Reference in New Issue
Block a user