pvp排行榜展示

This commit is contained in:
mamengke01
2021-01-11 17:09:48 +08:00
parent b5ed1e3a4b
commit d94ba65847
4 changed files with 27 additions and 7 deletions

View File

@@ -28,6 +28,25 @@ export class PvpHandler {
constructor(private app: Application) { constructor(private app: Application) {
} }
async addRoleScore(msg: {score:number}, session: BackendSession) {
let { score } = msg;
let roleId = session.get('roleId');
let pvpDefense = await PvpDefenseModel.findByRoleId(roleId);
score += pvpDefense.score;
if (score < 0) {
score = 0;
}
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, { score });
let roleName = session.get('roleName');
const role = await RoleModel.findByRoleId(roleId);
// 加入排行榜
let params = new RankParam(roleName, role.lv, role.vLv, role.headHid, role.sHid, role.title);
await setRank(REDIS_KEY.PVP_RANK, 0, roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), params);
return resResult(STATUS.SUCCESS, {score});
}
async getData (msg: {}, session: BackendSession) { async getData (msg: {}, session: BackendSession) {
let roleId = session.get('roleId'); let roleId = session.get('roleId');
let {pvpDefense, warId} = await findPvpDefAllByRoleId(roleId); let {pvpDefense, warId} = await findPvpDefAllByRoleId(roleId);
@@ -333,7 +352,6 @@ export class PvpHandler {
}); });
} }
} }
result = new PlayerDetail({...robot, lv: role.lv, heroes}) result = new PlayerDetail({...robot, lv: role.lv, heroes})
} else { // 查询对方pvpDefense } else { // 查询对方pvpDefense
@@ -350,8 +368,8 @@ export class PvpHandler {
}); });
} }
heroes.sort((a, b) => b.score - a.score); heroes.sort((a, b) => b.score - a.score);
let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, roleId);//去redis中获取排名
result = new PlayerDetail({...role, heroes}); result = new PlayerDetail({...role, heroes, rank});
} }
return resResult(STATUS.SUCCESS, result); return resResult(STATUS.SUCCESS, result);

View File

@@ -8,14 +8,14 @@ import { startEvent } from "./eventSercive";
export async function eventOnPlayerLvUp(roleId: string, lv: number, addFuncs: Array<number>, dataFuncs: Array<number>) { export async function eventOnPlayerLvUp(roleId: string, lv: number, addFuncs: Array<number>, dataFuncs: Array<number>) {
// if (!dataFuncs.includes(FUNCS_ID.PVP)) {//开启pvp if (!dataFuncs.includes(FUNCS_ID.PVP)) {//开启pvp
let res = getFuncsSwitch(FUNCS_ID.PVP); let res = getFuncsSwitch(FUNCS_ID.PVP);
if (!res || lv >= res.param) { if (!res || lv >= res.param) {
let role = await RoleModel.findByRoleId(roleId); let role = await RoleModel.findByRoleId(roleId);
await checkPvp(role); await checkPvp(role);
addFuncs.push(FUNCS_ID.PVP); addFuncs.push(FUNCS_ID.PVP);
} }
// } }
if (!dataFuncs.includes(FUNCS_ID.EVENT)) {//开启奇遇 if (!dataFuncs.includes(FUNCS_ID.EVENT)) {//开启奇遇
let res = getFuncsSwitch(FUNCS_ID.EVENT); let res = getFuncsSwitch(FUNCS_ID.EVENT);

View File

@@ -242,7 +242,7 @@ export async function defaultHeroes ( role:RoleType, challengeCnt?:number, chall
let { heroes } = await PvpDefenseModel.findByRoleId(role.roleId); let { heroes } = await PvpDefenseModel.findByRoleId(role.roleId);
var orders = [1, 2, 3, 4, 5]; var orders = [1, 2, 3, 4, 5];
heroes.sort(function(a, b) { heroes.sort(function(a, b) {
if (!!a.order) { if (!!a.order&& !!a.hero) {
let index = orders.indexOf(a.order); let index = orders.indexOf(a.order);
orders.splice(index, 1); orders.splice(index, 1);
} }
@@ -278,6 +278,7 @@ export async function defaultHeroes ( role:RoleType, challengeCnt?:number, chall
} }
} else { } else {
heroes[index].ce = item.ce; heroes[index].ce = item.ce;
heroes[index].hero = item.hero;
if (!heroes[index].order) { if (!heroes[index].order) {
heroes[index].order = orders[0]; heroes[index].order = orders[0];
orders.splice(0, 1); orders.splice(0, 1);

View File

@@ -143,7 +143,7 @@ export class PlayerDetail {
defCe?: number = 0; defCe?: number = 0;
heroes: PlayerDetailHero[]; heroes: PlayerDetailHero[];
rank?:number = 0;
constructor(detail: PlayerDetail) { constructor(detail: PlayerDetail) {
if(detail.roleId) this.roleId = detail.roleId; if(detail.roleId) this.roleId = detail.roleId;
if(detail.roleName) this.roleName = detail.roleName; if(detail.roleName) this.roleName = detail.roleName;
@@ -155,5 +155,6 @@ export class PlayerDetail {
if(detail.pLv) this.pLv = detail.pLv; if(detail.pLv) this.pLv = detail.pLv;
if(detail.defCe) this.defCe = reduceCe(detail.defCe); if(detail.defCe) this.defCe = reduceCe(detail.defCe);
if(detail.heroes) this.heroes = detail.heroes; if(detail.heroes) this.heroes = detail.heroes;
if(detail.rank) this.rank = detail.rank;
} }
} }