修改calPlayerCeAndSave的使用
This commit is contained in:
@@ -41,6 +41,7 @@ export class HeroHandler {
|
|||||||
let roleId: string = session.get('roleId');
|
let roleId: string = session.get('roleId');
|
||||||
let roleName: string = session.get('roleName');
|
let roleName: string = session.get('roleName');
|
||||||
let sid: string = session.get('sid');
|
let sid: string = session.get('sid');
|
||||||
|
let serverId: number = session.get('serverId');
|
||||||
|
|
||||||
let {hid} = msg;
|
let {hid} = msg;
|
||||||
|
|
||||||
@@ -56,8 +57,8 @@ export class HeroHandler {
|
|||||||
if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||||
// createHero
|
// createHero
|
||||||
let curHero = await HeroModel.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]);
|
await calPlayerCeAndSave(sid, roleId, [curHero]);
|
||||||
return resResult(STATUS.SUCCESS, {curHero});
|
return resResult(STATUS.SUCCESS, {curHero});
|
||||||
}
|
}
|
||||||
@@ -90,18 +91,18 @@ export class HeroHandler {
|
|||||||
allExp += count * dicGoods.value;
|
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);
|
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||||
let {lv: playerLv} = await RoleModel.findByRoleId(roleId);
|
let {lv: playerLv} = await RoleModel.findByRoleId(roleId);
|
||||||
let {lv: oldLv, exp: oldExp} = hero;
|
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;
|
oldExp += allExp;
|
||||||
let newExp = oldExp + allExp; // 不考虑主公等级,还会剩多少经验
|
let newExp = oldExp + allExp; // 不考虑主公等级,还会剩多少经验
|
||||||
let newLv = oldLv; // 不考虑主公等级,这些经验可以升几级
|
let newLv = oldLv; // 不考虑主公等级,这些经验可以升几级
|
||||||
let curExp = newExp; // 考虑到主公等级,还剩多少经验
|
let curExp = newExp; // 考虑到主公等级,还剩多少经验
|
||||||
for(;;) {
|
for(;;) {
|
||||||
let exp = getHeroExpByLv(newLv);
|
let exp = getHeroExpByLv(newLv);
|
||||||
console.log(exp, newExp)
|
|
||||||
if(exp < newExp) {
|
if(exp < newExp) {
|
||||||
newExp -= exp;
|
newExp -= exp;
|
||||||
if(newLv < playerLv) curExp -= exp;
|
if(newLv < playerLv) curExp -= exp;
|
||||||
@@ -140,7 +141,7 @@ export class HeroHandler {
|
|||||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||||
let {pieceId} = dicHero;
|
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);
|
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||||
|
|
||||||
let {star: oldStar, starStage: oldStarStage, quality} = hero;
|
let {star: oldStar, starStage: oldStarStage, quality} = hero;
|
||||||
@@ -184,7 +185,7 @@ export class HeroHandler {
|
|||||||
// 根据dic_hero 获得 碎片id
|
// 根据dic_hero 获得 碎片id
|
||||||
let {pieceId} = dicHero;
|
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);
|
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||||
let {quality: oldQuality, star} = hero;
|
let {quality: oldQuality, star} = hero;
|
||||||
if(quality != oldQuality) {
|
if(quality != oldQuality) {
|
||||||
@@ -233,7 +234,7 @@ export class HeroHandler {
|
|||||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||||
let {pieceId} = dicHero;
|
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);
|
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||||
|
|
||||||
let {colorStar: oldColorStar, colorStarStage: oldColorStarStage, star, quality} = hero;
|
let {colorStar: oldColorStar, colorStarStage: oldColorStarStage, star, quality} = hero;
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ export class RoleHandler {
|
|||||||
hName: '曹操',
|
hName: '曹操',
|
||||||
quality: 1,
|
quality: 1,
|
||||||
job: 1,
|
job: 1,
|
||||||
star: 0
|
star: 0,
|
||||||
|
serverId: 1
|
||||||
}
|
}
|
||||||
await HeroModel.createHero(heroInfo);
|
await HeroModel.createHero(heroInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,15 +23,15 @@ export async function calPlayerCeAndSave(sid: string, roleId: string, heros:Arra
|
|||||||
for (let hero of heros) {
|
for (let hero of heros) {
|
||||||
hero.ce = calPlayerCe(hero);
|
hero.ce = calPlayerCe(hero);
|
||||||
playerCe = playerCe + hero.ce;
|
playerCe = playerCe + hero.ce;
|
||||||
hero = await HeroModel.updateHeroInfo(roleId, hero.hid, hero);
|
await hero.save();
|
||||||
pushHeros.push({
|
pushHeros.push({
|
||||||
hid: hero.hid,
|
hid: hero.hid,
|
||||||
ce: hero.ce
|
ce: hero.ce
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
let role = await RoleModel.findByRoleId(roleId);
|
let role = await RoleModel.findOne({roleId});
|
||||||
role.ce = playerCe;
|
role.ce = playerCe;
|
||||||
await RoleModel.updateRoleInfo(roleId, role);
|
await role.save();
|
||||||
//下发战力
|
//下发战力
|
||||||
let uids = [{uid: roleId, sid}];
|
let uids = [{uid: roleId, sid}];
|
||||||
pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, {ce: playerCe, heros:pushHeros, topFiveCe:0}), uids);
|
pinus.app.get('channelService').pushMessageByUids('onPlayerCeUpdate', resResult(STATUS.SUCCESS, {ce: playerCe, heros:pushHeros, topFiveCe:0}), uids);
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ export default class GMUsers extends Service {
|
|||||||
if(!dicHero) continue;
|
if(!dicHero) continue;
|
||||||
let {quality, initialStars: star, jobid: job, name: hName} = dicHero;
|
let {quality, initialStars: star, jobid: job, name: hName} = dicHero;
|
||||||
const heroInfo = {
|
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
|
lv: hlv
|
||||||
}
|
}
|
||||||
heroInfos.push(heroInfo);
|
heroInfos.push(heroInfo);
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ export const WAR_JSON_ATTRIBUTE_TYPE = {
|
|||||||
|
|
||||||
export const EVENT_QUIZ_NUM = 3;
|
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'];
|
export const FIX_SMS_CODE_TELS = ['18855953630', '13911134885', '15167549151', '15618654010', '15167549151'];
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -46,7 +46,7 @@ export default class Hero extends BaseModel {
|
|||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
roleName: string; // 角色名称
|
roleName: string; // 角色名称
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
serverId: number; // 区服 id
|
serverId: number; // 区服 id
|
||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
hid: number; // 武将 id
|
hid: number; // 武将 id
|
||||||
@@ -119,7 +119,7 @@ export default class Hero extends BaseModel {
|
|||||||
return hero;
|
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 doc = new HeroModel();
|
||||||
const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1;
|
const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1;
|
||||||
const update = Object.assign(doc.toJSON(), heroInfo, {seqId});
|
const update = Object.assign(doc.toJSON(), heroInfo, {seqId});
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ export default class Auth extends Service {
|
|||||||
let {quality, initialStars: star, jobid: job, name: hName} = dicHero;
|
let {quality, initialStars: star, jobid: job, name: hName} = dicHero;
|
||||||
|
|
||||||
hero = await HeroModel.createHero({
|
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
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user