diff --git a/game-server/app/servers/connector/handler/entryHandler.ts b/game-server/app/servers/connector/handler/entryHandler.ts index 5e0305b5b..1f2cb8bbe 100644 --- a/game-server/app/servers/connector/handler/entryHandler.ts +++ b/game-server/app/servers/connector/handler/entryHandler.ts @@ -71,6 +71,8 @@ export class EntryHandler { addRoleToWorldChannel(role.roleId, self.app.get('serverId'), role.serverId); reportOneOnline(role.roleId, user.userCode, self.app.get('serverId'), true, user); + // 任务 + checkTaskInEntry(serverId, role.roleId, self.app.get('serverId'), role); if (role.hasGuild) { addRoleToGuildChannel(role.roleId, self.app.get('serverId'), role.guildCode); } @@ -84,20 +86,12 @@ export class EntryHandler { async getData(msg: { }, session: FrontendSession) { let ip = session.get('ip'); let roleId = session.get('roleId'); - let serverId = session.get('serverId'); - let sid = session.get('sid'); let role = await RoleModel.findByRoleId(roleId, '-_id', true, true); - let loginTime = session.get('loginTime'); + // 推送数据 pushData(role.hasInit, role, session); - // 任务 - checkTaskInEntry(serverId, role.roleId, sid, role, loginTime); let todayZeroPoint = getZeroPoint(); - - session.set('loginTime', nowSeconds()); - session.push('loginTime', () => { }); - return resResult(STATUS.SUCCESS, { todayZeroPoint }); } @@ -108,7 +102,7 @@ export class EntryHandler { await session.abind(role.roleId); session.set('userid', role.userInfo.uid); session.set('roleId', role.roleId); - session.set('loginTime', role.loginTime); + session.set('loginTime', nowSeconds()); session.set('roleName', role.roleName); session.set('eventStatus', role.eventStatus); session.set('blockType', role.blockType); @@ -157,13 +151,10 @@ export class EntryHandler { let { serverId } = role; // 任务 - checkTaskInEntry(serverId, role.roleId, self.app.get('serverId'), role, nowSeconds()); + checkTaskInEntry(serverId, role.roleId, self.app.get('serverId'), role); // 推送数据 pushData(role.hasInit, role, session, 'refresh'); - session.set('loginTime', nowSeconds()); - session.push('loginTime', () => { }); - let todayZeroPoint = getZeroPoint(); return resResult(STATUS.SUCCESS, { todayZeroPoint }); } diff --git a/game-server/app/services/task/taskObj.ts b/game-server/app/services/task/taskObj.ts index 623601d26..3f19a106a 100644 --- a/game-server/app/services/task/taskObj.ts +++ b/game-server/app/services/task/taskObj.ts @@ -348,17 +348,19 @@ export class CheckSingleTask { switch(this.taskType) { case TASK_TYPE.LOGIN_SUM: // 1. 累计登录 x 天 { + let role = this.getRole(); let today = getZeroPoint(); - if (today > param.loginTime) { + if (today > role.loginTime) { result = { inc: 1 } } break; } case TASK_TYPE.LOGIN_SERIES: // 2. 连续登录 x 天 { + let role = this.getRole(); let today = getZeroPoint(); - if (today > param.loginTime) { - if (today - param.loginTime > 24 * 60 * 60) { + if (today > role.loginTime) { + if (today - role.loginTime > 24 * 60 * 60) { result = { set: 1 } } else { result = { inc: 1 } diff --git a/game-server/app/services/task/taskService.ts b/game-server/app/services/task/taskService.ts index b862e6ab7..557295b7f 100644 --- a/game-server/app/services/task/taskService.ts +++ b/game-server/app/services/task/taskService.ts @@ -40,11 +40,11 @@ export async function checkTask(serverId: number, roleId: string, sid: string, t await task.saveAndPush(sid); } -export async function checkTaskInEntry(serverId: number, roleId: string, sid: string, role: RoleType, loginTime: number) { +export async function checkTaskInEntry(serverId: number, roleId: string, sid: string, role: RoleType) { let task = new CheckTask(serverId, roleId); task.setRole(role); - task.setParam(TASK_TYPE.LOGIN_SUM, { loginTime }); - task.setParam(TASK_TYPE.LOGIN_SERIES, { loginTime }); + task.setParam(TASK_TYPE.LOGIN_SUM, {}); + task.setParam(TASK_TYPE.LOGIN_SERIES, {}); await task.saveAndPush(sid); checkPopUpConditionInEntry(serverId, roleId, sid); } diff --git a/shared/domain/roleField/task.ts b/shared/domain/roleField/task.ts index 866212856..acaddc49c 100644 --- a/shared/domain/roleField/task.ts +++ b/shared/domain/roleField/task.ts @@ -52,8 +52,6 @@ export class TaskParamInter { jewels?: JewelType[]; // 天晶石 debugInfo?: {condition: number}; - - loginTime?: number; }; export class TaskParam extends TaskParamInter {