🐞 fix(gvg): 可能可以修好据点锁问题
This commit is contained in:
@@ -417,11 +417,15 @@ export class GVGBattleHandler {
|
||||
|
||||
let myTeam = await GVGTeamModel.findMyTeamByCode(roleId, teamCode);
|
||||
if(!myTeam) return resResult(STATUS.GVG_TEAM_NOT_FOUND);
|
||||
|
||||
let checkResult = checkSettleStatus(myTeam);
|
||||
if(checkResult.code != 0) return resResult(checkResult);
|
||||
|
||||
let dicAreaPoint = gameData.gvgAreaPoint.get(pointId);
|
||||
if(dicAreaPoint.areaId != myTeam.areaId) return resResult(STATUS.GVG_POINT_NOT_AREA);
|
||||
|
||||
const curTeam = await GVGTeamModel.settlePoint(teamCode, 0);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, pointId);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, teamCode);
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.teamSettle(roleId, teamCode, 0);
|
||||
|
||||
@@ -490,11 +494,11 @@ export class GVGBattleHandler {
|
||||
let settleResult = await GVGCityAreaPointModel.settlePoint(cityId, attackTeam.areaId, defenseTeam.originPointId, attackTeam, defenseTeam.isRobot? '': defenseTeam.teamCode);
|
||||
if(settleResult) attackTeam = await GVGTeamModel.settlePoint(attackTeam.teamCode, defenseTeam.originPointId);
|
||||
} else {
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, defenseTeam.originPointId);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, defenseTeam.teamCode);
|
||||
}
|
||||
}
|
||||
if(attackTeam.curTeamBreak && attackTeam.originPointId) {
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, attackTeam.originPointId);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, attackTeam.teamCode);
|
||||
}
|
||||
if(defenseTeam.curTeamBreak) {
|
||||
let attackScore = calBattleScoreByCe(isSuccess, defenseTeam.lineupCe);
|
||||
@@ -552,7 +556,7 @@ export class GVGBattleHandler {
|
||||
let settleResult = await GVGCityAreaPointModel.settlePoint(cityId, attackTeam.areaId, defenseTeam.originPointId, attackTeam, defenseTeam.isRobot? '': defenseTeam.teamCode);
|
||||
if(settleResult) attackTeam = await GVGTeamModel.settlePoint(attackTeam.teamCode, defenseTeam.originPointId);
|
||||
} else {
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, defenseTeam.originPointId);
|
||||
await GVGCityAreaPointModel.leavePoint(configId, groupKey, defenseTeam.teamCode);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -739,17 +743,20 @@ export class GVGBattleHandler {
|
||||
|
||||
let fun = async () => {
|
||||
let teams = teamObj.findTeamsByRole('test');
|
||||
for(let teamMem of teams) {
|
||||
let fromAreaId = teamMem.areaId;
|
||||
let dicArea = gameData.gvgArea.get(fromAreaId);
|
||||
// 更新内存数据
|
||||
let toAreaId = getRandSingleEelm(dicArea.relateArea);
|
||||
let team = await GVGTeamModel.startMove(teamMem.teamCode, toAreaId, fromAreaId);
|
||||
|
||||
// 更新内存数据
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.move(teamMem.teamCode, toAreaId, team.fromAreaId, team.startMoveTime, team.stopMoveTime);
|
||||
await pushTeamMoveMessage(team);
|
||||
for(let i = 0; i < teams.length; i++) {
|
||||
let teamMem = teams[i];
|
||||
setTimeout(async () => {
|
||||
let fromAreaId = teamMem.areaId;
|
||||
let dicArea = gameData.gvgArea.get(fromAreaId);
|
||||
// 更新内存数据
|
||||
let toAreaId = getRandSingleEelm(dicArea.relateArea);
|
||||
let team = await GVGTeamModel.startMove(teamMem.teamCode, toAreaId, fromAreaId);
|
||||
|
||||
// 更新内存数据
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.move(teamMem.teamCode, toAreaId, team.fromAreaId, team.startMoveTime, team.stopMoveTime);
|
||||
await pushTeamMoveMessage(team);
|
||||
}, i * 100);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user