后台:跳过序章
This commit is contained in:
@@ -5,12 +5,10 @@ import { getRoleOnlineInfo, updateUserInfo } from '../../../services/redisServic
|
|||||||
import { addItems } from '../../../services/role/rewardService';
|
import { addItems } from '../../../services/role/rewardService';
|
||||||
import { RewardInter } from '../../../pubUtils/interface';
|
import { RewardInter } from '../../../pubUtils/interface';
|
||||||
import { gameData, getExpByLv, getHeroExpByLv, getHeroLvByExp, getLvByExp } from '../../../pubUtils/data';
|
import { gameData, getExpByLv, getHeroExpByLv, getHeroLvByExp, getLvByExp } from '../../../pubUtils/data';
|
||||||
import { RoleModel, RoleType } from '../../../db/Role';
|
import { RoleModel, RoleType, WarStar } 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 { 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 { GuildFormParam, SetHeroParam } from '../../../domain/backEndField/params';
|
||||||
import { GuildModel, GuildUpdateParam } from '../../../db/Guild';
|
import { GuildModel, GuildUpdateParam } from '../../../db/Guild';
|
||||||
import { getGuildChannelSid } from '../../../services/chatService';
|
|
||||||
import { pushGuildNoticeUpdateMsg } from '../../../services/sysChatService'
|
|
||||||
import { Rank } from '../../../services/rankService';
|
import { Rank } from '../../../services/rankService';
|
||||||
import { UserGuildModel } from '../../../db/UserGuild';
|
import { UserGuildModel } from '../../../db/UserGuild';
|
||||||
import { UserGuildApplyModel } from '../../../db/UserGuildApply';
|
import { UserGuildApplyModel } from '../../../db/UserGuildApply';
|
||||||
@@ -24,6 +22,8 @@ import { createHeroes } from '../../../services/role/createHero';
|
|||||||
import { calculateCeWithHero } from '../../../services/playerCeService';
|
import { calculateCeWithHero } from '../../../services/playerCeService';
|
||||||
import { pushChangeGuildLeader, pushGuildDismiss, pushGuildInfoUpdate } from '../../../services/guildService';
|
import { pushChangeGuildLeader, pushGuildDismiss, pushGuildInfoUpdate } from '../../../services/guildService';
|
||||||
import { sendMessageToUserWithSuc } from '../../../services/pushService';
|
import { sendMessageToUserWithSuc } from '../../../services/pushService';
|
||||||
|
import { RScriptRecordModel } from '../../../db/RScriptRecord';
|
||||||
|
import { DicWar } from '../../../pubUtils/dictionary/DicWar';
|
||||||
|
|
||||||
let timer: NodeJS.Timer;
|
let timer: NodeJS.Timer;
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
@@ -252,4 +252,35 @@ export class GmRoleHandler {
|
|||||||
|
|
||||||
return resResult(STATUS.SUCCESS, { code });
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -718,6 +718,7 @@ export default class Role extends BaseModel {
|
|||||||
if(form.uid) searchObj['userInfo.uid'] = form.uid;
|
if(form.uid) searchObj['userInfo.uid'] = form.uid;
|
||||||
if(form.roleId) searchObj['roleId'] = form.roleId;
|
if(form.roleId) searchObj['roleId'] = form.roleId;
|
||||||
if(form.roleName) searchObj['roleName'] = { $regex: new RegExp(form.roleName.toString(), 'i') };
|
if(form.roleName) searchObj['roleName'] = { $regex: new RegExp(form.roleName.toString(), 'i') };
|
||||||
|
if(form.tel) searchObj['userInfo.tel'] = form.tel;
|
||||||
return searchObj
|
return searchObj
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ export interface SearchRoleParam {
|
|||||||
uid?: number; // 玩家id
|
uid?: number; // 玩家id
|
||||||
roleId?: string; // 角色id
|
roleId?: string; // 角色id
|
||||||
roleName?: string; // 昵称
|
roleName?: string; // 昵称
|
||||||
|
tel?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SearchHeroParam {
|
export interface SearchHeroParam {
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ import { JewelModel } from "../db/Jewel";
|
|||||||
import { RoleCeModel } from "../db/RoleCe";
|
import { RoleCeModel } from "../db/RoleCe";
|
||||||
|
|
||||||
export async function deletRole(roleId: string) {
|
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 ) return false;
|
||||||
if(role.hasInit) {
|
if(role.hasInit) {
|
||||||
|
|
||||||
@@ -203,6 +203,7 @@ export async function deletRole(roleId: string) {
|
|||||||
let doc = new RoleModel();
|
let doc = new RoleModel();
|
||||||
const update = Object.assign(doc.toJSON(), pick(role, ['serverType', 'userInfo', 'seqId', 'serverId']), { roleName: role.roleId });
|
const update = Object.assign(doc.toJSON(), pick(role, ['serverType', 'userInfo', 'seqId', 'serverId']), { roleName: role.roleId });
|
||||||
delete update._id;
|
delete update._id;
|
||||||
|
|
||||||
await RoleModel.updateMany({ roleId }, { $set: update });
|
await RoleModel.updateMany({ roleId }, { $set: update });
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -817,5 +817,12 @@
|
|||||||
"name": "切换活动显示",
|
"name": "切换活动显示",
|
||||||
"module": "activity",
|
"module": "activity",
|
||||||
"type": "update"
|
"type": "update"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 118,
|
||||||
|
"api": "gm.gmRoleHandler.skipEpilogue",
|
||||||
|
"name": "跳过序章",
|
||||||
|
"module": "role",
|
||||||
|
"type": "update"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
Reference in New Issue
Block a user