From e1e36275c00c2925e3357eaafcdc5725adda567b Mon Sep 17 00:00:00 2001 From: luying Date: Fri, 5 Feb 2021 16:23:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=BD=E5=8F=8B=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E5=B1=95=E7=A4=BA=E9=98=B5=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/pvpHandler.ts | 1 - .../app/servers/role/handler/friendHandler.ts | 35 +++++++++++++++++-- shared/domain/battleField/guild.ts | 10 +++--- 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/game-server/app/servers/battle/handler/pvpHandler.ts b/game-server/app/servers/battle/handler/pvpHandler.ts index 71baaed11..d95661df8 100644 --- a/game-server/app/servers/battle/handler/pvpHandler.ts +++ b/game-server/app/servers/battle/handler/pvpHandler.ts @@ -420,7 +420,6 @@ export class PvpHandler { let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名 result = new PlayerDetail({...role, ...pvpDefense, heroes, rank}); - result.setWarStar(role.warStar); } return resResult(STATUS.SUCCESS, result); diff --git a/game-server/app/servers/role/handler/friendHandler.ts b/game-server/app/servers/role/handler/friendHandler.ts index 1f0041528..e0cd378c3 100644 --- a/game-server/app/servers/role/handler/friendHandler.ts +++ b/game-server/app/servers/role/handler/friendHandler.ts @@ -1,13 +1,13 @@ import { Application, BackendSession } from "pinus"; import { resResult, getRandEelm, getResStr, shouldRefresh } from "../../../pubUtils/util"; -import { STATUS, ROLE_SELECT, FRIEND_DROP_TYPE, FRIEND_RELATION_TYPE, POPULATE_TYPE, BLOCK_OPEATE, CONSUME_TYPE, ITID, HERO_SELECT, EQUIP_SELECT } from "../../../consts"; +import { STATUS, ROLE_SELECT, FRIEND_DROP_TYPE, FRIEND_RELATION_TYPE, POPULATE_TYPE, BLOCK_OPEATE, CONSUME_TYPE, ITID, HERO_SELECT, EQUIP_SELECT, REDIS_KEY } from "../../../consts"; import { RoleModel, RoleType } from "../../../db/Role"; import { getBeforeHourSeconds } from "../../../pubUtils/timeUtil"; import { FriendApplyModel } from "../../../db/FriendApply"; import { FriendApplyParams, FriendListParam, FriendRecommendParams, BlackListParam, FriendValueListParam } from "../../../domain/roleField/friend"; import { FriendShipModel, FriendShipType } from "../../../db/FriendShip"; import { FriendRelationModel, Relation } from "../../../db/FriendRelation"; -import { isRoleOnline, getServerName } from "../../../services/redisService"; +import { isRoleOnline, getServerName, getMyRank } from "../../../services/redisService"; import { increaseFrdCnt, getRecommendType, sortByBeSentHeart } from "../../../services/friendService"; import { FriendPointModel } from "../../../db/FriendPoint"; import { gameData } from "../../../pubUtils/data"; @@ -19,6 +19,8 @@ import { HeroModel } from "../../../db/Hero"; import { EquipModel } from "../../../db/Equip"; import { getPlayerMainAttribute } from "../../../services/pvpService"; import { FRIEND } from "../../../pubUtils/dicParam"; +import { PlayerDetail, PlayerDetailHero } from "../../../domain/battleField/guild"; +import { PvpDefenseModel } from "../../../db/PvpDefense"; export default function (app: Application) { @@ -572,6 +574,35 @@ export class FriendHandler { }); } + async getPlayerDetail(msg: { roleId: string }, session: BackendSession) { + + // let roleId = session.get('roleId'); + let { roleId: oppoRoleId } = msg; + + let result: PlayerDetail; + + let dbHeroes = await HeroModel.findByRole(oppoRoleId); + let role = await RoleModel.findByRoleId(oppoRoleId, null, true); + let { topFive } = role; + + let heroes = new Array(); + for(let {hid, lv, star, colorStar, quality } of dbHeroes) { + let hasHero = topFive.find(cur => cur.hid == hid); + if(hasHero) { + heroes.push({ + actorId: hid, lv, star, colorStar, quality, + score: 0 + }); + } + } + let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名 + + result = new PlayerDetail({...role, heroes}); + result.setWarStar(role.warStar, rank); + + return resResult(STATUS.SUCCESS, result); + } + // 查看对象武将详细 public async getHeroDetail(msg: { roleId: string, hid: number }, session: BackendSession) { // let roleId: string = session.get('roleId'); diff --git a/shared/domain/battleField/guild.ts b/shared/domain/battleField/guild.ts index 7d93af4c5..fffc1249a 100644 --- a/shared/domain/battleField/guild.ts +++ b/shared/domain/battleField/guild.ts @@ -25,8 +25,9 @@ class PlayerDetailBattle { main: number = 0; tower: number = 0; dungeon: number = 0; + pvp: number = 0; - constructor(warStar: WarStar[]) { + constructor(warStar: WarStar[], pvp: number) { for(let { id, warType } of warStar) { if(warType == WAR_TYPE.NORMAL) { if(id > this.main) this.main = id; @@ -36,6 +37,7 @@ class PlayerDetailBattle { if(id > this.dungeon) this.dungeon = id; } } + this.pvp = pvp; } } @@ -54,7 +56,7 @@ export class PlayerDetail { heroes: PlayerDetailHero[]; rank?:number = 0; - battle?: PlayerDetailBattle = new PlayerDetailBattle([]); + battle?: PlayerDetailBattle = new PlayerDetailBattle([], 0); constructor(detail: PlayerDetail) { if(detail.roleId) this.roleId = detail.roleId; @@ -70,8 +72,8 @@ export class PlayerDetail { if(detail.rank) this.rank = detail.rank; } - setWarStar?(warStar: WarStar[]) { - this.battle = new PlayerDetailBattle(warStar); + setWarStar?(warStar: WarStar[], pvp: number) { + this.battle = new PlayerDetailBattle(warStar, pvp); } }