修改calPlayerCeAndSave的使用
This commit is contained in:
@@ -41,6 +41,7 @@ export class HeroHandler {
|
||||
let roleId: string = session.get('roleId');
|
||||
let roleName: string = session.get('roleName');
|
||||
let sid: string = session.get('sid');
|
||||
let serverId: number = session.get('serverId');
|
||||
|
||||
let {hid} = msg;
|
||||
|
||||
@@ -56,8 +57,8 @@ export class HeroHandler {
|
||||
if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
// createHero
|
||||
let curHero = await HeroModel.createHero({
|
||||
roleId, roleName, hid, hName, star, quality, job
|
||||
});
|
||||
roleId, serverId, roleName, hid, hName, star, quality, job
|
||||
}, false);
|
||||
await calPlayerCeAndSave(sid, roleId, [curHero]);
|
||||
return resResult(STATUS.SUCCESS, {curHero});
|
||||
}
|
||||
@@ -90,18 +91,18 @@ export class HeroHandler {
|
||||
allExp += count * dicGoods.value;
|
||||
}
|
||||
// 计算武将可以升的级数
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId, false);
|
||||
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||
let {lv: playerLv} = await RoleModel.findByRoleId(roleId);
|
||||
let {lv: oldLv, exp: oldExp} = hero;
|
||||
if(oldLv >= playerLv ) return resResult(STATUS.ROLE_HERO_LV_OVER);
|
||||
if(oldLv + addLv > playerLv ) return resResult(STATUS.ROLE_HERO_LV_OVER);
|
||||
oldExp += allExp;
|
||||
let newExp = oldExp + allExp; // 不考虑主公等级,还会剩多少经验
|
||||
let newLv = oldLv; // 不考虑主公等级,这些经验可以升几级
|
||||
let curExp = newExp; // 考虑到主公等级,还剩多少经验
|
||||
for(;;) {
|
||||
let exp = getHeroExpByLv(newLv);
|
||||
console.log(exp, newExp)
|
||||
|
||||
if(exp < newExp) {
|
||||
newExp -= exp;
|
||||
if(newLv < playerLv) curExp -= exp;
|
||||
@@ -140,7 +141,7 @@ export class HeroHandler {
|
||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let {pieceId} = dicHero;
|
||||
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId, false);
|
||||
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||
|
||||
let {star: oldStar, starStage: oldStarStage, quality} = hero;
|
||||
@@ -184,7 +185,7 @@ export class HeroHandler {
|
||||
// 根据dic_hero 获得 碎片id
|
||||
let {pieceId} = dicHero;
|
||||
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId, false);
|
||||
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||
let {quality: oldQuality, star} = hero;
|
||||
if(quality != oldQuality) {
|
||||
@@ -233,7 +234,7 @@ export class HeroHandler {
|
||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let {pieceId} = dicHero;
|
||||
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId, false);
|
||||
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||
|
||||
let {colorStar: oldColorStar, colorStarStage: oldColorStarStage, star, quality} = hero;
|
||||
|
||||
@@ -38,7 +38,8 @@ export class RoleHandler {
|
||||
hName: '曹操',
|
||||
quality: 1,
|
||||
job: 1,
|
||||
star: 0
|
||||
star: 0,
|
||||
serverId: 1
|
||||
}
|
||||
await HeroModel.createHero(heroInfo);
|
||||
}
|
||||
|
||||
@@ -23,15 +23,15 @@ export async function calPlayerCeAndSave(sid: string, roleId: string, heros:Arra
|
||||
for (let hero of heros) {
|
||||
hero.ce = calPlayerCe(hero);
|
||||
playerCe = playerCe + hero.ce;
|
||||
hero = await HeroModel.updateHeroInfo(roleId, hero.hid, hero);
|
||||
await hero.save();
|
||||
pushHeros.push({
|
||||
hid: hero.hid,
|
||||
ce: hero.ce
|
||||
});
|
||||
}
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
let role = await RoleModel.findOne({roleId});
|
||||
role.ce = playerCe;
|
||||
await RoleModel.updateRoleInfo(roleId, role);
|
||||
await role.save();
|
||||
//下发战力
|
||||
let uids = [{uid: roleId, sid}];
|
||||
pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, {ce: playerCe, heros:pushHeros, topFiveCe:0}), uids);
|
||||
|
||||
Reference in New Issue
Block a user