From 4fe6e452ea44456da4e49a6db0f78a856c4f1f65 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 14 Oct 2021 15:27:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A3=85=E5=A4=87=E5=9B=BE?= =?UTF-8?q?=E9=89=B4=E4=BF=AE=E6=94=B9=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/ItemUtil.java | 41 +++++++++++++++++-- 1 file changed, 37 insertions(+), 4 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 e5aa7fbd9..74f4e93df 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -33,6 +33,7 @@ import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.newRechargeInfo.PushRechargeType; import com.ljsd.jieling.network.session.ISession; import rpc.protocols.CommonProto; +import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; import rpc.protocols.PlayerInfoProto; import config.SGameSetting; @@ -598,14 +599,18 @@ public class ItemUtil { List sendToFront = new CopyOnWriteArrayList<>(); //超过上限不能直接获得 Map extraItem = new HashMap<>(itemMap.size()); - + ListchangeEquipList=null; for (Map.Entry entry : itemMap.entrySet()) { SItem sItem = SItem.getsItemMap().get (entry.getKey()); if (sItem.getItemBaseType()==6){ equipManager.addEquipList(entry.getKey()); } if (sItem.getItemType()==3){ + if (changeEquipList==null) { + changeEquipList=new ArrayList<>(); + } itemManager.setEquipBookMap(entry.getKey(),entry.getValue()); + changeEquipList.add(entry.getKey()); } long itemNumlimit = sItem.getItemNumlimit(); long itemNum = entry.getValue().intValue(); @@ -683,6 +688,9 @@ public class ItemUtil { //日志记录 ItemLogic.getInstance().addItemLog(new ItemLog(user.getId(),0,user.getPlayerInfoManager().getLevel(),String.valueOf(TimeUtils.now()),reason,sItem.getId(),itemNum,item.getItemNum())); } + //发送装备图鉴修改推送 + SendEquipBookIndication(user.getId(),itemManager,changeEquipList); + for(Map.Entry entry:extraItem.entrySet()){ itemProtoList.add(CBean2Proto.getItem(itemManager.getItemMap().get(entry.getKey()),entry.getValue())); } @@ -723,14 +731,18 @@ public class ItemUtil { List sendToFront = new CopyOnWriteArrayList<>(); //超过上限不能直接获得 Map extraItem = new HashMap<>(itemMap.size()); - + ListchangeEquipList=null; for (Map.Entry entry : itemMap.entrySet()) { SItem sItem = SItem.getsItemMap().get (entry.getKey()); if (sItem.getItemBaseType()==6){ equipManager.addEquipList(entry.getKey()); } if (sItem.getItemType()==3){ + if (changeEquipList==null) { + changeEquipList=new ArrayList<>(); + } itemManager.setEquipBookMap(entry.getKey(),entry.getValue()); + changeEquipList.add(entry.getKey()); } long itemNumlimit = sItem.getItemNumlimit(); @@ -809,6 +821,10 @@ public class ItemUtil { //日志记录 ItemLogic.getInstance().addItemLog(new ItemLog(user.getId(),0,user.getPlayerInfoManager().getLevel(),String.valueOf(TimeUtils.now()),reason,sItem.getId(),itemNum,item.getItemNum())); } + + //发送装备图鉴修改推送 + SendEquipBookIndication(user.getId(),itemManager,changeEquipList); + for(Map.Entry entry:extraItem.entrySet()){ itemProtoList.add(CBean2Proto.getItem(itemManager.getItemMap().get(entry.getKey()),entry.getValue())); } @@ -832,8 +848,25 @@ public class ItemUtil { return 1; } - - + ///发送装备图鉴修改推送 + private static void SendEquipBookIndication(int _uid,ItemManager _itemManage, List_equipList){ + if (_equipList==null||_equipList.isEmpty())return; + ListequipList=new ArrayList<>(); + for (Integer integer : _equipList) { + if (_itemManage.getEquipBookMap().containsKey(integer)) { + CommonProto.EquipBookInfo equipInfo=CommonProto.EquipBookInfo.newBuilder() + .setEquipId(integer) + .setNum(_itemManage.getEquipBookMap().get(integer).intValue()) + .build(); + equipList.add(equipInfo); + } + } + HeroInfoProto.EquipBookIndication build=HeroInfoProto.EquipBookIndication.newBuilder() + .addAllChangeEquipList(equipList) + .build(); + ISession sessionByUid = OnlineUserManager.getSessionByUid(_uid); + MessageUtil.sendIndicationMessage(sessionByUid,1, MessageTypeProto.MessageType.EQUIP_BOOK_INDICATION_VALUE,build,true); + } /** * 玩家升级 //zsx 保留 TODO 由事件分发到 playlogic 去处理