From 70e88a33a54dcb1558ff3924b40d1001da179c5e Mon Sep 17 00:00:00 2001 From: luying Date: Fri, 30 Oct 2020 20:12:35 +0800 Subject: [PATCH] =?UTF-8?q?fix=20again=20=E8=8E=B7=E5=8F=96=E5=A5=87?= =?UTF-8?q?=E9=81=87=E4=BD=BF=E7=94=A8=E4=B8=8D=E9=87=8D=E5=A4=8D=E5=85=B3?= =?UTF-8?q?=E5=8D=A1id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/gm/handler/gmHandler.ts | 8 ++++++++ game-server/app/services/eventSercive.ts | 18 +++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/game-server/app/servers/gm/handler/gmHandler.ts b/game-server/app/servers/gm/handler/gmHandler.ts index 520cf674b..0c1760d52 100644 --- a/game-server/app/servers/gm/handler/gmHandler.ts +++ b/game-server/app/servers/gm/handler/gmHandler.ts @@ -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); + } } \ No newline at end of file diff --git a/game-server/app/services/eventSercive.ts b/game-server/app/services/eventSercive.ts index 3adf02489..91d95d848 100644 --- a/game-server/app/services/eventSercive.ts +++ b/game-server/app/services/eventSercive.ts @@ -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) { +export async function refreshEvent(num: number, roleId: string, roleName: string, t: number, preEvents: Array) { + 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;