🐞 fix(gvg): 修复gvg激战期离开城池后位置乱了的问题
This commit is contained in:
@@ -182,11 +182,12 @@ export class GVGBattleHandler {
|
|||||||
// 每赛季初自己的几支队伍恢复耐久、城市、顺便更新一下自己的玩家名、联军
|
// 每赛季初自己的几支队伍恢复耐久、城市、顺便更新一下自己的玩家名、联军
|
||||||
let teams = await refreshTeams(configId, groupKey, roleId, myLeague);
|
let teams = await refreshTeams(configId, groupKey, roleId, myLeague);
|
||||||
|
|
||||||
|
if(await GVGTeamModel.checkLockTeam(roleId, cityId)) return resResult(STATUS.GVG_BATTLE_TEAM_LOCK_ENTERY_CITY);
|
||||||
let gvgUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId);
|
let gvgUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId);
|
||||||
let originCityId = gvgUserData?.cityId||0;
|
let originCityId = gvgUserData?.cityId||0;
|
||||||
// 检测是否已经在城池中,玩家不在这个城池中时进行处理
|
// 检测是否已经在城池中,玩家不在这个城池中时进行处理
|
||||||
if (originCityId != cityId) {
|
if (originCityId != cityId) {
|
||||||
let gvgUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId);
|
|
||||||
if(gvgUserData?.cityId > 0) { // 如果leaveCity没有退出成功,玩家还遗留在上一座城中,做一下处理
|
if(gvgUserData?.cityId > 0) { // 如果leaveCity没有退出成功,玩家还遗留在上一座城中,做一下处理
|
||||||
await leaveCity(true, roleId, serverId, guildCode, myLeague);
|
await leaveCity(true, roleId, serverId, guildCode, myLeague);
|
||||||
}
|
}
|
||||||
@@ -234,8 +235,6 @@ export class GVGBattleHandler {
|
|||||||
const { cityId } = msg;
|
const { cityId } = msg;
|
||||||
let { configId, period } = getGVGPeriodData();
|
let { configId, period } = getGVGPeriodData();
|
||||||
|
|
||||||
if(await GVGTeamModel.checkLockTeam(roleId)) return resResult(STATUS.GVG_BATTLE_TEAM_LOCK);
|
|
||||||
|
|
||||||
// 检测是否已经在城池中
|
// 检测是否已经在城池中
|
||||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||||
|
|||||||
@@ -387,6 +387,7 @@ export const STATUS = {
|
|||||||
GVG_BATTLE_TEAM_REVIVE: { code: 21421, simStr: '队伍复活中' },
|
GVG_BATTLE_TEAM_REVIVE: { code: 21421, simStr: '队伍复活中' },
|
||||||
GVG_BATTLE_TEAM_LOCK: { code: 21422, simStr: '正在有玩家挑战您,请等待' },
|
GVG_BATTLE_TEAM_LOCK: { code: 21422, simStr: '正在有玩家挑战您,请等待' },
|
||||||
GVG_BATTLE_TEAM_HAS_SELLTED: { code: 21423, simStr: '该编队已驻守据点了' },
|
GVG_BATTLE_TEAM_HAS_SELLTED: { code: 21423, simStr: '该编队已驻守据点了' },
|
||||||
|
GVG_BATTLE_TEAM_LOCK_ENTERY_CITY: { code: 21424, simStr: '正在有玩家挑战您,请稍后切换城池' },
|
||||||
|
|
||||||
// 通用 30000 - 30099
|
// 通用 30000 - 30099
|
||||||
DIC_DATA_NOT_FOUND: { code: 30000, simStr: '数据表未找到' },
|
DIC_DATA_NOT_FOUND: { code: 30000, simStr: '数据表未找到' },
|
||||||
|
|||||||
@@ -343,8 +343,8 @@ export default class GVGTeam extends BaseModel {
|
|||||||
await GVGTeamModel.updateMany({ roleId }, { $set: info });
|
await GVGTeamModel.updateMany({ roleId }, { $set: info });
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async checkLockTeam(roleId: string) {
|
public static async checkLockTeam(roleId: string, cityId: number) {
|
||||||
return await GVGTeamModel.exists({ roleId, lockTime: { $gt: nowSeconds() } })
|
return await GVGTeamModel.exists({ roleId, lockTime: { $gt: nowSeconds() }, cityId: { $ne: cityId } })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user