添加初始物品

This commit is contained in:
luying
2020-12-31 11:17:17 +08:00
parent 7b76752e86
commit f9264be1c8
6 changed files with 1018 additions and 442 deletions
+25 -3
View File
@@ -1,4 +1,4 @@
import { COUNTER, HERO_SYSTEM_TYPE } from '@consts';
import { COUNTER, HERO_SYSTEM_TYPE, DEFAULT_LV, DEFAULT_ITEMS, ITID, DEFAULT_GOLD, DEFAULT_HERO_LV, DEFAULT_EQUIPS, DEFAULT_COIN } from '@consts';
import { DEFAULT_HEROES } from '@consts';
import { HeroModel } from '@db/Hero';
import { RoleModel } from '@db/Role';
@@ -9,6 +9,7 @@ import { Service } from 'egg';
import Counter from '@db/Counter';
import { getHeroInfoById } from 'app/pubUtils/gamedata';
import { calPlayerCeAndSave } from 'app/pubUtils/playerCe';
import { getExpByLv, getHeroExpByLv, gameData } from 'app/pubUtils/data';
const _ = require('underscore');
/**
@@ -131,7 +132,7 @@ export default class Auth extends Service {
const roleId = ctx.service.utils.genCode(10);
const code = ctx.service.utils.genCode(6);
const seqId = await Counter.getNewCounter(COUNTER.ROLE) || -1;
const role = await RoleModel.createRole(uid, serverId, { roleId, code, roleName, seqId });
const role = await RoleModel.createRole(uid, serverId, { roleId, code, roleName, seqId, lv: DEFAULT_LV, exp: (getExpByLv(DEFAULT_LV - 1)||{sum:0}).sum||0 });
if (role) {
for (let hid of DEFAULT_HEROES) {
let hero = await HeroModel.findByHidAndRole(hid, roleId);
@@ -147,10 +148,31 @@ export default class Auth extends Service {
hero = await HeroModel.createHero({
roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId,
skins:[{id: initialSkin, enable: true}]
skins:[{id: initialSkin, enable: true}], lv: DEFAULT_HERO_LV, exp: getHeroExpByLv(DEFAULT_HERO_LV - 1)||0
});
await calPlayerCeAndSave(roleId, [hero], HERO_SYSTEM_TYPE.INIT);
}
for(let {id, count} of DEFAULT_ITEMS) {
let dicGoods = gameData.goods.get(id);
if(!dicGoods) continue;
let itidObj = ITID.get(dicGoods.itid);
if(!itidObj) continue;
await ctx.service.utils.addBags(roleId, role.roleName, {id, itemName: dicGoods.name, count, type: itidObj.type, hid: 0});
}
for(let {id, count} of DEFAULT_EQUIPS) {
for(let j = 0; j < count; j++) {
let dicGoods = gameData.goods.get(id);
if(!dicGoods) continue;
await ctx.service.utils.addEquips(roleId, role.roleName, {id, ...dicGoods, hid: 0});
}
}
await RoleModel.addGoldFree(roleId, DEFAULT_GOLD);
await RoleModel.addCoin(roleId, DEFAULT_COIN);
return ctx.service.utils.resResult(STATUS.SUCCESS, { roleId: role.roleId });
}
return ctx.service.utils.resResult(STATUS.ROLE_NOT_FOUND);
+13
View File
@@ -2,6 +2,8 @@ import { Service } from 'egg';
import { resResult as pubResult } from '../pubUtils/util';
import { calPlayerCeAndSave } from 'app/pubUtils/playerCe';
import { HeroType } from '@db/Hero';
import { addSkins, addBags, addEquips } from 'app/pubUtils/itemUtils';
import { BagInter, EquipInter } from 'app/pubUtils/interface';
const csprng = require('csprng');
/**
* Utils Service
@@ -46,4 +48,15 @@ export default class Utils extends Service {
return calPlayerCeAndSave(roleId, heros, type, args)
}
public addSkins(roleId: string, id: number) {
return addSkins(roleId, id);
}
public addBags(roleId: string, roleName: string, data: BagInter) {
return addBags(roleId, roleName, data);
}
public addEquips(roleId: string, roleName: string, weapon: EquipInter) {
return addEquips(roleId, roleName, weapon);
}
}