修改calPlayerCeAndSave的使用

This commit is contained in:
luying
2020-12-10 17:05:07 +08:00
parent 09d9bbf47f
commit 6c88fda867
7 changed files with 19 additions and 17 deletions

View File

@@ -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;

View File

@@ -38,7 +38,8 @@ export class RoleHandler {
hName: '曹操',
quality: 1,
job: 1,
star: 0
star: 0,
serverId: 1
}
await HeroModel.createHero(heroInfo);
}

View File

@@ -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);

View File

@@ -198,7 +198,7 @@ export default class GMUsers extends Service {
if(!dicHero) continue;
let {quality, initialStars: star, jobid: job, name: hName} = dicHero;
const heroInfo = {
roleId, roleName: role.roleName, hid, hName, star, quality, job,
roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId,
lv: hlv
}
heroInfos.push(heroInfo);

View File

@@ -243,7 +243,7 @@ export const WAR_JSON_ATTRIBUTE_TYPE = {
export const EVENT_QUIZ_NUM = 3;
export const DEFAULT_HEROES = [ 312, 314, 311, 309, 315];
export const DEFAULT_HEROES = [ 12, 14, 11, 9, 15];
export const FIX_SMS_CODE_TELS = ['18855953630', '13911134885', '15167549151', '15618654010', '15167549151'];

View File

@@ -46,7 +46,7 @@ export default class Hero extends BaseModel {
@prop({ required: true })
roleName: string; // 角色名称
@prop({ required: true })
serverId: number; // 区服 id
serverId: number; // 区服 id
@prop({ required: true })
hid: number; // 武将 id
@@ -119,7 +119,7 @@ export default class Hero extends BaseModel {
return hero;
}
public static async createHero(heroInfo: {roleId: string, roleName: string, hid: number, hName: string, star: number, quality: number, job: number, lv?: number }, lean = true) {
public static async createHero(heroInfo: {roleId: string, serverId: number, roleName: string, hid: number, hName: string, star: number, quality: number, job: number, lv?: number }, lean = true) {
const doc = new HeroModel();
const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1;
const update = Object.assign(doc.toJSON(), heroInfo, {seqId});

View File

@@ -145,7 +145,7 @@ export default class Auth extends Service {
let {quality, initialStars: star, jobid: job, name: hName} = dicHero;
hero = await HeroModel.createHero({
roleId, roleName: role.roleName, hid, hName, star, quality, job
roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId
});
}