diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java index acec9f59e..1bd9724dc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SGameSetting.java @@ -77,6 +77,8 @@ public class SGameSetting implements BaseConfig { private int[] achievementRefreshType; + private int defaultPicture; + private static SGameSetting gameSetting; @@ -214,4 +216,8 @@ public class SGameSetting implements BaseConfig { public int[] getAchievementRefreshType() { return achievementRefreshType; } + + public int getDefaultPicture() { + return defaultPicture; + } } \ No newline at end of file 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 7ffc9d733..129799331 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -61,6 +61,8 @@ public interface BIReason { int TOWER_FLOOR_REWARD = 37; + int MONTH_CARD_REWARD = 38; + //道具消耗原因 1000开头 int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级 int SECRETBOX_CONSUME = 1001; //秘盒抽卡 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ModifyHeadFrameHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ModifyHeadFrameHandler.java new file mode 100644 index 000000000..4f595c45d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/ModifyHeadFrameHandler.java @@ -0,0 +1,28 @@ +package com.ljsd.jieling.handler.player; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.protocols.PlayerInfoProto; +import org.springframework.stereotype.Component; + + +@Component +public class ModifyHeadFrameHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.MODIFY_HEAD_FRAME_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] bytes = netData.parseClientProtoNetData(); + + PlayerInfoProto.modifyHeadFrameRequest request = PlayerInfoProto.modifyHeadFrameRequest.parseFrom(bytes); + int headFrameId = request.getHeadFrameId(); + PlayerLogic.getInstance().modifyHeadFrame(iSession,headFrameId,MessageTypeProto.MessageType.MODIFY_HEAD_FRAME_RESPONSE); + + } +} 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 12949e1ed..ab76e2059 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 @@ -89,6 +89,7 @@ public class UserManager { playerManager.setLoginTime(now); playerManager.updateVipInfo(user,0); playerManager.setRechargeInfo(new RechargeInfo()); + playerManager.setHeadFrame(SGameSetting.getGameSetting().getDefaultPicture()); SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(1); playerManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy()); ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index 162bde28b..32b5cd19c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -867,6 +867,7 @@ public class CombatLogic { public static Map> elementEffect(User user){ Map> heroAllAttributeMap = user.getMapManager().getHeroAllAttributeMap(); Map heroMap = user.getHeroManager().getHeroMap(); + Map configMap = SElementalResonanceConfig.configMap; //找出上场的Id Set heroes = heroAllAttributeMap.keySet(); @@ -888,13 +889,36 @@ public class CombatLogic { } } propertiesMap = sortByValueDescending(propertiesMap); + for(Map.Entry entry :propertiesMap.entrySet()){ + LOGGER.info("{}系类型数量为{}",entry.getKey(),entry.getValue()); + } int[][] effect = new int[2][]; int[] normalProperties = new int[3]; int[] special = new int[2]; + + + //暗属性判断 if(propertiesMap.containsKey(6)){ special[0] = 2; special[1] = propertiesMap.get(6); } + propertiesMap.remove(6); + //光属性判断 + if(propertiesMap.size()>1){ + if(propertiesMap.containsKey(5)) { + int allRoundProperCount = propertiesMap.get(5); + propertiesMap.remove(5); + if(allRoundProperCount<5){ //光属性小于5 + for (Map.Entry entry:propertiesMap.entrySet()){ + if(entry.getKey()!=6&&entry.getKey()!=5){ + propertiesMap.put(entry.getKey(), entry.getValue()+allRoundProperCount); + break; + } + } + } + } + } + //普通属性判断 normalProperties[0] = 1; int nomalIndex = 1; for(Map.Entry entry:propertiesMap.entrySet()){ @@ -907,17 +931,28 @@ public class CombatLogic { } effect[0] = normalProperties; effect[1] = special; - Map configMap = SElementalResonanceConfig.configMap; + for(int i = 0 ; i2){ + LOGGER.info("生效的光环为{},{},{}",effect[i][0],effect[i][1],effect[i][2]); + }else{ + LOGGER.info("生效的光环为{},{}",effect[i][0],effect[i][1]); + } + + } List resultEffect = new ArrayList<>(); for(int i = 0; i entry:configMap.entrySet()){ if(Arrays.equals(effect[i],entry.getValue().getType())){ resultEffect.add(entry.getValue().getContent()); } - } } - System.out.println(); + Iterator it = resultEffect.iterator(); + while (it.hasNext()){ + int[][] next = it.next(); + System.out.println(next[0][0]+","+next[0][1]); + + } return heroAllAttributeMap; } 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 5b2f9cc32..7365d0ee1 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 @@ -258,4 +258,13 @@ public class PlayerLogic { } } + public void modifyHeadFrame(ISession session, int frameId,MessageTypeProto.MessageType messageType) throws Exception { + User user = UserManager.getUser(session.getUid()); + ItemManager itemManager = user.getItemManager(); + if(itemManager.getItem(frameId).getItemNum()<1){ + MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"无此头像框"); + } + user.getPlayerInfoManager().setHeadFrame(frameId); + MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); + } }