From 204eb5f959c9d578e1d9b824f1f26f5ffa6fd2bf Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 8 Dec 2021 16:50:41 +0800 Subject: [PATCH 01/27] =?UTF-8?q?=E5=91=BD=E6=A0=BC=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/globals/BIReason.java | 2 + .../ljsd/jieling/globals/GlobalItemType.java | 1 + .../jieling/handler/GetPlayerInfoHandler.java | 21 ++ .../hero/LifeGridChangeRequestHandler.java | 81 +++++ .../hero/LifeStoneUpRequestHandler.java | 279 ++++++++++++++++++ .../ljsd/jieling/logic/dao/HeroManager.java | 18 ++ .../java/com/ljsd/jieling/util/ItemUtil.java | 19 +- .../src/main/java/config/SGemConfig.java | 75 +++++ 8 files changed, 487 insertions(+), 9 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java create mode 100644 tablemanager/src/main/java/config/SGemConfig.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index c1460d7bf..be308bb7f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -370,4 +370,6 @@ public interface BIReason { int FABAO_SOUL_UP_COST =1223;//法宝之魂升级消耗 int TRANSFORMATION_CARD_COST = 1224;//变身卡激活消耗 + + int LIFE_STONE_UP = 1225;//命石合成 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java index 3806ffcc8..80ad58ead 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -38,6 +38,7 @@ public interface GlobalItemType { int MOUNT_FRAGMENTS_ITEM = 28;//坐骑碎片 int TRANSFORMATION_CARD = 29;//化身卡 int TRUMP_CHIP=30;//法宝碎片(法宝聚灵使用) + int LIFE_STONE=31;//命石 //物品使用类型 int NO_USE = 0 ; //不使用 int RANDOM_USE = 1; // 随机使用 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index a406b44e0..9c719b6e0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -245,6 +245,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ .setXiuweiLevel(heroManager.getXiuweiLevel()) .addAllPracticeSkillInfos(practiceSkillInfos) .addAllFaBaoSoulInfos(faBaoSoulInfos) + .addAllLifeGridInfos(getLifeGridInfos(heroManager)) .build(); ReportUtil.onReportEvent(user, ReportEventEnum.APP_LOGIN.getType()); try { @@ -387,6 +388,26 @@ public class GetPlayerInfoHandler extends BaseHandler{ return faBaoSoulInfos; } + /** + * 初始化获取命格数据 + * @param heroManager + * @return + */ + private ListgetLifeGridInfos(HeroManager heroManager){ + ListlifeGridInfos=new ArrayList<>(); + for (Map.Entry> entry : heroManager.getLifeGridMap().entrySet()) { + for (Map.Entry indexById : entry.getValue().entrySet()) { + CommonProto.LifeGridInfo info=CommonProto.LifeGridInfo.newBuilder() + .setGridId(entry.getKey()) + .setGridIndex(indexById.getKey()) + .setItemId(indexById.getValue()) + .build(); + lifeGridInfos.add(info); + } + } + return lifeGridInfos; + } + /** * 初始化英雄星级map(针对老号) * @param user diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java new file mode 100644 index 000000000..dbc40c5da --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java @@ -0,0 +1,81 @@ +package com.ljsd.jieling.handler.hero; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.dao.HeroManager; +import com.ljsd.jieling.logic.dao.Item; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.HashMap; +import java.util.Map; + +/** + * 命格穿戴/卸下 + */ +@Component +public class LifeGridChangeRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.LIFE_GRID_CHANGE_REQUEST; + } + @Override + public void processWithProto(ISession session, HeroInfoProto.LifeGridChangeRequest proto) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + int type=proto.getType(); + int position=proto.getPosition(); + int index=proto.getIndex(); + int itemId=proto.getLifeStoneId(); + HeroManager heroManager=user.getHeroManager(); + Map>lifeGridMap=heroManager.getLifeGridMap(); + HeroInfoProto.LifeGridChangeResponse response=null; + if (type==1){//穿戴 + MapinstItemMap=new HashMap<>(); + instItemMap.put(itemId,1); + boolean isTrue=ItemUtil.itemCost(user,instItemMap,BIReason.LIFE_STONE_UP,type); + if (!isTrue){ + LOGGER.error("穿戴的命石未拥有"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } + //更换 + if (lifeGridMap.containsKey(position)&&lifeGridMap.get(position).containsKey(index)&&lifeGridMap.get(position).get(index)>0){ + int unItemId=lifeGridMap.get(position).get(index); + int[][]unItem=new int[1][2]; + unItem[0][0]=unItemId; + unItem[0][1]=1; + ItemUtil.drop(user,unItem, BIReason.LIFE_STONE_UP); + } + heroManager.setLifeGridMap(position,index,itemId); + CommonProto.LifeGridInfo lifeGridInfo=CommonProto.LifeGridInfo.newBuilder() + .setGridId(position) + .setGridIndex(index) + .setItemId(itemId) + .build(); + response=HeroInfoProto.LifeGridChangeResponse.newBuilder().setLifeGridInfo(lifeGridInfo).build(); + }else{//卸下 + int unItemId= lifeGridMap.get(position).get(index); + int[][]unItem=new int[1][2]; + unItem[0][0]=unItemId; + unItem[0][1]=1; + ItemUtil.drop(user,unItem, BIReason.LIFE_STONE_UP); + heroManager.setLifeGridMap(position,index,0); + CommonProto.LifeGridInfo lifeGridInfo=CommonProto.LifeGridInfo.newBuilder() + .setGridId(position) + .setGridIndex(index) + .setItemId(0) + .build(); + response=HeroInfoProto.LifeGridChangeResponse.newBuilder().setLifeGridInfo(lifeGridInfo).build(); + } + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.LIFE_GRID_CHANGE_RESPONSE_VALUE,response,true); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java new file mode 100644 index 000000000..fca25fbf3 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -0,0 +1,279 @@ +package com.ljsd.jieling.handler.hero; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; +import com.ljsd.jieling.logic.dao.Item; +import com.ljsd.jieling.logic.dao.ItemManager; +import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.tools.Utils; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SFourQuadrantConfig; +import config.SGemConfig; +import config.SItem; +import manager.STableManager; +import org.springframework.data.mongodb.core.aggregation.ArrayOperators; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.*; + +/** + * 命石合成协议 + */ +@Component +public class LifeStoneUpRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.LIFE_STONE_UP_REQUEST; + } + + + @Override + public void processWithProto(ISession session, HeroInfoProto.LifeStoneUpRequest proto) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + int type= proto.getType(); + MapcostItemMap=new HashMap<>(); + MapaddItemMap=new HashMap<>(); + int equipLifeStoneId=0; + ItemManager itemManager=user.getItemManager(); + //操作类型 1:批量合成 2:一键合成 3:命石单个合成 4:快速合成 + if (type==1) { + int itemId=proto.getCurGemId(); + int itemNum=proto.getSelectNum(); + SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(itemId); + long upNum=itemNum/gemConfig.getUpgradeNum(); + long costGold=upNum*gemConfig.getUpgradeCost()[1]; + costItemMap.put(gemConfig.getUpgradeCost()[0],costGold); + costItemMap.put(itemId,(long)itemNum); + addItemMap.put(gemConfig.getNextGem(),upNum); + }else if(type==2){ + for (Map.Entry> integerTreeMapEntry : SGemConfig.gemConfigMapByType.entrySet()) { + boolean isCost=LifeStoneAllUp(itemManager,integerTreeMapEntry.getValue(),costItemMap,addItemMap); + if (!isCost) { + break; + } + } + }else if (type==3){ + int itemId=proto.getCurGemId(); + int itemNum=proto.getSelectNum(); + SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(itemId); + costItemMap.put(gemConfig.getUpgradeCost()[0],(long)gemConfig.getUpgradeCost()[1]); + if (proto.getGridId()>0){ + costItemMap.put(itemId,(long)itemNum); + equipLifeStoneId=gemConfig.getNextGem(); + }else{ + costItemMap.put(itemId,(long)itemNum+1); + addItemMap.put(gemConfig.getNextGem(),1L); + } + + }else if (type==4){ + SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(proto.getCurGemId()); + TreeMapgemConfigMap=SGemConfig.gemConfigMapByType.get(gemConfig.getType()); + if (LifeStoneQuickUp(itemManager,gemConfigMap,costItemMap,gemConfig.getLevel())) { + int[]curUpCost=gemConfig.getUpgradeCost(); + long allGoldCost= costItemMap.get(curUpCost[0])+curUpCost[1]; + costItemMap.put(curUpCost[0],allGoldCost); + if (proto.getGridId()>0){ + equipLifeStoneId=gemConfig.getNextGem(); + }else { + addItemMap.put(gemConfig.getNextGem(),1L); + costItemMap.put(proto.getCurGemId(),1L); + } + }else{ + LOGGER.error("命石合成材料不足"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } + } + if (costItemMap.isEmpty()){ + LOGGER.error("命石合成异常,请联系后端"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } + boolean isTrue= ItemUtil.itemCostLong(user,costItemMap,BIReason.LIFE_STONE_UP,type); + if (!isTrue){ + LOGGER.error("命石合成材料不足"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } + HeroInfoProto.LifeStoneUpResponse.Builder response=HeroInfoProto.LifeStoneUpResponse.newBuilder(); + ///大于0说明是在命格系统操作 + if (equipLifeStoneId>0){ + CommonProto.LifeGridInfo lifeGridInfo=CommonProto.LifeGridInfo.newBuilder() + .setGridId(proto.getGridId()) + .setGridIndex(proto.getGridIndex()) + .setItemId(equipLifeStoneId) + .build(); + response.setLifeGridInfo(lifeGridInfo); + user.getHeroManager().setLifeGridMap(proto.getGridId(),proto.getGridIndex(),equipLifeStoneId); + }else{ + long[][]addItem=ItemUtil.mapToLongArray(addItemMap); + CommonProto.Drop.Builder drop=ItemUtil.drop(user,addItem,BIReason.LIFE_STONE_UP); + response.setDrop(drop.build()); + } + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.LIFE_STONE_UP_RESPONSE_VALUE,response.build(),true); + } + + + ///命石一键合成 + public boolean LifeStoneAllUp(ItemManager itemManager,TreeMapgemConfigMap, MapcostItemMap, MapaddItemMap){ + long addCount=0;//一个循环合成数量 + long costGoldNum=0;//合成金币总消耗 + if(costItemMap.containsKey(14)){ + costGoldNum=costItemMap.get(14); + } + for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { + SGemConfig gemConfig=gemConfigEntry.getValue(); + ///升到满级 + if (gemConfig.getNextGem()==0){ + if (addCount>0){ + addItemMap.put(gemConfig.getId(),addCount); + } + continue; + } + Item curItem= itemManager.getItem(gemConfig.getId()); + long costNum=addCount; + if (curItem!=null){ + costNum=curItem.getItemNum()+addCount; + } + ///命石不足 + if (costNum< gemConfig.getUpgradeNum()){ + if (addCount>0){ + addItemMap.put(gemConfig.getId(),addCount); + addCount=0; + } + continue; + } + int stoneNum=gemConfig.getUpgradeNum(); + int[]costGold=gemConfig.getUpgradeCost(); + long remainNum=costNum%stoneNum; + if (remainNum!=0){ + costNum-=remainNum; + } + if (costNum>0){ + //本次合成消耗 + long needCostGoldNum=costNum/stoneNum*costGold[1]; + long haveGoldNum=0; + if (itemManager.getItem(costGold[0])!=null){ + haveGoldNum=itemManager.getItem(costGold[0]).getItemNum(); + } + ///金币不足情况中断合成 + if (needCostGoldNum+costGoldNum>haveGoldNum){ + long upNum= (haveGoldNum-costGoldNum)/costGold[1]; + costItemMap.put(gemConfig.getId(),upNum*stoneNum); + addItemMap.put(gemConfig.getNextGem(),upNum); + costGoldNum+=upNum*costGold[1]; + //刷新消耗金币数量 + costItemMap.put(costGold[0],costGoldNum); + return false; + } + //计算累计消耗金币 + costGoldNum+=needCostGoldNum; + if (curItem!=null){ + long bagCost=curItem.getItemNum()-remainNum; + //刷新消耗命石数量 + costItemMap.put(gemConfig.getId(),bagCost); + long addNum=remainNum-curItem.getItemNum(); + if (addNum>0){ + addItemMap.put(gemConfig.getId(),addNum); + } + } + //保存累计消耗金币数量 + costItemMap.put(costGold[0],costGoldNum); + } + if (curItem==null){ + addItemMap.put(gemConfig.getId(),remainNum); + } + addCount=costNum/stoneNum; + } + return true; + } + + /** + * 命石快速合成 + * @param itemManager + * @param gemConfigMap + * @param costItemMap + * @param selectGemLv + * @return + */ + public boolean LifeStoneQuickUp(ItemManager itemManager,TreeMapgemConfigMap, MapcostItemMap,int selectGemLv){ + long addCount=0;//一个循环合成数量 + long costGoldNum=0;//合成金币总消耗 + for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { + SGemConfig gemConfig=gemConfigEntry.getValue(); + ///如果命石等级大于当前选中的命石等级跳过 + if (gemConfig.getLevel()>=selectGemLv){ + break; + } + + Item curItem= itemManager.getItem(gemConfig.getId()); + long costNum=addCount; + if (curItem!=null){ + costNum=curItem.getItemNum()+addCount; + } + int[]costGold=gemConfig.getUpgradeCost(); + int stoneNum=gemConfig.getUpgradeNum(); + if (costNumneedNum){ + costNum=needNum; + remainNum=costNum-needNum; + } + addCount=costNum/stoneNum; + //本次合成消耗金币 + long needCostGoldNum=addCount*costGold[1]; + //计算累计消耗金币 + costGoldNum+=needCostGoldNum; + costItemMap.put(costGold[0],costGoldNum); + if (curItem!=null){ + long bagCost=curItem.getItemNum()-remainNum; + //刷新消耗命石数量 + costItemMap.put(gemConfig.getId(),bagCost); + } + long haveGoldNum=itemManager.getItem(costGold[0]).getItemNum(); + if (costGoldNum>haveGoldNum){ + LOGGER.error("命石快速合成金币不足"); + return false; + } + } + return addCount==1; + } + /** + * 获取升级到目标等级获取消耗指定命石需要数量 + * @param stoneType 命石类型 + * @param costStoneLv 消耗命石等级 + * @param targetStoneLv 目标等级 + * @return + */ + private long GetNeedLifeStoneNum(int stoneType, int costStoneLv,int targetStoneLv){ + long needNum=1; + TreeMapstoneLvMap= SGemConfig.gemConfigMapByType.get(stoneType); + for (Map.Entry gemConfigEntry : stoneLvMap.entrySet()) { + if (gemConfigEntry.getKey()>LifeGridMap=new HashMap<>(); + + public Map> getLifeGridMap() { + return LifeGridMap; + } + + ///设置命格数据 + public void setLifeGridMap(int gridId,int index,int itemId) { + if (!LifeGridMap.containsKey(gridId)) { + LifeGridMap.put(gridId, new HashMap<>()); + } + LifeGridMap.get(gridId).put(index,itemId); + updateString("LifeGridMap."+gridId, LifeGridMap.get(gridId)); + } + /** * 心愿可以选择的英雄列表 */ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 8ca3daba9..15bf8212a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -567,6 +567,7 @@ public class ItemUtil { case GlobalItemType.LikableCostItem: case GlobalItemType.MOUNT_FRAGMENTS_ITEM: case GlobalItemType.TRUMP_CHIP: + case GlobalItemType.LIFE_STONE: case GlobalItemType.TRANSFORMATION_CARD: itemType = GlobalItemType.ITEM; break; @@ -1408,15 +1409,6 @@ public class ItemUtil { return true; } - public static boolean itemCostLong(User user,Map costItems,int reason,int subReson) throws Exception { - boolean result = checkCostLong(user, costItems); - if (!result) { - return false; - } - useItemLong(user, costItems,reason,subReson); - return true; - } - public static boolean itemCost(User user,int[][] costItems,int times,int reason,int subReason) throws Exception { Map itemMap = new HashMap<>(); selectCost(costItems,itemMap,times); @@ -1428,6 +1420,15 @@ public class ItemUtil { return true; } + public static boolean itemCostLong(User user,Map costItems,int reason,int subReson) throws Exception { + boolean result = checkCostLong(user, costItems); + if (!result) { + return false; + } + useItemLong(user, costItems,reason,subReson); + return true; + } + public static boolean checkCost(User user, Map itemMap) throws Exception { HashMap longMap = new HashMap<>(); itemMap.forEach((k,v)->longMap.put(k,v.longValue())); diff --git a/tablemanager/src/main/java/config/SGemConfig.java b/tablemanager/src/main/java/config/SGemConfig.java new file mode 100644 index 000000000..06f16e9fb --- /dev/null +++ b/tablemanager/src/main/java/config/SGemConfig.java @@ -0,0 +1,75 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +@Table(name ="GemConfig") +public class SGemConfig implements BaseConfig { + + private int id; + + private int quality; + + private int type; + + private int level; + + private int[][] property; + + private int upgradeNum; + + private int[] upgradeCost; + + private int nextGem; + + public static TreeMap>gemConfigMapByType; + + @Override + public void init() throws Exception { + gemConfigMapByType=new TreeMap<>(); + Map config = STableManager.getConfig(SGemConfig.class); + for(SGemConfig sGemConfig : config.values()){ + if (!gemConfigMapByType.containsKey(sGemConfig.getType())){ + TreeMaplvMap=new TreeMap<>(); + gemConfigMapByType.put(sGemConfig.getType(),lvMap); + } + gemConfigMapByType.get(sGemConfig.getType()).put(sGemConfig.getLevel(),sGemConfig); + } + } + + public int getId() { + return id; + } + + public int getQuality() { + return quality; + } + + public int getType() { + return type; + } + + public int getLevel() { + return level; + } + + public int[][] getProperty() { + return property; + } + + public int getUpgradeNum() { + return upgradeNum; + } + + public int[] getUpgradeCost() { + return upgradeCost; + } + + public int getNextGem() { + return nextGem; + } +} \ No newline at end of file From 1455339b03b3af73e21982c491c1e78fde10a0af Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 8 Dec 2021 17:03:28 +0800 Subject: [PATCH 02/27] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=91=BD=E6=A0=BC?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=88=98=E6=96=97=E5=8A=9B=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) 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 ac92d7b7d..c6de1a55b 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 @@ -2624,7 +2624,7 @@ public class HeroLogic { //英雄皮肤加成 记得判断皮肤过期 int skin = hero.getSkin(); if (skin != 0) { - Map skinInfo = user.getHeroManager().getSkinInfo(); + Map skinInfo = heroManager.getSkinInfo(); SHeroSkin sHeroSkin = SHeroSkin.skinMapByType.get(skin); if (sHeroSkin != null && sHeroSkin.getMonomerProperty() != null && sHeroSkin.getMonomerProperty().length > 0) { if (skinInfo.containsKey(skin) && (skinInfo.get(skin) == -1 || skinInfo.get(skin) > TimeUtils.nowInt())) { @@ -2654,7 +2654,7 @@ public class HeroLogic { combinedAttribute(SPlayerHeadIcon.getHeadIconMap().get(entry.getKey()).getUnlockProperty(), heroAllAttribute); } //四象心法加成 - for (Map.Entry entry : user.getHeroManager().getSixiangDataMap().entrySet()) { + for (Map.Entry entry :heroManager.getSixiangDataMap().entrySet()) { if (scHero.getProfession() != entry.getKey()) { continue; } @@ -2662,22 +2662,22 @@ public class HeroLogic { Map propertyMap = entry.getValue().propertyMap; int[][] propArr = ItemUtil.mapToArray(propertyMap); combinedAttribute(propArr, heroAllAttribute); - if (user.getHeroManager().getSixiangPropUpMap().containsKey(entry.getKey())) { + if (heroManager.getSixiangPropUpMap().containsKey(entry.getKey())) { //进阶属性 - Map upStarPropertyMap = user.getHeroManager().getSixiangPropUpMap().get(entry.getKey()); + Map upStarPropertyMap = heroManager.getSixiangPropUpMap().get(entry.getKey()); int[][] upStarProp = ItemUtil.mapToArray(upStarPropertyMap); combinedAttribute(upStarProp, heroAllAttribute); } } ///四象心法共鸣属性加成 - if (user.getHeroManager().GetSiXiangGongMingLv() > 0) { - SFourQuadrantConfig fourConfig = SFourQuadrantConfig.configByStrtMap.get(user.getHeroManager().GetSiXiangGongMingLv()); + if (heroManager.GetSiXiangGongMingLv() > 0) { + SFourQuadrantConfig fourConfig = SFourQuadrantConfig.configByStrtMap.get(heroManager.GetSiXiangGongMingLv()); combinedAttribute(fourConfig.getPropResonance(), heroAllAttribute); } ///四象心法技能属性加成 Map skillPropertyMap = new HashMap<>(); - for (Map.Entry entry : user.getHeroManager().getSixiangDataMap().entrySet()) { + for (Map.Entry entry : heroManager.getSixiangDataMap().entrySet()) { if (entry.getValue().level > 0) { SFourQuadrantConfig fourConfig = SFourQuadrantConfig.configByStrtMap.get(entry.getValue().level); int[] skillAddProp = fourConfig.getSkill()[entry.getKey() - 1]; @@ -2688,25 +2688,36 @@ public class HeroLogic { combinedAttribute(skillProp, heroAllAttribute); //英雄好感度属性加成 - if (user.getHeroManager().getHeroLikablePropAddMap().containsKey(scHero.getId())) { - int[][] likableProp = ItemUtil.mapToArray(user.getHeroManager().getHeroLikablePropAddMap().get(scHero.getId())); + if (heroManager.getHeroLikablePropAddMap().containsKey(scHero.getId())) { + int[][] likableProp = ItemUtil.mapToArray(heroManager.getHeroLikablePropAddMap().get(scHero.getId())); combinedAttribute(likableProp, heroAllAttribute); } //英雄总好感度属性加成 - if (user.getHeroManager().getAllLikablePropAddMap().size() > 0) { - int[][] allLikableProp = ItemUtil.mapToArray(user.getHeroManager().getAllLikablePropAddMap()); + if (heroManager.getAllLikablePropAddMap().size() > 0) { + int[][] allLikableProp = ItemUtil.mapToArray(heroManager.getAllLikablePropAddMap()); combinedAttribute(allLikableProp, heroAllAttribute); } ///法宝之魂属性加成 - for (Map.Entry faBaoSoulEntry : user.getHeroManager().getFaBaoSoulMap().entrySet()) { + for (Map.Entry faBaoSoulEntry :heroManager.getFaBaoSoulMap().entrySet()) { STrump trumpConfig = STrump.sTrumpMap.get(faBaoSoulEntry.getKey()); STrumpLevelupPool lvUpProps = STrumpLevelupPool.levelPoolMap.get(trumpConfig.getLvupPool()).get(faBaoSoulEntry.getValue()); combinedAttribute(lvUpProps.getLvupProps(), heroAllAttribute); } + ///命格属性加成 + for (Map.Entry> lifeGridMapEntry : heroManager.getLifeGridMap().entrySet()) { + for (Map.Entry entry : lifeGridMapEntry.getValue().entrySet()) { + int lifeStoneId=entry.getValue(); + if (lifeStoneId>0){ + SGemConfig sGemConfig=STableManager.getConfig(SGemConfig.class).get(lifeStoneId); + combinedAttribute(sGemConfig.getProperty(), heroAllAttribute); + } + } + } + // 身外化身加成 - Map transformationList = user.getHeroManager().getTransformationList(); + Map transformationList = heroManager.getTransformationList(); Map changingCardMap = STableManager.getConfig(SChangingCard.class); int[][] arrayValue = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.PER_CHANGING_CART_PROP); for (TransformationInfo info : transformationList.values()) { @@ -2721,7 +2732,7 @@ public class HeroLogic { //装备总战力评分 int equipForce = 0; - Iterator> iterator = hero.getEquipByHongmengPositionMap(user.getHeroManager()).entrySet().iterator(); + Iterator> iterator = hero.getEquipByHongmengPositionMap(heroManager).entrySet().iterator(); // 套装list初始化 ArrayList suiteNumList = new ArrayList<>(); while (iterator.hasNext()) { From be54f4627d8ac77cb110679198a051c0709c85a0 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 8 Dec 2021 17:13:16 +0800 Subject: [PATCH 03/27] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/hero/LifeGridChangeRequestHandler.java | 3 +-- .../jieling/handler/hero/LifeStoneUpRequestHandler.java | 7 ------- .../handler/hero/PracticeSkillUpRequestHandler.java | 4 ---- .../ljsd/jieling/handler/hero/SixiangUpRequestHandler.java | 3 --- .../jieling/handler/hero/SixiangUpStarRequestHandler.java | 1 - 5 files changed, 1 insertion(+), 17 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java index dbc40c5da..f003e93fe 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java @@ -5,7 +5,6 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.dao.HeroManager; -import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; @@ -20,7 +19,7 @@ import java.util.HashMap; import java.util.Map; /** - * 命格穿戴/卸下 + * 命格命石穿戴/卸下 */ @Component public class LifeGridChangeRequestHandler extends BaseHandler { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index fca25fbf3..d7fb2d6b3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -4,22 +4,15 @@ import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; -import com.ljsd.jieling.logic.activity.event.Poster; -import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.ItemManager; -import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.tools.Utils; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; -import config.SFourQuadrantConfig; import config.SGemConfig; -import config.SItem; import manager.STableManager; -import org.springframework.data.mongodb.core.aggregation.ArrayOperators; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/PracticeSkillUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/PracticeSkillUpRequestHandler.java index b387c46f4..3ae8fae3f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/PracticeSkillUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/PracticeSkillUpRequestHandler.java @@ -5,22 +5,18 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.dao.HeroManager; -import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; -import config.SFourQuadrantConfig; import config.SPlayerSkill; import config.SXiuXian; import manager.STableManager; import org.springframework.stereotype.Component; -import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; -import java.util.*; @Component public class PracticeSkillUpRequestHandler extends BaseHandler { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java index b95c6e9b7..398851fbc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java @@ -9,13 +9,10 @@ import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SFourQuadrantConfig; -import config.SXiuXian; -import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java index 98337d42d..a142230be 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java @@ -11,7 +11,6 @@ import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.fight.eventhandler.IFightEventProcesor; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; From b8de90774578acab84826a3f266255cfdad6b881 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 9 Dec 2021 10:11:14 +0800 Subject: [PATCH 04/27] =?UTF-8?q?=E8=84=9A=E6=9C=AC=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/LifeStoneUpRequestHandler.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index d7fb2d6b3..cd058f650 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -116,12 +116,20 @@ public class LifeStoneUpRequestHandler extends BaseHandlergemConfigMap, MapcostItemMap, MapaddItemMap){ long addCount=0;//一个循环合成数量 long costGoldNum=0;//合成金币总消耗 - if(costItemMap.containsKey(14)){ - costGoldNum=costItemMap.get(14); + int costGoldId=gemConfigMap.get(1).getUpgradeCost()[0];//获取消耗材料id + if(costItemMap.containsKey(costGoldId)){ + costGoldNum=costItemMap.get(costGoldId); } for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { SGemConfig gemConfig=gemConfigEntry.getValue(); From 9060e005531fd4ddc65ce4bbf12d354c550b912b Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 10 Dec 2021 09:55:51 +0800 Subject: [PATCH 05/27] =?UTF-8?q?=E5=91=BD=E6=A0=BC=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hero/LifeStoneUpRequestHandler.java | 299 +++++++++--------- 1 file changed, 154 insertions(+), 145 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index cd058f650..90b80e19d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -35,84 +35,84 @@ public class LifeStoneUpRequestHandler extends BaseHandlercostItemMap=new HashMap<>(); - MapaddItemMap=new HashMap<>(); - int equipLifeStoneId=0; - ItemManager itemManager=user.getItemManager(); + int type = proto.getType(); + Map costItemMap = new HashMap<>(); + Map addItemMap = new HashMap<>(); + int equipLifeStoneId = 0; + ItemManager itemManager = user.getItemManager(); //操作类型 1:批量合成 2:一键合成 3:命石单个合成 4:快速合成 - if (type==1) { - int itemId=proto.getCurGemId(); - int itemNum=proto.getSelectNum(); - SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(itemId); - long upNum=itemNum/gemConfig.getUpgradeNum(); - long costGold=upNum*gemConfig.getUpgradeCost()[1]; - costItemMap.put(gemConfig.getUpgradeCost()[0],costGold); - costItemMap.put(itemId,(long)itemNum); - addItemMap.put(gemConfig.getNextGem(),upNum); - }else if(type==2){ + if (type == 1) { + int itemId = proto.getCurGemId(); + int itemNum = proto.getSelectNum(); + SGemConfig gemConfig = STableManager.getConfig(SGemConfig.class).get(itemId); + long upNum = itemNum / gemConfig.getUpgradeNum(); + long costGold = upNum * gemConfig.getUpgradeCost()[1]; + costItemMap.put(gemConfig.getUpgradeCost()[0], costGold); + costItemMap.put(itemId, (long) itemNum); + addItemMap.put(gemConfig.getNextGem(), upNum); + } else if (type == 2) { for (Map.Entry> integerTreeMapEntry : SGemConfig.gemConfigMapByType.entrySet()) { - boolean isCost=LifeStoneAllUp(itemManager,integerTreeMapEntry.getValue(),costItemMap,addItemMap); + boolean isCost = LifeStoneAllUp(itemManager, integerTreeMapEntry.getValue(), costItemMap, addItemMap); if (!isCost) { break; } } - }else if (type==3){ - int itemId=proto.getCurGemId(); - int itemNum=proto.getSelectNum(); - SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(itemId); - costItemMap.put(gemConfig.getUpgradeCost()[0],(long)gemConfig.getUpgradeCost()[1]); - if (proto.getGridId()>0){ - costItemMap.put(itemId,(long)itemNum); - equipLifeStoneId=gemConfig.getNextGem(); - }else{ - costItemMap.put(itemId,(long)itemNum+1); - addItemMap.put(gemConfig.getNextGem(),1L); + } else if (type == 3) { + int itemId = proto.getCurGemId(); + int itemNum = proto.getSelectNum(); + SGemConfig gemConfig = STableManager.getConfig(SGemConfig.class).get(itemId); + costItemMap.put(gemConfig.getUpgradeCost()[0], (long) gemConfig.getUpgradeCost()[1]); + if (proto.getGridId() > 0) { + costItemMap.put(itemId, (long) itemNum); + equipLifeStoneId = gemConfig.getNextGem(); + } else { + costItemMap.put(itemId, (long) itemNum + 1); + addItemMap.put(gemConfig.getNextGem(), 1L); } - }else if (type==4){ - SGemConfig gemConfig=STableManager.getConfig(SGemConfig.class).get(proto.getCurGemId()); - TreeMapgemConfigMap=SGemConfig.gemConfigMapByType.get(gemConfig.getType()); - if (LifeStoneQuickUp(itemManager,gemConfigMap,costItemMap,gemConfig.getLevel())) { - int[]curUpCost=gemConfig.getUpgradeCost(); - long allGoldCost= costItemMap.get(curUpCost[0])+curUpCost[1]; - costItemMap.put(curUpCost[0],allGoldCost); - if (proto.getGridId()>0){ - equipLifeStoneId=gemConfig.getNextGem(); - }else { - addItemMap.put(gemConfig.getNextGem(),1L); - costItemMap.put(proto.getCurGemId(),1L); + } else if (type == 4) { + SGemConfig gemConfig = STableManager.getConfig(SGemConfig.class).get(proto.getCurGemId()); + TreeMap gemConfigMap = SGemConfig.gemConfigMapByType.get(gemConfig.getType()); + if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel())) { + int[] curUpCost = gemConfig.getUpgradeCost(); + long allGoldCost = costItemMap.get(curUpCost[0]) + curUpCost[1]; + costItemMap.put(curUpCost[0], allGoldCost); + if (proto.getGridId() > 0) { + equipLifeStoneId = gemConfig.getNextGem(); + } else { + addItemMap.put(gemConfig.getNextGem(), 1L); + costItemMap.put(proto.getCurGemId(), 1L); } - }else{ + } else { LOGGER.error("命石合成材料不足"); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); } } - if (costItemMap.isEmpty()){ + if (costItemMap.isEmpty()) { LOGGER.error("命石合成异常,请联系后端"); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); } - boolean isTrue= ItemUtil.itemCostLong(user,costItemMap,BIReason.LIFE_STONE_UP,type); - if (!isTrue){ + boolean isTrue = ItemUtil.itemCostLong(user, costItemMap, BIReason.LIFE_STONE_UP, type); + if (!isTrue) { LOGGER.error("命石合成材料不足"); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); } - HeroInfoProto.LifeStoneUpResponse.Builder response=HeroInfoProto.LifeStoneUpResponse.newBuilder(); + HeroInfoProto.LifeStoneUpResponse.Builder response = HeroInfoProto.LifeStoneUpResponse.newBuilder(); ///大于0说明是在命格系统操作 - if (equipLifeStoneId>0){ - CommonProto.LifeGridInfo lifeGridInfo=CommonProto.LifeGridInfo.newBuilder() + if (equipLifeStoneId > 0) { + CommonProto.LifeGridInfo lifeGridInfo = CommonProto.LifeGridInfo.newBuilder() .setGridId(proto.getGridId()) .setGridIndex(proto.getGridIndex()) .setItemId(equipLifeStoneId) .build(); response.setLifeGridInfo(lifeGridInfo); - user.getHeroManager().setLifeGridMap(proto.getGridId(),proto.getGridIndex(),equipLifeStoneId); - }else{ - long[][]addItem=ItemUtil.mapToLongArray(addItemMap); - CommonProto.Drop.Builder drop=ItemUtil.drop(user,addItem,BIReason.LIFE_STONE_UP); + user.getHeroManager().setLifeGridMap(proto.getGridId(), proto.getGridIndex(), equipLifeStoneId); + } else { + long[][] addItem = ItemUtil.mapToLongArray(addItemMap); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, addItem, BIReason.LIFE_STONE_UP); response.setDrop(drop.build()); } - MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.LIFE_STONE_UP_RESPONSE_VALUE,response.build(),true); + MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.LIFE_STONE_UP_RESPONSE_VALUE, response.build(), true); } @@ -124,76 +124,84 @@ public class LifeStoneUpRequestHandler extends BaseHandlergemConfigMap, MapcostItemMap, MapaddItemMap){ - long addCount=0;//一个循环合成数量 - long costGoldNum=0;//合成金币总消耗 - int costGoldId=gemConfigMap.get(1).getUpgradeCost()[0];//获取消耗材料id - if(costItemMap.containsKey(costGoldId)){ - costGoldNum=costItemMap.get(costGoldId); + private boolean LifeStoneAllUp(ItemManager itemManager, TreeMap gemConfigMap, Map costItemMap, Map addItemMap) { + long addCount = 0;//一个循环合成数量 + long costGoldNum = 0;//合成金币总消耗 + int costGoldId = gemConfigMap.get(1).getUpgradeCost()[0];//获取消耗材料id + if (costItemMap.containsKey(costGoldId)) { + costGoldNum = costItemMap.get(costGoldId); } for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { - SGemConfig gemConfig=gemConfigEntry.getValue(); + SGemConfig gemConfig = gemConfigEntry.getValue(); ///升到满级 - if (gemConfig.getNextGem()==0){ - if (addCount>0){ - addItemMap.put(gemConfig.getId(),addCount); + if (gemConfig.getNextGem() == 0) { + if (addCount > 0) { + addItemMap.put(gemConfig.getId(), addCount); } continue; } - Item curItem= itemManager.getItem(gemConfig.getId()); - long costNum=addCount; - if (curItem!=null){ - costNum=curItem.getItemNum()+addCount; + Item curItem = itemManager.getItem(gemConfig.getId()); + long costNum = addCount; + if (curItem != null) { + costNum = curItem.getItemNum() + addCount; } ///命石不足 - if (costNum< gemConfig.getUpgradeNum()){ - if (addCount>0){ - addItemMap.put(gemConfig.getId(),addCount); - addCount=0; + if (costNum < gemConfig.getUpgradeNum()) { + if (addCount > 0) { + addItemMap.put(gemConfig.getId(), addCount); + addCount = 0; } continue; } - int stoneNum=gemConfig.getUpgradeNum(); - int[]costGold=gemConfig.getUpgradeCost(); - long remainNum=costNum%stoneNum; - if (remainNum!=0){ - costNum-=remainNum; + int stoneNum = gemConfig.getUpgradeNum(); + int[] costGold = gemConfig.getUpgradeCost(); + long remainNum = costNum % stoneNum; + if (remainNum != 0) { + costNum -= remainNum; } - if (costNum>0){ - //本次合成消耗 - long needCostGoldNum=costNum/stoneNum*costGold[1]; - long haveGoldNum=0; - if (itemManager.getItem(costGold[0])!=null){ - haveGoldNum=itemManager.getItem(costGold[0]).getItemNum(); - } - ///金币不足情况中断合成 - if (needCostGoldNum+costGoldNum>haveGoldNum){ - long upNum= (haveGoldNum-costGoldNum)/costGold[1]; - costItemMap.put(gemConfig.getId(),upNum*stoneNum); - addItemMap.put(gemConfig.getNextGem(),upNum); - costGoldNum+=upNum*costGold[1]; - //刷新消耗金币数量 - costItemMap.put(costGold[0],costGoldNum); - return false; - } - //计算累计消耗金币 - costGoldNum+=needCostGoldNum; - if (curItem!=null){ - long bagCost=curItem.getItemNum()-remainNum; - //刷新消耗命石数量 - costItemMap.put(gemConfig.getId(),bagCost); - long addNum=remainNum-curItem.getItemNum(); - if (addNum>0){ - addItemMap.put(gemConfig.getId(),addNum); - } - } - //保存累计消耗金币数量 - costItemMap.put(costGold[0],costGoldNum); + if (costNum <= 0) { + continue; } - if (curItem==null){ - addItemMap.put(gemConfig.getId(),remainNum); + //本次合成消耗 + long needCostGoldNum = costNum / stoneNum * costGold[1]; + long haveGoldNum = 0; + if (itemManager.getItem(costGold[0]) != null) { + haveGoldNum = itemManager.getItem(costGold[0]).getItemNum(); } - addCount=costNum/stoneNum; + ///金币不足情况中断合成 + if (needCostGoldNum + costGoldNum > haveGoldNum) { + long upNum = (haveGoldNum - costGoldNum) / costGold[1]; + long endCostNum = upNum * stoneNum; + long haveCostNum = endCostNum - addCount; + if (haveCostNum > 0) { + costItemMap.put(gemConfig.getId(), haveCostNum); + } else { + addItemMap.put(gemConfig.getId(), -haveCostNum); + } + addItemMap.put(gemConfig.getNextGem(), upNum); + costGoldNum += upNum * costGold[1]; + //刷新消耗金币数量 + costItemMap.put(costGold[0], costGoldNum); + return false; + } + //计算累计消耗金币 + costGoldNum += needCostGoldNum; + if (curItem != null) { + long bagCost = curItem.getItemNum() - remainNum; + //刷新消耗命石数量 + costItemMap.put(gemConfig.getId(), bagCost); + long addNum = remainNum - curItem.getItemNum(); + if (addNum > 0) { + addItemMap.put(gemConfig.getId(), addNum); + } + } + //保存累计消耗金币数量 + costItemMap.put(costGold[0], costGoldNum); + + if (curItem == null) { + addItemMap.put(gemConfig.getId(), remainNum); + } + addCount = costNum / stoneNum; } return true; } @@ -206,73 +214,74 @@ public class LifeStoneUpRequestHandler extends BaseHandlergemConfigMap, MapcostItemMap,int selectGemLv){ - long addCount=0;//一个循环合成数量 - long costGoldNum=0;//合成金币总消耗 + private boolean LifeStoneQuickUp(ItemManager itemManager, TreeMap gemConfigMap, Map costItemMap, int selectGemLv) { + long addCount = 0;//一个循环合成数量 + long costGoldNum = 0;//合成金币总消耗 for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { - SGemConfig gemConfig=gemConfigEntry.getValue(); + SGemConfig gemConfig = gemConfigEntry.getValue(); ///如果命石等级大于当前选中的命石等级跳过 - if (gemConfig.getLevel()>=selectGemLv){ - break; + if (gemConfig.getLevel() >= selectGemLv) { + break; } - Item curItem= itemManager.getItem(gemConfig.getId()); - long costNum=addCount; - if (curItem!=null){ - costNum=curItem.getItemNum()+addCount; + Item curItem = itemManager.getItem(gemConfig.getId()); + long costNum = addCount; + if (curItem != null) { + costNum = curItem.getItemNum() + addCount; } - int[]costGold=gemConfig.getUpgradeCost(); - int stoneNum=gemConfig.getUpgradeNum(); - if (costNumneedNum){ - costNum=needNum; - remainNum=costNum-needNum; + long remainNum = costNum % stoneNum; + if (costNum > needNum) { + remainNum = costNum - needNum; + costNum = needNum; } - addCount=costNum/stoneNum; + addCount = costNum / stoneNum; //本次合成消耗金币 - long needCostGoldNum=addCount*costGold[1]; + long needCostGoldNum = addCount * costGold[1]; //计算累计消耗金币 - costGoldNum+=needCostGoldNum; - costItemMap.put(costGold[0],costGoldNum); - if (curItem!=null){ - long bagCost=curItem.getItemNum()-remainNum; + costGoldNum += needCostGoldNum; + costItemMap.put(costGold[0], costGoldNum); + if (curItem != null) { + long bagCost = curItem.getItemNum() - remainNum; //刷新消耗命石数量 - costItemMap.put(gemConfig.getId(),bagCost); + costItemMap.put(gemConfig.getId(), bagCost); } - long haveGoldNum=itemManager.getItem(costGold[0]).getItemNum(); - if (costGoldNum>haveGoldNum){ + long haveGoldNum = itemManager.getItem(costGold[0]).getItemNum(); + if (costGoldNum > haveGoldNum) { LOGGER.error("命石快速合成金币不足"); return false; } } - return addCount==1; + return addCount == 1; } + /** * 获取升级到目标等级获取消耗指定命石需要数量 - * @param stoneType 命石类型 - * @param costStoneLv 消耗命石等级 + * @param stoneType 命石类型 + * @param costStoneLv 消耗命石等级 * @param targetStoneLv 目标等级 * @return */ - private long GetNeedLifeStoneNum(int stoneType, int costStoneLv,int targetStoneLv){ - long needNum=1; - TreeMapstoneLvMap= SGemConfig.gemConfigMapByType.get(stoneType); + private long GetNeedLifeStoneNum(int stoneType, int costStoneLv, int targetStoneLv) { + long needNum = 1; + TreeMap stoneLvMap = SGemConfig.gemConfigMapByType.get(stoneType); for (Map.Entry gemConfigEntry : stoneLvMap.entrySet()) { - if (gemConfigEntry.getKey() Date: Fri, 10 Dec 2021 11:03:32 +0800 Subject: [PATCH 06/27] =?UTF-8?q?=E5=91=BD=E6=A0=BC=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/LifeGridChangeRequestHandler.java | 3 +++ .../handler/hero/LifeStoneUpRequestHandler.java | 12 +++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java index f003e93fe..8f83ccd77 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java @@ -4,6 +4,8 @@ import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.HeroManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -75,6 +77,7 @@ public class LifeGridChangeRequestHandler extends BaseHandler0){ + itemNum=itemNum-(itemNum%gemConfig.getUpgradeNum()); + } long upNum = itemNum / gemConfig.getUpgradeNum(); long costGold = upNum * gemConfig.getUpgradeCost()[1]; costItemMap.put(gemConfig.getUpgradeCost()[0], costGold); @@ -62,7 +67,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler 0) { + if (proto.getGridIndex() > 0) { costItemMap.put(itemId, (long) itemNum); equipLifeStoneId = gemConfig.getNextGem(); } else { @@ -77,14 +82,14 @@ public class LifeStoneUpRequestHandler extends BaseHandler 0) { + if (proto.getGridIndex() > 0) { equipLifeStoneId = gemConfig.getNextGem(); } else { addItemMap.put(gemConfig.getNextGem(), 1L); costItemMap.put(proto.getCurGemId(), 1L); } } else { - LOGGER.error("命石合成材料不足"); + LOGGER.error("快速合成:命石合成材料不足"); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); } } @@ -112,6 +117,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler Date: Fri, 10 Dec 2021 14:03:45 +0800 Subject: [PATCH 07/27] =?UTF-8?q?=E5=91=BD=E6=A0=BC=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/core/FunctionIdEnum.java | 1 + .../handler/hero/HeroGodSoulBindRequestHandler.java | 9 +++++++++ .../handler/hero/HeroUpLikableRequestHandler.java | 9 ++++++++- .../handler/hero/LifeGridChangeRequestHandler.java | 9 +++++++++ .../jieling/handler/hero/SixiangUpRequestHandler.java | 9 +++++++++ 5 files changed, 36 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java index 1466073f9..96118230f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java @@ -74,6 +74,7 @@ public enum FunctionIdEnum { Likable(114,null),//好感度 GodSoul(116,null),//神魂 FaBaoSoul(119,null),//法宝聚灵 + LifeGrid(122,null),//命格 WeekGood(9091,null), ; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java index d76e8b8af..a57a9f9cf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -1,4 +1,6 @@ package com.ljsd.jieling.handler.hero; +import com.ljsd.jieling.core.FunctionIdEnum; +import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.handler.BaseHandler; @@ -12,6 +14,8 @@ import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.MessageUtil; import config.SCHero; +import config.SGlobalSystemConfig; +import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -33,6 +37,11 @@ public class HeroGodSoulBindRequestHandler extends BaseHandlerbindHeroList= proto.getBindHerosList(); int uid = session.getUid(); User user = UserManager.getUser(uid); + SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.GodSoul.getFunctionType()); + if (!HandlerLogicThread.checkOpen(user, sGlobalSystemConfig)) { + LOGGER.error("等级不足功能尚未开启"); + throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); + } HeroManager heroManager= user.getHeroManager(); Hero upHero=heroManager.getHero(heroId); SCHero heroConfig=SCHero.getsCHero().get(upHero.getTemplateId()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java index e96c1dcee..2aa5ba87c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java @@ -1,7 +1,9 @@ package com.ljsd.jieling.handler.hero; import com.ljsd.common.mogodb.util.GlobalData; +import com.ljsd.jieling.core.FunctionIdEnum; import com.ljsd.jieling.core.GlobalsDef; +import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; @@ -14,6 +16,7 @@ import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.*; +import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -40,7 +43,11 @@ public class HeroUpLikableRequestHandler extends BaseHandler SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)){ LOGGER.error("好感度赠送次数超出每日限制"); throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java index 8f83ccd77..e7eebb931 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeGridChangeRequestHandler.java @@ -1,5 +1,7 @@ package com.ljsd.jieling.handler.hero; +import com.ljsd.jieling.core.FunctionIdEnum; +import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; @@ -12,6 +14,8 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; +import config.SGlobalSystemConfig; +import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; @@ -33,6 +37,11 @@ public class LifeGridChangeRequestHandler extends BaseHandler Date: Mon, 13 Dec 2021 16:23:32 +0800 Subject: [PATCH 08/27] =?UTF-8?q?=E5=91=BD=E7=9F=B3=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E5=90=88=E6=88=90=E8=84=9A=E6=9C=AC=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/LifeStoneUpRequestHandler.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index edae8a056..bb84c07b7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -225,12 +225,22 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigEntry : gemConfigMap.entrySet()) { SGemConfig gemConfig = gemConfigEntry.getValue(); + Item curItem = itemManager.getItem(gemConfig.getId()); + if (gemConfig.getLevel()==selectGemLv){ + if (addCount>0||curItem==null){ + break; + }else{ + costItemMap.put(gemConfig.getId(),1L); + costItemMap.put(gemConfig.getUpgradeCost()[0], (long) gemConfig.getUpgradeCost()[1]); + addCount=1; + break; + } + } ///如果命石等级大于当前选中的命石等级跳过 - if (gemConfig.getLevel() >= selectGemLv) { + if (gemConfig.getLevel() > selectGemLv) { break; } - Item curItem = itemManager.getItem(gemConfig.getId()); long costNum = addCount; if (curItem != null) { costNum = curItem.getItemNum() + addCount; From 1ee2a60fc064ca95549d7c509e6e5fdfb0dd95ba Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 13 Dec 2021 18:41:46 +0800 Subject: [PATCH 09/27] =?UTF-8?q?=E5=91=BD=E7=9F=B3=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E5=90=88=E6=88=90=E8=84=9A=E6=9C=AC=E4=BF=AE=E6=94=B9=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hero/LifeStoneUpRequestHandler.java | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index bb84c07b7..f08aa7dab 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -78,15 +78,23 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigMap = SGemConfig.gemConfigMapByType.get(gemConfig.getType()); - if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel())) { + boolean isBag=proto.getGridIndex()<=0; + if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel(),isBag)) { int[] curUpCost = gemConfig.getUpgradeCost(); - long allGoldCost = costItemMap.get(curUpCost[0]) + curUpCost[1]; + long allGoldCost = curUpCost[1]; + if (costItemMap.containsKey(curUpCost[0])){ + allGoldCost+=costItemMap.get(curUpCost[0]); + } costItemMap.put(curUpCost[0], allGoldCost); if (proto.getGridIndex() > 0) { equipLifeStoneId = gemConfig.getNextGem(); } else { addItemMap.put(gemConfig.getNextGem(), 1L); - costItemMap.put(proto.getCurGemId(), 1L); + if (costItemMap.containsKey(proto.getCurGemId())){ + long costNum=costItemMap.get(proto.getCurGemId())+1; + costItemMap.put(proto.getCurGemId(),costNum); + } + } } else { LOGGER.error("快速合成:命石合成材料不足"); @@ -220,7 +228,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigMap, Map costItemMap, int selectGemLv) { + private boolean LifeStoneQuickUp(ItemManager itemManager, TreeMap gemConfigMap, Map costItemMap, int selectGemLv,boolean isBag) { long addCount = 0;//一个循环合成数量 long costGoldNum = 0;//合成金币总消耗 for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { @@ -229,12 +237,20 @@ public class LifeStoneUpRequestHandler extends BaseHandler0||curItem==null){ break; - }else{ - costItemMap.put(gemConfig.getId(),1L); - costItemMap.put(gemConfig.getUpgradeCost()[0], (long) gemConfig.getUpgradeCost()[1]); - addCount=1; - break; } + ///是否是在背包操作 + if (isBag){ + if (curItem.getItemNum() selectGemLv) { From 2fcf50d33e89eb1d75163cb4bc76602c82d20a70 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 14 Dec 2021 14:55:59 +0800 Subject: [PATCH 10/27] =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=81=93=E5=85=B7GM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/globals/BIReason.java | 2 ++ .../java/com/ljsd/jieling/globals/GlobalGm.java | 1 + .../jieling/handler/GameGM/GMRequestHandler.java | 15 ++++++++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index 4835b62da..43df98515 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -375,4 +375,6 @@ public interface BIReason { int BUY_GOOD_ITEM_COST =1225;//妖晶购买道具消耗 int BUY_GOOD_ITEM_GET =1226;//妖晶购买道具获得 int LIFE_STONE_UP = 1227;//命石合成 + + int GM_COST = 1228;//gm删除道具 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java index 85b44b7c5..8c8d62758 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java @@ -29,5 +29,6 @@ public interface GlobalGm { // int POKEMAN_MAX = 22;//一键获得所有满级异妖 int HARD_STAGE =25;//一键通关山河社稷图特定关卡之前的所有关卡 int FOUR_SPIRITS =26;//一键通关山河社稷图特定关卡之前的所有关卡 + int CLEAR_ITEM=27;//批量清除道具 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index a81fb989f..ed9af95a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -102,7 +102,7 @@ public class GMRequestHandler extends BaseHandler{ // if(!GameApplication.serverProperties.isDebug()){ // throw new ErrorCodeException("In a formal setting"); // } - if (!command.contains("#") || command.split("#").length < 3) { + if (!command.contains("#") || command.split("#").length < 2) { LOGGER.error("wrong command :" + command); return; } @@ -120,7 +120,7 @@ public class GMRequestHandler extends BaseHandler{ if (gmCommandType == GlobalGm.RESET_USER_NAME){ prarm3 = commandArray[2]; }else{ - if(gmCommandType!=GlobalGm.TIME_INFO){ + if(gmCommandType!=GlobalGm.TIME_INFO&&gmCommandType!=GlobalGm.CLEAR_ITEM){ prarm2 = Integer.parseInt(commandArray[2]); } } @@ -471,11 +471,20 @@ public class GMRequestHandler extends BaseHandler{ prarm2 = Integer.parseInt(commandArray[2]); cUser.getPlayerInfoManager().updateFourChallengeByIndex(prarm1, prarm2); break; + case GlobalGm.CLEAR_ITEM: + MapcostMap=new HashMap<>(); + for (int i = 1; i < commandArray.length; i++) { + Item item=cUser.getItemManager().getItem(Integer.parseInt(commandArray[i])); + if (item!=null){ + costMap.put(item.getItemId(),item.getItemNum()); + } + } + ItemUtil.itemCostLong(cUser, costMap, BIReason.GM_COST, GlobalGm.CLEAR_ITEM); + break; default: break; } try { - MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, gmBuilder.build(), true); LOGGER.info("back to client!"); } catch (Exception e) { From 23b2c9285e16d222664ad3178bca88dec70acb96 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 14 Dec 2021 16:06:41 +0800 Subject: [PATCH 11/27] =?UTF-8?q?=E5=91=BD=E7=9F=B3=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E5=90=88=E6=88=90bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/hero/LifeStoneUpRequestHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index f08aa7dab..d86b7eda9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -145,6 +145,10 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigEntry : gemConfigMap.entrySet()) { SGemConfig gemConfig = gemConfigEntry.getValue(); ///升到满级 @@ -196,7 +200,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler Date: Thu, 23 Dec 2021 15:14:43 +0800 Subject: [PATCH 12/27] =?UTF-8?q?=E5=91=BD=E7=9F=B3=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E5=90=88=E6=88=90bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/hero/LifeStoneUpRequestHandler.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index d86b7eda9..ab9b86727 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -78,7 +78,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigMap = SGemConfig.gemConfigMapByType.get(gemConfig.getType()); - boolean isBag=proto.getGridIndex()<=0; + boolean isBag=proto.getGridIndex()<=0;//此字段判断是否在背包里进行快速合成 if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel(),isBag)) { int[] curUpCost = gemConfig.getUpgradeCost(); long allGoldCost = curUpCost[1]; @@ -86,15 +86,17 @@ public class LifeStoneUpRequestHandler extends BaseHandler 0) { - equipLifeStoneId = gemConfig.getNextGem(); - } else { + if (isBag) { addItemMap.put(gemConfig.getNextGem(), 1L); if (costItemMap.containsKey(proto.getCurGemId())){ long costNum=costItemMap.get(proto.getCurGemId())+1; costItemMap.put(proto.getCurGemId(),costNum); + }else{ + costItemMap.put(proto.getCurGemId(),1L); } + } else { + equipLifeStoneId = gemConfig.getNextGem(); } } else { LOGGER.error("快速合成:命石合成材料不足"); From 540e61d51238225935b179882b69ea8fdccd8e85 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 23 Dec 2021 16:05:15 +0800 Subject: [PATCH 13/27] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/AbstractActivity.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index a02d4f8f4..3bcaba675 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -356,6 +356,22 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @return */ public Set getCloseGoods(User user){ + //超值返利活动临时处理 下次大更新之前可以直接删掉 + if (id==90||id==9000){ + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + return set; + } + Map map = mission.getActivityMissionMap(); + for (Map.Entry progressInfoEntry : map.entrySet()) { + SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); + if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED||(progressInfoEntry.getValue().getState()==ActivityType.WILL_TAKE&&mission.getV()+1!=rewardConfig.getSort())){ + set.add(rewardConfig.getValues()[0][0]); + } + } + return set; + } return new HashSet<>(1); } From 93596965ddf841858693c96650e59d96d497acb1 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 24 Dec 2021 09:49:28 +0800 Subject: [PATCH 14/27] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98=E9=87=8D=E5=A4=8D=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E7=A4=BC=E5=8C=85=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/NewRechargeSumDayActivity.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java index 3cdbd6909..5df69f583 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java @@ -18,7 +18,9 @@ import config.SActivityRewardConfig; import config.SRechargeCommodityNewConfig; import manager.STableManager; +import java.util.HashSet; import java.util.Map; +import java.util.Set; class NewRechargeSumDayActivity extends AbstractActivity { @@ -81,4 +83,20 @@ class NewRechargeSumDayActivity extends AbstractActivity { } + @Override + public Set getCloseGoods(User user) { + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null) { + return set; + } + Map map = mission.getActivityMissionMap(); + for (Map.Entry progressInfoEntry : map.entrySet()) { + SActivityRewardConfig rewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); + if (progressInfoEntry.getValue().getState() == ActivityType.HAD_TAKED || (progressInfoEntry.getValue().getState() == ActivityType.WILL_TAKE && mission.getV() + 1 != rewardConfig.getSort())) { + set.add(rewardConfig.getValues()[0][0]); + } + } + return set; + } } From 0602b9f003dd72c9366e15f34d8fe4b944ae07f5 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Fri, 24 Dec 2021 13:55:03 +0800 Subject: [PATCH 15/27] =?UTF-8?q?=E9=80=90=E8=83=9C=E5=95=86=E5=BA=97?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/core/function/ChampionFunction.java | 2 +- .../src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/ChampionFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/ChampionFunction.java index ce0beb289..1a33cf30b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/ChampionFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/ChampionFunction.java @@ -15,7 +15,7 @@ public class ChampionFunction implements FunctionManager { return; } ChampionshipLogic.start(); - Poster.getPoster().dispatchEvent(new FunctionRefreshEvent(FunctionIdEnum.Arena.getFunctionType(),-1)); +// Poster.getPoster().dispatchEvent(new FunctionRefreshEvent(FunctionIdEnum.TopBattle.getFunctionType(),-1)); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index c8b5fa9b7..853d9a8e8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -233,6 +233,7 @@ public class StoreLogic implements IEventHandler { StoreInfo storeInfo = it.next().getValue(); SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeInfo.getId()); if(null == sStoreTypeConfig){ + removeStoreIds.add(storeInfo.getId()); continue; } if (sStoreTypeConfig.getStoreOpenRule() ==2 || sStoreTypeConfig.getStoreOpenRule() ==5 || sStoreTypeConfig.getStoreOpenRule() ==6 || sStoreTypeConfig.getStoreOpenRule() ==7){ From 4132cd1f80760e0462fc1c5a6acaf67ce7c36c5d Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Fri, 24 Dec 2021 17:52:09 +0800 Subject: [PATCH 16/27] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java | 1 - 1 file changed, 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java index 873b842d2..698236739 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java @@ -466,7 +466,6 @@ public class FightUtil { user.getTeamPosManager().setCurTeamPosId(teamId); List heroFightInfos = new ArrayList<>(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); - int i = 0; for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); if (hero == null) { From b88a69ef3a773344a34935c0a3e89b122f3fbc03 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 10:25:35 +0800 Subject: [PATCH 17/27] =?UTF-8?q?=E5=87=8F=E5=B0=91=E7=8E=A9=E5=AE=B6?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=9C=A8=E5=86=85=E5=AD=98=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/UserManager.java | 2 +- serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index c570544ab..55d04f2f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -45,7 +45,7 @@ public class UserManager { private static Map userMapPutTime = new ConcurrentHashMap<>(); //离线读入 private static AtomicInteger login_f_num = new AtomicInteger(0);//登陆计数 private static final int LOGIN_F_LIMIT = 100;//报警界限 - private static final long LIVE_TIME = 12 * 60 * 60 * 1000L; + private static final long LIVE_TIME = 3 * 60 * 60 * 1000L; public static void addUser(User user) { userMap.put(user.getId(), user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java b/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java index f42068d53..f18663fc1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/TaskKit.java @@ -180,6 +180,9 @@ public abstract class TaskKit { // 最佳的线程数 = CPU可用核心数 / (1 - 阻塞系数) // TODO 阻塞系数是不是需要有个setter方法能让使用者自由设置呢? num = (int)(cores / (1 - 0.9)); + if (num > 8) { + num = 8; + } } catch (Throwable e) { // 异常发生时姑且返回10个任务线程池 From ecd017281d6209ca9c3265b897c94408cc14c801 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 14:25:21 +0800 Subject: [PATCH 18/27] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/ItemUtil.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index c09039cd0..a7b099df7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -1417,17 +1417,16 @@ public class ItemUtil { // 鸿蒙阵推送 HeroLogic.getInstance().addOrUpdateHongmeng(OnlineUserManager.getSessionByUid(user.getId())); heroList.add(CBean2Proto.getHero(hero)); - if (reason == BIReason.HERO_RETURN) { - return; - } - SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); - if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 - String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNameColor(), playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,0,1}); - if (!message.isEmpty()){ - ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(hero.getTemplateId()),0,0,0,0,0); + if (reason != BIReason.HERO_RETURN) { + SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); + if (scHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_content_parm)) { //策划资质改成星级 + String message = SErrorCodeEerverConfig.getI18NMessageNeedConvert("lamp_lottery_content", new Object[]{playerInfoManager.getNameColor(), playerInfoManager.getNickName(), scHero.getStar(), scHero.getReadingName()},new int[]{0,0,0,1}); + if (!message.isEmpty()){ + ChatLogic.getInstance().sendSysChatMessage(message,Global.LUCKY_LUCK,String.valueOf(hero.getTemplateId()),0,0,0,0,0); + } } + user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,heroStar[0],heroStar[1]); } - user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,heroStar[0],heroStar[1]); // KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,reason,GlobalsDef.addReason,cardId,1,heroStar[1]); ReportUtil.onReportEvent(user,ReportEventEnum.GET_HERO.getType(),String.valueOf(cardId),String.valueOf(hero.getStar()),String.valueOf(reason)); } From 4ee0f7b5f29cbd387598380981ef5a1512d0fbac Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 15:57:09 +0800 Subject: [PATCH 19/27] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) 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 0091ee1eb..32c796425 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 @@ -4069,10 +4069,13 @@ public class HeroLogic { } // 卸下魂印 Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - for (Integer value : soulEquipByPositionMap.values()) { - dropMap.put(value, 1); + Map hunying = null; + if (!soulEquipByPositionMap.isEmpty()) { + hunying = new HashMap<>(soulEquipByPositionMap.size()); + } + for (Integer value : soulEquipByPositionMap.values()) { + hunying.put(value, 1); } - for (int[] ints : returnPercent) { for (int i = 1; i < ints.length; i++) { SHeroRankupGroup sHeroRankupGroup=STableManager.getConfig(SHeroRankupGroup.class).get(ints[i]); @@ -4094,19 +4097,7 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - if (!soulEquipByPositionMap.isEmpty()) { - List itemlistList = drop.getItemlistList(); - Set needRemove = new HashSet<>(soulEquipByPositionMap.size()); - for (int i = 0; i < itemlistList.size(); i++) { - CommonProto.Item item = itemlistList.get(i); - if (soulEquipByPositionMap.values().contains(item.getItemId())) { - needRemove.add(i); - } - } - for (Integer index : needRemove) { - drop.removeItemlist(index); - } - } + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); From 5f04e68e3dc8d91fe416690355d41fac783d81c1 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 16:09:56 +0800 Subject: [PATCH 20/27] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 a0020d50f..e31517f1a 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 @@ -4108,7 +4108,9 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + if (hunying != null) { + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + } hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); From ac30e70c2edcd841c4719e0fe7b2919aebecd6cc Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 16:11:51 +0800 Subject: [PATCH 21/27] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 32c796425..eda241655 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 @@ -4097,7 +4097,9 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + if (hunying != null) { + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); + } hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); From 6faac1d03429a35f2d231c8792b0a4b0a4d820c7 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 23 Dec 2021 16:05:15 +0800 Subject: [PATCH 22/27] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/AbstractActivity.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index a02d4f8f4..3bcaba675 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -356,6 +356,22 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @return */ public Set getCloseGoods(User user){ + //超值返利活动临时处理 下次大更新之前可以直接删掉 + if (id==90||id==9000){ + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + return set; + } + Map map = mission.getActivityMissionMap(); + for (Map.Entry progressInfoEntry : map.entrySet()) { + SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); + if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED||(progressInfoEntry.getValue().getState()==ActivityType.WILL_TAKE&&mission.getV()+1!=rewardConfig.getSort())){ + set.add(rewardConfig.getValues()[0][0]); + } + } + return set; + } return new HashSet<>(1); } From 7ebd8878deaa6c5fc2e7292efdbbb916e71cf177 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 16:55:11 +0800 Subject: [PATCH 23/27] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=8D=B8=E4=B8=8B=E9=AD=82=E5=8D=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/hero/HeroLogic.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 eda241655..92126299e 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 @@ -4072,9 +4072,14 @@ public class HeroLogic { Map hunying = null; if (!soulEquipByPositionMap.isEmpty()) { hunying = new HashMap<>(soulEquipByPositionMap.size()); - } - for (Integer value : soulEquipByPositionMap.values()) { - hunying.put(value, 1); + Set unload = new HashSet<>(soulEquipByPositionMap.size()); + for (Map.Entry entry : soulEquipByPositionMap.entrySet()) { + hunying.put(entry.getValue(), 1); + unload.add(entry.getKey()); + } + for (Integer integer : unload) { + hero.removeSoulEquip(integer); + } } for (int[] ints : returnPercent) { for (int i = 1; i < ints.length; i++) { From 313053ed5d7c796be721aaf818de226dc5a749aa Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 17:17:56 +0800 Subject: [PATCH 24/27] =?UTF-8?q?=E7=A5=9E=E5=B0=86=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E7=AA=81=E7=A0=B4=E7=AD=89=E7=BA=A7=E5=BD=92=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 2 ++ 1 file changed, 2 insertions(+) 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 92126299e..7daed7c71 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 @@ -4108,6 +4108,8 @@ public class HeroLogic { hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); + hero.setBreakId(0); + hero.setStarBreakId(0); //鸿蒙阵 addOrUpdateHongmeng(session); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); From 89f4eae73eb2e05c50dbd180b95b602cc245cdbb Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 27 Dec 2021 17:18:31 +0800 Subject: [PATCH 25/27] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 1 - 1 file changed, 1 deletion(-) 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 7daed7c71..6d8bfd694 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 @@ -4108,7 +4108,6 @@ public class HeroLogic { hero.setLevel(1); hero.setBreakId(0); hero.setStar(5); - hero.setBreakId(0); hero.setStarBreakId(0); //鸿蒙阵 addOrUpdateHongmeng(session); From 97bd55af892e2db5970c5433fb3d12bf184f7556 Mon Sep 17 00:00:00 2001 From: "DESKTOP-98AVA47\\Administrator" Date: Tue, 28 Dec 2021 15:21:14 +0800 Subject: [PATCH 26/27] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=88=98=E6=96=97?= =?UTF-8?q?=EF=BC=8C=E8=BA=AB=E5=A4=96=E5=8C=96=E8=BA=AB=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/src/main/java/com/ljsd/CoreService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/CoreService.java b/serverlogic/src/main/java/com/ljsd/CoreService.java index fba86773c..975012085 100644 --- a/serverlogic/src/main/java/com/ljsd/CoreService.java +++ b/serverlogic/src/main/java/com/ljsd/CoreService.java @@ -203,6 +203,12 @@ public class CoreService implements RPCRequestIFace.Iface { rpcArenaManager.setPracticeSkillMap(user.getHeroManager().getPracticeSkillMap()); rpcArenaManager.setFaBaoGongMingSkillMap(user.getHeroManager().getFaBaoGongMingSkillMap()); rpcArenaManager.setMaxHistoryForce(user.getPlayerInfoManager().getMaxForce()); + // 身外化身数据 + List list = user.getHeroManager().getTransformationList().values().stream() + .filter(v -> v.getStatus() == 1) + .mapToInt(TransformationInfo::getCardId) + .boxed().collect(Collectors.toList()); + rpcArenaManager.setTfInfoList(list); LOGGER.info("跨服,获取玩家英雄信息耗时:{}ms",TimeUtils.now()-start); return rpcArenaManager; }catch (Exception e){ From bf85dfec3c344a69f914d079c0b2674e82f1d518 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 28 Dec 2021 15:24:37 +0800 Subject: [PATCH 27/27] =?UTF-8?q?=E8=B6=85=E5=80=BC=E8=BF=94=E5=88=A9?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AE=B9=E9=94=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/AbstractActivity.java | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index 3bcaba675..a02d4f8f4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -356,22 +356,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @return */ public Set getCloseGoods(User user){ - //超值返利活动临时处理 下次大更新之前可以直接删掉 - if (id==90||id==9000){ - HashSet set = new HashSet<>(); - ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); - if (mission == null){ - return set; - } - Map map = mission.getActivityMissionMap(); - for (Map.Entry progressInfoEntry : map.entrySet()) { - SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey()); - if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED||(progressInfoEntry.getValue().getState()==ActivityType.WILL_TAKE&&mission.getV()+1!=rewardConfig.getSort())){ - set.add(rewardConfig.getValues()[0][0]); - } - } - return set; - } return new HashSet<>(1); }