From 7cd52a347a9bc1fcf016f0c330547ba829aae584 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 17 Dec 2019 02:30:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=85=E5=B3=B0=E8=B5=9B=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=9D=90=E9=AA=91=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/core/FunctionIdEnum.java | 1 + .../ljsd/jieling/globals/GlobalItemType.java | 5 ++- .../player/ModifyDecorationHandler.java | 2 +- .../handler/player/RideLevelUpHandler.java | 2 +- .../jieling/logic/GlobalDataManaager.java | 40 ++++++++++++++----- .../jieling/logic/player/PlayerLogic.java | 6 +-- .../java/com/ljsd/jieling/util/ItemUtil.java | 3 ++ .../main/java/config/SGlobalSystemConfig.java | 6 ++- 8 files changed, 46 insertions(+), 19 deletions(-) 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 dad65275b..c65a7dbc8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java @@ -39,6 +39,7 @@ public enum FunctionIdEnum { Blood(47), ToBeStronger(48), SoulEquip(52), + TopBattle(57), WorkShopTech(101), WorkShopCreateEquip(102), WorkShopCreateProtectEquip(103), 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 7ddaf4fd3..a2f56d1b7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -24,8 +24,9 @@ public interface GlobalItemType { int SOUL_MARK =13;// 魂印 int ESPECIAL_EQUIP = 14;//法宝 int HEAD = 15;//法宝 - - + int DESIGNATION = 16;//称号 + int DECORATION = 17;//皮肤 + int RIDE = 18;//坐骑 //物品使用类型 int NO_USE = 0 ; //不使用 int RANDOM_USE = 1; // 随机使用 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ModifyDecorationHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ModifyDecorationHandler.java index bc69d526d..54f94bd2a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ModifyDecorationHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ModifyDecorationHandler.java @@ -20,6 +20,6 @@ public class ModifyDecorationHandler extends BaseHandler ids) throws Exception { ServerConfig serverConfigTmp = MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class); for(Integer openId : ids){ - FunctionIdEnum type = FunctionIdEnum.getFunctionIdEnumById(openId); + int sameType = STableManager.getConfig(SGlobalSystemConfig.class).get(openId).getIsIDdSame(); + FunctionIdEnum type = FunctionIdEnum.getFunctionIdEnumById(sameType); if(type == null){ continue; } @@ -187,6 +185,7 @@ public class GlobalDataManaager { for(Map.Entry entry:onlineUserMap.entrySet()){ MessageUtil.sendIndicationMessage(entry.getValue(),1, MessageTypeProto.MessageType.ENDLESS_MAP_CHANGE_INDICATION_VALUE,info,true); } + case TopBattle: break; default: break; @@ -197,8 +196,8 @@ public class GlobalDataManaager { public void closeAction(List ids) throws Exception { for(Integer closeId : ids){ - FunctionIdEnum type = FunctionIdEnum.getFunctionIdEnumById(closeId); - + int sameType = STableManager.getConfig(SGlobalSystemConfig.class).get(closeId).getIsIDdSame(); + FunctionIdEnum type = FunctionIdEnum.getFunctionIdEnumById(sameType); switch (type){ case Arena: ArenaLogic.getInstance().sendReward(GlobalsDef.ARENA_SEASON_REWARD); @@ -210,6 +209,8 @@ public class GlobalDataManaager { case Blood: BloodLogic.getInstance().bloodSeasonReward(); break; + case TopBattle: + break; default: break; } @@ -257,6 +258,7 @@ public class GlobalDataManaager { long now = TimeUtils.now(); Map sGlobalSystemConfigMap = STableManager.getConfig(SGlobalSystemConfig.class); PlayerInfoProto.GetFunctionOfTimeResponse.Builder builder = PlayerInfoProto.GetFunctionOfTimeResponse.newBuilder(); + Map> sameActivity = new HashMap<>(); for(SGlobalSystemConfig sGlobalSystemConfig : sGlobalSystemConfigMap.values()){ int id = sGlobalSystemConfig.getId(); long systemOpenLong = sGlobalSystemConfig.getSystemOpenLong(); @@ -285,12 +287,28 @@ public class GlobalDataManaager { } } - builder.addFunctionOfTime(CommonProto.FunctionOfTime.newBuilder() + CommonProto.FunctionOfTime timeInfo = CommonProto.FunctionOfTime.newBuilder() .setFunctionId(id) - .setStartTime((int)(timeOpenOfThis/1000)) - .setEndTime((int)(timeCloseOfThis/1000)) + .setStartTime((int) (timeOpenOfThis / 1000)) + .setEndTime((int) (timeCloseOfThis / 1000)) .setInterval(seasonInterval) - .build()); + .build(); + int isIDdSame = sGlobalSystemConfig.getIsIDdSame(); + List timeList = sameActivity.get(isIDdSame); + if(timeList==null){ + timeList = new ArrayList<>(); + } + timeList.add(timeInfo); + sameActivity.put(isIDdSame,timeList); + } + if(!sameActivity.isEmpty()){ + for(Map.Entry> entry:sameActivity.entrySet()){ + List value = entry.getValue(); + if(value.size()>1){ + Collections.sort(value, Comparator.comparing(CommonProto.FunctionOfTime::getStartTime)); + } + builder.addFunctionOfTime(value.get(0)); + } } getFunctionOfTimeResponse=builder.build(); } 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 70f5962f6..86c1029f3 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 @@ -354,11 +354,11 @@ public class PlayerLogic { } - public void modifyHeadFrame(ISession session, int type,int decorationId,MessageTypeProto.MessageType messageType) throws Exception { + public void modifyDecoration(ISession session, int type,int decorationId,MessageTypeProto.MessageType messageType) throws Exception { LOGGER.info("外观物品Id{}",decorationId); User user = UserManager.getUser(session.getUid()); ItemManager itemManager = user.getItemManager(); - if(type!=0){ + if(decorationId!=0){ if(itemManager.getItem(decorationId)==null||itemManager.getItem(decorationId).getItemNum()<1){ throw new ErrorCodeException(ErrorCode.newDefineCode("无此物品")); } @@ -714,7 +714,7 @@ public class PlayerLogic { if(!result){ throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } - user.getPlayerInfoManager().setRideLevel(rideLevel++); + user.getPlayerInfoManager().setRideLevel(rideLevel+1); MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); } } 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 f6268f432..70fb3e477 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -472,6 +472,9 @@ public class ItemUtil { case GlobalItemType.SecretBox: case GlobalItemType.CHANGE_NAME_CARD: case GlobalItemType.HEAD: + case GlobalItemType.DESIGNATION: + case GlobalItemType.DECORATION: + case GlobalItemType.RIDE: itemType = GlobalItemType.ITEM; break; case GlobalItemType.RANDOM_ITME: diff --git a/tablemanager/src/main/java/config/SGlobalSystemConfig.java b/tablemanager/src/main/java/config/SGlobalSystemConfig.java index 865d6ea57..09bb98656 100644 --- a/tablemanager/src/main/java/config/SGlobalSystemConfig.java +++ b/tablemanager/src/main/java/config/SGlobalSystemConfig.java @@ -34,7 +34,7 @@ public class SGlobalSystemConfig implements BaseConfig { private int[][] openGifts; - + private int isIDdSame; @Override public void init() throws Exception { @@ -114,4 +114,8 @@ public class SGlobalSystemConfig implements BaseConfig { public int[][] getOpenGifts() { return openGifts; } + + public int getIsIDdSame() { + return isIDdSame; + } } \ No newline at end of file