38 lines
1.5 KiB
TypeScript
38 lines
1.5 KiB
TypeScript
import { BackendSession, FrontendSession, pinus } from "pinus";
|
|
import { getGamedata } from "../pubUtils/gamedata";
|
|
import { RoleModel } from "../db/Role";
|
|
import { resResult } from "../pubUtils/util";
|
|
import { STATUS, FUNC_OPT_TYPE } from "../consts";
|
|
import { eventOnPlayerLvUp } from '../services/playerEventService';
|
|
import { checkesetTrain } from '../services/guildTrainService';
|
|
// 开启功能
|
|
export async function switchOnFunc(roleId: string, type: number, param: number, session: (BackendSession|FrontendSession)) {
|
|
|
|
const dataFuncs = session.get('funcs');
|
|
const sid = session.get('sid');
|
|
|
|
let addFuncs = new Array<number>();
|
|
switch (type) {
|
|
case FUNC_OPT_TYPE.LEVEL_UP:
|
|
await eventOnPlayerLvUp(roleId, param, addFuncs, dataFuncs);
|
|
break;
|
|
case FUNC_OPT_TYPE.BATTLE_END:
|
|
//开启奇遇
|
|
break;
|
|
}
|
|
if (addFuncs.length) {
|
|
pinus.app.get('channelService').pushMessageByUids('onFuncSwitchOn', resResult(STATUS.SUCCESS, {addFuncs}), [{
|
|
uid: roleId,
|
|
sid: sid
|
|
}]);
|
|
const recs = await RoleModel.pushFuncs(roleId, addFuncs);
|
|
session.set('funcs', recs.funcs||[]);
|
|
session.push('funcs', () => {});
|
|
return recs;
|
|
}
|
|
}
|
|
|
|
export async function chackFunOpenWhenLogin(role: any, session: BackendSession|FrontendSession) {
|
|
await switchOnFunc(role.roleId, FUNC_OPT_TYPE.LEVEL_UP, role.lv, session);
|
|
await checkesetTrain(role.roleId, role.serverId);
|
|
} |