优化:武将初始加载
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import { RoleModel } from './../../../db/Role';
|
||||
import { HeroModel } from '../../../db/Hero';
|
||||
import { RoleModel, RoleUpdate } from './../../../db/Role';
|
||||
import { HeroModel, HeroUpdate } from '../../../db/Hero';
|
||||
import { resResult, decodeIdCntArrayStr, parseGoodStr } from '../../../pubUtils/util';
|
||||
import { Application, BackendSession, pinus, HandlerService, } from 'pinus';
|
||||
import { handleCost, addItems, createHeroes } from '../../../services/rewardService';
|
||||
@@ -17,10 +17,10 @@ import { checkBattleHeroesByHid } from '../../../services/normalBattleService';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
import { updateUserInfo } from '../../../services/redisService';
|
||||
import { checkTaskWithHero, checkTask, checkTaskWithArgs, checkActivityTask } from '../../../services/taskService';
|
||||
import { getGoldObject, getCoinObject } from '../../../pubUtils/itemUtils';
|
||||
import { getGoldObject, getCoinObject, createHeroesWhenInit } from '../../../pubUtils/itemUtils';
|
||||
import { RScriptRecordModel } from '../../../db/RScriptRecord';
|
||||
import { checkPvp } from '../../../services/pvpService';
|
||||
import { pushData } from '../../../services/connectorService';
|
||||
import { SkinModel, SkinUpdate } from '../../../db/Skin';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -32,7 +32,6 @@ export class RoleHandler {
|
||||
}
|
||||
|
||||
async initRole(msg: { roleName: string }, session: BackendSession) {
|
||||
console.log('******** initRole start', Date.now());
|
||||
let roleId = session.get('roleId');
|
||||
let serverId = session.get('serverId');
|
||||
let sid: string = session.get('sid');
|
||||
@@ -45,15 +44,11 @@ export class RoleHandler {
|
||||
let checkName = await RoleModel.checkName(roleName, serverId);
|
||||
if (checkName) return resResult(STATUS.NAME_HAS_USED);
|
||||
|
||||
let heroInfos = [];
|
||||
for (let hid of DEFAULT_HEROES) {
|
||||
heroInfos.push({
|
||||
hid, lv: DEFAULT_HERO_LV, exp: getHeroExpByLv(DEFAULT_HERO_LV - 1) || 0
|
||||
});
|
||||
}
|
||||
|
||||
console.log('****** createHeroes before', Date.now())
|
||||
await createHeroes(roleId, roleName, sid, serverId, funcs, heroInfos);
|
||||
let initInfos: { role: RoleUpdate, heroes: HeroUpdate[], skins: SkinUpdate[]} = await this.app.rpc.role.roleRemote.getInitRoleInfos.toServer(this.app.getServerId());
|
||||
role = await RoleModel.updateRoleInfo(roleId, {...initInfos.role, roleName, hasInit: true});
|
||||
let { heroes } = await createHeroesWhenInit(roleId, roleName, serverId, initInfos.heroes, initInfos.skins);
|
||||
|
||||
console.log('****** createHeroes after', Date.now())
|
||||
session.set('roleName', roleName);
|
||||
session.push('roleName', () => { });
|
||||
@@ -61,19 +56,15 @@ export class RoleHandler {
|
||||
let items = [].concat(DEFAULT_ITEMS, DEFAULT_EQUIPS, [getGoldObject(DEFAULT_GOLD)], [getCoinObject(DEFAULT_COIN)]);
|
||||
await addItems(roleId, roleName, sid, items);
|
||||
|
||||
console.log('****** calAllHeroCe before', Date.now())
|
||||
let calResult = await calAllHeroCe(HERO_SYSTEM_TYPE.INIT, sid, roleId, { hasInit: true, roleName });
|
||||
console.log('****** calAllHeroCe after', Date.now())
|
||||
|
||||
let battleId = SCRIPT.SCRIPT_BATTLE_ID;
|
||||
let warInfo = gameData.war.get(battleId);
|
||||
await RScriptRecordModel.setScript(roleId, battleId, warInfo.warType, 2, SCRIPT.SCRIPT_NAME);
|
||||
|
||||
await checkPvp(calResult.role);
|
||||
await checkPvp(role);
|
||||
|
||||
console.log('******** initRole end', Date.now());
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
roleId, roleName, heroes: calResult.heros
|
||||
roleId, roleName, heroes
|
||||
})
|
||||
}
|
||||
|
||||
@@ -523,4 +514,13 @@ export class RoleHandler {
|
||||
return resResult(STATUS.SUCCESS, { roleName: role.roleName });
|
||||
}
|
||||
|
||||
async setInitRole() {
|
||||
this.app.rpc.role.roleRemote.setInitRole.toServer(this.app.getServerId());
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
async getInitRole() {
|
||||
let initRoleInfo = await this.app.rpc.role.roleRemote.getInitRoleInfos.toServer(this.app.getServerId());
|
||||
|
||||
return resResult(STATUS.SUCCESS, initRoleInfo)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user