后台:跳主线功能
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
|
||||
|
||||
import { DicWar } from '../pubUtils/dictionary/DicWar'
|
||||
@index({ roleId: 1, battleId: 1 })
|
||||
|
||||
export default class RScriptRecord extends BaseModel {
|
||||
@@ -13,10 +12,10 @@ export default class RScriptRecord extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
warType: number; // 关卡 id
|
||||
|
||||
@prop({ required: true, default: '' })
|
||||
@prop({ required: false, default: '' })
|
||||
scriptBefore: string; // 战场前剧本
|
||||
|
||||
@prop({ required: true, default: '' })
|
||||
@prop({ required: false, default: '' })
|
||||
scriptAfter: string; // 战场后剧本
|
||||
|
||||
|
||||
@@ -41,6 +40,22 @@ export default class RScriptRecord extends BaseModel {
|
||||
const items: RScriptRecordType[] = await RScriptRecordModel.find({ roleId, warType }).select('battleId scriptBefore scriptAfter').lean(lean);
|
||||
return items;
|
||||
}
|
||||
|
||||
public static async deleteByWarId(roleId: string, battleId: number[]) {
|
||||
return await RScriptRecordModel.deleteMany({ roleId, battleId: { $in: battleId } });
|
||||
}
|
||||
|
||||
public static async insertScripts(roleId: string, dicWars: DicWar[]) {
|
||||
let insertParams = dicWars.map(dicWar => {
|
||||
let doc = new RScriptRecordModel();
|
||||
let param = { ...doc.toJSON(), roleId, battleId: dicWar.war_id, warType: dicWar.warType }
|
||||
if(dicWar.scriptBefore) param.scriptBefore = dicWar.scriptBefore;
|
||||
if(dicWar.scriptAfter) param.scriptAfter = dicWar.scriptAfter;
|
||||
return param;
|
||||
});
|
||||
console.log('&&&&', insertParams)
|
||||
return await RScriptRecordModel.insertMany(insertParams);
|
||||
}
|
||||
}
|
||||
|
||||
export const RScriptRecordModel = getModelForClass(RScriptRecord);
|
||||
|
||||
@@ -720,6 +720,7 @@ export default class Role extends BaseModel {
|
||||
const role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { totalPay: price } }, { new: true }).lean();
|
||||
return role;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const RoleModel = getModelForClass(Role);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// 关卡表
|
||||
import {decodeArrayListStr, decodeArrayStr, parseNumberList, readFileAndParse} from '../util'
|
||||
import { WAR_RELATE_TABLES, WAR_TYPE } from '../../consts';
|
||||
|
||||
import { isString } from 'underscore'
|
||||
export interface DicWar {
|
||||
|
||||
// 关卡id
|
||||
@@ -40,6 +40,10 @@ export interface DicWar {
|
||||
readonly mapseid: number[];
|
||||
// 秘境类型
|
||||
readonly movePoint: number;
|
||||
// 战前剧本
|
||||
readonly scriptBefore: string;
|
||||
// 战后剧本
|
||||
readonly scriptAfter: string;
|
||||
}
|
||||
|
||||
export const dicWar = new Map<number, DicWar>();
|
||||
@@ -60,6 +64,16 @@ export function loadWar() {
|
||||
o.teammateReward = parseFixReward(o.teammateReward);
|
||||
o.fobiddenCharactor = parseForbiddenChara(o.fobiddenCharactor);
|
||||
o.mapseid = parseNumberList(o.mapseid);
|
||||
if(o.script_id && isString(o.script_id)) {
|
||||
let scripts = o.script_id?.split('&')||[];
|
||||
for(let script of scripts) {
|
||||
if(script.indexOf('R_') != -1) {
|
||||
o.scriptBefore = script;
|
||||
} else if (script.indexOf('RE_') != -1) {
|
||||
o.scriptAfter = script;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dicWar.set(o.war_id, o);
|
||||
if(o.warType == WAR_TYPE.PVP) {
|
||||
|
||||
Reference in New Issue
Block a user