From 8dc19f2d98d3a9c593275d95fe59fe51a450830c Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 23 Sep 2021 17:22:40 +0800 Subject: [PATCH 01/31] =?UTF-8?q?=E5=A5=BD=E6=84=9F=E5=BA=A6=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/core/FunctionIdEnum.java | 2 + .../com/ljsd/jieling/globals/BIReason.java | 2 + .../hero/GetLikableDataRequestHandler.java | 48 ++++++ .../hero/HeroUpLikableRequestHandler.java | 155 ++++++++++++++++++ .../ljsd/jieling/logic/dao/HeroManager.java | 41 +++++ .../ljsd/jieling/logic/hero/HeroLogic.java | 11 ++ .../main/java/config/SLikeAbilityConfig.java | 81 +++++++++ 7 files changed, 340 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/GetLikableDataRequestHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java create mode 100644 tablemanager/src/main/java/config/SLikeAbilityConfig.java 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 50abba999..8fb7f127e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java @@ -70,6 +70,8 @@ public enum FunctionIdEnum { HongMeng(86,null), CrossYuxulundao(87,null),//跨服-玉虚论道 CrossSevenWorld(112,new SevenWorldFunction()),//七界试炼 + FourQua(113,null),//四象心法 + Likable(114,null),//好感度 WeekGood(9091,null), ; 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 d438fc66d..4f80ad2c6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -347,6 +347,8 @@ public interface BIReason { int SIXIANG_UP_STAR_COST=1106;//四象心法进阶消耗 + int HERO_UP_LIKEBLE_COST=1107;//英雄提升好感度消耗 + int FOUR_CHALLENGE_FIRST = 1201;//四灵试炼首通 int FOUR_CHALLENGE_SWEEP = 1202;//四灵试炼扫荡 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/GetLikableDataRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/GetLikableDataRequestHandler.java new file mode 100644 index 000000000..ee37d1396 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/GetLikableDataRequestHandler.java @@ -0,0 +1,48 @@ +package com.ljsd.jieling.handler.hero; + +import com.google.protobuf.GeneratedMessage; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +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.netty.cocdex.PacketNetData; +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.ArrayList; +import java.util.List; +import java.util.Map; + +///获取好感度数据请求 +@Component +public class GetLikableDataRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.GET_LIKABLE_DATA_REQUEST; + } + + @Override + public void process(ISession session, PacketNetData netData) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + Map likaMap=user.getHeroManager().getHeroLikableMap(); + List _list=new ArrayList<>(); + for (Map.Entry integerEntry : likaMap.entrySet()) { + CommonProto.LikableInfo likaInfo=CommonProto.LikableInfo.newBuilder() + .setHeroStaticid(integerEntry.getKey()) + .setLikableNum(integerEntry.getValue()) + .build(); + _list.add(likaInfo); + } + HeroInfoProto.GetLikableDataResponse response=HeroInfoProto.GetLikableDataResponse.newBuilder() + .addAllInfoList(_list) + .build(); + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_LIKABLE_DATA_RESPONSE_VALUE,response,true); + } +} 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 new file mode 100644 index 000000000..6aa1fd4bd --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java @@ -0,0 +1,155 @@ +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.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.SCHero; +import config.SItem; +import config.SLikeAbilityConfig; +import org.springframework.stereotype.Component; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.HashMap; +import java.util.Map; + + +//英雄好感度提升消息 +@Component +public class HeroUpLikableRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.HERO_UP_LIKABLE_REQUEST; + } + + + @Override + public void processWithProto(ISession session, HeroInfoProto.HeroUpLikableRequest proto) throws Exception { + int heroStaticId=proto.getHeroStaticId();//英雄静态id + int itemId=proto.getItemId();//消耗道具id + int itemNum=proto.getItemNum();//消耗道具数量 + int uid = session.getUid(); + + User user = UserManager.getUser(uid); + HeroManager heroManager=user.getHeroManager(); + int[][]costArr=new int[2][1]; + costArr[0][0]=itemId; + costArr[0][1]=itemNum; + boolean costResult = ItemUtil.itemCost(user,costArr, BIReason.HERO_UP_LIKEBLE_COST,heroStaticId); + if (costResult){ + SItem _item= SItem.getsItemMap().get(itemId); + int profession=SCHero.getsCHero().get(heroStaticId).getProfession(); + String[]addArr=_item.getResolveReward().split("|"); + String addStr=addArr[profession-1]; + int singleAddNum=Integer.parseInt(addStr.split("#")[1]); + int allAddNum=singleAddNum*itemNum; + int curHeroLikableNum = heroManager.getHeroLikableMap().containsKey(heroStaticId)?user.getHeroManager().getHeroLikableMap().get(heroStaticId):0; + int oldLv=GetHeroLikableLvByLikaNum(curHeroLikableNum); + curHeroLikableNum+=allAddNum; + int curLv=GetHeroLikableLvByLikaNum(curHeroLikableNum); + if (curLv>oldLv){ + MapcurHeroPropAdd=GetHeroLikableAddPeop(curLv); + heroManager.putHeroLikablePropAddMap(heroStaticId,curHeroPropAdd); + } + + int oldAllLikaLv=GetAllLikableLvByLikaNum(GetAllHeroLikableNum(heroManager.getHeroLikableMap())); + heroManager.putHeroLikableMap(heroStaticId,curHeroLikableNum); + int curAllLikaLv=GetAllLikableLvByLikaNum(GetAllHeroLikableNum(heroManager.getHeroLikableMap())); + if (curAllLikaLv>oldAllLikaLv){ + MapallHeroPropAdd=GetAllHeroLikableAddPeop(curAllLikaLv); + heroManager.putAllLikablePropAddMap(allHeroPropAdd); + } + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.HERO_UP_LIKABLE_RESPONSE_VALUE, null,true); + }else{ + LOGGER.error("好感度提升材料不足"); + throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); + } + } + ///通过神将好感度获取好感度等级 + public int GetHeroLikableLvByLikaNum(int _likaNum){ + int likaLv=0; + for (Map.Entry integerEntry : SLikeAbilityConfig.heroLikeAbilityByLevel.entrySet()) { + if (_likaNum>=integerEntry.getValue()){ + likaLv= integerEntry.getKey(); + }else{ + break; + } + } + return likaLv; + } + ///通过总好感度获取好感度等级 + public int GetAllLikableLvByLikaNum(int _likaNum){ + int likaLv=0; + for (Map.Entry integerEntry : SLikeAbilityConfig.allLikeAbilityByLevel.entrySet()) { + if (_likaNum>=integerEntry.getValue()){ + likaLv= integerEntry.getKey(); + }else{ + break; + } + } + return likaLv; + } + //通过当前等级获取神将好感度属性加成 + public MapGetHeroLikableAddPeop(int _lv){ + Map_propMap=new HashMap<>(); + for (int i = 0; i <= _lv; i++) { + SLikeAbilityConfig _config= SLikeAbilityConfig.heroLikeAbilityConfigMap.get(_lv); + if (_config.getProperty()==null)continue; + for (int[] ints : _config.getProperty()) { + if (_propMap.containsKey(ints[1])) { + int absProp=_propMap.get(ints[1])+ints[2]; + _propMap.put(ints[1],absProp); + }else{ + _propMap.put(ints[1],ints[2]); + } + } + } + return _propMap; + } + + //通过当前总好感度等级获取好感度属性加成 + public MapGetAllHeroLikableAddPeop(int _allLv){ + Map_propMap=new HashMap<>(); + for (int i = 0; i <= _allLv; i++) { + SLikeAbilityConfig _config= SLikeAbilityConfig.allLikeAbilityConfigMap.get(_allLv); + if (_config.getProperty()!=null){ + for (int[] ints : _config.getProperty()) { + if (_propMap.containsKey(ints[0])) { + int absProp=_propMap.get(ints[0])+ints[1]; + _propMap.put(ints[0],absProp); + }else{ + _propMap.put(ints[0],ints[1]); + } + } + } + if (_config.getPrivilegeProperty()!=null){ + for (int[] ints : _config.getPrivilegeProperty()) { + if (_propMap.containsKey(ints[0])) { + int absProp=_propMap.get(ints[0])+ints[1]; + _propMap.put(ints[0],absProp); + }else{ + _propMap.put(ints[0],ints[1]); + } + } + } + + } + return _propMap; + } + + //获取总的好感度 + public int GetAllHeroLikableNum(Map_heroLikableMap){ + int likableNum=0; + for (Map.Entry integerEntry : _heroLikableMap.entrySet()) { + likableNum+=integerEntry.getKey(); + } + return likableNum; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 18d4ca186..14bd59d42 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -5,6 +5,7 @@ import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.RemoveHeroEvent; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HongMengAttributeEnum; +import config.SLikeAbilityConfig; import config.SSpecialConfig; import java.util.*; @@ -111,6 +112,28 @@ public class HeroManager extends MongoBase { return sixiangPropUpMap; } + /** + * 好感度数据 + * key: 英雄静态id value:好感度值 + */ + private Map heroLikableMap = new HashMap<>(); + + public Map getHeroLikableMap() { + return heroLikableMap; + } + //神将好感度属性加成 + private Map>heroLikablePropAddMap=new HashMap<>(); + + public Map>getHeroLikablePropAddMap() { + return heroLikablePropAddMap; + } + //所有神将总好感度带来的属性加成(包含特权加成) + private MapallLikablePropAddMap=new HashMap<>(); + public MapgetAllLikablePropAddMap() { + return allLikablePropAddMap; + } + + /** * 心愿可以选择的英雄列表 */ @@ -158,6 +181,21 @@ public class HeroManager extends MongoBase { updateString("sixiangPropUpMap."+professionId, _propMap); } + public void putHeroLikableMap(int heroStaticId,int likableNum) { + heroLikableMap.put(heroStaticId,likableNum); + updateString("heroLikableMap."+heroStaticId, likableNum); + } + + public void putHeroLikablePropAddMap(int heroStaticId,Map _propMap) { + heroLikablePropAddMap.put(heroStaticId,_propMap); + updateString("heroLikablePropAddMap."+heroStaticId, _propMap); + } + + public void putAllLikablePropAddMap(Map _propMap) { + allLikablePropAddMap=_propMap; + updateString("allLikablePropAddMap", allLikablePropAddMap); + } + public void updateRandCount(int type, int count){ updateString("totalCount." + type, count); @@ -493,6 +531,7 @@ public class HeroManager extends MongoBase { updateString("wishOpenHeroList", wishOpenHeroList); } + ///获取四象心法共鸣等级 public int GetSiXiangGongMingLv(){ int gongmingLv=0; if (this.sixiangDataMap.size()<4){ @@ -506,5 +545,7 @@ public class HeroManager extends MongoBase { } return gongmingLv; } + + } 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 e46a55d24..49a894fff 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 @@ -2330,6 +2330,17 @@ public class HeroLogic{ int[][]skillProp=ItemUtil.mapToArray(skillPropertyMap); combinedAttribute(skillProp,heroAllAttribute); + //英雄好感度属性加成 + if (user.getHeroManager().getHeroLikablePropAddMap().containsKey(scHero.getId())){ + int[][]likableProp=ItemUtil.mapToArray(user.getHeroManager().getHeroLikablePropAddMap().get(scHero.getId())); + combinedAttribute(likableProp,heroAllAttribute); + } + //英雄总好感度属性加成 + if (user.getHeroManager().getAllLikablePropAddMap().size()>0){ + int[][]allLikableProp=ItemUtil.mapToArray(user.getHeroManager().getAllLikablePropAddMap()); + combinedAttribute(allLikableProp,heroAllAttribute); + } + //装备总战力评分 int equipForce=0; Iterator> iterator = hero.getEquipByHongmengPositionMap(user.getHeroManager()).entrySet().iterator(); diff --git a/tablemanager/src/main/java/config/SLikeAbilityConfig.java b/tablemanager/src/main/java/config/SLikeAbilityConfig.java new file mode 100644 index 000000000..4e091cb32 --- /dev/null +++ b/tablemanager/src/main/java/config/SLikeAbilityConfig.java @@ -0,0 +1,81 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +@Table(name ="FourQuadrantConfig") +public class SLikeAbilityConfig implements BaseConfig { + + private int id; + + private int type; + + private int level; + + private int favorDegree; + + private int[][] property; + + private int[][] privilegeProperty; + + + public static Map sLikeAbilityConfigMap; + + public static Map heroLikeAbilityConfigMap; + public static Map heroLikeAbilityByLevel; + + public static Map allLikeAbilityConfigMap; + public static Map allLikeAbilityByLevel; + + + @Override + public void init() throws Exception { + heroLikeAbilityConfigMap=new HashMap<>(); + allLikeAbilityConfigMap=new HashMap<>(); + heroLikeAbilityByLevel=new TreeMap<>(); + allLikeAbilityByLevel=new TreeMap<>(); + sLikeAbilityConfigMap = STableManager.getConfig(SLikeAbilityConfig.class); + int heroLike=0; + int allLike=0; + for (SLikeAbilityConfig value : sLikeAbilityConfigMap.values()) { + if (value.type==1){ + allLikeAbilityConfigMap.put(value.level,value); + allLike+=value.getFavorDegree(); + allLikeAbilityByLevel.put(value.level,allLike); + }else { + heroLikeAbilityConfigMap.put(value.level,value); + heroLike+=value.getFavorDegree(); + heroLikeAbilityByLevel.put(value.level,heroLike); + } + } + } + + public int getId() { + return id; + } + + public int getType() { + return type; + } + + public int getLevel() { + return level; + } + + public int getFavorDegree() { + return favorDegree; + } + + public int[][] getProperty() { + return property; + } + + public int[][] getPrivilegeProperty() { + return privilegeProperty; + } +} + From c900a018ec17381e537da02d3d4e243c9e50a7e3 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 24 Sep 2021 14:10:02 +0800 Subject: [PATCH 02/31] =?UTF-8?q?=E5=A5=BD=E6=84=9F=E5=BA=A6=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/globals/GlobalItemType.java | 1 + .../handler/hero/GetLikableDataRequestHandler.java | 3 +++ .../handler/hero/HeroUpLikableRequestHandler.java | 9 ++++++++- .../java/com/ljsd/jieling/logic/GlobalDataManaager.java | 1 + .../java/com/ljsd/jieling/logic/dao/HeroManager.java | 9 +++++++++ .../main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 6 ++++++ .../src/main/java/com/ljsd/jieling/util/ItemUtil.java | 1 + tablemanager/src/main/java/config/SSpecialConfig.java | 1 + 8 files changed, 30 insertions(+), 1 deletion(-) 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 aef0070af..1a7814370 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -34,6 +34,7 @@ public interface GlobalItemType { int SpecialMonsterItem=22; // 灵兽碎片 // 万能狗粮 int AllPowerful_DogFood = 25; + int LikableCostItem=27;//好感度功能消耗道具 //物品使用类型 int NO_USE = 0 ; //不使用 int RANDOM_USE = 1; // 随机使用 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/GetLikableDataRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/GetLikableDataRequestHandler.java index ee37d1396..c0cf1f82c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/GetLikableDataRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/GetLikableDataRequestHandler.java @@ -10,6 +10,7 @@ import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; +import config.SSpecialConfig; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; @@ -40,8 +41,10 @@ public class GetLikableDataRequestHandler extends BaseHandler { .build(); _list.add(likaInfo); } + int remainTime= SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)-user.getHeroManager().getLikableSendTime(); HeroInfoProto.GetLikableDataResponse response=HeroInfoProto.GetLikableDataResponse.newBuilder() .addAllInfoList(_list) + .setLikableRemainTime(remainTime) .build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_LIKABLE_DATA_RESPONSE_VALUE,response,true); } 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 6aa1fd4bd..9346539ef 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 @@ -13,6 +13,7 @@ import com.ljsd.jieling.util.MessageUtil; import config.SCHero; import config.SItem; import config.SLikeAbilityConfig; +import config.SSpecialConfig; import org.springframework.stereotype.Component; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -39,6 +40,11 @@ public class HeroUpLikableRequestHandler extends BaseHandler SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)){ + LOGGER.error("好感度赠送次数超出每日限制"); + throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); + } int[][]costArr=new int[2][1]; costArr[0][0]=itemId; costArr[0][1]=itemNum; @@ -58,7 +64,6 @@ public class HeroUpLikableRequestHandler extends BaseHandlercurHeroPropAdd=GetHeroLikableAddPeop(curLv); heroManager.putHeroLikablePropAddMap(heroStaticId,curHeroPropAdd); } - int oldAllLikaLv=GetAllLikableLvByLikaNum(GetAllHeroLikableNum(heroManager.getHeroLikableMap())); heroManager.putHeroLikableMap(heroStaticId,curHeroLikableNum); int curAllLikaLv=GetAllLikableLvByLikaNum(GetAllHeroLikableNum(heroManager.getHeroLikableMap())); @@ -66,6 +71,8 @@ public class HeroUpLikableRequestHandler extends BaseHandlerallHeroPropAdd=GetAllHeroLikableAddPeop(curAllLikaLv); heroManager.putAllLikablePropAddMap(allHeroPropAdd); } + int sendTime= heroManager.getLikableSendTime()+itemNum; + heroManager.UpdateLikableSendTime(sendTime); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.HERO_UP_LIKABLE_RESPONSE_VALUE, null,true); }else{ LOGGER.error("好感度提升材料不足"); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index f5b5bee32..924c0db75 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -454,6 +454,7 @@ public class GlobalDataManaager implements IManager { } } fBuilder.setExpeditionLeve(user.getExpeditionManager().getExpeditionLeve()); + HeroLogic.getInstance().ResetLikableSendTime(user,fBuilder);//重置好感度次数 if(session.getFiveReady() == 1){ //客户端准备好接受五点刷新请求 MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.FIVE_PLAYER_REFLUSH_INDICATION_VALUE,fBuilder.build(),true); }else{ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 14bd59d42..b5ae5addd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -7,6 +7,7 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HongMengAttributeEnum; import config.SLikeAbilityConfig; import config.SSpecialConfig; +import org.omg.CORBA.PUBLIC_MEMBER; import java.util.*; @@ -133,7 +134,9 @@ public class HeroManager extends MongoBase { return allLikablePropAddMap; } + private int likableSendTime;//好感度已赠送次数 + public int getLikableSendTime() { return likableSendTime; } /** * 心愿可以选择的英雄列表 */ @@ -196,6 +199,12 @@ public class HeroManager extends MongoBase { updateString("allLikablePropAddMap", allLikablePropAddMap); } + //刷新好感度赠送次数 参数传当日已赠送次数 + public void UpdateLikableSendTime(int _sendTime) { + likableSendTime=_sendTime; + updateString("likableSendTime", _sendTime); + } + public void updateRandCount(int type, int count){ updateString("totalCount." + type, count); 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 49a894fff..65011d201 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 @@ -5244,5 +5244,11 @@ public class HeroLogic{ MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.PurpleMansionSealIndication_VALUE,build2,true); } + ///0点重置好感度赠送次数 + public void ResetLikableSendTime(User user,PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder){ + user.getHeroManager().UpdateLikableSendTime(0); + int remainTime=SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)-user.getHeroManager().getLikableSendTime(); + fBuilder.setLikableRemainTime(remainTime); + } } 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 8e37f21f2..59a500ed9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -531,6 +531,7 @@ public class ItemUtil { case GlobalItemType.SOUL_MARK: case GlobalItemType.ITEM: case GlobalItemType.EQUIP: + case GlobalItemType.LikableCostItem: putCountLongMap(itemId,amount, itemObj.getItemMap()); break; case GlobalItemType.CARD: diff --git a/tablemanager/src/main/java/config/SSpecialConfig.java b/tablemanager/src/main/java/config/SSpecialConfig.java index d684317f2..371595079 100644 --- a/tablemanager/src/main/java/config/SSpecialConfig.java +++ b/tablemanager/src/main/java/config/SSpecialConfig.java @@ -114,6 +114,7 @@ public class SSpecialConfig implements BaseConfig { public static final String PRE_LOAD_REWARD = "PreLoadReward"; public static final String QIJIEHOLYCONFIG = "QIJIEHOLYCONFIG";//七界试炼遗物开启层数 + public static final String LIKE_ABILITY = "LikeAbility";//好感度功能,每日赠予礼物次数上限 @Override public void init() throws Exception { From 4f8249150dbc1f8ace874f8479acd4bba15a5dbe Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Fri, 24 Sep 2021 14:36:37 +0800 Subject: [PATCH 03/31] =?UTF-8?q?=E5=A5=BD=E6=84=9F=E5=BA=A6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/hero/HeroUpLikableRequestHandler.java | 4 ++-- serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) 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 9346539ef..68ca00d6f 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 @@ -45,14 +45,14 @@ public class HeroUpLikableRequestHandler extends BaseHandler Date: Sun, 26 Sep 2021 19:43:02 +0800 Subject: [PATCH 04/31] =?UTF-8?q?=E5=A5=BD=E6=84=9F=E5=BA=A6=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/core/GlobalsDef.java | 1 + .../hero/HeroUpLikableRequestHandler.java | 48 ++++++++----------- .../ljsd/jieling/logic/dao/UserManager.java | 1 + .../jieling/logic/player/PlayerLogic.java | 3 ++ .../main/java/config/SLikeAbilityConfig.java | 2 +- 5 files changed, 26 insertions(+), 29 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java index e2582d995..1906289e7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java @@ -111,6 +111,7 @@ public interface GlobalsDef { int MAIN_LEVEL_UNLOCK_PRIVILEGE = 2; int VIP_UNLOCK_PRIVILEGE = 3; int RECHARGE_UNLOCK_PRIVILEGE = 4; + int LIKABLE_UNLOCK=6; //特殊商店id int DAILY_GOODS_FAST_ID = 1004;//每日礼包一键购买的礼包ID 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 68ca00d6f..3e739aa96 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,19 +1,19 @@ package com.ljsd.jieling.handler.hero; +import com.ljsd.common.mogodb.util.GlobalData; +import com.ljsd.jieling.core.GlobalsDef; 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.PlayerManager; 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.SCHero; -import config.SItem; -import config.SLikeAbilityConfig; -import config.SSpecialConfig; +import config.*; import org.springframework.stereotype.Component; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -41,10 +41,10 @@ public class HeroUpLikableRequestHandler extends BaseHandler SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)){ - LOGGER.error("好感度赠送次数超出每日限制"); - throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); - } +// if (itemNum+heroManager.getLikableSendTime()> SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)){ +// LOGGER.error("好感度赠送次数超出每日限制"); +// throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); +// } int[][]costArr=new int[1][2]; costArr[0][0]=itemId; costArr[0][1]=itemNum; @@ -70,6 +70,8 @@ public class HeroUpLikableRequestHandler extends BaseHandleroldAllLikaLv){ MapallHeroPropAdd=GetAllHeroLikableAddPeop(curAllLikaLv); heroManager.putAllLikablePropAddMap(allHeroPropAdd); + int[][]condition= SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(2).getCondition(); + user.getPlayerInfoManager().updateVipPrivilage(1,condition[curAllLikaLv][1]); } int sendTime= heroManager.getLikableSendTime()+itemNum; heroManager.UpdateLikableSendTime(sendTime); @@ -84,7 +86,7 @@ public class HeroUpLikableRequestHandler extends BaseHandler integerEntry : SLikeAbilityConfig.heroLikeAbilityByLevel.entrySet()) { if (_likaNum>=integerEntry.getValue()){ - likaLv= integerEntry.getKey(); + likaLv= integerEntry.getKey()+1; }else{ break; } @@ -96,7 +98,7 @@ public class HeroUpLikableRequestHandler extends BaseHandler integerEntry : SLikeAbilityConfig.allLikeAbilityByLevel.entrySet()) { if (_likaNum>=integerEntry.getValue()){ - likaLv= integerEntry.getKey(); + likaLv= integerEntry.getKey()+1; }else{ break; } @@ -107,14 +109,14 @@ public class HeroUpLikableRequestHandler extends BaseHandlerGetHeroLikableAddPeop(int _lv){ Map_propMap=new HashMap<>(); for (int i = 0; i <= _lv; i++) { - SLikeAbilityConfig _config= SLikeAbilityConfig.heroLikeAbilityConfigMap.get(_lv); + SLikeAbilityConfig _config= SLikeAbilityConfig.heroLikeAbilityConfigMap.get(i); if (_config.getProperty()==null)continue; for (int[] ints : _config.getProperty()) { - if (_propMap.containsKey(ints[1])) { - int absProp=_propMap.get(ints[1])+ints[2]; - _propMap.put(ints[1],absProp); + if (_propMap.containsKey(ints[0])) { + int absProp=_propMap.get(ints[0])+ints[1]; + _propMap.put(ints[0],absProp); }else{ - _propMap.put(ints[1],ints[2]); + _propMap.put(ints[0],ints[1]); } } } @@ -125,9 +127,10 @@ public class HeroUpLikableRequestHandler extends BaseHandlerGetAllHeroLikableAddPeop(int _allLv){ Map_propMap=new HashMap<>(); for (int i = 0; i <= _allLv; i++) { - SLikeAbilityConfig _config= SLikeAbilityConfig.allLikeAbilityConfigMap.get(_allLv); + SLikeAbilityConfig _config= SLikeAbilityConfig.allLikeAbilityConfigMap.get(i); if (_config.getProperty()!=null){ for (int[] ints : _config.getProperty()) { + if(ints.length<=0)continue; if (_propMap.containsKey(ints[0])) { int absProp=_propMap.get(ints[0])+ints[1]; _propMap.put(ints[0],absProp); @@ -136,17 +139,6 @@ public class HeroUpLikableRequestHandler extends BaseHandler_heroLikableMap){ int likableNum=0; for (Map.Entry integerEntry : _heroLikableMap.entrySet()) { - likableNum+=integerEntry.getKey(); + likableNum+=integerEntry.getValue(); } return likableNum; } 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 43c1b76ad..68318685a 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 @@ -121,6 +121,7 @@ public class UserManager { playerManager.setSendDays(1); playerManager.updateVipInfo(GlobalsDef.LEVEL_UNLOCK_PRIVILEGE,1); playerManager.updateVipInfo(GlobalsDef.VIP_UNLOCK_PRIVILEGE,0); + playerManager.updateVipInfo(GlobalsDef.LIKABLE_UNLOCK,0); playerManager.setNewRechargeInfo(new NewRechargeInfo()); playerManager.setPhoneBindInfo(new PhoneBindInfo("")); playerManager.setChannel(channel); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index a087901e0..fe194d0c4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -1224,6 +1224,9 @@ public class PlayerLogic { case GlobalsDef.VIP_UNLOCK_PRIVILEGE: cond = user.getPlayerInfoManager().getVipLevel(); break; + case GlobalsDef.LIKABLE_UNLOCK: + cond = 2; + break; default:{ break; } diff --git a/tablemanager/src/main/java/config/SLikeAbilityConfig.java b/tablemanager/src/main/java/config/SLikeAbilityConfig.java index 4e091cb32..898cc9806 100644 --- a/tablemanager/src/main/java/config/SLikeAbilityConfig.java +++ b/tablemanager/src/main/java/config/SLikeAbilityConfig.java @@ -7,7 +7,7 @@ import java.util.HashMap; import java.util.Map; import java.util.TreeMap; -@Table(name ="FourQuadrantConfig") +@Table(name ="LikeAbility") public class SLikeAbilityConfig implements BaseConfig { private int id; From 6724ea31cfa17a5672e295c61e80636cbc6a487d Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Sun, 26 Sep 2021 19:51:17 +0800 Subject: [PATCH 05/31] =?UTF-8?q?=E5=A5=BD=E6=84=9F=E5=BA=A6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/core/GlobalsDef.java | 2 +- .../com/ljsd/jieling/logic/dao/HeroManager.java | 17 +++++++++++++++++ .../ljsd/jieling/logic/player/PlayerLogic.java | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java index 1906289e7..76188f10c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java @@ -111,7 +111,7 @@ public interface GlobalsDef { int MAIN_LEVEL_UNLOCK_PRIVILEGE = 2; int VIP_UNLOCK_PRIVILEGE = 3; int RECHARGE_UNLOCK_PRIVILEGE = 4; - int LIKABLE_UNLOCK=6; + int LIKABLE_UNLOCK=6;//好感度解锁类型 //特殊商店id int DAILY_GOODS_FAST_ID = 1004;//每日礼包一键购买的礼包ID diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index b5ae5addd..b1186c5be 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -555,6 +555,23 @@ public class HeroManager extends MongoBase { return gongmingLv; } + ///通过总好感度获取好感度等级 + public int GetAllLikableLv(){ + int likaLv=0; + int likableNum=0; + for (Map.Entry integerEntry : heroLikableMap.entrySet()) { + likableNum+=integerEntry.getValue(); + } + for (Map.Entry integerEntry : SLikeAbilityConfig.allLikeAbilityByLevel.entrySet()) { + if (likableNum>=integerEntry.getValue()){ + likaLv= integerEntry.getKey()+1; + }else{ + break; + } + } + return likaLv; + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index fe194d0c4..c81987a41 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -1225,7 +1225,7 @@ public class PlayerLogic { cond = user.getPlayerInfoManager().getVipLevel(); break; case GlobalsDef.LIKABLE_UNLOCK: - cond = 2; + cond = user.getHeroManager().GetAllLikableLv(); break; default:{ break; From 3eab389f36720119f03d075b216f401e5c8bdfa3 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Sun, 26 Sep 2021 20:05:12 +0800 Subject: [PATCH 06/31] =?UTF-8?q?=E5=A5=BD=E6=84=9F=E5=BA=A6=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E8=80=81=E6=95=B0=E6=8D=AE=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java | 4 ++-- .../src/main/java/com/ljsd/jieling/logic/dao/UserManager.java | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) 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 c108dad5e..7d9478ec9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -80,8 +80,8 @@ public class GetPlayerInfoHandler extends BaseHandler{ List list = new ArrayList<>(); Map privilegeTypeConfigMap = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap(); for(Map.Entry entry:privilegeTypeConfigMap.entrySet()){ - //如果是<4 系统内置特权 - if(entry.getValue().getUnlockType()<4&&!vipInfo.containsKey(entry.getKey())){ + //如果是<4 系统内置特权 (6是新增的好感度特权收益加成 2021.9.26) + if(entry.getValue().getUnlockType()<4||entry.getValue().getUnlockType()==6&&!vipInfo.containsKey(entry.getKey())){ playerInfoManager.addVipInfo(entry.getKey()); } } 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 68318685a..43c1b76ad 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 @@ -121,7 +121,6 @@ public class UserManager { playerManager.setSendDays(1); playerManager.updateVipInfo(GlobalsDef.LEVEL_UNLOCK_PRIVILEGE,1); playerManager.updateVipInfo(GlobalsDef.VIP_UNLOCK_PRIVILEGE,0); - playerManager.updateVipInfo(GlobalsDef.LIKABLE_UNLOCK,0); playerManager.setNewRechargeInfo(new NewRechargeInfo()); playerManager.setPhoneBindInfo(new PhoneBindInfo("")); playerManager.setChannel(channel); From 4ba1470fb567b6fb1255794c958804abdb24edfb Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 27 Sep 2021 09:45:44 +0800 Subject: [PATCH 07/31] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=AF=8F=E6=97=A5?= =?UTF-8?q?=E8=B5=A0=E9=80=81=E6=AC=A1=E6=95=B0=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/hero/HeroUpLikableRequestHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 3e739aa96..ba97af0a2 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 @@ -41,10 +41,10 @@ public class HeroUpLikableRequestHandler extends BaseHandler SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)){ -// LOGGER.error("好感度赠送次数超出每日限制"); -// throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); -// } + if (itemNum+heroManager.getLikableSendTime()> SSpecialConfig.getIntegerValue(SSpecialConfig.LIKE_ABILITY)){ + LOGGER.error("好感度赠送次数超出每日限制"); + throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); + } int[][]costArr=new int[1][2]; costArr[0][0]=itemId; costArr[0][1]=itemNum; From be9fa17c7066057f5a2a7b10fd693e3c7a38ffd9 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 28 Sep 2021 12:05:32 +0800 Subject: [PATCH 08/31] =?UTF-8?q?=E3=80=90=E5=A5=BD=E6=84=9F=E5=BA=A6?= =?UTF-8?q?=E3=80=91bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java | 2 ++ 1 file changed, 2 insertions(+) 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 ba97af0a2..153a19af5 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 @@ -85,6 +85,7 @@ public class HeroUpLikableRequestHandler extends BaseHandler integerEntry : SLikeAbilityConfig.heroLikeAbilityByLevel.entrySet()) { + if (integerEntry.getKey()==SLikeAbilityConfig.heroLikeAbilityByLevel.size()-1)break; if (_likaNum>=integerEntry.getValue()){ likaLv= integerEntry.getKey()+1; }else{ @@ -97,6 +98,7 @@ public class HeroUpLikableRequestHandler extends BaseHandler integerEntry : SLikeAbilityConfig.allLikeAbilityByLevel.entrySet()) { + if (integerEntry.getKey()==SLikeAbilityConfig.allLikeAbilityByLevel.size()-1)break; if (_likaNum>=integerEntry.getValue()){ likaLv= integerEntry.getKey()+1; }else{ From b06a1b312410fdfcb5be5771b003b05cd32bd1fd Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 28 Sep 2021 14:59:56 +0800 Subject: [PATCH 09/31] =?UTF-8?q?=E7=8E=B2=E7=8F=91=E5=AE=9D=E9=98=81?= =?UTF-8?q?=E5=A5=96=E5=8A=B1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/activity/ActivityLogic.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index f2b020eff..89dc8df74 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1762,7 +1762,8 @@ public class ActivityLogic implements IEventHandler{ // 处理奖励 int[][] rewards = Utils.changeList(list); CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, rewards, BIReason.QIMENDUNJIA_DRAW); - + // 事件分发 + Poster.getPoster().dispatchEvent(new QiMenDunJiaEvent(user.getId(),activityId,num)); response.setDrop(drop).addAllIdList(hits); return response.build(); } @@ -1830,10 +1831,10 @@ public class ActivityLogic implements IEventHandler{ // 外圈抽奖用,抽中全部 if (rewardPool.size() >= SLingLongPool.map.get(type).size()){ - if (type == 1){ - // 事件分发 - Poster.getPoster().dispatchEvent(new QiMenDunJiaEvent(user.getId(),activityId,1)); - } +// if (type == 1){ +// // 事件分发 +// Poster.getPoster().dispatchEvent(new QiMenDunJiaEvent(user.getId(),activityId,1)); +// } rewardPool.clear(); } From f846e981d1627ccfca35613acfaff62fd7785e68 Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 28 Sep 2021 16:51:40 +0800 Subject: [PATCH 10/31] =?UTF-8?q?=E5=A5=87=E9=97=A8=E9=81=81=E7=94=B2?= =?UTF-8?q?=EF=BC=8C=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/activity/GetQiMenDunJiaHitListHandler.java | 1 + .../com/ljsd/jieling/logic/activity/ActivityLogic.java | 10 +++------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetQiMenDunJiaHitListHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetQiMenDunJiaHitListHandler.java index 91d284507..94c04fd15 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetQiMenDunJiaHitListHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetQiMenDunJiaHitListHandler.java @@ -27,6 +27,7 @@ public class GetQiMenDunJiaHitListHandler extends BaseHandler list = new ArrayList<>(); for (int i = 0; i < num; i++) { // 小圈抽奖,根据返回判断是否需要抽外圈 - boolean result = qiMenRandom(user, activityId,2, list, hits); + boolean result = qiMenRandom(user,2, list, hits); if (result){ // 大圈/外圈抽奖 - qiMenRandom(user, activityId, 1, list, hits); + qiMenRandom(user, 1, list, hits); } } // 处理奖励 @@ -1795,7 +1795,7 @@ public class ActivityLogic implements IEventHandler{ * @param hits 抽中的索引id * @return true:需要进行外圈抽奖 false:不需要外圈抽奖 */ - private boolean qiMenRandom(User user,int activityId, int type, List list, List hits){ + private boolean qiMenRandom(User user, int type, List list, List hits){ boolean result = false; // 根据类型获取卡池 @@ -1831,10 +1831,6 @@ public class ActivityLogic implements IEventHandler{ // 外圈抽奖用,抽中全部 if (rewardPool.size() >= SLingLongPool.map.get(type).size()){ -// if (type == 1){ -// // 事件分发 -// Poster.getPoster().dispatchEvent(new QiMenDunJiaEvent(user.getId(),activityId,1)); -// } rewardPool.clear(); } From 9c1f77abfbc3db7cc18b4a76b086cfcb4b9c6b99 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Tue, 28 Sep 2021 17:37:54 +0800 Subject: [PATCH 11/31] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/hero/HeroUpLikableRequestHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 153a19af5..97537cd75 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 @@ -51,7 +51,7 @@ public class HeroUpLikableRequestHandler extends BaseHandler Date: Wed, 29 Sep 2021 14:34:00 +0800 Subject: [PATCH 12/31] =?UTF-8?q?=E6=B5=B7=E6=B4=8B=E6=94=B9=E6=8E=89?= =?UTF-8?q?=E8=90=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/handler/map/JourneyMap.java | 13 +++++++++++-- tablemanager/src/main/java/config/SFreeTravel.java | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/JourneyMap.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/JourneyMap.java index 6734d064a..e40b1303c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/JourneyMap.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/JourneyMap.java @@ -438,8 +438,17 @@ public class JourneyMap { for(int i=0;i Date: Wed, 29 Sep 2021 14:54:59 +0800 Subject: [PATCH 13/31] =?UTF-8?q?=E5=88=A0=E9=99=A4=20keys*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/rank/rankImpl/AbstractRank.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index e807582ba..50250af1c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -10,12 +10,15 @@ import com.ljsd.jieling.logic.dao.root.GuildCache; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.family.CrossDeathPathLogic; import com.ljsd.jieling.logic.rank.IRank; +import config.SGuildCheckpointConfig; +import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.ZSetOperations; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; +import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; @@ -369,9 +372,18 @@ public abstract class AbstractRank implements IRank { RedisUtil.getInstence().zsetRemoveOne(RedisKey.getKey(redisKey,rkey,false),value); } public void removeAllRank(String rkey){ + Map configMap = STableManager.getConfig(SGuildCheckpointConfig.class); + if (configMap == null || configMap.isEmpty()) { + return; + } try { - Set dimKey = RedisUtil.getInstence().getDimKey(RedisKey.getKey(redisKey, rkey, false) + "*", 200); - dimKey.forEach(item->RedisUtil.getInstence().del(item)); +// Set dimKey = RedisUtil.getInstence().getDimKey(RedisKey.getKey(redisKey, rkey, false) + "*", 200); + String[] dimKey = new String[configMap.size()]; + int index = 0; + for (Integer integer : configMap.keySet()) { + dimKey[index] = RedisKey.getKey(redisKey, rkey, false) + integer; + } + RedisUtil.getInstence().del(dimKey); } catch (Exception e) { e.printStackTrace(); } From 4376b5ece7fd2a6ea4af07772ab5f4c6cd3668ce Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 29 Sep 2021 15:23:15 +0800 Subject: [PATCH 14/31] =?UTF-8?q?=E5=88=A0=E9=99=A4key*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/rank/rankImpl/AbstractRank.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index e807582ba..50250af1c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -10,12 +10,15 @@ import com.ljsd.jieling.logic.dao.root.GuildCache; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.family.CrossDeathPathLogic; import com.ljsd.jieling.logic.rank.IRank; +import config.SGuildCheckpointConfig; +import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.ZSetOperations; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; +import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; @@ -369,9 +372,18 @@ public abstract class AbstractRank implements IRank { RedisUtil.getInstence().zsetRemoveOne(RedisKey.getKey(redisKey,rkey,false),value); } public void removeAllRank(String rkey){ + Map configMap = STableManager.getConfig(SGuildCheckpointConfig.class); + if (configMap == null || configMap.isEmpty()) { + return; + } try { - Set dimKey = RedisUtil.getInstence().getDimKey(RedisKey.getKey(redisKey, rkey, false) + "*", 200); - dimKey.forEach(item->RedisUtil.getInstence().del(item)); +// Set dimKey = RedisUtil.getInstence().getDimKey(RedisKey.getKey(redisKey, rkey, false) + "*", 200); + String[] dimKey = new String[configMap.size()]; + int index = 0; + for (Integer integer : configMap.keySet()) { + dimKey[index] = RedisKey.getKey(redisKey, rkey, false) + integer; + } + RedisUtil.getInstence().del(dimKey); } catch (Exception e) { e.printStackTrace(); } From 54b53fda543a76d08774c6b6861025d794e9cd9b Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 29 Sep 2021 18:09:37 +0800 Subject: [PATCH 15/31] =?UTF-8?q?=E6=88=98=E6=96=97=E5=8A=9B=E6=97=B6?= =?UTF-8?q?=E4=BA=8B=E8=AE=A1=E7=AE=97?= 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, 4 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 82d3ec4ae..e731dee6c 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 @@ -1199,6 +1199,10 @@ public class HeroLogic{ RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), teamForce); } + if (teamId == GlobalsDef.FORMATION_NORMAL) { + Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(iSession.getUid())); + } + // 跨服 更新编队信息 if (teamId == GlobalsDef.WORLD_TEAM_ARENA_DEFENSE) { CrossServiceLogic.getInstance().dispose(user); From 93eb07e78d0ef182ff1caf533690db06b0083dca Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Thu, 30 Sep 2021 14:28:31 +0800 Subject: [PATCH 16/31] =?UTF-8?q?=E4=BA=91=E6=B8=B8=E5=95=86=E4=BA=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index e6924a311..41b93ff25 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -932,7 +932,9 @@ public class ItemLogic { LOGGER.error("misson为空,activityId:{}",activityId); throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); } - ActivityProgressInfo progress = misson.getActivityMissionMap().get(type); + Map integerSComposeActivityMap = SComposeActivity.getConfigMap().get(activityId); + int typeId = integerSComposeActivityMap.get(type).getId(); + ActivityProgressInfo progress = misson.getActivityMissionMap().get(typeId); if(progress == null){ LOGGER.error("progress为空,type:{}",type); throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN); From 4133f808791e730087e0bb9add7b3c17fa87212e Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Thu, 30 Sep 2021 17:34:16 +0800 Subject: [PATCH 17/31] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 27cca111c..6a3bbae2e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -137,7 +137,8 @@ public class ActivityLogic implements IEventHandler{ return; } // 网页支付在登陆之前充值的金额 - double value = (double) result; + double value = Double.parseDouble((String) result); +// double value = (double) result; // 玩家缓存更新 ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,(int)(value*1000)); // 删除key From bb6ef14fcffb654857e75c6b74269c5d5f0a2ae1 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Fri, 8 Oct 2021 11:11:24 +0800 Subject: [PATCH 18/31] =?UTF-8?q?=E7=82=B9=E7=9F=B3=E6=88=90=E9=87=91?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=94=B6=E7=9B=8A=E9=9A=8F=E7=9D=80=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E7=AD=89=E7=BA=A7=E6=8F=90=E5=8D=87=EF=BC=8C=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E7=AD=89=E7=BA=A7=E6=8F=90=E5=8D=87=E6=97=B6=20?= =?UTF-8?q?=E5=8F=91=E6=94=BE=E9=81=93=E5=85=B7=E8=BF=9B=E8=83=8C=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/globals/BIReason.java | 1 + .../ljsd/jieling/logic/store/StoreLogic.java | 12 +++++++++- .../jieling/thread/task/DataReportTask.java | 7 ++++++ .../java/com/ljsd/jieling/util/ItemUtil.java | 23 ++++++++++++++---- .../main/java/config/SPlayerLevelConfig.java | 24 +++++++++++++++++++ 5 files changed, 61 insertions(+), 6 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 4f80ad2c6..edaaba1a1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -359,5 +359,6 @@ public interface BIReason { int SEVEN_WORLD_TREASURE = 1214;//七界秘宝 + int LEVEL_UP_REWARD = 1220;// 玩家升级赠与的道具 } \ No newline at end of file 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 dcf2c5e04..9971c2c06 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 @@ -492,7 +492,17 @@ public class StoreLogic implements IEventHandler { for(int i=0;i= 1000) { + i = 0; + Thread.sleep(100); + } } } catch (InterruptedException e) { e.printStackTrace(); 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 6a0e79a72..3aa1c5d3a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -861,7 +861,7 @@ public class ItemUtil { if (sPlayerLevelConfig == null) { throw new ErrorCodeException("服务器表配置错误"); } - + List levelUpRewards = new ArrayList<>(); int levelUpExp = sPlayerLevelConfig.getExp(); // 循环,直到经验不足继续升级或者等级最高 while (exp >= levelUpExp && playerInfoManager.getLevel() < maxLevel.getPlayerLv()) { @@ -892,8 +892,16 @@ public class ItemUtil { levelUpExp = sPlayerLevelConfig.getExp(); // 玩家升级报送 Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.ROLE_LEVEUP_EVENT); + // 升级赠送道具 + int[][] levelUpReward = sPlayerLevelConfig.getLevelUpReward(); + if (levelUpReward != null && levelUpReward.length > 0) { + levelUpRewards.add(levelUpReward); + } + } + CommonProto.Drop.Builder drop = null; + if (!levelUpRewards.isEmpty()) { + drop = ItemUtil.drop(user, levelUpRewards, BIReason.LEVEL_UP_REWARD); } - // 更新经验 playerInfoManager.setExp((int) exp); @@ -905,9 +913,14 @@ public class ItemUtil { // 在线玩家消息推送 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - if(sessionByUid!=null){ - PlayerInfoProto.UpdateUserExpIndicaiton build = PlayerInfoProto.UpdateUserExpIndicaiton.newBuilder().setExp((int)playerInfoManager.getExp()).setLevel(playerInfoManager.getLevel()).build(); - MessageUtil.sendIndicationMessage(sessionByUid,1, MessageTypeProto.MessageType.UPDATE_USER_EXP_INDICATION_VALUE,build,true); + if (sessionByUid != null) { + PlayerInfoProto.UpdateUserExpIndicaiton.Builder build = PlayerInfoProto.UpdateUserExpIndicaiton.newBuilder(); + build.setExp((int) playerInfoManager.getExp()); + build.setLevel(playerInfoManager.getLevel()); + if (drop != null) { + build.setDrop(drop); + } + MessageUtil.sendIndicationMessage(sessionByUid, 1, MessageTypeProto.MessageType.UPDATE_USER_EXP_INDICATION_VALUE, build.build(), true); } } diff --git a/tablemanager/src/main/java/config/SPlayerLevelConfig.java b/tablemanager/src/main/java/config/SPlayerLevelConfig.java index aef5b4325..361bee3fd 100644 --- a/tablemanager/src/main/java/config/SPlayerLevelConfig.java +++ b/tablemanager/src/main/java/config/SPlayerLevelConfig.java @@ -21,6 +21,14 @@ public class SPlayerLevelConfig implements BaseConfig { private int mazeTreasureMax; + private int goldExtraNum1; + + private int goldExtraNum2; + + private int goldExtraNum3; + + private int[][] levelUpReward; + @Override public void init() throws Exception { @@ -52,6 +60,22 @@ public class SPlayerLevelConfig implements BaseConfig { return mazeTreasureMax; } + public int getGoldExtraNum1() { + return goldExtraNum1; + } + + public int getGoldExtraNum2() { + return goldExtraNum2; + } + + public int getGoldExtraNum3() { + return goldExtraNum3; + } + + public int[][] getLevelUpReward() { + return levelUpReward; + } + public static Map getsPlayerLevelConfigMap() { return sPlayerLevelConfigMap; } From 24da18a4e48fb0233093aec12fd6d0196a629501 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Fri, 8 Oct 2021 14:54:20 +0800 Subject: [PATCH 19/31] =?UTF-8?q?=E7=82=B9=E9=87=91=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=89=B9=E6=9D=83=E5=8A=A0=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/core/VipPrivilegeType.java | 1 + .../java/com/ljsd/jieling/logic/store/StoreLogic.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java b/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java index 1c38b7bf4..354899a26 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java @@ -24,6 +24,7 @@ public interface VipPrivilegeType { int FREE_HERO_RANDOM = 14;//免费抽取妖灵师 int FREE_SECRET_RANDOM = 15; //解锁免费抽取秘盒 int TOWER_RESRT_NUM= 17; //每日试炼重置次数 + int SHOP_DIAN_JING = 21; // 点金 int TIME_RANDOM_FREE = 32;//东海寻仙每日赠送招募次数 int FAST_BUY_COUNT = 33;//极速探索购买次数 int MISSING_ROOM_CONSUME =34;//寻宝达人寻宝消耗降低 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 9971c2c06..04bbc9d61 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 @@ -1,6 +1,8 @@ package com.ljsd.jieling.logic.store; import com.ljsd.jieling.core.FunctionIdEnum; +import com.ljsd.jieling.core.GlobalsDef; +import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; @@ -502,7 +504,14 @@ public class StoreLogic implements IEventHandler { levelAdd = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getGoldExtraNum3(); } } - dropItems[i][1]= (int)(goods[i][1]*itemNum *(add/10000F) + levelAdd); + if (levelAdd > 0) { + Map map = SPrivilegeTypeConfig.conditionMap.get(GlobalsDef.VIP_UNLOCK_PRIVILEGE).get(VipPrivilegeType.SHOP_DIAN_JING); + Integer orDefault = map.getOrDefault(user.getPlayerInfoManager().getVipLevel(), 0); + if (orDefault != null && orDefault != 0) { + add += orDefault; + } + } + dropItems[i][1] = (int) ((goods[i][1] + levelAdd) * itemNum * (add / 10000F)); } CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropItems, BIReason.STORE_BUY_ITEM); if(!storeGiftType.contains(SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId).getStoreType() )){ From 3df6b64f823d6b01986d9cfe7e91e1530ed619a5 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Sat, 9 Oct 2021 11:06:03 +0800 Subject: [PATCH 20/31] =?UTF-8?q?=E5=88=A0=E9=94=99=E8=AF=AF=E5=AE=9D?= =?UTF-8?q?=E5=99=A8bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 8 +++++++- 1 file changed, 7 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 e731dee6c..a2d3c02b7 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 @@ -204,10 +204,11 @@ public class HeroLogic{ //宝器 if(type==4){ Map equipMap = user.getEquipManager().getEquipMap(); + Set needRemove = new HashSet<>(equipMap.size()); for(Map.Entry equipInfoEntry : equipMap.entrySet()){ PropertyItem value = equipInfoEntry.getValue(); if (value == null) { - equipManager.remove(equipInfoEntry.getKey()); + needRemove.add(equipInfoEntry.getKey()); LOGGER.info("getAllEquipInfo uid={} remove null jewel{}", uid, equipInfoEntry.getKey()); continue; } @@ -215,6 +216,11 @@ public class HeroLogic{ equipList.add(CBean2Proto.getEquipProto(value)); } } + if (!needRemove.isEmpty()) { + for (String id : needRemove) { + equipManager.remove(id); + } + } }else { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } From ccc07db16b72dfee85b0876ff5545aa19badd7ff Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Sat, 9 Oct 2021 11:18:50 +0800 Subject: [PATCH 21/31] =?UTF-8?q?=E7=82=B9=E9=87=91=E7=89=B9=E6=9D=83?= =?UTF-8?q?=E5=8A=A0=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/store/StoreLogic.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) 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 04bbc9d61..f9f017375 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 @@ -481,8 +481,8 @@ public class StoreLogic implements IEventHandler { for(int[] extra : extraAdd){ int type = extra[0]; if(type == 1){ - SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.sPlayerLevelConfigMap.get(user.getPlayerInfoManager().getLevel()); - add += sPlayerLevelConfig.getExtraAdd(); +// SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.sPlayerLevelConfigMap.get(user.getPlayerInfoManager().getLevel()); +// add += sPlayerLevelConfig.getExtraAdd(); }else if(type == 2){ int addPrivageId = extra[1]; // PlayerLogic.getInstance().getMaxCountByPrivilegeType(user,addPrivageId); @@ -504,13 +504,13 @@ public class StoreLogic implements IEventHandler { levelAdd = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getGoldExtraNum3(); } } - if (levelAdd > 0) { - Map map = SPrivilegeTypeConfig.conditionMap.get(GlobalsDef.VIP_UNLOCK_PRIVILEGE).get(VipPrivilegeType.SHOP_DIAN_JING); - Integer orDefault = map.getOrDefault(user.getPlayerInfoManager().getVipLevel(), 0); - if (orDefault != null && orDefault != 0) { - add += orDefault; - } - } +// if (levelAdd > 0) { +// Map map = SPrivilegeTypeConfig.conditionMap.get(GlobalsDef.VIP_UNLOCK_PRIVILEGE).get(VipPrivilegeType.SHOP_DIAN_JING); +// Integer orDefault = map.getOrDefault(user.getPlayerInfoManager().getVipLevel(), 0); +// if (orDefault != null && orDefault != 0) { +// add += orDefault; +// } +// } dropItems[i][1] = (int) ((goods[i][1] + levelAdd) * itemNum * (add / 10000F)); } CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropItems, BIReason.STORE_BUY_ITEM); From 86dae30e4f93542c062cf103cf1cc9fa9fe8a7e4 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Sat, 9 Oct 2021 15:34:21 +0800 Subject: [PATCH 22/31] =?UTF-8?q?=E7=82=B9=E9=87=91=20=E5=87=8F=E5=B0=91?= =?UTF-8?q?=E7=B2=BE=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f9f017375..ecd6c06c5 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 @@ -511,7 +511,7 @@ public class StoreLogic implements IEventHandler { // add += orDefault; // } // } - dropItems[i][1] = (int) ((goods[i][1] + levelAdd) * itemNum * (add / 10000F)); + dropItems[i][1] = ((goods[i][1] + levelAdd) * itemNum * (add / 10000)); } CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropItems, BIReason.STORE_BUY_ITEM); if(!storeGiftType.contains(SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId).getStoreType() )){ From 7e9469ee38ea79199fafaac639ce489e6195587b Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 11 Oct 2021 11:08:30 +0800 Subject: [PATCH 23/31] =?UTF-8?q?=E5=9B=9B=E8=B1=A1=E5=BF=83=E6=B3=95?= =?UTF-8?q?=E9=A3=98=E5=AD=97=E6=8F=90=E7=A4=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/handler/hero/SixiangUpRequestHandler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 d9f698777..461d6d2c0 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 @@ -33,6 +33,7 @@ public class SixiangUpRequestHandler extends BaseHandler Date: Mon, 11 Oct 2021 15:52:19 +0800 Subject: [PATCH 24/31] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=E8=BF=B7=E8=B8=AA?= =?UTF-8?q?=E6=96=B0=E4=B8=80=E6=9C=9F=E4=B8=8D=E5=88=B7=E6=96=B0?= 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 | 3 ++- 1 file changed, 2 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 92c46cb5a..ba8203505 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 @@ -366,7 +366,8 @@ public class HeroLogic{ } //特殊活动寻宝迷踪 - if(sLotterySetting.getActivityId() == 8201){ + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(sLotterySetting.getActivityId()); + if(sGlobalActivity!= null &&sGlobalActivity.getType() == 82 ){ Poster.getPoster().dispatchEvent(new XunBaoMiZongEvent(user,0)); } From 00a7cb0351a9b2b7a24cadcd46f915332dbd805f Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Mon, 11 Oct 2021 17:01:36 +0800 Subject: [PATCH 25/31] =?UTF-8?q?vip=E5=88=9D=E5=A7=8B=E5=8C=96=E5=A5=BD?= =?UTF-8?q?=E6=84=9F=E5=BA=A6=E7=89=B9=E6=9D=83bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 976bda74d..48dfc467c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -79,8 +79,10 @@ public class GetPlayerInfoHandler extends BaseHandler{ Map privilegeTypeConfigMap = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap(); for(Map.Entry entry:privilegeTypeConfigMap.entrySet()){ //如果是<4 系统内置特权 (6是新增的好感度特权收益加成 2021.9.26) - if(entry.getValue().getUnlockType()<4||entry.getValue().getUnlockType()==6&&!vipInfo.containsKey(entry.getKey())){ - playerInfoManager.addVipInfo(entry.getKey()); + if(entry.getValue().getUnlockType()<4||entry.getValue().getUnlockType()==6){ + if (!vipInfo.containsKey(entry.getKey())){ + playerInfoManager.addVipInfo(entry.getKey()); + } } } List privilegeList = new ArrayList<>(); From eb0d4f892be48a17e8107fbb97bba5e7b2e77aa0 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 12 Oct 2021 14:09:21 +0800 Subject: [PATCH 26/31] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98=20?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E8=BD=AC=E6=8D=A2=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/logic/store/BuyGoodsNewLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 8c0fa7773..1de38462c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -352,7 +352,7 @@ public class BuyGoodsNewLogic { String key = RedisUtil.getInstence().getKey(RedisKey.WEB_PAY, subKey); // 计算金额 double num = Optional.ofNullable(RedisUtil.getInstence().get(key)) - .map(v-> (double)v + price) + .map(v-> Double.parseDouble((String)v) + price) .orElse(price); // 明天零点(实际是今天的23:59:30) long tomorrowZero = TimeUtils.getTomorrowZero2(); From c3c1193e585e124663e119912b81e210f1be1af5 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Tue, 12 Oct 2021 15:01:17 +0800 Subject: [PATCH 27/31] Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double --- .../com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 1de38462c..636fa0907 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -351,9 +351,12 @@ public class BuyGoodsNewLogic { String subKey = RedisUtil.getInstence().getKey(String.valueOf(user.getId()), String.valueOf(ActivityType.DAILY_RECHARGE),false); String key = RedisUtil.getInstence().getKey(RedisKey.WEB_PAY, subKey); // 计算金额 - double num = Optional.ofNullable(RedisUtil.getInstence().get(key)) - .map(v-> Double.parseDouble((String)v) + price) - .orElse(price); + Object o = RedisUtil.getInstence().get(key); + double num = price; + if (o != null) { + num = Double.parseDouble((String) o) + price; + } + // 明天零点(实际是今天的23:59:30) long tomorrowZero = TimeUtils.getTomorrowZero2(); // 赋值 From e8426e7de2a10a3c664a12fe5d36f0bec5799422 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 13 Oct 2021 14:38:53 +0800 Subject: [PATCH 28/31] =?UTF-8?q?=E7=82=B9=E9=87=91bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 ecd6c06c5..36dc06493 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 @@ -511,7 +511,8 @@ public class StoreLogic implements IEventHandler { // add += orDefault; // } // } - dropItems[i][1] = ((goods[i][1] + levelAdd) * itemNum * (add / 10000)); + float addPercentage=add / 10000f; + dropItems[i][1] = (int)((goods[i][1] + levelAdd) * itemNum * addPercentage); } CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropItems, BIReason.STORE_BUY_ITEM); if(!storeGiftType.contains(SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId).getStoreType() )){ From aa21c96a4fe1daf8078742ee51e9c96bf93a45b4 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 13 Oct 2021 15:38:03 +0800 Subject: [PATCH 29/31] =?UTF-8?q?=E7=82=B9=E9=87=91=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E7=B2=BE=E5=BA=A6=E8=AE=A1=E7=AE=97bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 36dc06493..6dfe39f00 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 @@ -511,8 +511,7 @@ public class StoreLogic implements IEventHandler { // add += orDefault; // } // } - float addPercentage=add / 10000f; - dropItems[i][1] = (int)((goods[i][1] + levelAdd) * itemNum * addPercentage); + dropItems[i][1] = ((goods[i][1] + levelAdd) * itemNum * (add / 1000)) / 10; } CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropItems, BIReason.STORE_BUY_ITEM); if(!storeGiftType.contains(SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId).getStoreType() )){ From 8dceb89111b33d39ad246767394855a285e0218d Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 14 Oct 2021 13:47:14 +0800 Subject: [PATCH 30/31] =?UTF-8?q?=E7=99=BD=E9=87=91=E8=A3=85=E5=A4=87?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/dao/ItemManager.java | 39 ++++++++++++ .../ljsd/jieling/logic/hero/HeroLogic.java | 59 ++++++++++++++++--- .../java/com/ljsd/jieling/util/ItemUtil.java | 6 ++ .../main/java/config/SSpiritAnimalBook.java | 4 +- 4 files changed, 97 insertions(+), 11 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java index 8fee7500e..f96d79eae 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java @@ -3,13 +3,52 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; import com.ljsd.jieling.logic.dao.root.User; +import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; public class ItemManager extends MongoBase { private Map itemMap = new ConcurrentHashMap<>(); + ///兼容线上数据,计算统计装备(为了做白金装备图鉴,需要初始化统计一次用户身上所有装备)true:已经计算过了 false:未计算 + private boolean isAbsEquip; + + public boolean getIsAbsEquip() { + return isAbsEquip; + } + public void setAbsEquip(boolean absEquip) { + isAbsEquip = absEquip; + updateString("isAbsEquip", isAbsEquip); + } + + private Map equipBookMap = new HashMap<>(); + + public Map getEquipBookMap() { + return equipBookMap; + } + public void setEquipBookMap(int equipId,long addNum) { + long _num=addNum; + if (this.equipBookMap.containsKey(equipId)){ + _num+=this.equipBookMap.get(equipId); + } + this.equipBookMap.put(equipId,_num); + updateString("equipBookMap." + equipId, _num); + } + private Set equipBookEnabled = new HashSet<>(); + + public Set getEquipBookEnabled() { + return equipBookEnabled; + } + + public void addEquipBookEnabled(int bookId) { + this.equipBookEnabled.add(bookId); + updateString("equipBookEnabled", equipBookEnabled); + } + + public ItemManager() { this.setRootCollection(User._COLLECTION_NAME); 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 ba8203505..ba964ee2a 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 @@ -2306,6 +2306,9 @@ public class HeroLogic{ //魂印图鉴加成 Set equipBookEnabled = equipManager.getEquipBookEnabled(); bonuses(equipBookEnabled,heroAllAttribute); + //白金装备加成 + Set whiteBookEnabled = user.getItemManager().getEquipBookEnabled(); + bonuses(whiteBookEnabled,heroAllAttribute); //英雄皮肤加成 记得判断皮肤过期 int skin = hero.getSkin(); if(skin!=0){ @@ -3877,9 +3880,33 @@ public class HeroLogic{ for (int enabled:user.getEquipManager().getEquipBookEnabled()){ builder.addAllBookEnabled(enabled); } + //添加白金装备羁绊 + for (Integer enabled : user.getItemManager().getEquipBookEnabled()) { + builder.addAllBookEnabled(enabled); + } + for (Integer equip:equipManager.getEquipList()) { builder.addEquipGot(equip); - + } + if (!user.getItemManager().getIsAbsEquip()) { + for (Map.Entry equipEntry : user.getItemManager().getItemMap().entrySet()) { + if (SItem.getsItemMap().get(equipEntry.getKey()).getItemType()==3) { + user.getItemManager().setEquipBookMap(equipEntry.getValue().getItemId(),equipEntry.getValue().getItemNum()); + } + } + for (Map.Entry stringHeroEntry : user.getHeroManager().getHeroMap().entrySet()) { + for (Map.Entry entry : stringHeroEntry.getValue().getEquipByPositionMap().entrySet()) { + user.getItemManager().setEquipBookMap(entry.getValue(),1); + } + } + user.getItemManager().setAbsEquip(true); + } + for (Map.Entry entry : user.getItemManager().getEquipBookMap().entrySet()) { + CommonProto.EquipBookInfo equipBook=CommonProto.EquipBookInfo.newBuilder() + .setEquipId(entry.getKey()) + .setNum(entry.getValue().intValue()) + .build(); + builder.addEquipList(equipBook); } MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.GET_ALL_PROPERTY_INFO_RESPONSE_VALUE,builder.build(),true); } @@ -3900,7 +3927,7 @@ public class HeroLogic{ if(user.getPlayerInfoManager().getLevel() Date: Thu, 14 Oct 2021 15:27:14 +0800 Subject: [PATCH 31/31] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A3=85=E5=A4=87?= =?UTF-8?q?=E5=9B=BE=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 去处理