fix again 获取奇遇使用不重复关卡id
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import {Application, BackendSession} from 'pinus';
|
import {Application, BackendSession} from 'pinus';
|
||||||
import { RoleModel } from '../../../db/Role';
|
import { RoleModel } from '../../../db/Role';
|
||||||
|
import { EventRecordModel } from '../../../db/EventRecord';
|
||||||
import { getEvent } from '../../../services/eventSercive';
|
import { getEvent } from '../../../services/eventSercive';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
import { resResult } from '../../../pubUtils/util';
|
||||||
import { STATUS } from '../../../consts/statusCode';
|
import { STATUS } from '../../../consts/statusCode';
|
||||||
@@ -40,4 +41,11 @@ export class GmHandler {
|
|||||||
}]);
|
}]);
|
||||||
return resResult(STATUS.SUCCESS, { list: event });
|
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个
|
let curEvents = await EventRecordModel.getEventRecordByTime(roleId, curTime); // 这次3个
|
||||||
|
|
||||||
if(curEvents.length == 0) { // 这次3个没刷过,那就刷一下
|
if(curEvents.length == 0) { // 这次3个没刷过,那就刷一下
|
||||||
let {WAITING, BATTLE_SUCCESS, BATTLE_FAIL} = EVENT_RECORD_STATUS;
|
let result = await refreshEvent(EVENT_REFRESH_NUM, roleId, roleName, curTime, preEvents);
|
||||||
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);
|
|
||||||
for(let e of result) event.push(e);
|
for(let e of result) event.push(e);
|
||||||
} else {
|
} else {
|
||||||
for(let e of curEvents) event.push(e);
|
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 roleName
|
||||||
* @param t 时间刷新时间,每天的12点或18点
|
* @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 event = new Array();
|
||||||
let dicEvent = getGamedata('dic_zyz_event');
|
let dicEvent = getGamedata('dic_zyz_event');
|
||||||
let role = await RoleModel.findByRoleId(roleId);
|
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++) {
|
for(let x = 0; x < 1000; x++) {
|
||||||
let hasEvent = event.find(cur => {
|
let hasEvent = event.find(cur => {
|
||||||
return cur.type == EVENT_TYPE.BATTLE && cur.battleId == dic.warId});
|
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;
|
dic = getRandomWithWeight(randomList).dic;
|
||||||
if(!hasEvent) break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// if(!dic) break;
|
// if(!dic) break;
|
||||||
|
|||||||
Reference in New Issue
Block a user