33 lines
1.2 KiB
TypeScript
33 lines
1.2 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 } 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<number>();
|
|
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
|
|
} |