fix again 获取奇遇使用不重复关卡id

This commit is contained in:
luying
2020-10-30 20:12:35 +08:00
parent 858b79339c
commit 70e88a33a5
2 changed files with 19 additions and 7 deletions

View File

@@ -1,5 +1,6 @@
import {Application, BackendSession} from 'pinus';
import { RoleModel } from '../../../db/Role';
import { EventRecordModel } from '../../../db/EventRecord';
import { getEvent } from '../../../services/eventSercive';
import { resResult } from '../../../pubUtils/util';
import { STATUS } from '../../../consts/statusCode';
@@ -40,4 +41,11 @@ export class GmHandler {
}]);
return resResult(STATUS.SUCCESS, { list: event });
}
async clearEvent(msg: { }, session: BackendSession) {
let roleId = session.get('roleId');
await EventRecordModel.deleteAccount(roleId);
return resResult(STATUS.SUCCESS);
}
}

View File

@@ -160,11 +160,7 @@ export async function getEvent(eventStatus: number, roleId: string, roleName: st
let curEvents = await EventRecordModel.getEventRecordByTime(roleId, curTime); // 这次3个
if(curEvents.length == 0) { // 这次3个没刷过那就刷一下
let {WAITING, BATTLE_SUCCESS, BATTLE_FAIL} = EVENT_RECORD_STATUS;
let prePoint = preEvents.filter(cur => {
return [WAITING, BATTLE_SUCCESS, BATTLE_FAIL].includes(cur.status);
}).map(cur => cur.point);
let result = await refreshEvent(EVENT_REFRESH_NUM, roleId, roleName, curTime, prePoint);
let result = await refreshEvent(EVENT_REFRESH_NUM, roleId, roleName, curTime, preEvents);
for(let e of result) event.push(e);
} else {
for(let e of curEvents) event.push(e);
@@ -188,7 +184,13 @@ export async function getEvent(eventStatus: number, roleId: string, roleName: st
* @param roleName
* @param t 时间刷新时间每天的12点或18点
*/
export async function refreshEvent(num: number, roleId: string, roleName: string, t: number, prePoint: Array<number>) {
export async function refreshEvent(num: number, roleId: string, roleName: string, t: number, preEvents: Array<any>) {
let {WAITING, BATTLE_SUCCESS, BATTLE_FAIL} = EVENT_RECORD_STATUS;
let prePoint = preEvents.filter(cur => {
return [WAITING, BATTLE_SUCCESS, BATTLE_FAIL].includes(cur.status);
}).map(cur => cur.point);
let event = new Array();
let dicEvent = getGamedata('dic_zyz_event');
let role = await RoleModel.findByRoleId(roleId);
@@ -238,8 +240,10 @@ export async function refreshEvent(num: number, roleId: string, roleName: string
for(let x = 0; x < 1000; x++) {
let hasEvent = event.find(cur => {
return cur.type == EVENT_TYPE.BATTLE && cur.battleId == dic.warId});
let hasPreEvent = preEvents.find(cur => {
return cur.type == EVENT_TYPE.BATTLE && cur.battleId == dic.warId});
if(!hasEvent && !hasPreEvent) break;
dic = getRandomWithWeight(randomList).dic;
if(!hasEvent) break;
}
// if(!dic) break;