diff --git a/game-server/app/servers/battle/handler/battleUtils.ts b/game-server/app/servers/battle/handler/battleUtils.ts index 51d8a7f89..a530da1de 100644 --- a/game-server/app/servers/battle/handler/battleUtils.ts +++ b/game-server/app/servers/battle/handler/battleUtils.ts @@ -182,7 +182,7 @@ export function decodeWarJsonAttribute(attribute) { export async function getPointRewardStatus(roleId: string) { let role = await RoleModel.findByRoleId(roleId); - let {expeditionPoint} = role; + let {expeditionPoint = 0} = role; let dicExpeditionPoint = getGamedata('dic_expedition_point'); let pointRewards = { expeditionPoint, diff --git a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts index 4897b5132..e822e7b03 100644 --- a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts +++ b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts @@ -329,7 +329,7 @@ export class ExpeditionBattleHandler { let goods = await rewardObject.saveReward(); return { - code: 202, + code: 200, data: { pointRewards, goods @@ -352,11 +352,11 @@ export class ExpeditionBattleHandler { } let { rewards } = pointStatusInDatabase; let dicExpeditionPoint = getGamedata('dic_expedition_point'); - let flag: boolean, maxPoint = 0; + let flag = true, maxPoint = 0; for(let dic of dicExpeditionPoint) { let curReward = rewards.find(cur => cur.point == dic.point); - if(curReward && curReward.received) { - flag = true; + if(!curReward || !curReward.received) { + flag = false; } if(dic.point > maxPoint) maxPoint = dic.point; } diff --git a/gm-server/app/service/Utils.ts b/gm-server/app/service/Utils.ts index 1e8fb968e..cda9a6465 100644 --- a/gm-server/app/service/Utils.ts +++ b/gm-server/app/service/Utils.ts @@ -99,4 +99,24 @@ export default class Utils extends Service { }); } + public calculateCE(heroInfo: {hid: number, lv: number }) { + + let { hid, lv } = heroInfo; + // 假设所有属性和等级的关系是简单的线性关系 + let dicHero = this.getGamedata('dic_zyz_hero'); + let curDicHero = dicHero.find(cur => cur.heroId == hid); + + let { atk, matk, def, mdef, agi, luk, atk_up, matk_up, def_up, mdef_up, agi_up, luk_up } = curDicHero; + atk += lv * atk_up; + matk += lv * matk_up; + def += lv * def_up; + mdef += lv * mdef_up; + agi += lv * agi_up; + luk += lv * luk_up; + + // 假设战力为所有属性的简单加法 + + let ce = atk + matk + def + mdef + agi + luk; + return ce; + } } diff --git a/gm-server/app/service/users.ts b/gm-server/app/service/users.ts index 117d5bc23..22974854b 100644 --- a/gm-server/app/service/users.ts +++ b/gm-server/app/service/users.ts @@ -166,6 +166,7 @@ export default class GMUsers extends Service { flag = 1, msg = "未找到武将" + hid; break; } + let ce = ctx.service.utils.calculateCE({hid: hid, lv: hlv}); const heroInfo = { roleId, @@ -173,7 +174,8 @@ export default class GMUsers extends Service { hid: hid, hName: dicHero.name, seqId, - lv: hlv + lv: hlv, + ce } await HeroModel.createHero(heroInfo); } else { diff --git a/shared/db/ExpeditionRecord.ts b/shared/db/ExpeditionRecord.ts index 56f1e1986..49af7752c 100644 --- a/shared/db/ExpeditionRecord.ts +++ b/shared/db/ExpeditionRecord.ts @@ -66,7 +66,7 @@ export default class ExpeditionRecord extends BaseModel { const result = await ExpeditionRecordModel.findOneAndUpdate( { expeditionCode }, { $push: {heroes: {$each: pushArr} } } - ) + ).lean(lean) return result; } diff --git a/shared/db/ExpeditionWarRecord.ts b/shared/db/ExpeditionWarRecord.ts index d72c00aae..a321974de 100644 --- a/shared/db/ExpeditionWarRecord.ts +++ b/shared/db/ExpeditionWarRecord.ts @@ -103,7 +103,7 @@ export default class ExpeditionWarRecord extends BaseModel { {expeditionCode, expeditionId}, {$set: {battleStatus}}, {new: true} - ); + ).lean(lean); return result; }