import { BackendSession, FrontendSession, pinus } from "pinus"; import { getGamedata } from "../pubUtils/gamedata"; import { RoleModel } from "../db/Role"; import { resResult } from "../pubUtils/util"; import { STATUS } from "../consts"; // 开启功能 export async function switchOnFunc(roleId: string, type: number, param: number, session: (BackendSession|FrontendSession)) { const dataFuncs = session.get('funcs'); const sid = session.get('sid'); const dicFuncSwitch = getGamedata('dic_func_switch'); let funcs = new Array<{id: number, desc: string, script: string}>(), addFuncs = new Array(); for(let obj of dicFuncSwitch) { if(obj.conditionType == type && !dataFuncs.includes(obj.id) && obj.param <= param) { funcs.push({id: obj.id, desc: obj.desc, script: obj.script}); addFuncs.push(obj.id); } } if(funcs.length > 0) { pinus.app.get('channelService').pushMessageByUids('onFuncSwitchOn', resResult(STATUS.SUCCESS, {funcs}), [{ uid: roleId, sid: sid }]); } const recs = await RoleModel.pushFuncs(roleId, addFuncs); session.set('funcs', recs.funcs||[]); session.push('funcs', () => {}); return recs }