diff --git a/game-server/app/servers/role/handler/roleHandler.ts b/game-server/app/servers/role/handler/roleHandler.ts index 00c0fa8f6..da3731300 100644 --- a/game-server/app/servers/role/handler/roleHandler.ts +++ b/game-server/app/servers/role/handler/roleHandler.ts @@ -4,7 +4,7 @@ import { HeroModel } from '../../../db/Hero'; import { resResult, decodeIdCntArrayStr, parseGoodStr } from '../../../pubUtils/util'; import {Application, BackendSession} from 'pinus'; import { handleCost } from '../../../services/rewardService'; -import { getTitle, getTeraph, gameData } from '../../../pubUtils/data'; +import { getTitle, getTeraph, gameData, getScollByStar } from '../../../pubUtils/data'; import { SCHOOL, SCROLL } from '../../../pubUtils/dicParam'; import { getTeraphAttr, getAtrrNameById } from '../../../consts/constModules/abilityConst' const _ = require('underscore'); @@ -292,16 +292,16 @@ export class RoleHandler { let { hid } = msg; - let curHero = await HeroModel.findByHidAndRole(hid, roleId, 'star colorStar quality scrollActive scrollStar scrollQuality favour favourLv'); + let curHero = await HeroModel.findByHidAndRole(hid, roleId, 'star colorStar quality scrollId scrollActive scrollStar scrollQuality favour favourLv'); if (!curHero) return resResult(STATUS.HERO_NOT_FIND); let dicHero = gameData.hero.get(hid); if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND); - let { star, colorStar, quality, scrollActive, scrollStar, scrollColorStar, scrollQuality, favour, favourLv } = curHero; + let { star, colorStar, quality, scrollId, scrollActive, scrollStar, scrollColorStar, scrollQuality, favour, favourLv } = curHero; let update = { - scrollActive, scrollStar, scrollColorStar, scrollQuality, favour, favourLv + scrollActive, scrollId, scrollStar, scrollColorStar, scrollQuality, favour, favourLv }; if (!scrollActive) { // 初次激活 update.scrollActive = true; @@ -334,9 +334,12 @@ export class RoleHandler { } else { return resResult(STATUS.ROLE_SCROLL_REACH_MAX); } - } - curHero = await HeroModel.updateHeroInfo(roleId, hid, update, 'hid scrollActive scrollStar scrollColorStar scrollQuality favour favourLv'); + } + let dicHeroScroll = getScollByStar(dicHero.quality, update.scrollStar, update.scrollQuality, update.scrollColorStar); + update.scrollId = dicHeroScroll?dicHeroScroll.id: 0; + + curHero = await HeroModel.updateHeroInfo(roleId, hid, update, 'hid scrollActive scrollId scrollStar scrollColorStar scrollQuality favour favourLv'); await calPlayerCeAndSave(sid, roleId, [], HERO_SYSTEM_TYPE.SCROLL, [hid, favourLv]); return resResult(STATUS.SUCCESS, { diff --git a/shared/db/Hero.ts b/shared/db/Hero.ts index 3fa1e1d67..c635b4d50 100644 --- a/shared/db/Hero.ts +++ b/shared/db/Hero.ts @@ -67,6 +67,7 @@ interface heroUpdate { ePlace?:EPlace[]; _id?:number; scrollActive?: boolean; + scrollId?: number; scrollStar?: number; scrollColorStar?: number; scrollQuality?: number; @@ -117,6 +118,8 @@ export default class Hero extends BaseModel { @prop({ required: true, default: false }) scrollActive: boolean; // 是否在名将谱中激活 @prop({ required: true, default: 0 }) + scrollId: number; // 名将谱id + @prop({ required: true, default: 0 }) scrollStar: number; // 名将谱中保存的星级 @prop({ required: true, default: 0 }) scrollColorStar: number; // 名将谱中保存的觉醒等级