From d337517afd3369ec3f3cc310c23909c4e2d4cafb Mon Sep 17 00:00:00 2001 From: luying Date: Sun, 23 Apr 2023 17:44:26 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E6=AD=A6=E5=B0=86=E6=94=BB?= =?UTF-8?q?=E7=95=A5):=20=E6=AD=A6=E5=B0=86=E5=AF=B9=E6=AF=94=E6=97=B6?= =?UTF-8?q?=E5=B0=86=E6=88=91=E6=96=B9=E5=85=A8=E5=B1=80=E5=80=BC=E4=B9=9F?= =?UTF-8?q?=E4=B8=8B=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/role/handler/friendHandler.ts | 11 ++++++++++- game-server/app/servers/role/handler/heroHandler.ts | 4 ++-- game-server/app/services/roleService.ts | 9 ++++----- shared/domain/roleField/friend.ts | 10 +++++++++- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/game-server/app/servers/role/handler/friendHandler.ts b/game-server/app/servers/role/handler/friendHandler.ts index 27e5c689a..8cbccc791 100644 --- a/game-server/app/servers/role/handler/friendHandler.ts +++ b/game-server/app/servers/role/handler/friendHandler.ts @@ -726,7 +726,7 @@ export class FriendHandler { // 查看对象武将详细 public async getHeroDetail(msg: { roleId: string, hids: number[] }, session: BackendSession) { - // let roleId: string = session.get('roleId'); + let roleId: string = session.get('roleId'); // let sid: string = session.get('sid'); let { roleId: hisRoleId, hids } = msg; @@ -744,6 +744,11 @@ export class FriendHandler { let school = await getSchoolPoint(hisRoleId); + let myRoleCe = await RoleCeModel.findByRoleId(roleId); + if (!myRoleCe) return resResult(STATUS.ROLE_NOT_FOUND); + let mycalCe = new CalCe(roleId); + mycalCe.setRoleCe(myRoleCe); + let calCe = new CalCe(hisRoleId); calCe.setRoleCe(roleCe); let attrByHid = await getHeroesAttributes(hisRoleId); @@ -766,6 +771,10 @@ export class FriendHandler { calCe.calSingleGlobalPartCe(hero.hid, 'teraph'), school ); + heroParam.setMyRole( + mycalCe.calSingleGlobalPartCe(hero.hid, 'scroll'), + mycalCe.calSingleGlobalPartCe(hero.hid, 'teraph') + ) list.push(heroParam); } diff --git a/game-server/app/servers/role/handler/heroHandler.ts b/game-server/app/servers/role/handler/heroHandler.ts index 538d85fcf..ecab1be50 100644 --- a/game-server/app/servers/role/handler/heroHandler.ts +++ b/game-server/app/servers/role/handler/heroHandler.ts @@ -252,7 +252,7 @@ export class HeroHandler { update['consumes'] = addConsumeToHero(hero.consumes, material) } - await SchoolModel.updateByHid(roleId, hid, { hid, star: update.quality }); + await SchoolModel.updateByHid(roleId, hid, { hid, quality: update.quality }); let { curHero } = await calculateCeWithHero(HERO_SYSTEM_TYPE.QUALITY, roleId, serverId, sid, hid, update, { hero }); await checkTaskInHeroQUalityUp(serverId, roleId, sid, curHero); // pushHeroQualityUpMsg(roleId, roleName, serverId, curHero); @@ -330,7 +330,7 @@ export class HeroHandler { let { curHero } = await calculateCeWithHero(HERO_SYSTEM_TYPE.COLORSTAR, roleId, serverId, sid, hid, update, { hero, isUpStar }); if (isUpStar) { - await SchoolModel.updateByHid(roleId, hid, { hid, star: update.colorStar }); + await SchoolModel.updateByHid(roleId, hid, { hid, quality: update.quality, colorStar: update.colorStar }); await checkTaskInHeroWakeUp(serverId, roleId, sid, curHero, oldColorStar); // 任务 } if (isWakeUp) pushHeroWakeUp(roleId, roleName, serverId, curHero); // 第一次觉醒 diff --git a/game-server/app/services/roleService.ts b/game-server/app/services/roleService.ts index 77064e5c2..8ebbdc1bf 100644 --- a/game-server/app/services/roleService.ts +++ b/game-server/app/services/roleService.ts @@ -288,11 +288,10 @@ function calSchoolPoint(quality: number, star: number, colorStar: number) { export async function getSchoolPoint(roleId: string) { let schools = await SchoolModel.findByRoleId(roleId); - return schools.reduce((pre, cur) => { - if(cur.isOpen && cur.hid > 0) { - return pre + calSchoolPoint(cur.quality, cur.star, cur.colorStar); - } - return pre; + let hids = schools.filter(cur => cur.isOpen && cur.hid > 0).map(school => school.hid); + let heroes = await HeroModel.findByHidRange(hids, roleId); + return heroes.reduce((pre, cur) => { + return pre + calSchoolPoint(cur.quality, cur.star, cur.colorStar); }, 0); } diff --git a/shared/domain/roleField/friend.ts b/shared/domain/roleField/friend.ts index 42d588991..cd6e38991 100644 --- a/shared/domain/roleField/friend.ts +++ b/shared/domain/roleField/friend.ts @@ -207,7 +207,11 @@ export class HeroDetailParam { }; subHid: number = 0; subActorId: number = 0; - artifacts: {artifactId: number, lv: number }[] = [] + artifacts: {artifactId: number, lv: number }[] = []; + myInfo: { + scroll: number; + teraph: number; + } constructor(hero: HeroType) { this.roleId = hero.roleId; @@ -248,6 +252,10 @@ export class HeroDetailParam { this.role = { title, scroll, teraph, school }; } + setMyRole(scroll: number, teraph: number) { + this.myInfo = { scroll, teraph }; + } + setArtifact(artifact: ArtifactModelType) { this.artifacts.push({ artifactId: artifact.artifactId, lv: artifact.lv }); }