fix again 获取奇遇使用不重复关卡id
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user