From 5897b37ef6081280972146aa4f02c951ef827aae Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 14 Dec 2020 09:44:39 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=8A=80=E8=83=BD=E5=80=BC=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/services/playerCeService.ts | 40 ++++++++++++--------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/game-server/app/services/playerCeService.ts b/game-server/app/services/playerCeService.ts index 85e79de66..5230f599e 100644 --- a/game-server/app/services/playerCeService.ts +++ b/game-server/app/services/playerCeService.ts @@ -28,7 +28,7 @@ export function calPlayerCe(hero: any, type: number, args: Array) { reIncAttr = calHeroTrainIncAttr(hero); } - addSeidEffect(hero, reIncAttr, addSeidList, removeSeidList); // 处理加值 + addSeidEffect(reIncAttr, addSeidList, removeSeidList); // 处理加值 if(!hero.ceAttr) hero.ceAttr = new CeAttr(); for (let attrName in reIncAttr) { let originalAttrData: CeAttrData = hero.ceAttr[attrName]||new CeAttrData(); @@ -174,24 +174,30 @@ function getFieldByStage(stage: number, jobid: number) { // 添加技能增加的被动属性 -function addSeidEffect(hero: Hero, reIncAttr: CeAttr, addSeidList: Array, removeSeidList: Array) { +function addSeidEffect(reIncAttr: CeAttr, addSeidList: Array, removeSeidList: Array) { - let effectList = new Array(); // any: dic_zyz_se表内容 - for(let seid of addSeidList) { - let dicSeid = getSeidById(seid); - if(dicSeid && dicSeid.id > 0){ - addSeid(effectList, dicSeid.id, dicSeid.gainValueArr) + let otiginalSeidList = [ + {list: addSeidList, multi: 1}, + {list: removeSeidList, multi: -1} + ]; + for(let {list, multi} of otiginalSeidList) { + let effectList = new Array(); // any: dic_zyz_se表内容 + for(let seid of list) { + let dicSeid = getSeidById(seid); + if(dicSeid && dicSeid.id > 0){ + addSeid(effectList, dicSeid.id, dicSeid.gainValueArr) + } } - } - - for(let {type, gainValueArr: [ability, value]} of effectList) { - if(!reIncAttr[HERO_ATTR[ability]]) { - reIncAttr[HERO_ATTR[ability]] = new CeAttrData(); - } - if(type == SEID_TYPE.TYPE101) { // 加值 - reIncAttr[HERO_ATTR[ability]].ratioUp += value; - } else if (type == SEID_TYPE.TYPE102) { // 加百分比 - reIncAttr[HERO_ATTR[ability]].fixUp += value; + + for(let {type, gainValueArr: [ability, value]} of effectList) { + if(!reIncAttr[HERO_ATTR[ability]]) { + reIncAttr[HERO_ATTR[ability]] = new CeAttrData(); + } + if(type == SEID_TYPE.TYPE101) { // 加值 + reIncAttr[HERO_ATTR[ability]].ratioUp += value * multi; + } else if (type == SEID_TYPE.TYPE102) { // 加百分比 + reIncAttr[HERO_ATTR[ability]].fixUp += value * multi; + } } } }