🐞 fix(gvg): 修复战区问题,不跨服服务器应单列
This commit is contained in:
@@ -6,7 +6,7 @@ import { GVGCityModel } from '../../../db/GVGCity';
|
||||
import { Application, BackendSession, ChannelService, HandlerService, pinus } from "pinus";
|
||||
import { resResult, genCode } from "../../../pubUtils/util";
|
||||
import { GVGLeagueModel } from '../../../db/GVGLeague';
|
||||
import { checkGVGPeriod, getGroupIdOfServer, getGVGConfig, getGVGPeriodData, getGVGServerType } from '../../../services/gvg/gvgService';
|
||||
import { getGroupKey, getGVGConfig, getGVGPeriodData } from '../../../services/gvg/gvgService';
|
||||
import { redisAddBattleScore, battleEndSendMessage, calBattleScoreByCe, checkAreaIsInCity, checkGVGBattleStart, checkMoveStatus, getBattleRanksByCity, getBirthAreaOfCity, getGVGWarId, getOppHeroes, getTechKnifeHurt, getTechReviveMinus, initRobots, pushTeamMoveMessage, getGVGCitiesInfo } from '../../../services/gvg/gvgBattleService';
|
||||
import { getGVGBattleData } from '../../../services/gvg/gvgBattleMemory';
|
||||
import { GVGBattleRecModel } from '../../../db/GVGBattleRec';
|
||||
@@ -66,15 +66,13 @@ export class GVGBattleHandler {
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
// if (period != GVG_PERIOD.BATTLE) return resResult(STATUS.GVG_NOT_BATTLE_PERIOD); // TODO 测试临时注
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
let { leagueCode, name: leagueName } = myLeague;
|
||||
let durability = gameData.gvgTeamDurability.get(index)||0;
|
||||
|
||||
let updateParam: SaveTeamUpdateParam = { index, head, spine, frame, configId, groupId, serverType }
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
let updateParam: SaveTeamUpdateParam = { index, head, spine, frame, configId, groupKey }
|
||||
if(lineup) {
|
||||
let attrByHid = await getHeroesAttributes(roleId);
|
||||
let { isOK, heroes } = await checkBattleHeroesByHid(roleId, lineup.map(cur => cur.actorId));
|
||||
@@ -117,13 +115,11 @@ export class GVGBattleHandler {
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
let { startFightTime, endFightTime } = getFightTimeByPeriod(period);
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
const city = await GVGCityModel.findByCityId(configId, groupId, serverType, cityId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
const city = await GVGCityModel.findByCityId(configId, groupKey, cityId);
|
||||
const { guardLeague: leagueCode = '', guardLeagueName: name = '', guardLeagueIcon: icon = 0, players = [] } = city||{};
|
||||
|
||||
let ourTeamCnt = 0, oppTeamCnt = 0;
|
||||
@@ -171,14 +167,13 @@ export class GVGBattleHandler {
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
// if (period != GVG_PERIOD.BATTLE) return resResult(STATUS.GVG_NOT_BATTLE_PERIOD); // TODO 测试临时注
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
// 初始化本城池的守擂机器人
|
||||
await initRobots(configId, groupId, serverType, cityId);
|
||||
await initRobots(configId, groupKey, cityId);
|
||||
|
||||
let teams = await GVGTeamModel.findByRole(roleId, '-_id');
|
||||
// 每赛季初自己的几支队伍恢复耐久、城市、顺便更新一下自己的玩家名、联军
|
||||
@@ -186,7 +181,7 @@ export class GVGBattleHandler {
|
||||
for(let team of teams) {
|
||||
if(team.configId != configId) {
|
||||
let { teamCode, maxDurability } = team;
|
||||
updateArr.push({ teamCode, durability: maxDurability, cityId: 0, areaId: 0, pointId: 0, roleName, guildCode, leagueCode: myLeague.leagueCode, leagueName: myLeague.name, groupId, serverType });
|
||||
updateArr.push({ teamCode, durability: maxDurability, cityId: 0, areaId: 0, pointId: 0, roleName, guildCode, leagueCode: myLeague.leagueCode, leagueName: myLeague.name, groupKey });
|
||||
}
|
||||
if(team.cityId) originCityId = team.cityId;
|
||||
}
|
||||
@@ -196,26 +191,26 @@ export class GVGBattleHandler {
|
||||
if (originCityId != cityId) {
|
||||
let gvgUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId);
|
||||
if(gvgUserData?.cityId > 0) { // 如果leaveCity没有退出成功,玩家还遗留在上一座城中,做一下处理
|
||||
await GVGCityModel.decreasePlayer(configId, groupId, serverType, gvgUserData.cityId, roleId);
|
||||
await GVGCityModel.decreasePlayer(configId, groupKey, gvgUserData.cityId, roleId);
|
||||
}
|
||||
const roleTeamCnt = await GVGTeamModel.getTeamCntByRole(roleId);
|
||||
let city = await GVGCityModel.increasePlayer(configId, groupId, serverType, cityId, roleId, myLeague.leagueCode, roleTeamCnt);
|
||||
let city = await GVGCityModel.increasePlayer(configId, groupKey, cityId, roleId, myLeague.leagueCode, roleTeamCnt);
|
||||
if(!city) return resResult(STATUS.GVG_BATTLE_CITY_FULL);
|
||||
|
||||
gvgUserData = await GVGUserDataModel.changeCity(configId, myLeague.leagueCode, roleId, cityId);
|
||||
let areaId = getBirthAreaOfCity(city, myLeague.leagueCode);
|
||||
await GVGTeamModel.enterCity(roleId, cityId, areaId, groupId, serverType);
|
||||
await GVGTeamModel.enterCity(roleId, cityId, areaId, groupKey);
|
||||
teams = await GVGTeamModel.findByRole(roleId, '-_id');
|
||||
// 更新内存队伍信息
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.enterCity(...teams);
|
||||
}
|
||||
|
||||
const recs = await GVGRecModel.findBattleRecByCity(configId, groupId, serverType, cityId);
|
||||
const recs = await GVGRecModel.findBattleRecByCity(configId, groupKey, cityId);
|
||||
const teamResult = teams.map(team => new MyTeamInfo(team));
|
||||
const { ranks, myRank } = await getBattleRanksByCity(configId, groupId, serverType, cityId, myLeague);
|
||||
const { ranks, myRank } = await getBattleRanksByCity(configId, groupKey, cityId, myLeague);
|
||||
await leaveGVGCityTeamChannel(roleId, sid);
|
||||
await addRoleToGVGCityChannel(roleId, groupId, serverType, cityId, sid);
|
||||
await addRoleToGVGCityChannel(roleId, groupKey, cityId, sid);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
cityId,
|
||||
@@ -235,8 +230,7 @@ export class GVGBattleHandler {
|
||||
const { cityId } = msg;
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
// 检测是否已经在城池中
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
@@ -249,16 +243,16 @@ export class GVGBattleHandler {
|
||||
return resResult(STATUS.GVG_USER_NOT_IN_CITY);
|
||||
}
|
||||
|
||||
const city = await GVGCityModel.decreasePlayer(configId, groupId, serverType, cityId, roleId);
|
||||
const city = await GVGCityModel.decreasePlayer(configId, groupKey, cityId, roleId);
|
||||
if (!city) {
|
||||
return resResult(STATUS.GVG_CITY_NOT_FOUND);
|
||||
}
|
||||
|
||||
// 更新玩家城池和队伍城池
|
||||
gvgUserData = await GVGUserDataModel.changeCity(configId, myLeague.leagueCode, roleId, 0);
|
||||
await GVGTeamModel.enterCity(roleId, 0, 0, groupId, serverType);
|
||||
await GVGTeamModel.enterCity(roleId, 0, 0, groupKey);
|
||||
// 处理内存数据
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.leaveCity(roleId);
|
||||
|
||||
await leaveGVGAreaChannel(roleId, sid);
|
||||
@@ -277,12 +271,10 @@ export class GVGBattleHandler {
|
||||
|
||||
if(!checkAreaIsInCity(cityId, areaIds)) return resResult(STATUS.GVG_AREA_NOT_IN_CITY);
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
let serverNames = await getAllServerName();
|
||||
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
let result: GVGAreaInMap[] = [];
|
||||
for(let areaId of areaIds) {
|
||||
let teams = teamObj.findTeamsByArea(areaId);
|
||||
@@ -291,7 +283,7 @@ export class GVGBattleHandler {
|
||||
}
|
||||
// 加入频道
|
||||
await leaveGVGAreaChannel(roleId, sid);
|
||||
await addRoleToAreaChannel(roleId, groupId, serverType, areaIds, sid);
|
||||
await addRoleToAreaChannel(roleId, groupKey, areaIds, sid);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { cityId, areas: result });
|
||||
}
|
||||
@@ -303,14 +295,13 @@ export class GVGBattleHandler {
|
||||
const serverId = session.get('serverId');
|
||||
const { cityId, teamCode } = msg;
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let myTeam = await GVGTeamModel.findMyTeamByCode(roleId, teamCode);
|
||||
if(!myTeam) return resResult(STATUS.GVG_TEAM_NOT_FOUND);
|
||||
if(myTeam.cityId != cityId) return resResult(STATUS.GVG_BATTLE_IS_NOT_IN_CITY);
|
||||
|
||||
let teams = await GVGTeamModel.findByAreaId(groupId, serverType, cityId, myTeam.areaId);
|
||||
let teams = await GVGTeamModel.findByAreaId(groupKey, cityId, myTeam.areaId);
|
||||
let points: GVGTeamInListOnPoint[] = [], players: GVGTeamInList[] = [];
|
||||
let pointIds = gameData.gvgPointByAreaId.get(myTeam.areaId)||[];
|
||||
for(let pointId of pointIds) {
|
||||
@@ -326,7 +317,7 @@ export class GVGBattleHandler {
|
||||
}
|
||||
|
||||
await leaveGVGAreaTeamChannel(roleId, sid);
|
||||
await addRoleToAreaTeamChannel(roleId, groupId, serverType, myTeam.areaId, sid);
|
||||
await addRoleToAreaTeamChannel(roleId, groupKey, myTeam.areaId, sid);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
cityId, areaId: myTeam.areaId, points, players
|
||||
@@ -341,8 +332,7 @@ export class GVGBattleHandler {
|
||||
const serverId = session.get('serverId');
|
||||
const { areaId, cityId, teamCode } = msg;
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let team = await GVGTeamModel.findMyTeamByCode(roleId, teamCode);
|
||||
let checkResult = checkMoveStatus(team, cityId, areaId);
|
||||
@@ -351,10 +341,10 @@ export class GVGBattleHandler {
|
||||
team = await GVGTeamModel.startMove(teamCode, areaId, team.areaId);
|
||||
|
||||
// 更新内存数据
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.move(teamCode, areaId, team.fromAreaId, team.startMoveTime, team.stopMoveTime);
|
||||
|
||||
await addRoleToAreaTeamChannel(roleId, groupId, serverType, areaId, sid);
|
||||
await addRoleToAreaTeamChannel(roleId, groupKey, areaId, sid);
|
||||
await pushTeamMoveMessage(team);
|
||||
return resResult(STATUS.SUCCESS, { areaId, cityId, stopMoveTime: team.stopMoveTime });
|
||||
}
|
||||
@@ -367,8 +357,7 @@ export class GVGBattleHandler {
|
||||
const serverId = session.get('serverId');
|
||||
const { areaId, cityId, teamCode } = msg;
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let team = await GVGTeamModel.findMyTeamByCode(roleId, teamCode);
|
||||
if(!team) return resResult(STATUS.GVG_BATTLE_TEAM_NOT_FOUND);
|
||||
@@ -376,11 +365,11 @@ export class GVGBattleHandler {
|
||||
|
||||
team = await GVGTeamModel.stopMove(teamCode, areaId);
|
||||
// 更新内存数据
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.move(teamCode, areaId, 0, team.startMoveTime, team.stopMoveTime);
|
||||
|
||||
await leaveGVGAreaTeamChannel(roleId, sid);
|
||||
await addRoleToAreaTeamChannel(roleId, groupId, serverType, areaId, sid);
|
||||
await addRoleToAreaTeamChannel(roleId, groupKey, areaId, sid);
|
||||
return resResult(STATUS.SUCCESS, { areaId, cityId, curTeam: new MyTeamInfo(team) });
|
||||
}
|
||||
|
||||
@@ -393,8 +382,7 @@ export class GVGBattleHandler {
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
// if (period != GVG_PERIOD.BATTLE) return resResult(STATUS.GVG_NOT_BATTLE_PERIOD); // TODO 测试临时注
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let myTeam = await GVGTeamModel.findMyTeamByCode(roleId, teamCode);
|
||||
if(!myTeam) return resResult(STATUS.GVG_TEAM_NOT_FOUND);
|
||||
@@ -406,7 +394,7 @@ export class GVGBattleHandler {
|
||||
if(!point) return resResult(STATUS.GVG_POINT_HAS_SETTLED);
|
||||
const curTeam = await GVGTeamModel.settlePoint(teamCode, pointId);
|
||||
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.teamSettle(roleId, teamCode, pointId);
|
||||
|
||||
addTeamSettleRec(curTeam);
|
||||
@@ -423,8 +411,7 @@ export class GVGBattleHandler {
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
// if (period != GVG_PERIOD.BATTLE) return resResult(STATUS.GVG_NOT_BATTLE_PERIOD); // TODO 测试临时注
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let myTeam = await GVGTeamModel.findMyTeamByCode(roleId, teamCode);
|
||||
if(!myTeam) return resResult(STATUS.GVG_TEAM_NOT_FOUND);
|
||||
@@ -432,8 +419,8 @@ export class GVGBattleHandler {
|
||||
if(dicAreaPoint.areaId != myTeam.areaId) return resResult(STATUS.GVG_POINT_NOT_AREA);
|
||||
|
||||
const curTeam = await GVGTeamModel.settlePoint(teamCode, 0);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupId, serverType, pointId);
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, pointId);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.teamSettle(roleId, teamCode, pointId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { curTeam: new MyTeamInfo(curTeam) });
|
||||
@@ -450,20 +437,19 @@ export class GVGBattleHandler {
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
// if (period != GVG_PERIOD.BATTLE) return resResult(STATUS.GVG_NOT_BATTLE_PERIOD); // TODO 测试临时注
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let { attackTeam, defenseTeam } = await GVGTeamModel.findBattleTeams(teamCode, oppoTeamCode);
|
||||
let checkStatus = checkGVGBattleStart(roleId, attackTeam, defenseTeam);
|
||||
if(checkStatus.code != 0) return resResult(checkStatus);
|
||||
|
||||
const warId = getGVGWarId(defenseTeam);
|
||||
const battleRecord = await GVGBattleRecModel.createRec(configId, groupId, serverType, warId, attackTeam, defenseTeam);
|
||||
const battleRecord = await GVGBattleRecModel.createRec(configId, groupKey, warId, attackTeam, defenseTeam);
|
||||
|
||||
attackTeam = await GVGTeamModel.battleStartLockAttack(teamCode);
|
||||
defenseTeam = await GVGTeamModel.battleStartLockDefense(oppoTeamCode, teamCode);
|
||||
// 内存处理
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.setTime(attackTeam.teamCode, attackTeam);
|
||||
teamObj.setTime(defenseTeam.teamCode, defenseTeam);
|
||||
let heroes = getOppHeroes(warId, defenseTeam.isRobot, defenseTeam.lineup)
|
||||
@@ -483,9 +469,8 @@ export class GVGBattleHandler {
|
||||
let { attackTeam, defenseTeam } = await GVGTeamModel.findBattleTeams(record.attackTeam.teamCode, record.defenseTeam.teamCode);
|
||||
if(defenseTeam.lockTeamCode != attackTeam.teamCode) return resResult(STATUS.GVG_LOCK_TIME_OUT)
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let city = await GVGCityModel.findByCityId(configId, groupId, serverType, cityId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
let city = await GVGCityModel.findByCityId(configId, groupKey, cityId);
|
||||
if (!city) return resResult(STATUS.GVG_CITY_NOT_FOUND);
|
||||
|
||||
// 计算并更新两支队伍耐久
|
||||
@@ -497,7 +482,7 @@ export class GVGBattleHandler {
|
||||
attackTeam = await GVGTeamModel.settlePoint(attackTeam.teamCode, defenseTeam.originPointId);
|
||||
await GVGCityAreaPointModel.settlePoint(cityId, attackTeam.areaId, defenseTeam.originPointId, attackTeam);
|
||||
} else {
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupId, serverType, defenseTeam.originPointId);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, defenseTeam.originPointId);
|
||||
}
|
||||
}
|
||||
if(defenseTeam.curTeamBreak) {
|
||||
@@ -507,11 +492,11 @@ export class GVGBattleHandler {
|
||||
}
|
||||
|
||||
// 更新内存
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.battleEnd([attackTeam, defenseTeam]);
|
||||
// 更新rec
|
||||
let rec = await GVGBattleRecModel.battleEnd(battleCode, isSuccess);
|
||||
await battleEndSendMessage(groupId, serverType, cityId, defenseTeam, attackTeam);
|
||||
await battleEndSendMessage(groupKey, cityId, defenseTeam, attackTeam);
|
||||
addBattleEndRec(rec);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { curTeam: new MyTeamInfo(attackTeam) });
|
||||
@@ -531,8 +516,7 @@ export class GVGBattleHandler {
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
// if (period != GVG_PERIOD.BATTLE) return resResult(STATUS.GVG_NOT_BATTLE_PERIOD); // TODO 测试临时注
|
||||
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let { attackTeam, defenseTeam } = await GVGTeamModel.findBattleTeams(teamCode, oppoTeamCode);
|
||||
let checkStatus = checkGVGBattleStart(roleId, attackTeam, defenseTeam);
|
||||
@@ -544,7 +528,7 @@ export class GVGBattleHandler {
|
||||
let costResult = await handleGVGCost(roleId, myLeague.leagueCode, sid, [{ id: GVG_ITEM.KNIFE, count: 1 }], [], ITEM_CHANGE_REASON.GVG_USE_ITEM);
|
||||
if(!costResult) return resResult(STATUS.GVG_ITEMS_NOT_ENOUGH);
|
||||
|
||||
let city = await GVGCityModel.findByCityId(configId, groupId, serverType, cityId);
|
||||
let city = await GVGCityModel.findByCityId(configId, groupKey, cityId);
|
||||
if (!city) return resResult(STATUS.GVG_CITY_NOT_FOUND);
|
||||
|
||||
defenseTeam = await GVGTeamModel.battleEndDefense(teamCode, await getTechKnifeHurt(configId, attackTeam.leagueCode), getBirthAreaOfCity(city, defenseTeam.leagueCode), await getTechReviveMinus(configId, defenseTeam.leagueCode));
|
||||
@@ -553,7 +537,7 @@ export class GVGBattleHandler {
|
||||
attackTeam = await GVGTeamModel.settlePoint(attackTeam.teamCode, defenseTeam.originPointId);
|
||||
await GVGCityAreaPointModel.settlePoint(cityId, attackTeam.areaId, defenseTeam.originPointId, attackTeam);
|
||||
} else {
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupId, serverType, defenseTeam.originPointId);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, defenseTeam.originPointId);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -563,10 +547,10 @@ export class GVGBattleHandler {
|
||||
}
|
||||
|
||||
// 更新内存
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.battleEnd([attackTeam, defenseTeam]);
|
||||
|
||||
await battleEndSendMessage(groupId, serverType, cityId, defenseTeam, attackTeam);
|
||||
await battleEndSendMessage(groupKey, cityId, defenseTeam, attackTeam);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { curTeam: new MyTeamInfo(attackTeam) });
|
||||
}
|
||||
@@ -580,8 +564,7 @@ export class GVGBattleHandler {
|
||||
|
||||
const { teamCode } = msg;
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
@@ -607,7 +590,7 @@ export class GVGBattleHandler {
|
||||
team = await GVGTeamModel.reviveTeam(teamCode);
|
||||
|
||||
// 更新内存
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.battleEnd([team]);
|
||||
|
||||
// 更新成功返回队伍信息
|
||||
@@ -623,15 +606,14 @@ export class GVGBattleHandler {
|
||||
const { type, cityId } = msg;
|
||||
// 根据 type 获取战报
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
let recs: GVGRecType[] = [];
|
||||
if(type == GVG_REC_TYPE.BATTLE_BY_CITY) {
|
||||
recs = await GVGRecModel.findBattleRecByCity(configId, groupId, serverType, cityId);
|
||||
recs = await GVGRecModel.findBattleRecByCity(configId, groupKey, cityId);
|
||||
} else if (type == GVG_REC_TYPE.BATTLE_BY_LEAGUE) {
|
||||
recs = await GVGRecModel.findBattleRecByLeague(configId, myLeague.leagueCode);
|
||||
} else if (type == GVG_REC_TYPE.BATTLE_BY_ROLE) {
|
||||
@@ -645,11 +627,10 @@ export class GVGBattleHandler {
|
||||
const serverId = session.get('serverId');
|
||||
|
||||
let { configId } = getGVGPeriodData();
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
|
||||
const cities = await GVGCityModel.findByConfig(configId, groupId, serverType);
|
||||
const points = await GVGCityAreaPointModel.findByConfig(configId, groupId, serverType);
|
||||
const cities = await GVGCityModel.findByConfig(configId, groupKey);
|
||||
const points = await GVGCityAreaPointModel.findByConfig(configId, groupKey);
|
||||
|
||||
let result: { cityId: number, guardLeagueName: string, areas: { areaId: number, points: { pointId: number, guardLeagueName: string }[] }[] }[] = [];
|
||||
for(let [ cityId, { areaIds }] of gameData.gvgCity) {
|
||||
@@ -677,18 +658,16 @@ export class GVGBattleHandler {
|
||||
const serverId = session.get('serverId');
|
||||
|
||||
let { configId } = getGVGPeriodData();
|
||||
let groupId = await getGroupIdOfServer(serverId);
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
let cities = await getGVGCitiesInfo(configId, groupKey);
|
||||
|
||||
let cities = await getGVGCitiesInfo(configId, groupId, serverType);
|
||||
|
||||
let r = new Rank(REDIS_KEY.GVG_BATTLE_LEAGUE_RANK, { configId, groupId, serverType });
|
||||
let r = new Rank(REDIS_KEY.GVG_BATTLE_LEAGUE_RANK, { configId, groupKey });
|
||||
let leagueRanksRaw = await r.getRankByRange();
|
||||
let leagueRanks = leagueRanksRaw.map(obj => {
|
||||
if(obj instanceof LeagueRankInfo) return { rank: obj.rank, name: obj.name, score: obj.num }
|
||||
});
|
||||
|
||||
let r2 = new Rank(REDIS_KEY.GVG_BATTLE_RANK, { configId, groupId, serverType });
|
||||
let r2 = new Rank(REDIS_KEY.GVG_BATTLE_RANK, { configId, groupKey });
|
||||
let memberRanksRaw = await r2.getRankByRange();
|
||||
let memberRanks = memberRanksRaw.map(obj => {
|
||||
if(obj instanceof RoleRankInfo) return { rank: obj.rank, name: obj.roleName, score: obj.num }
|
||||
|
||||
Reference in New Issue
Block a user