pvp排行榜展示
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user