名将擂台:排行榜

This commit is contained in:
luying
2022-07-16 14:53:28 +08:00
parent 8297742afd
commit 0fbc8bd7d8
6 changed files with 46 additions and 6 deletions

View File

@@ -4,8 +4,9 @@ import { LadderMatchModel, LadderMatchType, LadderUpdateInter } from "../db/Ladd
import { LadderMatchRecModel } from "../db/LadderMatchRec";
import { RoleModel, RoleType } from "../db/Role";
import { LadderDataReturn, LadderDefense, LadderOppPlayerHeroInfo, LadderOppPlayerInDB, LadderOppPlayerInfo, LadderOppPlayerReturn } from "../domain/battleField/ladder";
import { RoleRankInfo } from "../domain/rank";
import { RoleAndGuildRankInfo, RoleRankInfo } from "../domain/rank";
import { gameData, getDicLadderMatchByMyRank } from "../pubUtils/data";
import { EXTERIOR, LADDER } from "../pubUtils/dicParam";
import { ItemInter } from "../pubUtils/interface";
import { getRandValueByMinMax, shouldRefresh } from "../pubUtils/util";
import { sendMessageToUserWithSuc } from "./pushService";
@@ -273,8 +274,10 @@ export async function battleEndWhenChange(ladderMatch: LadderMatchType) {
if(!ladderMatch) return;
// 更新redis
let r = new Rank(REDIS_KEY.LADDER, { serverId: ladderMatch.serverId });
r.setRankWithRoleInfo(ladderMatch.roleId, ladderMatch.rank, 0);
if(ladderMatch.rank > 0 && ladderMatch.rank < 3001) {
let r = new Rank(REDIS_KEY.LADDER, { serverId: ladderMatch.serverId });
r.setRankWithRoleInfo(ladderMatch.roleId, ladderMatch.rank, 0);
}
// 刷新对手
let oppPlayers = await refreshLadderEnemies(ladderMatch);
@@ -295,4 +298,21 @@ export async function ladderBattleEndReward(roleId: string, roleName: string, si
let battleGoods = await warReward.saveReward(num);
let breakGoods = isBreak? await addItems(roleId, roleName, sid, dicLadderDifficultRatio?.onceReward||[], ITEM_CHANGE_REASON.LADDER_BATTLE_REWARD): [];
return { battleGoods, breakGoods };
}
export function completeLadderRanks(ranks: RoleAndGuildRankInfo[]) {
let result: RoleAndGuildRankInfo[] = [];
for(let i = 1; i <= 200; i++) {
let dicLadderDifficultRatio = gameData.ladderDifficultRatio.get(i);
let { head, ce, spine, level } = dicLadderDifficultRatio;
let rank = ranks.find(cur => cur.rank == i);
if(rank) {
result.push(rank);
} else {
let rank = new RoleAndGuildRankInfo(i, 0);
rank.setByField(`robot${i}`, LADDER.LADDER_ROBOT_NAME, head, EXTERIOR.EXTERIOR_FACECASE, spine, level, 1, '', ce );
result.push(rank);
}
}
return result;
}