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
+11 -7
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;