From e86e01e23d20955b4f12d13290954690b9a26dac Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Wed, 9 Aug 2023 18:02:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AD=82=E7=81=B5=E5=AE=9D=E6=88=98=E5=8A=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86=EF=BC=8C=E7=83=AD=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/c_database_version.json | 4 +- conf/hotfix.json | 3 +- .../ljsd/jieling/logic/arena/ArenaLogic.java | 2 +- .../ljsd/jieling/logic/family/GuildLogic.java | 2 +- .../ljsd/jieling/logic/hero/HeroLogic.java | 103 ++++-------------- .../jieling/logic/store/BuyGoodsNewLogic.java | 15 +-- 6 files changed, 33 insertions(+), 96 deletions(-) diff --git a/conf/c_database_version.json b/conf/c_database_version.json index 2b4b31e47..f305d9c1a 100644 --- a/conf/c_database_version.json +++ b/conf/c_database_version.json @@ -1,4 +1,4 @@ { - "version":"5", - "tables":"" + "version":"6", + "tables":"EquipConfig" } \ No newline at end of file diff --git a/conf/hotfix.json b/conf/hotfix.json index 2e5c7ac7a..e0bf6b3f7 100644 --- a/conf/hotfix.json +++ b/conf/hotfix.json @@ -1,5 +1,6 @@ { - "version":"5", + "version":"6", "classes":[ + {"name":"HeroLogic.class","fullName":"com.ljsd.jieling.logic.hero.HeroLogic"} ] } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index fa3f866a7..72b4c31dd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -92,7 +92,7 @@ public class ArenaLogic { try { arenaEnemyList.add(getArenaEnemy(enemyId, enemyType)); } catch (Exception e) { - e.printStackTrace(); + LOGGER.error("竞技场报错:{}",e.getMessage()); } } return arenaEnemyList; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index 598ad40fe..49a78ed11 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -424,8 +424,8 @@ public class GuildLogic { if(user.getPlayerInfoManager().getGuildId()==0){ throw new ErrorCodeException(ErrorCode.FAMILY_NO); } - GuildInfo guildInfo = GuilidManager.getGuildInfo(user.getPlayerInfoManager().getGuildId()); Family.GetFamilyMemberInfoResponse.Builder builder = Family.GetFamilyMemberInfoResponse.newBuilder(); + GuildInfo guildInfo = GuilidManager.getGuildInfo(user.getPlayerInfoManager().getGuildId()); Map> members = guildInfo.getMembers(); for(Map.Entry> memberEntry : members.entrySet()){ Integer position = memberEntry.getKey(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index f60a77e46..371b301e2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -2830,8 +2830,6 @@ public class HeroLogic { } } - LOGGER.info("============================1{}",heroAllAttribute); - // 主角本身给英雄的加成 SPlayerLevelConfig playerLevelConfig = SPlayerLevelConfig.sPlayerLevelConfigMap.get(user.getPlayerInfoManager().getLevel()); if (playerLevelConfig != null){ @@ -2847,8 +2845,6 @@ public class HeroLogic { calPlayerCardAttribute(heroAllAttribute, info.getCardId(), info.getStar(), info.getLevel()); } - LOGGER.info("============================2{}",heroAllAttribute); - //化身之力提供的属性 // Map SChangingForce = STableManager.getConfig(SChangingForce.class); // if(SChangingForce.get(user.getHeroManager().getTransformationForce()) != null){ @@ -2882,7 +2878,6 @@ public class HeroLogic { int tempStar = hero.getEspecialEquipLevelByHongmeng(user.getHeroManager(), hero.getId()); Map> equipTalismanaMap = SEquipTalismana.equipTalismanaStarMap; SEquipTalismana equipTali = equipTalismanaMap.get(equipTempId).get(tempStar); - combinedAttribute(equipTali.getProperty(), heroAllAttribute); } @@ -2897,7 +2892,7 @@ public class HeroLogic { equipMap = hero.getCreateType() == 1 ? user.getExpeditionManager().getEquipMap() : user.getEquipManager().getEquipMap(); } - //宝器加成 + //宝器加成 魂灵宝 Set jewelInfo = hero.getJewelInfo(); boolean flashing = jewelInfo.size() == 2; int minLevel = -1; @@ -3010,19 +3005,11 @@ public class HeroLogic { Map equipConfigMap = STableManager.getConfig(SEquipConfig.class); //魂印 - Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - soulEquipByPositionMap.forEach((k, v) -> { - SEquipConfig sEquipConfig = equipConfigMap.get(v); - int[][] property = sEquipConfig.getProperty(); - if (property != null && property.length > 0 && property[0].length > 0) { - combinedAttribute(property, heroAllAttribute); - } - }); - + ArrayList list = new ArrayList<>(hero.getSoulEquipByPositionMap().values()); //神印 - Map godSealByPositionMap = hero.getGodSealByPositionMap(); - for (Map.Entry entry : godSealByPositionMap.entrySet()) { - SEquipConfig sEquipConfig = equipConfigMap.get(entry.getValue()); + list.addAll(hero.getGodSealByPositionMap().values()); + for (Integer id : list) { + SEquipConfig sEquipConfig = equipConfigMap.get(id); int[][] property = sEquipConfig.getProperty(); if (property != null && property.length > 0 && property[0].length > 0) { combinedAttribute(property, heroAllAttribute); @@ -3183,8 +3170,6 @@ public class HeroLogic { * @param heroAllAttribute 总属性 */ private void getEquipSuiteAttr(Hero hero, Map heroAllAttribute){ - //装备总战力评分 - long equipForce = 0; Iterator> iterator = hero.getEquipByPositionMap().entrySet().iterator(); Map strengthenMap = SEquipStrengthen.lvMap; @@ -3215,7 +3200,6 @@ public class HeroLogic { propertyValueByIdMap.put(prop[0], value); } combinedAttribute(propertyValueByIdMap, heroAllAttribute); - equipForce += sEquipConfig.getScore(); // 添加到套装list suiteNumList.add(sEquipConfig); } @@ -3242,8 +3226,6 @@ public class HeroLogic { num -= 1; } } - //魂印战力保存 - heroAllAttribute.put(HeroAttributeEnum.EquipForce.getPropertyId(), equipForce); } /** @@ -3367,31 +3349,27 @@ public class HeroLogic { } + /** + * 计算应用战力 + */ public long calHeoForce(User user, Hero hero, int teamId) { - Map heroAllAttribute; - heroAllAttribute = calHeroNotBufferAttribute(user, hero, true, teamId); - //战力保存 + Map heroAllAttribute = calHeroNotBufferAttribute(user, hero, true, teamId); + // 基础属性战力 int force = calForce(heroAllAttribute); - Map config = STableManager.getConfig(SEquipConfig.class); - // 魂印装备战力评分 - Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - for (int sign : soulEquipByPositionMap.values()) { - SEquipConfig sEquipConfig = config.get(sign); + // 额外评分战力 + Map config = SEquipConfig.equipConfigMap; + ArrayList equipId = new ArrayList<>(); + equipId.addAll(hero.getEquipByPositionMap().values());// 装备 + equipId.addAll(hero.getSoulEquipByPositionMap().values());// 魂印 + equipId.addAll(hero.getGodSealByPositionMap().values());// 神印 + for (Integer id : equipId) { + SEquipConfig sEquipConfig = config.get(id); if (sEquipConfig == null) { continue; } force += sEquipConfig.getScore(); } - // 神印装备战力评分 - Map godSealByPositionMap = hero.getGodSealByPositionMap(); - for (int sign : godSealByPositionMap.values()) { - SEquipConfig sEquipConfig = config.get(sign); - if (sEquipConfig == null) { - continue; - } - force += sEquipConfig.getScore(); - } - return force + heroAllAttribute.get(HeroAttributeEnum.EquipForce.getPropertyId()); + return force; } ///获取最高战斗力 @@ -3431,49 +3409,6 @@ public class HeroLogic { } result=forceNum+(forceNum*forceAdd); - // 新战力计算2021 9 17 - // 面板最大生命值 -// SPropertyConfig sPropertyConfigHP = SPropertyConfig.getsPropertyConfigByPID(HeroAttributeEnum.Hp.getPropertyId()); -// float hpScore = sPropertyConfigHP.getScore(); -// SPropertyConfig sPropertyConfigAttack = SPropertyConfig.getsPropertyConfigByPID(HeroAttributeEnum.Attack.getPropertyId()); -// float attackScore = sPropertyConfigAttack.getScore(); -// SPropertyConfig sPropertyConfigPhysicalDefence = SPropertyConfig.getsPropertyConfigByPID(HeroAttributeEnum.PhysicalDefence.getPropertyId()); -// float pdScore = sPropertyConfigPhysicalDefence.getScore(); -// SPropertyConfig sPropertyConfigMagicDefence = SPropertyConfig.getsPropertyConfigByPID(HeroAttributeEnum.MagicDefence.getPropertyId()); -// float mdScore = sPropertyConfigMagicDefence.getScore(); -// -// float xishu = 10000; -// float finalHp = heroAllAttribute.getOrDefault(HeroAttributeEnum.Hp.getPropertyId(), 0L).floatValue(); -// // 面板攻击 -// float finalAttack = heroAllAttribute.getOrDefault(HeroAttributeEnum.Attack.getPropertyId(), 0L).floatValue(); -// // 面板护甲 -// float finalPhysicalDefence = heroAllAttribute.getOrDefault(HeroAttributeEnum.PhysicalDefence.getPropertyId(), 0L).floatValue(); -// // 面板魔抗 -// float magicDefence = heroAllAttribute.getOrDefault(HeroAttributeEnum.MagicDefence.getPropertyId(), 0L).floatValue(); -// // 伤害加成 -// float damageBocusFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.DamageBocusFactor.getPropertyId(), 0L).floatValue(); -// // 伤害减免 -// float damageReduceFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.DamageReduceFactor.getPropertyId(), 0L).floatValue(); -// // 命中几率 -// float hit = heroAllAttribute.getOrDefault(HeroAttributeEnum.Hit.getPropertyId(), 0L).floatValue(); -// // 闪避几率 -// float dodge = heroAllAttribute.getOrDefault(HeroAttributeEnum.Dodge.getPropertyId(), 0L).floatValue(); -// // 暴击几率 -// float critFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.CritFactor.getPropertyId(), 0L).floatValue(); -// // 抗暴几率 -// float antiCritDamageFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.AntiCritDamageFactor.getPropertyId(), 0L).floatValue(); -// // 暴伤加成 -// float critDamageFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.CritDamageFactor.getPropertyId(), 0L).floatValue(); -// // 暴伤减免 -// float critDamageReduceFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.CritDamageReduceFactor.getPropertyId(), 0L).floatValue(); -// // 受疗加成 -// float cureFacter = heroAllAttribute.getOrDefault(HeroAttributeEnum.CureFacter.getPropertyId(), 0L).floatValue(); -// // 治疗加成 -// float treatFacter = heroAllAttribute.getOrDefault(HeroAttributeEnum.TreatFacter.getPropertyId(), 0L).floatValue(); -// -// result = (finalHp * hpScore + finalAttack * attackScore + finalPhysicalDefence * pdScore + magicDefence * mdScore) -// * (1 + (damageBocusFactor + damageReduceFactor + hit + dodge + critFactor + -// antiCritDamageFactor + critDamageFactor + critDamageReduceFactor + cureFacter + treatFacter) / 2 / xishu); return (int)result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index b68b977be..5bcdbbe30 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -691,13 +691,14 @@ public class BuyGoodsNewLogic { list.addAll(rechargeInfo.getGmSingleMap().values()); for(AbstractWelfareBag bag : list){ - if(bag.isOpen()){ - CommonProto.GiftGoodsInfo giftGoodsInfo = buildGoodsInfo(bag); - if (giftGoodsInfo == null) { - needRemoveIds.add(bag.getModId()); - }else { - giftGoodsInfoList.add(giftGoodsInfo); - } + if (bag == null || !bag.isOpen()){ + continue; + } + CommonProto.GiftGoodsInfo giftGoodsInfo = buildGoodsInfo(bag); + if (giftGoodsInfo == null) { + needRemoveIds.add(bag.getModId()); + }else { + giftGoodsInfoList.add(giftGoodsInfo); } }