From 942b49bc8ea670da08859d3a783d1f2c782b8736 Mon Sep 17 00:00:00 2001 From: luying Date: Fri, 12 Aug 2022 20:00:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=86=E8=8E=B9=EF=BC=9A=E7=B2=AE=E8=8D=89?= =?UTF-8?q?=E5=85=88=E8=A1=8C&=E5=AF=BB=E5=AE=9D=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/util/routeUtil.ts | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/game-server/app/util/routeUtil.ts b/game-server/app/util/routeUtil.ts index 7ba230d57..9286d778f 100644 --- a/game-server/app/util/routeUtil.ts +++ b/game-server/app/util/routeUtil.ts @@ -23,23 +23,31 @@ export function battle(session: Session, msg: any, app: Application, cb: (err: E } let rid = session.get('roleId'); + let needDispatch = false; if (msg.args && msg.args.length > 0) { for (let arg of msg.args) { if (!arg.route) continue; if (['battle.comBattleHandler.createTeam', 'battle.comBattleHandler.searchTeam'].indexOf(arg.route) !== -1) { + needDispatch = true; rid = Math.random().toString(36).slice(-8); session.set('teamCode', rid); } else if (arg.route.indexOf('battle.comBattleHandler') !== -1) { if (arg.body.teamCode) { + needDispatch = true; rid = arg.body.teamCode; } } } } - let id = session.get('battleServer')||dispatch(rid, battleServers, 'battle').id; - cb(null, id); + if(needDispatch) { + let id = dispatch(rid, battleServers, 'battle').id; + cb(null, id); + } else { + let id = session.get('battleServer')||dispatch(rid, battleServers, 'battle').id; + cb(null, id); + } } @@ -52,6 +60,7 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er } let rid = session.get('roleId'); + let needDispatch = false; if (msg.args && msg.args.length > 0) { for (let arg of msg.args) { @@ -66,6 +75,7 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er 'guild.gateActivityHandler.debugStartActivity', 'guild.gateActivityHandler.debugEndActivity' ].indexOf(arg.route) !== -1) { + needDispatch = true; rid = session.get('guildCode'); } else if (['guild.cityActivityHandler.getCityStatus', 'guild.cityActivityHandler.declareCity', @@ -75,6 +85,7 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er ].indexOf(arg.route) !== -1) { if (arg.body.cityId) { + needDispatch = true; rid = arg.body.cityId.toString(); } } else if (['guild.raceActivityHandler.getRaceActivity', @@ -83,14 +94,20 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er 'guild.raceActivityHandler.useItem', 'guild.raceActivityHandler.battleEnd', ].indexOf(arg.route) !== -1) { + needDispatch = true; rid = session.get('serverId').toString(); } } } - let id = session.get('guildServer')||dispatch(rid, guildServers, 'guild').id; - cb(null, id); + if(needDispatch) { + let id = dispatch(rid, guildServers, 'guild').id; + cb(null, id); + } else { + let id = session.get('guildServer')||dispatch(rid, guildServers, 'guild').id; + cb(null, id); + } } export function activity(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {