diff --git a/game-server/app/servers/battle/handler/eventBattleHandler.ts b/game-server/app/servers/battle/handler/eventBattleHandler.ts index 6c6289f25..61e5eddc5 100644 --- a/game-server/app/servers/battle/handler/eventBattleHandler.ts +++ b/game-server/app/servers/battle/handler/eventBattleHandler.ts @@ -1,11 +1,11 @@ import { Application, BackendSession, HandlerService, } from 'pinus'; import { EventRecordModel } from '../../../db/EventRecord'; import { RoleModel } from '../../../db/Role'; -import { EVENT_STATUS, EVENT_RECORD_STATUS, EVENT_ANSWER_STATUS, TASK_TYPE, DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON } from '../../../consts'; -import { checkEventStatus, getEventSuccessStatus, getEvent, checkQuiz, startEvent, refreshEvent, getEventTime } from '../../../services/eventSercive'; +import { EVENT_STATUS, EVENT_RECORD_STATUS, EVENT_ANSWER_STATUS, TASK_TYPE, DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, EVENT_TYPE, EVENT_QUIZ_NUM } from '../../../consts'; +import { checkEventStatus, getEventSuccessStatus, getEvent, checkQuiz, startEvent, refreshEvent, getEventTime, randomPosition, randomQuestion } from '../../../services/eventSercive'; import { addItems } from '../../../services/role/rewardService'; import { STATUS } from '../../../consts/statusCode'; -import { resResult } from '../../../pubUtils/util'; +import { genCode, resResult } from '../../../pubUtils/util'; import { checkTask } from '../../../services/task/taskService'; import { gameData } from '../../../pubUtils/data'; @@ -133,8 +133,8 @@ export class EventBattleHandler { }); } - async debugRefEvent(msg: { magicWord: string }, session: BackendSession) { - const { magicWord } = msg; + async debugRefEvent(msg: { magicWord: string, eventId: number }, session: BackendSession) { + const { magicWord, eventId } = msg; if (magicWord !== DEBUG_MAGIC_WORD) { return resResult(STATUS.TOKEN_ERR); } @@ -142,7 +142,20 @@ export class EventBattleHandler { let roleName = session.get('roleName'); let now = new Date(); let curTime = getEventTime(now); // 这次的时间节点 0-12:前一天的18 12-18:12 18-24: 18 - let result = await refreshEvent(3, roleId, roleName, curTime, []) - return resResult(STATUS.SUCCESS, { list: result }); + await EventRecordModel.updateMany({ roleId }, { $set: {status: -1} }); + let dic = gameData.event.get(eventId); + let point = randomPosition(dic.movePointArray, [], []); + if(!point) return resResult(STATUS.DIC_DATA_NOT_FOUND); + + let question = dic.eventType == EVENT_TYPE.QUIZ?randomQuestion(EVENT_QUIZ_NUM): undefined; + let eventCode = genCode(8); + await EventRecordModel.saveEventRecord(eventCode, { + roleId, refTime: curTime, eventId: dic.eventID, + roleName, turn: 1, type: dic.eventType, battleId: dic.warId||0, quality: dic.quality, + status: EVENT_RECORD_STATUS.WAITING, + point, question + }); + + return resResult(STATUS.SUCCESS); } } \ No newline at end of file diff --git a/game-server/app/services/checkParam.ts b/game-server/app/services/checkParam.ts index f2d99b321..efcc54dde 100644 --- a/game-server/app/services/checkParam.ts +++ b/game-server/app/services/checkParam.ts @@ -1626,6 +1626,7 @@ export function checkRouteParam(route: string, msg: any) { case "battle.ladderHandler.setMyOpp": case "guild.raceActivityHandler.debugAddHorse": case "activity.gachaHandler.debugClearGachaRecord": + case "battle.eventBattleHandler.debugRefEvent": { if (msg.magicWord !== DEBUG_MAGIC_WORD) return false; break; diff --git a/game-server/app/services/eventSercive.ts b/game-server/app/services/eventSercive.ts index bc3cb8b87..7131f1590 100644 --- a/game-server/app/services/eventSercive.ts +++ b/game-server/app/services/eventSercive.ts @@ -254,7 +254,7 @@ export function checkPreviousGk(previousGk: number, warStar: WarStar[]) { * * @param positionStr */ -function randomPosition(positionArr: number[], prePoint: Array, curPoint: Array) { +export function randomPosition(positionArr: number[], prePoint: Array, curPoint: Array) { let range = positionArr.filter(point => {return !prePoint.includes(point) && !curPoint.includes(point)}); if(range.length == 0) { // 如果位置总数不够,就不管prePoint里的 range = positionArr.filter(point => {return !curPoint.includes(point)}); @@ -357,7 +357,7 @@ export function checkQuizParam(param: Array, database?: Array<{id: numb * * @param num 题目数量 */ -function randomQuestion(num: number) { +export function randomQuestion(num: number) { let questions = new Array(); gameData.question.forEach(cur => { questions.push(cur);