From 1f044968656af5c6a0157f1e00d63d224a13190a Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 27 Feb 2023 21:21:00 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(gvg):=20=E6=9B=B4=E6=96=B0gv?= =?UTF-8?q?g=E6=88=98=E6=96=97=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/guild/handler/gvgBattleHandler.ts | 6 ++++-- shared/db/GVGCity.ts | 3 ++- shared/db/GVGCityAreaPoint.ts | 4 ++-- shared/domain/gvgField/returnData.ts | 5 +++++ 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/game-server/app/servers/guild/handler/gvgBattleHandler.ts b/game-server/app/servers/guild/handler/gvgBattleHandler.ts index 750fceec7..21d906b14 100644 --- a/game-server/app/servers/guild/handler/gvgBattleHandler.ts +++ b/game-server/app/servers/guild/handler/gvgBattleHandler.ts @@ -462,7 +462,7 @@ export class GVGBattleHandler { teamObj.setTime(defenseTeam.teamCode, defenseTeam); let heroes = getOppHeroes(warId, defenseTeam.isRobot, defenseTeam.lineup) - return resResult(STATUS.SUCCESS, { battleCode: battleRecord.battleCode, warId, isRobot: defenseTeam.isRobot, heroes, curTeam: new MyTeamInfo(attackTeam) }); + return resResult(STATUS.SUCCESS, { battleCode: battleRecord.battleCode, warId, isRobot: defenseTeam.isRobot, heroes, curTeam: new MyTeamInfo(attackTeam), oppTeam: new MyTeamInfo(defenseTeam) }); } // 队伍停止攻击 @@ -655,8 +655,10 @@ export class GVGBattleHandler { let pointIds = gameData.gvgPointByAreaId.get(areaId)||[]; let pointArrs: { pointId: number, guardLeagueName: string }[] = []; for(let pointId of pointIds) { + let dicAreaPoint = gameData.gvgAreaPoint.get(pointId); + if(!dicAreaPoint) continue; let playerPoint = points.find(cur => cur.pointId == pointId); - pointArrs.push({ pointId, guardLeagueName: playerPoint? (playerPoint.leagueName||"无"): GVG.GVG_ROBOT_NAME }); + pointArrs.push({ pointId, guardLeagueName: playerPoint? (playerPoint.leagueName||"无"): dicAreaPoint.name }); } if(pointArrs.length > 0) areas.push({ areaId, points: pointArrs }); } diff --git a/shared/db/GVGCity.ts b/shared/db/GVGCity.ts index 7a078a753..4405988d8 100644 --- a/shared/db/GVGCity.ts +++ b/shared/db/GVGCity.ts @@ -104,7 +104,8 @@ export default class GVGCity extends BaseModel { } public static async findByConfigAndGroup(configId: number, groupKey: string) { - const cities: GVGCityType[] = await GVGCityModel.find({ configId, groupKey, hasGuard: true }).lean(); + let cities: GVGCityType[] = await GVGCityModel.find({ configId: configId + 1, groupKey, hasGuard: true }).lean(); + if(!cities || cities.length == 0) cities = await GVGCityModel.find({ configId, groupKey, hasGuard: true }).lean(); return cities } diff --git a/shared/db/GVGCityAreaPoint.ts b/shared/db/GVGCityAreaPoint.ts index 5796d2add..4ed3c0247 100644 --- a/shared/db/GVGCityAreaPoint.ts +++ b/shared/db/GVGCityAreaPoint.ts @@ -39,14 +39,14 @@ export default class GVGCityAreaPoint extends BaseModel { let { configId, groupKey, leagueCode, leagueName, roleId, roleName, teamCode } = team; await GVGCityAreaPointModel.findOneAndUpdate({ configId, groupKey, pointId }, { $setOnInsert: { teamCode: '' }}, { upsert: true }); let result: GVGCityAreaPointType = await GVGCityAreaPointModel.findOneAndUpdate( - { configId, groupKey, pointId }, + { configId, groupKey, pointId, teamCode: '' }, { $set: { cityId, areaId, leagueCode, leagueName, roleId, roleName, teamCode } }, { new: true }).lean(); return result; } public static async leavePoint(configId: number, groupKey: string, pointId: number) { - let result: GVGCityAreaPointType = await GVGCityAreaPointModel.findOneAndUpdate({ configId, groupKey, pointId }, { $set: { teamCode: '' }}, { new: true }).lean(); + let result: GVGCityAreaPointType = await GVGCityAreaPointModel.findOneAndUpdate({ configId, groupKey, pointId }, { $set: { teamCode: '', roleId: '', roleName: '', leagueCode: '', leagueName: '' }}, { new: true }).lean(); return result; } diff --git a/shared/domain/gvgField/returnData.ts b/shared/domain/gvgField/returnData.ts index bc09c0cb5..1ffcc1b25 100644 --- a/shared/domain/gvgField/returnData.ts +++ b/shared/domain/gvgField/returnData.ts @@ -774,6 +774,7 @@ export class MyTeamInfo { head: number; // 保存头像 frame: number; // 保存相框 spine: number; // 保存形象 + lv: number; lineup: { actorId: number; // 武将 dataId: number; // 出兵表上的位置 @@ -788,12 +789,15 @@ export class MyTeamInfo { defenseTime: number; // 防守保护时间 areaId: number; // 出生在的区域 pointId: number; + curTeamBreak: boolean; constructor(team: GVGTeamType) { this.teamCode = team.teamCode; this.index = team.index; this.head = team.head; this.frame = team.frame; + this.spine = team.spine; + this.lv = team.lv; if(team.lineup) this.lineup = team.lineup.map(({ actorId, dataId, outIndex }) => ({ actorId, dataId, order: outIndex })); this.durability = team.durability; this.maxDurability = team.maxDurability; @@ -804,5 +808,6 @@ export class MyTeamInfo { this.defenseTime = team.defenseTime; this.areaId = team.areaId; this.pointId = team.pointId; + this.curTeamBreak = team.curTeamBreak; } } \ No newline at end of file