diff --git a/game-server/app/servers/connector/handler/entryHandler.ts b/game-server/app/servers/connector/handler/entryHandler.ts index 6ab350e0d..c55c35bed 100644 --- a/game-server/app/servers/connector/handler/entryHandler.ts +++ b/game-server/app/servers/connector/handler/entryHandler.ts @@ -224,7 +224,7 @@ export class EntryHandler { await leaveGVGAreaChannel(roleId, sid); await leaveGVGAreaTeamChannel(roleId, sid); await leaveGVGCityTeamChannel(roleId, sid); - await pinus.app.rpc.guild?.guildRemote.leaveCity.broadcast(true, roleId, serverId, guildCode); + await leaveCity(true, roleId, serverId, guildCode); } catch(e) { console.error(e.stack); } diff --git a/game-server/app/servers/guild/remote/guildRemote.ts b/game-server/app/servers/guild/remote/guildRemote.ts index 32d382dfe..e640825a2 100644 --- a/game-server/app/servers/guild/remote/guildRemote.ts +++ b/game-server/app/servers/guild/remote/guildRemote.ts @@ -8,11 +8,12 @@ import { setHiddenData } from '../../../services/dataService'; import { setKvToMemory } from '../../../services/pushService'; import { getGVGConfig, setGVGConfig, setGVGServerGroup } from '../../../services/gvg/gvgService'; import { GVGConfigType } from '../../../db/GVGConfig'; -import { catapultHurt, gvgBattleEnd, gvgBattleSeconds, gvgBattleStart, initCatapult, leaveCity } from '../../../services/gvg/gvgBattleService'; +import { catapultHurt, gvgBattleEnd, gvgBattleSeconds, gvgBattleStart, initCatapult, leaveCityMem } from '../../../services/gvg/gvgBattleService'; import { clearBattleMemory } from '../../../services/gvg/gvgBattleMemory'; import { GVGLeagueType } from '../../../db/GVGLeague'; import { updateLeagueNameMem, updateTeamRoleInfoMem } from '../../../services/gvg/gvgTeamService'; import { resetPeriodTime, setPeriodTime } from '../../../services/gvg/gvgFightService'; +import { GVGTeamType } from '../../../db/GVGTeam'; export default function (app: Application) { new HandlerService(app, {}); @@ -172,9 +173,9 @@ export class GuildRemote { } } - public async leaveCity(isForce: boolean, roleId: string, serverId: number, guildCode: string, myLeague?: GVGLeagueType) { + public async leaveCityMem(groupKey: string, roleId: string, teams: GVGTeamType[]) { try { - return leaveCity(isForce, roleId, serverId, guildCode, myLeague); + return leaveCityMem(groupKey, roleId, teams); } catch(e) { errlogger.error(`remote ${__filename} \n ${e.stack}`); } diff --git a/game-server/app/services/gvg/gvgBattleService.ts b/game-server/app/services/gvg/gvgBattleService.ts index 9860b8513..2c404d150 100644 --- a/game-server/app/services/gvg/gvgBattleService.ts +++ b/game-server/app/services/gvg/gvgBattleService.ts @@ -229,14 +229,18 @@ export async function leaveCity(isForce: boolean, roleId: string, serverId: numb if(myLeague) await GVGUserDataModel.changeCity(configId, myLeague.leagueCode, roleId, 0); await GVGCityAreaPointModel.playerLeave(configId, groupKey, roleId); // 处理内存数据 - let teamObj = getGVGBattleData(groupKey); - teamObj.leaveCity(roleId); - for(let team of teams) { - if(team.cityId > 0 && team.areaId > 0) { - await sendMessageToGVGAreaByTeamWithSuc(groupKey, team.areaId, PUSH_ROUTE.GVG_PLAYER_LEAVE_AREA, { - cityId: team.cityId, areaId: team.areaId, teamCode: team.teamCode - }); - } + await pinus.app.rpc.guild.guildRemote.leaveCityMem.broadcast(groupKey, roleId, teams); + } +} + +export async function leaveCityMem(groupKey: string, roleId: string, teams: GVGTeamType[]) { + let teamObj = getGVGBattleData(groupKey); + teamObj.leaveCity(roleId); + for(let team of teams) { + if(team.cityId > 0 && team.areaId > 0) { + await sendMessageToGVGAreaByTeamWithSuc(groupKey, team.areaId, PUSH_ROUTE.GVG_PLAYER_LEAVE_AREA, { + cityId: team.cityId, areaId: team.areaId, teamCode: team.teamCode + }); } } }