diff --git a/game-server/app/servers/role/handler/heroHandler.ts b/game-server/app/servers/role/handler/heroHandler.ts index b3408c3af..06de5173e 100644 --- a/game-server/app/servers/role/handler/heroHandler.ts +++ b/game-server/app/servers/role/handler/heroHandler.ts @@ -21,6 +21,7 @@ import { createHero, createHeroes } from '../../../services/role/createHero'; import { CheckMeterial } from '../../../services/role/checkMaterial'; import { HeroParam } from '../../../domain/roleField/hero'; import { calculateCeWithHero } from '../../../services/playerCeService'; +import { SchoolModel } from '../../../db/School'; export default function (app: Application) { new HandlerService(app, {}); @@ -651,7 +652,8 @@ export class HeroHandler { } } - let { curHero } = await calculateCeWithHero(HERO_SYSTEM_TYPE.REBIRTH, roleId, serverId, sid, hid, initInfo, { }); + let school = await SchoolModel.findByHid(roleId, hid); + let { curHero } = await calculateCeWithHero(HERO_SYSTEM_TYPE.REBIRTH, roleId, serverId, sid, hid, initInfo, { schoolId: school?.schoolId }); let goods = await addItems(roleId, roleName, sid, consumes, ITEM_CHANGE_REASON.REBIRTH); const heroResult = new HeroParam(curHero); diff --git a/game-server/app/services/playerCeService.ts b/game-server/app/services/playerCeService.ts index 06cb19428..9203e7299 100644 --- a/game-server/app/services/playerCeService.ts +++ b/game-server/app/services/playerCeService.ts @@ -266,6 +266,7 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve } case HERO_SYSTEM_TYPE.REBIRTH: // 29. 重生 { + let { schoolId } = param; for(let [hid, { skinId, lv, quality, star, starStage, colorStar, colorStarStage, job, jobStage, skins, scrollStar, scrollQuality, scrollColorStar }] of heroUpdates) { calCe.setHeroBase(hid, skinId); calCe.setHeroLv(hid, lv); @@ -274,6 +275,7 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve calCe.clearEquip(hid); calCe.setTalent(hid, skins); calCe.setScroll(hid, scrollStar, scrollQuality, scrollColorStar); + if(schoolId) calCe.setSchool(true, hid, schoolId, star, colorStar, quality); } break; } diff --git a/game-server/app/services/role/calCe.ts b/game-server/app/services/role/calCe.ts index c29fa170d..bc9dd11a6 100644 --- a/game-server/app/services/role/calCe.ts +++ b/game-server/app/services/role/calCe.ts @@ -241,7 +241,7 @@ export class CalCe { } } for(let { lv, seid } of dicHeroTalent.level) { - if(level >= lv) { + if(level == lv) { if(!seids.has(id)) seids.set(id, []); seids.get(id).push(seid, 0); }