diff --git a/game-server/app/services/guildActivity/guildActivityService.ts b/game-server/app/services/guildActivity/guildActivityService.ts index 380bebc11..a00e0f72b 100644 --- a/game-server/app/services/guildActivity/guildActivityService.ts +++ b/game-server/app/services/guildActivity/guildActivityService.ts @@ -310,6 +310,7 @@ export async function settleGuildActivityReward(aid: number) { } } else if (aid == GUILD_ACTIVITY_TYPE.RACE_ACTIVITY) { let obj = getRaceActivityObj(); + obj.stopRace(); for (let { guildCode, serverId } of obj.guildList) { let woodenHorse = await obj.getWoodenHorse(guildCode, serverId); diff --git a/game-server/app/services/guildActivity/raceActivityObj.ts b/game-server/app/services/guildActivity/raceActivityObj.ts index 56b428af1..1d94ee4fe 100644 --- a/game-server/app/services/guildActivity/raceActivityObj.ts +++ b/game-server/app/services/guildActivity/raceActivityObj.ts @@ -162,6 +162,13 @@ export class RaceActivityObject { return guildCodes; } + public stopRace() { + this.status = RACE_ACTIVITY_STATUS.END; + for(let [_, woodenHorse] of this.woodenHorses) { + woodenHorse.stopRace(); + } + } + private woodenHorseStartRace(woodenHorse: WoodenHorse) { woodenHorse.startRace(this.allStartTime); let members = woodenHorse.members; diff --git a/shared/domain/battleField/guildActivity.ts b/shared/domain/battleField/guildActivity.ts index 473090c4c..f9a23e8da 100644 --- a/shared/domain/battleField/guildActivity.ts +++ b/shared/domain/battleField/guildActivity.ts @@ -109,6 +109,10 @@ export class WoodenHorse { this.allStartTime = allStartTime; } + public stopRace() { + this.status = RACE_ACTIVITY_STATUS.END; + } + /** * 根据时间计算当前木马速度距离耐久等 * @param events