后台:跳过序章

This commit is contained in:
luying
2022-04-18 20:24:08 +08:00
parent 2b20cb9aee
commit f0614777e0
5 changed files with 46 additions and 5 deletions
@@ -5,12 +5,10 @@ import { getRoleOnlineInfo, updateUserInfo } from '../../../services/redisServic
import { addItems } from '../../../services/role/rewardService';
import { RewardInter } from '../../../pubUtils/interface';
import { gameData, getExpByLv, getHeroExpByLv, getHeroLvByExp, getLvByExp } from '../../../pubUtils/data';
import { RoleModel, RoleType } from '../../../db/Role';
import { BLOCK_TYPE, GUILD_AUTH, GUILD_DISMISS_WAY, GUILD_JOB, GUILD_MASTER_CHANGE_WAY, GUILD_STATUS, GUILD_STRUCTURE, HERO_SYSTEM_TYPE, ITEM_CHANGE_REASON, MAIL_TYPE, PUSH_ROUTE, REDIS_KEY, TA_EVENT } from '../../../consts';
import { RoleModel, RoleType, WarStar } from '../../../db/Role';
import { BLOCK_TYPE, DEFAULT_HEROES, GUILD_AUTH, GUILD_DISMISS_WAY, GUILD_JOB, GUILD_MASTER_CHANGE_WAY, GUILD_STATUS, GUILD_STRUCTURE, HERO_SYSTEM_TYPE, ITEM_CHANGE_REASON, MAIL_TYPE, PUSH_ROUTE, REDIS_KEY, TA_EVENT, WAR_TYPE } from '../../../consts';
import { GuildFormParam, SetHeroParam } from '../../../domain/backEndField/params';
import { GuildModel, GuildUpdateParam } from '../../../db/Guild';
import { getGuildChannelSid } from '../../../services/chatService';
import { pushGuildNoticeUpdateMsg } from '../../../services/sysChatService'
import { Rank } from '../../../services/rankService';
import { UserGuildModel } from '../../../db/UserGuild';
import { UserGuildApplyModel } from '../../../db/UserGuildApply';
@@ -24,6 +22,8 @@ import { createHeroes } from '../../../services/role/createHero';
import { calculateCeWithHero } from '../../../services/playerCeService';
import { pushChangeGuildLeader, pushGuildDismiss, pushGuildInfoUpdate } from '../../../services/guildService';
import { sendMessageToUserWithSuc } from '../../../services/pushService';
import { RScriptRecordModel } from '../../../db/RScriptRecord';
import { DicWar } from '../../../pubUtils/dictionary/DicWar';
let timer: NodeJS.Timer;
export default function (app: Application) {
@@ -252,4 +252,35 @@ export class GmRoleHandler {
return resResult(STATUS.SUCCESS, { code });
}
async skipEpilogue(msg: { roleId: string, roleName: string }, session: BackendSession) {
const { roleId, roleName } = msg;
let role = await RoleModel.findByRoleId(roleId);
if(!role) return resResult(STATUS.ROLE_NOT_FOUND);
if(role.hasInit) return resResult(STATUS.ROLE_HAS_INIT);
let checkName = await RoleModel.checkName(roleName, role.serverId);
if (checkName) return resResult(STATUS.NAME_HAS_USED);
let warStars: WarStar[] = [];
let insertParams: DicWar[] = [];
let exp = 0;
for(let i = 101; i <= 103; i++) {
let dicWar = gameData.war.get(i);
await RScriptRecordModel.insertScripts(roleId, insertParams);
insertParams.push(dicWar);
warStars.push({ id: dicWar.war_id, warType: dicWar.warType, star: 0, stars: [] });
exp += dicWar.kingExp;
}
let lv = getLvByExp(exp);
await RScriptRecordModel.deleteByWarType(roleId, WAR_TYPE.NORMAL);
await RScriptRecordModel.insertScripts(roleId, insertParams);
let onlineUser = await getRoleOnlineInfo(roleId);
await createHeroes(roleId, roleName, onlineUser?.sid, role.serverId, DEFAULT_HEROES.map(hid => ({hid, count: 1})), { roleName, hasInit: true, title: role.title, teraphs: role.teraphs, lv, exp, warStar: warStars });
return resResult(STATUS.SUCCESS);
}
}
+1
View File
@@ -718,6 +718,7 @@ export default class Role extends BaseModel {
if(form.uid) searchObj['userInfo.uid'] = form.uid;
if(form.roleId) searchObj['roleId'] = form.roleId;
if(form.roleName) searchObj['roleName'] = { $regex: new RegExp(form.roleName.toString(), 'i') };
if(form.tel) searchObj['userInfo.tel'] = form.tel;
return searchObj
}
+1
View File
@@ -10,6 +10,7 @@ export interface SearchRoleParam {
uid?: number; // 玩家id
roleId?: string; // 角色id
roleName?: string; // 昵称
tel?: string;
}
export interface SearchHeroParam {
+2 -1
View File
@@ -86,7 +86,7 @@ import { JewelModel } from "../db/Jewel";
import { RoleCeModel } from "../db/RoleCe";
export async function deletRole(roleId: string) {
let role = await RoleModel.findByRoleId(roleId);
let role = await RoleModel.findByRoleId(roleId, null, true, true);
if(!role ) return false;
if(role.hasInit) {
@@ -203,6 +203,7 @@ export async function deletRole(roleId: string) {
let doc = new RoleModel();
const update = Object.assign(doc.toJSON(), pick(role, ['serverType', 'userInfo', 'seqId', 'serverId']), { roleName: role.roleId });
delete update._id;
await RoleModel.updateMany({ roleId }, { $set: update });
}
return true;
+7
View File
@@ -817,5 +817,12 @@
"name": "切换活动显示",
"module": "activity",
"type": "update"
},
{
"id": 118,
"api": "gm.gmRoleHandler.skipEpilogue",
"name": "跳过序章",
"module": "role",
"type": "update"
}
]