diff --git a/game-server/app/servers/role/handler/friendHandler.ts b/game-server/app/servers/role/handler/friendHandler.ts index dd2b6bda4..97ab80371 100644 --- a/game-server/app/servers/role/handler/friendHandler.ts +++ b/game-server/app/servers/role/handler/friendHandler.ts @@ -610,7 +610,7 @@ export class FriendHandler { let dbHeroes = await HeroModel.findByRole(oppoRoleId); let role = await RoleModel.findByRoleId(oppoRoleId, null, true); - let { topFive, topFiveCe } = role; + let { topFive, topFiveCe, towerLv } = role; let heroes = new Array(); for(let {hid, lv, star, colorStar, quality } of dbHeroes) { @@ -625,7 +625,7 @@ export class FriendHandler { let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, oppoRoleId);//去redis中获取排名 result = new PlayerDetail({...role, defCe: topFiveCe, heroes}); - result.setWarStar(role.warStar, rank); + result.setWarStar(role.warStar, rank, towerLv); return resResult(STATUS.SUCCESS, result); } diff --git a/shared/domain/battleField/guild.ts b/shared/domain/battleField/guild.ts index fffc1249a..867bd4a49 100644 --- a/shared/domain/battleField/guild.ts +++ b/shared/domain/battleField/guild.ts @@ -2,6 +2,7 @@ import { PvpEnemies, PvpOtherHeroes } from "../../domain/dbGeneral"; import { GuildType } from "../../db/Guild"; import { RoleType, WarStar } from "../../db/Role"; import { WAR_TYPE } from "../../consts/consts"; +import { gameData } from "../../pubUtils/data"; export class PlayerDetailHero { actorId: number; @@ -22,22 +23,24 @@ export class PlayerDetailHero { } class PlayerDetailBattle { - main: number = 0; - tower: number = 0; - dungeon: number = 0; - pvp: number = 0; + main: string[] = []; + tower: string[] = []; + pvp: string[] = []; - constructor(warStar: WarStar[], pvp: number) { + constructor(warStar: WarStar[], pvp: number, tower: number) { + let main = 0; for(let { id, warType } of warStar) { if(warType == WAR_TYPE.NORMAL) { - if(id > this.main) this.main = id; - } else if (warType == WAR_TYPE.TOWER) { - if(id > this.tower) this.tower = id; - } else if (warType == WAR_TYPE.MYSTERY) { - if(id > this.dungeon) this.dungeon = id; + if(id > main) main = id; } } - this.pvp = pvp; + let curDicWar = gameData.war.get(main); + if(curDicWar) { + this.main = curDicWar.detailUIBg; + } + this.pvp.push(pvp.toString()); + this.tower.push(tower.toString()); + } } @@ -56,7 +59,7 @@ export class PlayerDetail { heroes: PlayerDetailHero[]; rank?:number = 0; - battle?: PlayerDetailBattle = new PlayerDetailBattle([], 0); + battle?: PlayerDetailBattle = new PlayerDetailBattle([], 0, 0); constructor(detail: PlayerDetail) { if(detail.roleId) this.roleId = detail.roleId; @@ -72,8 +75,8 @@ export class PlayerDetail { if(detail.rank) this.rank = detail.rank; } - setWarStar?(warStar: WarStar[], pvp: number) { - this.battle = new PlayerDetailBattle(warStar, pvp); + setWarStar?(warStar: WarStar[], pvp: number, tower: number) { + this.battle = new PlayerDetailBattle(warStar, pvp, tower); } } diff --git a/shared/pubUtils/dictionary/DicWar.ts b/shared/pubUtils/dictionary/DicWar.ts index 2bbe68dd8..a4ba71eb8 100644 --- a/shared/pubUtils/dictionary/DicWar.ts +++ b/shared/pubUtils/dictionary/DicWar.ts @@ -1,5 +1,5 @@ // 关卡表 -import {decodeArrayListStr, readJsonFile} from '../util' +import {decodeArrayListStr, decodeArrayStr, readJsonFile} from '../util' import { WAR_RELATE_TABLES, WAR_TYPE } from '../../consts'; export interface DicWar { @@ -26,7 +26,8 @@ export interface DicWar { readonly previousGk: number; // 每日任务下的小类型 readonly dailyType: number; - + // 显示章节名 + readonly detailUIBg: string[]; } export const dicWar = new Map(); @@ -40,6 +41,8 @@ for(let filename of WAR_RELATE_TABLES) { o.fixReward = parseFixReward(o.fixReward); o.conditionReward = parseConditionReward(o.conditionReward); o.parseRandomReward = parseRandomReward(o.parseRandomReward); + o.detailUIBg = parseDetailUIBg(o.detailUIBg); + dicWar.set(o.war_id, o); if(o.warType == WAR_TYPE.PVP) { dicWarPvp.push(o); @@ -84,4 +87,11 @@ function parseRandomReward(str: string = '') { result.push({id: parseInt(id), count: parseInt(count), frequency: parseInt(frequency)}); } return result +} + +function parseDetailUIBg(str: string = '') { + let result = new Array(); + if(!str) return result; + let decodeArr = decodeArrayStr(str, '_'); + return decodeArr; } \ No newline at end of file